[ English | 中文 | Deutsch | Español | Français | Italiano | 日本語 | 한국어 | Português | Русский | Türkçe | Українська ]
Pyxel ist eine Retro-Spiel-Engine für Python.
Die Spezifikationen sind von Retro-Spielkonsolen inspiriert, wie z. B. der Unterstützung von nur 16 Farben und 4 Klangkanälen, sodass Sie ganz einfach pixelartige Spiele erstellen können.
Die Entwicklung von Pyxel wird durch das Feedback der Benutzer vorangetrieben. Bitte geben Sie Pyxel einen Stern auf GitHub!
Die Spezifikationen und APIs von Pyxel sind inspiriert von PICO-8 und TIC-80.
Pyxel ist unter der MIT-Lizenz Open Source und kostenlos zu verwenden. Lass uns beginnen, Retro-Spiele mit Pyxel zu erstellen!
- Läuft auf Windows, Mac, Linux und Web
- Programmierung in Python
- 16-Farben-Palette
- 3 256x256 große Bildbanken
- 8 256x256 große Kachelkarten
- 4 Kanäle mit 64 definierbaren Klängen
- 8 Musiktracks, die beliebige Klänge kombinieren können
- Eingaben über Tastatur, Maus und Gamepad
- Werkzeuge zum Bearbeiten von Bildern und Klängen
- Benutzererweiterbare Farben, Kanäle und Datenbanken
Nachdem Sie Python3 (Version 3.8 oder höher) installiert haben, führen Sie den folgenden Befehl aus:
pip install -U pyxel
Wenn Sie Python mit dem offiziellen Installer installieren, stellen Sie sicher, dass Sie die Option Add Python 3.x to PATH
aktivieren, um den pyxel
Befehl zu ermöglichen.
Nachdem Sie Homebrew installiert haben, führen Sie die folgenden Befehle aus:
brew install pipx
pipx ensurepath
pipx install pyxel
Um Pyxel nach der Installation zu aktualisieren, führen Sie pipx upgrade pyxel
aus.
Nachdem Sie das SDL2-Paket (libsdl2-dev
für Ubuntu), Python3 (Version 3.8 oder höher) und python3-pip
installiert haben, führen Sie den folgenden Befehl aus:
sudo pip3 install -U pyxel
Wenn der vorherige Befehl fehlschlägt, ziehen Sie in Betracht, Pyxel aus dem Quellcode zu bauen, indem Sie die Anweisungen im Makefile befolgen.
Die Web-Version von Pyxel benötigt keine Installation von Python oder Pyxel und läuft auf PCs, Smartphones und Tablets mit unterstützten Webbrowsern.
Für detaillierte Anweisungen konsultieren Sie bitte diese Seite.
Nachdem Sie Pyxel installiert haben, können Sie die Beispiele mit dem folgenden Befehl in das aktuelle Verzeichnis kopieren:
pyxel copy_examples
Die folgenden Beispiele werden in Ihr aktuelles Verzeichnis kopiert:
01_hello_pyxel.py | Die einfachste Anwendung | Demo | Code |
02_jump_game.py | Sprungspiel mit Pyxel-Ressourcendatei | Demo | Code |
03_draw_api.py | Demonstration der Zeichen-APIs | Demo | Code |
04_sound_api.py | Demonstration der Audio-APIs | Demo | Code |
05_color_palette.py | Farbenpalettenliste | Demo | Code |
06_click_game.py | Mausklickspiel | Demo | Code |
07_snake.py | Schlangenspiel mit BGM | Demo | Code |
08_triangle_api.py | Demonstration der Dreiecks-Zeichen-APIs | Demo | Code |
09_shooter.py | Shoot 'em up Spiel mit Bildschirmübergängen | Demo | Code |
10_platformer.py | Seiten-scrollendes Plattformspiel mit Karte | Demo | Code |
11_offscreen.py | Offscreen-Rendering mit der Image-Klasse | Demo | Code |
12_perlin_noise.py | Perlin-Rausch-Animation | Demo | Code |
13_bitmap_font.py | Zeichnen einer Bitmap-Schriftart | Demo | Code |
14_synthesizer.py | Synthesizer unter Verwendung von Audioerweiterungsfunktionen | Demo | Code |
15_tiled_map_file.py | Laden und Zeichnen einer Tiled Map File (.tmx) | Demo | Code |
16_transform.py | Bildrotation und -skalierung | Demo | Code |
99_flip_animation.py | Animation mit der Flip-Funktion (nur für Nicht-Web-Plattformen) | Demo | Code |
30sec_of_daylight.pyxapp | Gewinner des 1. Pyxel Jam von Adam | Demo | Code |
megaball.pyxapp | Arcade Ball-Physikspiel von Adam | Demo | Code |
8bit-bgm-gen.pyxapp | Hintergrundmusikgenerator von frenchbread | Demo | Code |
Die Beispiele können mit den folgenden Befehlen ausgeführt werden:
cd pyxel_examples
pyxel run 01_hello_pyxel.py
pyxel play 30sec_of_daylight.pyxapp
Importieren Sie das Pyxel-Modul in Ihr Python-Skript, geben Sie die Fenstergröße mit der init
-Funktion an und starten Sie die Pyxel-Anwendung mit der run
-Funktion.
import pyxel
pyxel.init(160, 120)
def update():
if pyxel.btnp(pyxel.KEY_Q):
pyxel.quit()
def draw():
pyxel.cls(0)
pyxel.rect(10, 10, 20, 20, 11)
pyxel.run(update, draw)
Die Argumente der run
-Funktion sind die update
-Funktion, die die Frame-Aktualisierungen verarbeitet, und die draw
-Funktion, die das Zeichnen auf dem Bildschirm übernimmt.
In einer tatsächlichen Anwendung wird empfohlen, den Pyxel-Code in einer Klasse zu kapseln, wie im Folgenden gezeigt:
import pyxel
class App:
def __init__(self):
pyxel.init(160, 120)
self.x = 0
pyxel.run(self.update, self.draw)
def update(self):
self.x = (self.x + 1) % pyxel.width
def draw(self):
pyxel.cls(0)
pyxel.rect(self.x, 0, 8, 8, 9)
App()
Um einfache Grafiken ohne Animation zu erstellen, können Sie die show
-Funktion verwenden, um Ihren Code zu vereinfachen.
import pyxel
pyxel.init(120, 120)
pyxel.cls(1)
pyxel.circb(60, 60, 40, 7)
pyxel.show()
Ein erstelltes Skript kann mit dem python
-Befehl ausgeführt werden:
python PYTHON_SCRIPT_FILE
Es kann auch mit dem pyxel run
-Befehl ausgeführt werden:
pyxel run PYTHON_SCRIPT_FILE
Darüber hinaus überwacht der Befehl pyxel watch
Änderungen in einem angegebenen Verzeichnis und führt das Programm automatisch erneut aus, wenn Änderungen erkannt werden:
pyxel watch WATCH_DIR PYTHON_SCRIPT_FILE
Die Überwachung des Verzeichnisses kann durch Drücken von Ctrl(Command)+C
gestoppt werden.
Während eine Pyxel-Anwendung läuft, können die folgenden speziellen Tastenaktionen ausgeführt werden:
Esc
Die Anwendung beendenAlt(Option)+1
Den Screenshot auf dem Desktop speichernAlt(Option)+2
Den Startzeitpunkt der Bildschirmaufnahme zurücksetzenAlt(Option)+3
Ein Bildschirmaufnahmevideo auf dem Desktop speichern (bis zu 10 Sekunden)Alt(Option)+8
oderA+B+X+Y+DL
auf dem Gamepad
Die Bildschirmskalierung zwischen maximal und ganzzahlig umschaltenAlt(Option)+9
oderA+B+X+Y+DR
auf dem Gamepad
Zwischen Bildschirmmodi (Crisp/Smooth/Retro) wechselnAlt(Option)+0
oderA+B+X+Y+DU
auf dem Gamepad
Den Leistungsmonitor (FPS/update
Zeit/draw
Zeit) umschaltenAlt(Option)+Enter
oderA+B+X+Y+DD
auf dem Gamepad
Den Vollbildmodus umschaltenShift+Alt(Option)+1/2/3
Bildbank 0, 1 oder 2 auf dem Desktop speichernShift+Alt(Option)+0
Die aktuelle Farbpalette auf dem Desktop speichern
Pyxel Editor kann Bilder und Klänge erstellen, die in einer Pyxel-Anwendung verwendet werden.
Sie können Pyxel Editor mit dem folgenden Befehl starten:
pyxel edit PYXEL_RESOURCE_FILE
Wenn die angegebene Pyxel-Ressourcendatei (.pyxres) vorhanden ist, wird sie geladen. Andernfalls wird eine neue Datei mit dem angegebenen Namen erstellt. Wenn die Ressourcendatei weggelassen wird, wird eine neue Datei mit dem Namen my_resource.pyxres
erstellt.
Nachdem Sie Pyxel Editor gestartet haben, können Sie zu einer anderen Ressourcendatei wechseln, indem Sie diese auf Pyxel Editor ziehen und ablegen.
Die erstellte Ressourcendatei kann mit der load
-Funktion geladen werden.
Pyxel Editor hat die folgenden Bearbeitungsmodi.
Bildeditor
Der Modus zum Bearbeiten des Bildes in jeder Bilderbank.
Sie können eine Bilddatei (PNG/GIF/JPEG) in den Bildeditor ziehen und ablegen, um das Bild in die aktuell ausgewählte Bilderbank zu laden.
Kachelkarteeditor
Der Modus zum Bearbeiten von Kachelkarten, in denen Bilder aus den Bilderbanken in einem Kachelmuster angeordnet sind.
Ziehen Sie eine TMX-Datei (Tiled Map File) in den Kachelkarteneditor, um deren ebene 0 in die aktuell ausgewählte Kachelkarte zu laden.
Klangeditor
Der Modus zum Bearbeiten von Klängen, die für Melodien und Effekte verwendet werden.
Musikeditor
Der Modus zum Bearbeiten von Musiken, in denen die Klänge in der Reihenfolge der Wiedergabe angeordnet sind.
Pyxel-Bilder und Kachelkarten können auch mit folgenden Methoden erstellt werden:
- Erstellen Sie ein Bild aus einer Liste von Zeichenfolgen mit der
Image.set
-Funktion oder derTilemap.set
-Funktion - Laden Sie eine Bilddatei (PNG/GIF/JPEG) mit der
Image.load
-Funktion in die Pyxel-Palette
Pyxel-Klänge können ebenfalls mit der folgenden Methode erstellt werden:
- Erstellen Sie einen Klang aus Zeichenfolgen mit der
Sound.set
-Funktion oder derMusic.set
-Funktion
Bitte beachten Sie die API-Referenz für die Verwendung dieser Funktionen.
Pyxel unterstützt ein dediziertes Dateiformat für die Verteilung von Anwendungen (Pyxel-Anwendungsdatei), das plattformübergreifend ist.
Eine Pyxel-Anwendungsdatei (.pyxapp) wird mit dem Befehl pyxel package
erstellt:
pyxel package APP_DIR STARTUP_SCRIPT_FILE
Wenn Sie Ressourcen oder zusätzliche Module einfügen möchten, legen Sie diese im Anwendungsverzeichnis ab.
Metadaten können zur Laufzeit angezeigt werden, indem Sie sie im folgenden Format im Startskript angeben. Felder außer title
und author
sind optional.
# title: Pyxel Platformer
# author: Takashi Kitao
# desc: A Pyxel platformer example
# site: https://github.com/kitao/pyxel
# license: MIT
# version: 1.0
Die erstellte Anwendungsdatei kann mit dem Befehl pyxel play
ausgeführt werden:
pyxel play PYXEL_APP_FILE
Eine Pyxel-Anwendungsdatei kann auch mit den Befehlen pyxel app2exe
oder pyxel app2html
in eine ausführbare Datei oder eine HTML-Datei umgewandelt werden.
-
width
,height
Die Breite und Höhe des Bildschirms -
frame_count
Die Anzahl der vergangenen Frames -
init(width, height, [title], [fps], [quit_key], [display_scale], [capture_scale], [capture_sec])
Initialisiert die Pyxel-Anwendung mit der Bildschirmgröße (width
,height
). Folgende Optionen können angegeben werden: der Fenstertitel mittitle
, die Bildrate mitfps
, die Taste zum Beenden der Anwendung mitquit_key
, der Anzeigeskalierungsfaktor mitdisplay_scale
, der Bildaufnahmeskalierungsfaktor mitcapture_scale
und die maximale Aufnahmezeit des Bildschirmvideos mitcapture_sec
.
Beispiel:pyxel.init(160, 120, title="My Pyxel App", fps=60, quit_key=pyxel.KEY_NONE, capture_scale=3, capture_sec=0)
-
run(update, draw)
Startet die Pyxel-Anwendung und ruft dieupdate
-Funktion zur Aktualisierung des Frames und diedraw
-Funktion zum Zeichnen auf. -
show()
Zeigt den Bildschirm an und wartet, bis dieEsc
-Taste gedrückt wird. -
flip()
Aktualisiert den Bildschirm um einen Frame. Die Anwendung beendet sich, wenn dieEsc
-Taste gedrückt wird. Diese Funktion ist in der Webversion nicht verfügbar. -
quit()
Beendet die Pyxel-Anwendung.
-
load(filename, [excl_images], [excl_tilemaps], [excl_sounds], [excl_musics])
Lädt die Ressourcen-Datei (.pyxres). Wenn eine Option aufTrue
gesetzt wird, wird die entsprechende Ressource vom Laden ausgeschlossen. Wenn im gleichen Verzeichnis wie die Ressourcen-Datei eine Palettendatei (.pyxpal) mit demselben Namen existiert, werden auch die Anzeigefarben der Palette aktualisiert. Die Palettendatei enthält hexadezimale Einträge für die Anzeigefarben (z.B.1100FF
), getrennt durch Zeilenumbrüche. Die Palettendatei kann auch verwendet werden, um die in Pyxel Editor angezeigten Farben zu ändern. -
user_data_dir(vendor_name, app_name)
Gibt das basierend aufvendor_name
undapp_name
erstellte Benutzerverzeichnis zurück. Wenn das Verzeichnis nicht existiert, wird es automatisch erstellt. Es wird verwendet, um Highscores, Spielfortschritte und ähnliche Daten zu speichern.
Beispiel:print(pyxel.user_data_dir("Takashi Kitao", "Pyxel Shooter"))
-
mouse_x
,mouse_y
Die aktuelle Position des Mauszeigers -
mouse_wheel
Der aktuelle Wert des Mausrads -
btn(key)
GibtTrue
zurück, wenn die Tastekey
gedrückt ist, andernfallsFalse
. (Liste der Tastendefinitionen) -
btnp(key, [hold], [repeat])
GibtTrue
zurück, wenn die Tastekey
in diesem Frame gedrückt wurde, andernfallsFalse
. Wennhold
undrepeat
angegeben sind, wird nach dem Halten der Tastekey
fürhold
Frames oder länger,True
allerepeat
Frames zurückgegeben. -
btnr(key)
GibtTrue
zurück, wenn die Tastekey
in diesem Frame losgelassen wurde, andernfallsFalse
. -
mouse(visible)
Zeigt den Mauszeiger an, wennvisible
True
ist, und blendet ihn aus, wennvisible
False
ist. Auch wenn der Mauszeiger ausgeblendet ist, wird seine Position weiterhin aktualisiert.
-
colors
Liste der Anzeigefarben der Palette. Die Anzeigefarbe wird durch einen 24-Bit-Wert angegeben. Verwendecolors.from_list
undcolors.to_list
, um Python-Listen direkt zuzuweisen und abzurufen.
Beispiel:old_colors = pyxel.colors.to_list(); pyxel.colors.from_list([0x111111, 0x222222, 0x333333]); pyxel.colors[15] = 0x112233
-
images
Liste der Bildbanken (Instanzen der Image-Klasse) (0-2)
Beispiel:pyxel.images[0].load(0, 0, "title.png")
-
tilemaps
Liste der Kachelkarten (Instanzen der Tilemap-Klasse) (0-7) -
clip(x, y, w, h)
Setzt den Zeichenbereich des Bildschirms von (x
,y
) mit einer Breite vonw
und einer Höhe vonh
. Rufeclip()
auf, um den Zeichenbereich auf den gesamten Bildschirm zurückzusetzen. -
camera(x, y)
Ändert die Koordinaten der oberen linken Ecke des Bildschirms in (x
,y
). Rufecamera()
auf, um die Koordinaten der oberen linken Ecke auf (0
,0
) zurückzusetzen. -
pal(col1, col2)
Ersetzt beim Zeichnen die Farbecol1
durchcol2
. Rufepal()
auf, um zur ursprünglichen Palette zurückzukehren. -
dither(alpha)
Wendet beim Zeichnen Dithering (Pseudo-Transparenz) an. Setzealpha
im Bereich von0.0
bis1.0
, wobei0.0
transparent und1.0
undurchsichtig ist. -
cls(col)
Löscht den Bildschirm mit der Farbecol
. -
pget(x, y)
Gibt die Farbe des Pixels bei (x
,y
) zurück. -
pset(x, y, col)
Zeichnet ein Pixel mit der Farbecol
bei (x
,y
). -
line(x1, y1, x2, y2, col)
Zeichnet eine Linie in der Farbecol
von (x1
,y1
) nach (x2
,y2
). -
rect(x, y, w, h, col)
Zeichnet ein Rechteck mit einer Breite vonw
, einer Höhe vonh
und der Farbecol
ab (x
,y
). -
rectb(x, y, w, h, col)
Zeichnet die Umrisse eines Rechtecks mit einer Breite vonw
, einer Höhe vonh
und der Farbecol
ab (x
,y
). -
circ(x, y, r, col)
Zeichnet einen Kreis mit einem Radius vonr
und der Farbecol
bei (x
,y
). -
circb(x, y, r, col)
Zeichnet die Umrisse eines Kreises mit einem Radius vonr
und der Farbecol
bei (x
,y
). -
elli(x, y, w, h, col)
Zeichnet eine Ellipse mit einer Breite vonw
, einer Höhe vonh
und der Farbecol
ab (x
,y
). -
ellib(x, y, w, h, col)
Zeichnet die Umrisse einer Ellipse mit einer Breite vonw
, einer Höhe vonh
und der Farbecol
ab (x
,y
). -
tri(x1, y1, x2, y2, x3, y3, col)
Zeichnet ein Dreieck mit den Eckpunkten (x1
,y1
), (x2
,y2
), (x3
,y3
) und der Farbecol
. -
trib(x1, y1, x2, y2, x3, y3, col)
Zeichnet die Umrisse eines Dreiecks mit den Eckpunkten (x1
,y1
), (x2
,y2
), (x3
,y3
) und der Farbecol
. -
fill(x, y, col)
Füllt den Bereich, der mit der gleichen Farbe wie (x
,y
) verbunden ist, mit der Farbecol
. -
blt(x, y, img, u, v, w, h, [colkey], [rotate], [scale])
Kopiert den Bereich der Größe (w
,h
) von (u
,v
) der Bildbankimg
(0-2) nach (x
,y
). Wennw
und/oderh
einen negativen Wert haben, wird der Bereich horizontal und/oder vertikal gespiegelt. Wenncolkey
angegeben ist, wird diese Farbe als transparent behandelt. Wennrotate
(in Grad),scale
(1.0 = 100%) oder beides angegeben sind, werden die entsprechenden Transformationen angewendet.
bltm(x, y, tm, u, v, w, h, [colkey], [rotate], [scale])
Kopiert den Bereich der Größe (w
,h
) von (u
,v
) der Kachelkartetm
(0-7) nach (x
,y
). Wennw
und/oderh
einen negativen Wert haben, wird der Bereich horizontal und/oder vertikal gespiegelt. Wenncolkey
angegeben ist, wird diese Farbe als transparent behandelt. Wennrotate
(in Grad),scale
(1.0 = 100%) oder beides angegeben sind, werden die entsprechenden Transformationen angewendet. Die Größe einer Kachel beträgt 8x8 Pixel und wird als Tupel(image_tx, image_ty)
in der Kachelkarte gespeichert.
text(x, y, s, col)
Zeichnet den Strings
in der Farbecol
bei (x
,y
).
-
sounds
Liste der Klänge (Instanzen der Sound-Klasse) (0-63)
Beispiel:pyxel.sounds[0].speed = 60
-
musics
Liste der Musiken (Instanzen der Music-Klasse) (0-7) -
play(ch, snd, [tick], [loop], [resume])
Spielt den Klangsnd
(0-63) auf dem Kanalch
(0-3). Wennsnd
eine Liste ist, werden die Klänge nacheinander abgespielt. Die Startposition kann durchtick
(1 Tick = 1/120 Sekunden) angegeben werden. Wennloop
aufTrue
gesetzt ist, wird die Wiedergabe wiederholt. Um nach dem Ende der Wiedergabe zum vorherigen Klang zurückzukehren, setzeresume
aufTrue
. -
playm(msc, [tick], [loop])
Spielt die Musikmsc
(0-7). Die Startposition kann durchtick
(1 Tick = 1/120 Sekunden) angegeben werden. Wennloop
aufTrue
gesetzt ist, wird die Wiedergabe wiederholt. -
stop([ch])
Stoppt die Wiedergabe des angegebenen Kanalsch
(0-3). Rufestop()
auf, um alle Kanäle zu stoppen. -
play_pos(ch)
Gibt die Wiedergabeposition des Klangs auf Kanalch
(0-3) als Tupel(sound_no, note_no)
zurück. GibtNone
zurück, wenn die Wiedergabe gestoppt wurde.
-
ceil(x)
Gibt die kleinste ganze Zahl zurück, die größer oder gleichx
ist. -
floor(x)
Gibt die größte ganze Zahl zurück, die kleiner oder gleichx
ist. -
sgn(x)
Gibt1
zurück, wennx
positiv ist,0
, wenn es0
ist, und-1
, wenn es negativ ist. -
sqrt(x)
Gibt die Quadratwurzel vonx
zurück. -
sin(deg)
Gibt den Sinus vondeg
Grad zurück. -
cos(deg)
Gibt den Kosinus vondeg
Grad zurück. -
atan2(y, x)
Gibt den Arkustangens vony
/x
in Grad zurück. -
rseed(seed)
Setzt den Seed des Zufallszahlengenerators. -
rndi(a, b)
Gibt eine zufällige Ganzzahl zurück, die größer oder gleicha
und kleiner oder gleichb
ist. -
rndf(a, b)
Gibt eine zufällige Gleitkommazahl zurück, die größer oder gleicha
und kleiner oder gleichb
ist. -
nseed(seed)
Setzt den Seed des Perlin-Rauschens. -
noise(x, [y], [z])
Gibt den Perlin-Rauschwert für die angegebenen Koordinaten zurück.
-
width
,height
Die Breite und Höhe des Bildes -
set(x, y, data)
Setzt das Bild bei (x
,y
) mithilfe einer Liste von Strings.
Beispiel:pyxel.images[0].set(10, 10, ["0123", "4567", "89ab", "cdef"])
-
load(x, y, filename)
Lädt eine Bilddatei (PNG/GIF/JPEG) bei (x
,y
). -
pget(x, y)
Gibt die Farbe des Pixels bei (x
,y
) zurück. -
pset(x, y, col)
Zeichnet ein Pixel mit der Farbecol
bei (x
,y
).
-
width
,height
Die Breite und Höhe der Kachelkarte -
imgsrc
Das Bildbank (0-2), das von der Kachelkarte referenziert wird -
set(x, y, data)
Setzt die Kachelkarte bei (x
,y
) mithilfe einer Liste von Strings.
Beispiel:pyxel.tilemap(0).set(0, 0, ["0000 0100 a0b0", "0001 0101 a1b1"])
-
load(x, y, filename, layer)
Lädt dielayer
(0-) aus der TMX-Datei (Tiled Map File) bei (x
,y
). -
pget(x, y)
Gibt die Kachel bei (x
,y
) zurück. Eine Kachel wird als Tupel(image_tx, image_ty)
dargestellt. -
pset(x, y, tile)
Zeichnet eine Kachel bei (x
,y
). Eine Kachel wird als Tupel(image_tx, image_ty)
dargestellt.
-
notes
Liste der Noten (0-127). Je höher die Zahl, desto höher der Ton. Note33
entspricht 'A2'(440Hz). Pausen werden durch-1
dargestellt. -
tones
Liste der Töne (0:Triangle / 1:Square / 2:Pulse / 3:Noise) -
volumes
Liste der Lautstärken (0-7) -
effects
Liste der Effekte (0:None / 1:Slide / 2:Vibrato / 3:FadeOut / 4:Half-FadeOut / 5:Quarter-FadeOut) -
speed
Wiedergabegeschwindigkeit.1
ist die schnellste, und je größer die Zahl, desto langsamer die Wiedergabe. Bei120
dauert ein Ton 1 Sekunde. -
set(notes, tones, volumes, effects, speed)
Setzt Noten, Töne, Lautstärken und Effekte mithilfe eines Strings. Wenn die Länge der Töne, Lautstärken oder Effekte kürzer als die Noten ist, werden sie von Anfang an wiederholt. -
set_notes(notes)
Setzt die Noten mithilfe eines Strings aus 'CDEFGAB'+'#-'+'01234' oder 'R'. Es wird nicht zwischen Groß- und Kleinschreibung unterschieden, und Leerzeichen werden ignoriert.
Beispiel:pyxel.sounds[0].set_notes("G2B-2D3R RF3F3F3")
-
set_tones(tones)
Setzt die Töne mithilfe eines Strings aus 'TSPN'. Es wird nicht zwischen Groß- und Kleinschreibung unterschieden, und Leerzeichen werden ignoriert.
Beispiel:pyxel.sounds[0].set_tones("TTSS PPPN")
-
set_volumes(volumes)
Setzt die Lautstärken mithilfe eines Strings aus '01234567'. Es wird nicht zwischen Groß- und Kleinschreibung unterschieden, und Leerzeichen werden ignoriert.
Beispiel:pyxel.sounds[0].set_volumes("7777 7531")
-
set_effects(effects)
Setzt die Effekte mithilfe eines Strings aus 'NSVFHQ'. Es wird nicht zwischen Groß- und Kleinschreibung unterschieden, und Leerzeichen werden ignoriert.
Beispiel:pyxel.sounds[0].set_effects("NFNF NVVS")
-
seqs
Eine zweidimensionale Liste der Klänge (0-63) über mehrere Kanäle -
set(seq0, seq1, seq2, ...)
Setzt die Listen von Klängen (0-63) für jeden Kanal. Wenn eine leere Liste angegeben wird, wird dieser Kanal nicht für die Wiedergabe verwendet.
Beispiel:pyxel.musics[0].set([0, 1], [], [3])
Pyxel enthält eine "Fortgeschrittene API", die in diesem Dokument nicht erwähnt wird, da sie Benutzer verwirren oder spezielles Wissen erfordern könnte.
Wenn Sie von Ihren Fähigkeiten überzeugt sind, versuchen Sie, mit diesem als Leitfaden erstaunliche Werke zu schaffen!
Verwenden Sie den Issue Tracker, um Fehlerberichte und Funktions- oder Verbesserungsanfragen einzureichen. Stellen Sie sicher, dass es vor der Einreichung eines neuen Problems keine ähnlichen offenen Probleme gibt.
Jeder, der den Code manuell testet und Fehler oder Verbesserungsvorschläge im Issue Tracker meldet, ist sehr willkommen!
Patches und Fixes werden in Form von Pull-Requests (PRs) akzeptiert. Stellen Sie sicher, dass das Problem, das der Pull-Request behandelt, im Issue Tracker offen ist.
Die Einreichung eines Pull-Requests impliziert, dass Sie zustimmen, Ihren Beitrag unter der MIT-Lizenz zu lizenzieren.
Pyxel ist lizenziert unter der MIT-Lizenz. Es kann in proprietärer Software wiederverwendet werden, vorausgesetzt, dass alle Kopien der Software oder wesentliche Teile davon eine Kopie der MIT-Lizenzbedingungen und einen Copyright-Hinweis enthalten.
Pyxel sucht Sponsoren auf GitHub Sponsors. Bitte ziehen Sie in Betracht, Pyxel zu sponsern, um dessen fortlaufende Wartung und Funktionsentwicklung zu unterstützen. Als Vorteil können Sponsoren direkt mit dem Pyxel-Entwickler beraten. Für weitere Details besuchen Sie bitte diese Seite.