[ English | 中文 | Deutsch | Español | Français | Italiano | 日本語 | 한국어 | Português | Русский | Türkçe | Українська ]
Pyxel (/ˈpɪksəl/) 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
- Anpassbare Bildschirmgröße
- 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 pyxelWenn 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 pyxelUm 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 pyxelWenn der vorherige Befehl fehlschlägt, ziehen Sie in Betracht, Pyxel aus dem Quellcode zu bauen, indem Sie die Anweisungen im Makefile befolgen.
Die Webversion von Pyxel kann auf PCs sowie Smartphones und Tablets verwendet werden, solange ein kompatibler Webbrowser vorhanden ist, ohne Python oder Pyxel installieren zu müssen.
Der einfachste Weg, sie zu verwenden, ist über die Online-IDE Pyxel Code Maker.
Für andere Nutzungsmuster, wie das Einbetten von Pyxel-Apps auf Ihrer eigenen Website, beziehen Sie sich bitte auf diese Seite.
Nachdem Sie Pyxel installiert haben, können Sie die Beispiele mit dem folgenden Befehl in das aktuelle Verzeichnis kopieren:
pyxel copy_examplesDie 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 und MML | 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 |
| 17_app_launcher.py | Pyxel-App-Launcher (Du kannst verschiedene Spiele spielen!) | Demo | Code |
| 99_flip_animation.py | Animation mit der Flip-Funktion (nur für Nicht-Web-Plattformen) | Demo | Code |
Die Beispiele können mit den folgenden Befehlen ausgeführt werden:
# Run example in examples directory
cd pyxel_examples
pyxel run 01_hello_pyxel.py
# Run app in examples/apps directory
cd apps
pyxel play 30sec_of_daylight.pyxappImportieren 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_FILEEs kann auch mit dem pyxel run-Befehl ausgeführt werden:
pyxel run PYTHON_SCRIPT_FILEDarü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_FILEDie Ü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)+RoderA+B+X+Y+BACKauf dem Gamepad
Die Anwendung zurücksetzenAlt(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)+8oderA+B+X+Y+DLauf dem Gamepad
Die Bildschirmskalierung zwischen maximal und ganzzahlig umschaltenAlt(Option)+9oderA+B+X+Y+DRauf dem Gamepad
Zwischen Bildschirmmodi (Crisp/Smooth/Retro) wechselnAlt(Option)+0oderA+B+X+Y+DUauf dem Gamepad
Den Leistungsmonitor (FPS/updateZeit/drawZeit) umschaltenAlt(Option)+EnteroderA+B+X+Y+DDauf 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_FILEWenn 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_FILEWenn 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.0Die erstellte Anwendungsdatei kann mit dem Befehl pyxel play ausgeführt werden:
pyxel play PYXEL_APP_FILEEine 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_scaleund 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. -
reset()
Setzt die Pyxel-Anwendung zurück. Umgebungsvariablen bleiben nach dem Zurücksetzen erhalten.
-
load(filename, [exclude_images], [exclude_tilemaps], [exclude_sounds], [exclude_musics])
Lädt die Ressourcen-Datei (.pyxres). Wenn eine Option aufTruegesetzt 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_nameundapp_nameerstellte 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)
GibtTruezurück, wenn die Tastekeygedrückt ist, andernfallsFalse. (Liste der Tastendefinitionen) -
btnp(key, [hold], [repeat])
GibtTruezurück, wenn die Tastekeyin diesem Frame gedrückt wurde, andernfallsFalse. Wennholdundrepeatangegeben sind, wird nach dem Halten der TastekeyfürholdFrames oder länger,TrueallerepeatFrames zurückgegeben. -
btnr(key)
GibtTruezurück, wenn die Tastekeyin diesem Frame losgelassen wurde, andernfallsFalse. -
mouse(visible)
Zeigt den Mauszeiger an, wennvisibleTrueist, und blendet ihn aus, wennvisibleFalseist. 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_listundcolors.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 vonwund 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 Farbecol1durchcol2. Rufepal()auf, um zur ursprünglichen Palette zurückzukehren. -
dither(alpha)
Wendet beim Zeichnen Dithering (Pseudo-Transparenz) an. Setzealphaim Bereich von0.0bis1.0, wobei0.0transparent und1.0undurchsichtig 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 Farbecolbei (x,y). -
line(x1, y1, x2, y2, col)
Zeichnet eine Linie in der Farbecolvon (x1,y1) nach (x2,y2). -
rect(x, y, w, h, col)
Zeichnet ein Rechteck mit einer Breite vonw, einer Höhe vonhund der Farbecolab (x,y). -
rectb(x, y, w, h, col)
Zeichnet die Umrisse eines Rechtecks mit einer Breite vonw, einer Höhe vonhund der Farbecolab (x,y). -
circ(x, y, r, col)
Zeichnet einen Kreis mit einem Radius vonrund der Farbecolbei (x,y). -
circb(x, y, r, col)
Zeichnet die Umrisse eines Kreises mit einem Radius vonrund der Farbecolbei (x,y). -
elli(x, y, w, h, col)
Zeichnet eine Ellipse mit einer Breite vonw, einer Höhe vonhund der Farbecolab (x,y). -
ellib(x, y, w, h, col)
Zeichnet die Umrisse einer Ellipse mit einer Breite vonw, einer Höhe vonhund der Farbecolab (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). Wennwund/oderheinen negativen Wert haben, wird der Bereich horizontal und/oder vertikal gespiegelt. Wenncolkeyangegeben 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). Wennwund/oderheinen negativen Wert haben, wird der Bereich horizontal und/oder vertikal gespiegelt. Wenncolkeyangegeben 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 Stringsin der Farbecolbei (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, [sec], [loop], [resume])
Spielt den Klangsnd(0-63) auf dem Kanalch(0-3).sndkann eine Klangnummer, eine Liste von Klangnummern oder ein MML-String sein. Die Startposition der Wiedergabe kann in Sekunden mitsecangegeben werden. WennloopaufTruegesetzt ist, wird die Wiedergabe wiederholt. Um nach dem Ende der Wiedergabe zum vorherigen Klang zurückzukehren, setzeresumeaufTrue. -
playm(msc, [sec], [loop])
Spielt die Musikmsc(0-7). Die Startposition der Wiedergabe kann in Sekunden mitsecangegeben werden. WennloopaufTruegesetzt ist, wird die Musik 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, sec)zurück. GibtNonezurück, wenn die Wiedergabe gestoppt wurde.
-
ceil(x)
Gibt die kleinste ganze Zahl zurück, die größer oder gleichxist. -
floor(x)
Gibt die größte ganze Zahl zurück, die kleiner oder gleichxist. -
sgn(x)
Gibt1zurück, wennxpositiv ist,0, wenn es0ist, und-1, wenn es negativ ist. -
sqrt(x)
Gibt die Quadratwurzel vonxzurück. -
sin(deg)
Gibt den Sinus vondegGrad zurück. -
cos(deg)
Gibt den Kosinus vondegGrad zurück. -
atan2(y, x)
Gibt den Arkustangens vony/xin Grad zurück. -
rseed(seed)
Setzt den Seed des Zufallszahlengenerators. -
rndi(a, b)
Gibt eine zufällige Ganzzahl zurück, die größer oder gleichaund kleiner oder gleichbist. -
rndf(a, b)
Gibt eine zufällige Gleitkommazahl zurück, die größer oder gleichaund kleiner oder gleichbist. -
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 Farbecolbei (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.tilemaps[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. Note33entspricht 'A2'(440Hz). Pausen werden durch-1dargestellt. -
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.1ist die schnellste, und je größer die Zahl, desto langsamer die Wiedergabe. Bei120dauert 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 ausCDEFGAB+#-+01234oderR. 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 ausTSPN. 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 aus01234567. 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 ausNSVFHQ. Es wird nicht zwischen Groß- und Kleinschreibung unterschieden, und Leerzeichen werden ignoriert.
Beispiel:pyxel.sounds[0].set_effects("nfnf nvvs") -
mml(code)
Wenn ein MML (Music Macro Language)-String übergeben wird, wird in den MML-Modus gewechselt und der Klang entsprechend dem Inhalt abgespielt. In diesem Modus werden normale Parameter wienotesundspeedignoriert. Um den MML-Modus zu verlassen, rufen Siemml()ohne Argumente auf. Weitere Details zu MML finden Sie auf dieser Seite.
Beispiel:pyxel.sounds[0].mml("T120 Q90 @1 V100 O5 L8 C4&C<G16R16>C.<G16 >C.D16 @VIB1{10,20,20} E2C2") -
save(filename, sec, [ffmpeg])
Erstellt eine WAV-Datei, die den Sound für die angegebene Anzahl von Sekunden abspielt. Wenn FFmpeg installiert ist undffmpegaufTruegesetzt wird, wird auch eine MP4-Datei erstellt. -
total_sec()
Gibt die Wiedergabedauer des Sounds in Sekunden zurück. GibtNonezurück, wenn in MML eine Endlosschleife verwendet wird.
-
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]) -
save(filename, sec, [ffmpeg])
Erstellt eine WAV-Datei, die die Musik für die angegebene Anzahl von Sekunden abspielt. Wenn FFmpeg installiert ist undffmpegaufTruegesetzt wird, wird auch eine MP4-Datei erstellt.
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.






