[PYTHON] versuchen Sie es mit pysdl2

Wenn Sie der Meinung sind, dass PyGame Python3 oder 64bit nicht unterstützt, scheint Entwicklung abgeschlossen. Wenn ich mir also die Site anschaue, sieht sie auf den ersten Blick lebendig aus. Die neueste version 1.9.1 Packages (August 6th 2009) Ich denke, das ist der Fall.

Versuchen Sie PySDL2, das der Nachfolger zu sein scheint. Es scheint ein ctypes-Wrapper für SDL2 zu sein, daher erwarte ich, dass es schnell funktioniert, ohne es zu erstellen.

Ausführungsumgebung

Download und Beispiele

Die Umgebung ist eine Anaconda-Version von Python 3.5 (64 Bit) unter Windows.

> cd PySDL2-0.9.3
> C:\Anaconda3\python.exe setup.py install
> cd examples
> C:\Anaconda3\python.exe sdl2hello.py

Ich erhalte die Fehlermeldung, dass SDL2 nicht gefunden werden kann.

https://www.libsdl.org/download-2.0.php Holen Sie sich die SDL2-DLL von. Stellen Sie die Umgebungsvariable PYSDL2_DLL_PATH so ein, dass sie auf das DLL-Verzeichnis verweist.

nochmal

> C:\Anaconda3\python.exe sdl2hello.py

gerührt. Die Beispiele mit anderen SDL_gfx funktionieren jedoch nicht.

SDL_gfx

Es gibt keine DLL ... Okay, lass uns alles bauen.

Erstellen Sie eine Reihe von SDL2

Ich habe es gebaut. Skript erstellen.

helloworld.pyとsdl2hello.py

Beispiele sind helloworld.py und sdl2hello.py mit demselben Ausführungsergebnis.

import sdl2.ext
def ext_hello():
    '''
    helloworld.Auszug aus py
    '''
    sdl2.ext.init()
    window = sdl2.ext.Window("Hello World!", size=(592, 460))
    window.show()
    processor = sdl2.ext.TestEventProcessor()
    processor.run(window)
    sdl2.ext.quit()

import ctypes
import sdl2
def hello():
    '''
    helloworld.Auszug aus py
    '''
    sdl2.SDL_Init(sdl2.SDL_INIT_VIDEO)
    window = sdl2.SDL_CreateWindow(b"Hello World",
                                   sdl2.SDL_WINDOWPOS_CENTERED,
                                   sdl2.SDL_WINDOWPOS_CENTERED,
                                   592, 460, sdl2.SDL_WINDOW_SHOWN)
    running = True
    event = sdl2.SDL_Event()
    while running:
        while sdl2.SDL_PollEvent(ctypes.byref(event)) != 0:
            if event.type == sdl2.SDL_QUIT:
                running = False
                break
        sdl2.SDL_Delay(10)

    sdl2.SDL_DestroyWindow(window)
    sdl2.SDL_Quit()


if __name__=='__main__':
    hello()
    #ext_hello()

Ich hatte so ein Gefühl. Das war's. ext scheint eine Schicht von versteckten c-Typen und ein kleines Framework zu sein. Verwenden wir sdl2 direkt.

SDL_Renderer https://wiki.libsdl.org/SDL_CreateRenderer Versuchen Sie zu transplantieren.

def hello_renderer():
    print("hello_renderer")

    posX = 100
    posY = 100
    width = 320
    height = 240

    sdl2.SDL_Init(sdl2.SDL_INIT_VIDEO);

    win = sdl2.SDL_CreateWindow(b"Hello World", posX, posY, width, height, 0);

    renderer = sdl2.SDL_CreateRenderer(win, -1, sdl2.SDL_RENDERER_ACCELERATED);

    bitmapSurface = sdl2.SDL_LoadBMP(b"hello.bmp");
    bitmapTex = sdl2.SDL_CreateTextureFromSurface(renderer, bitmapSurface);
    sdl2.SDL_FreeSurface(bitmapSurface);

    while True:
        e=sdl2.SDL_Event()
        if sdl2.SDL_PollEvent(ctypes.byref(e)):
            if e.type == sdl2.SDL_QUIT:
                break;

        sdl2.SDL_RenderClear(renderer);
        sdl2.SDL_RenderCopy(renderer, bitmapTex, None, None);
        sdl2.SDL_RenderPresent(renderer);

    sdl2.SDL_DestroyTexture(bitmapTex);
    sdl2.SDL_DestroyRenderer(renderer);
    sdl2.SDL_DestroyWindow(win);

    sdl2.SDL_Quit();

Es bewegte sich leicht.

sdl2.SDL_PollEvent(ctypes.byref(e))
NULL -> None
b"Nach Bytes"

Danach denke ich, ich sollte Informationen aus dem Beispiel von C erhalten.

Recommended Posts

versuchen Sie es mit pysdl2
Versuchen Sie Python
Versuchen Sie PyOpenGL
Versuchen Sie, libtaxii zu berühren
Versuchen Sie es mit Tkinter
Versuchen Sie es mit Docker-Py
Probieren Sie den Generator von numpy.random aus
Versuchen Sie es mit verteiltem Tensorfluss
Versuchen Sie es mit einem Ausstecher
Versuchen Sie es mit PDFMiner
Versuchen Sie es mit Geopandas
Versuchen Sie es mit Selen
Versuchen Sie es mit scipy
Python> try: / außer:
Versuchen Sie, Polynote zu installieren
Versuchen Sie es mit Standard Scaler
Versuchen Sie es mit pandas.DataFrame
Versuchen Sie es mit Hinweisen
Versuchen Sie es mit Django-Swiftbrowser
Versuchen Sie es mit matplotlib
Versuchen Sie es mit tf.metrics
Versuchen Sie, Chainer-Gogh zu installieren
Versuchen Sie, Deepdream auszuführen
Versuchen Sie es mit PyODE
Versuchen Sie, Pyston 0.1 auszuführen
Versuchen Sie, PySide2 zu erstellen