PySDL3 Desktop: Setup for Python PySDL3 для Desktop: Настройка для Python

A guide to configuring and running SDL3 applications with Python. Руководство по настройке и запуску приложений SDL3 на языке Python.

1. Installation 1. Установка

Ensure you have Python installed. Install the PySDL3 library using pip:

Убедитесь, что у вас установлен Python. Установите библиотеку PySDL3 через pip:

pip install pysdl3

2. Project Structure 2. Структура проекта

Create a folder named pysdl3-app with the following hierarchy:

Создайте папку с именем pysdl3-app со следующей иерархией:

pysdl3-app/
└── main.py

3. Source Code (Callback System) 3. Исходный код (Система Callbacks)

PySDL3 relies on the SDL3 callback-based architecture. Copy this code into main.py:

PySDL3 опирается на архитектуру обратных вызовов (callbacks) SDL3. Скопируйте этот код в файл main.py:

import ctypes
import os

# Required for the SDL3 Callback-based App framework
os.environ["SDL_MAIN_USE_CALLBACKS"] = "1"
os.environ["SDL_RENDER_DRIVER"] = "opengl"

import sdl3

renderer = ctypes.POINTER(sdl3.SDL_Renderer)()
window = ctypes.POINTER(sdl3.SDL_Window)()

@sdl3.SDL_AppInit_func
def SDL_AppInit(appstate, argc, argv):
    if not sdl3.SDL_Init(sdl3.SDL_INIT_VIDEO):
        sdl3.SDL_Log("Couldn't initialize SDL: %s".encode() % sdl3.SDL_GetError())
        return sdl3.SDL_APP_FAILURE

    if not sdl3.SDL_CreateWindowAndRenderer("PySDL3 App".encode(), 500, 500, 0, window, renderer):
        return sdl3.SDL_APP_FAILURE

    return sdl3.SDL_APP_CONTINUE

@sdl3.SDL_AppEvent_func
def SDL_AppEvent(appstate, event):
    if sdl3.SDL_DEREFERENCE(event).type == sdl3.SDL_EVENT_QUIT:
        return sdl3.SDL_APP_SUCCESS
    return sdl3.SDL_APP_CONTINUE

@sdl3.SDL_AppIterate_func
def SDL_AppIterate(appstate):
    sdl3.SDL_SetRenderDrawColor(renderer, 38, 43, 51, 255)
    sdl3.SDL_RenderClear(renderer)

    rect = sdl3.SDL_FRect(100.0, 50.0, 200.0, 60.0)
    sdl3.SDL_SetRenderDrawColor(renderer, 220, 80, 80, sdl3.SDL_ALPHA_OPAQUE)
    sdl3.SDL_RenderFillRect(renderer, rect)

    sdl3.SDL_RenderPresent(renderer)
    return sdl3.SDL_APP_CONTINUE

@sdl3.SDL_AppQuit_func
def SDL_AppQuit(appstate, result):
    sdl3.SDL_DestroyRenderer(renderer)
    sdl3.SDL_DestroyWindow(window)
    sdl3.SDL_Quit()

4. Running the Application 4. Запуск приложения

Run the script via your terminal:

Запустите скрипт через терминал:

python main.py

or:

или:

py main.py

Support My Work Поддержать проект

If these tutorials helped you, consider buying me a coffee! Если эти туториалы вам помогли, вы можете поддержать автора.

Sberbank (Russia only) Сбербанк (только для РФ)

Sberbank SBP QR Code

Direct transfer via phone number (Russia only) Перевод по номеру телефона (только для РФ)

+7 (917) 212-29-59

USDT TRC20

USDT TRC20 QR Code

Support via Cryptocurrency Поддержка криптовалютой

TMtY1YifNf6FKvgeFmqKGQR4NStKr3csGp