Skip to content

Latest commit

 

History

History
755 lines (541 loc) · 31 KB

README.de.md

File metadata and controls

755 lines (541 loc) · 31 KB

Downloads GitHub Repo stars GitHub forks GitHub Sponsors

ko-fi

[ 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!

Spezifikationen

  • 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

Farbpallette

Installation

Windows

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.

Mac

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.

Linux

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.

Web

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.

Beispiele ausführen

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

Verwendung

Anwendung erstellen

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()

Anwendung ausführen

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.

Sondertastenoperationen

Während eine Pyxel-Anwendung läuft, können die folgenden speziellen Tastenaktionen ausgeführt werden:

  • Esc
    Die Anwendung beenden
  • Alt(Option)+1
    Den Screenshot auf dem Desktop speichern
  • Alt(Option)+2
    Den Startzeitpunkt der Bildschirmaufnahme zurücksetzen
  • Alt(Option)+3
    Ein Bildschirmaufnahmevideo auf dem Desktop speichern (bis zu 10 Sekunden)
  • Alt(Option)+8 oder A+B+X+Y+DL auf dem Gamepad
    Die Bildschirmskalierung zwischen maximal und ganzzahlig umschalten
  • Alt(Option)+9 oder A+B+X+Y+DR auf dem Gamepad
    Zwischen Bildschirmmodi (Crisp/Smooth/Retro) wechseln
  • Alt(Option)+0 oder A+B+X+Y+DU auf dem Gamepad
    Den Leistungsmonitor (FPS/update Zeit/draw Zeit) umschalten
  • Alt(Option)+Enter oder A+B+X+Y+DD auf dem Gamepad
    Den Vollbildmodus umschalten
  • Shift+Alt(Option)+1/2/3
    Bildbank 0, 1 oder 2 auf dem Desktop speichern
  • Shift+Alt(Option)+0
    Die aktuelle Farbpalette auf dem Desktop speichern

So erstellen Sie Ressourcen

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.

Weitere Methoden zur Erstellung von Ressourcen

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 der Tilemap.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 der Music.set-Funktion

Bitte beachten Sie die API-Referenz für die Verwendung dieser Funktionen.

So verteilen Sie Anwendungen

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.

API-Referenz

System

  • 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 mit title, die Bildrate mit fps, die Taste zum Beenden der Anwendung mit quit_key, der Anzeigeskalierungsfaktor mit display_scale, der Bildaufnahmeskalierungsfaktor mit capture_scale und die maximale Aufnahmezeit des Bildschirmvideos mit capture_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 die update-Funktion zur Aktualisierung des Frames und die draw-Funktion zum Zeichnen auf.

  • show()
    Zeigt den Bildschirm an und wartet, bis die Esc-Taste gedrückt wird.

  • flip()
    Aktualisiert den Bildschirm um einen Frame. Die Anwendung beendet sich, wenn die Esc-Taste gedrückt wird. Diese Funktion ist in der Webversion nicht verfügbar.

  • quit()
    Beendet die Pyxel-Anwendung.

Ressourcen

  • load(filename, [excl_images], [excl_tilemaps], [excl_sounds], [excl_musics])
    Lädt die Ressourcen-Datei (.pyxres). Wenn eine Option auf True 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 auf vendor_name und app_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"))

Eingabe

  • mouse_x, mouse_y
    Die aktuelle Position des Mauszeigers

  • mouse_wheel
    Der aktuelle Wert des Mausrads

  • btn(key)
    Gibt True zurück, wenn die Taste key gedrückt ist, andernfalls False. (Liste der Tastendefinitionen)

  • btnp(key, [hold], [repeat])
    Gibt True zurück, wenn die Taste key in diesem Frame gedrückt wurde, andernfalls False. Wenn hold und repeat angegeben sind, wird nach dem Halten der Taste key für hold Frames oder länger, True alle repeat Frames zurückgegeben.

  • btnr(key)
    Gibt True zurück, wenn die Taste key in diesem Frame losgelassen wurde, andernfalls False.

  • mouse(visible)
    Zeigt den Mauszeiger an, wenn visible True ist, und blendet ihn aus, wenn visible False ist. Auch wenn der Mauszeiger ausgeblendet ist, wird seine Position weiterhin aktualisiert.

Grafik

  • colors
    Liste der Anzeigefarben der Palette. Die Anzeigefarbe wird durch einen 24-Bit-Wert angegeben. Verwende colors.from_list und colors.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 von w und einer Höhe von h. Rufe clip() 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). Rufe camera() auf, um die Koordinaten der oberen linken Ecke auf (0, 0) zurückzusetzen.

  • pal(col1, col2)
    Ersetzt beim Zeichnen die Farbe col1 durch col2. Rufe pal() auf, um zur ursprünglichen Palette zurückzukehren.

  • dither(alpha)
    Wendet beim Zeichnen Dithering (Pseudo-Transparenz) an. Setze alpha im Bereich von 0.0 bis 1.0, wobei 0.0 transparent und 1.0 undurchsichtig ist.

  • cls(col)
    Löscht den Bildschirm mit der Farbe col.

  • pget(x, y)
    Gibt die Farbe des Pixels bei (x, y) zurück.

  • pset(x, y, col)
    Zeichnet ein Pixel mit der Farbe col bei (x, y).

  • line(x1, y1, x2, y2, col)
    Zeichnet eine Linie in der Farbe col von (x1, y1) nach (x2, y2).

  • rect(x, y, w, h, col)
    Zeichnet ein Rechteck mit einer Breite von w, einer Höhe von h und der Farbe col ab (x, y).

  • rectb(x, y, w, h, col)
    Zeichnet die Umrisse eines Rechtecks mit einer Breite von w, einer Höhe von h und der Farbe col ab (x, y).

  • circ(x, y, r, col)
    Zeichnet einen Kreis mit einem Radius von r und der Farbe col bei (x, y).

  • circb(x, y, r, col)
    Zeichnet die Umrisse eines Kreises mit einem Radius von r und der Farbe col bei (x, y).

  • elli(x, y, w, h, col)
    Zeichnet eine Ellipse mit einer Breite von w, einer Höhe von h und der Farbe col ab (x, y).

  • ellib(x, y, w, h, col)
    Zeichnet die Umrisse einer Ellipse mit einer Breite von w, einer Höhe von h und der Farbe col 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 Farbe col.

  • trib(x1, y1, x2, y2, x3, y3, col)
    Zeichnet die Umrisse eines Dreiecks mit den Eckpunkten (x1, y1), (x2, y2), (x3, y3) und der Farbe col.

  • fill(x, y, col)
    Füllt den Bereich, der mit der gleichen Farbe wie (x, y) verbunden ist, mit der Farbe col.

  • blt(x, y, img, u, v, w, h, [colkey], [rotate], [scale])
    Kopiert den Bereich der Größe (w, h) von (u, v) der Bildbank img(0-2) nach (x, y). Wenn w und/oder h einen negativen Wert haben, wird der Bereich horizontal und/oder vertikal gespiegelt. Wenn colkey angegeben ist, wird diese Farbe als transparent behandelt. Wenn rotate (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 Kachelkarte tm (0-7) nach (x, y). Wenn w und/oder h einen negativen Wert haben, wird der Bereich horizontal und/oder vertikal gespiegelt. Wenn colkey angegeben ist, wird diese Farbe als transparent behandelt. Wenn rotate (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 String s in der Farbe col bei (x, y).

Audio

  • 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 Klang snd(0-63) auf dem Kanal ch(0-3). Wenn snd eine Liste ist, werden die Klänge nacheinander abgespielt. Die Startposition kann durch tick (1 Tick = 1/120 Sekunden) angegeben werden. Wenn loop auf True gesetzt ist, wird die Wiedergabe wiederholt. Um nach dem Ende der Wiedergabe zum vorherigen Klang zurückzukehren, setze resume auf True.

  • playm(msc, [tick], [loop])
    Spielt die Musik msc(0-7). Die Startposition kann durch tick (1 Tick = 1/120 Sekunden) angegeben werden. Wenn loop auf True gesetzt ist, wird die Wiedergabe wiederholt.

  • stop([ch])
    Stoppt die Wiedergabe des angegebenen Kanals ch(0-3). Rufe stop() auf, um alle Kanäle zu stoppen.

  • play_pos(ch)
    Gibt die Wiedergabeposition des Klangs auf Kanal ch(0-3) als Tupel (sound_no, note_no) zurück. Gibt None zurück, wenn die Wiedergabe gestoppt wurde.

Mathematik

  • ceil(x)
    Gibt die kleinste ganze Zahl zurück, die größer oder gleich x ist.

  • floor(x)
    Gibt die größte ganze Zahl zurück, die kleiner oder gleich x ist.

  • sgn(x)
    Gibt 1 zurück, wenn x positiv ist, 0, wenn es 0 ist, und -1, wenn es negativ ist.

  • sqrt(x)
    Gibt die Quadratwurzel von x zurück.

  • sin(deg)
    Gibt den Sinus von deg Grad zurück.

  • cos(deg)
    Gibt den Kosinus von deg Grad zurück.

  • atan2(y, x)
    Gibt den Arkustangens von y/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 gleich a und kleiner oder gleich b ist.

  • rndf(a, b)
    Gibt eine zufällige Gleitkommazahl zurück, die größer oder gleich a und kleiner oder gleich b ist.

  • nseed(seed)
    Setzt den Seed des Perlin-Rauschens.

  • noise(x, [y], [z])
    Gibt den Perlin-Rauschwert für die angegebenen Koordinaten zurück.

Image-Klasse

  • 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 Farbe col bei (x, y).

Tilemap-Klasse

  • 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 die layer(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.

Sound-Klasse

  • notes
    Liste der Noten (0-127). Je höher die Zahl, desto höher der Ton. Note 33 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. Bei 120 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")

Music-Klasse

  • 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])

Fortgeschrittene API

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!

Wie man beiträgt

Probleme melden

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.

Funktionstest

Jeder, der den Code manuell testet und Fehler oder Verbesserungsvorschläge im Issue Tracker meldet, ist sehr willkommen!

Pull-Requests einreichen

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.

Weitere Informationen

Lizenz

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.

Sponsoren suchen

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.