[Englisch | 中文 | Deutsch | Español | Français | Italiano | 日本語 | 한국어 | Português | Русский | Türkçe | Bis
Pyxel ist eine Retro Game Engine für Python.
Mit einfachen Spezifikationen, die von Retro-Gaming-Konsolen inspiriert sind, z. B. nur 16 Farben und die Unterstützung von 4 Soundkanälen, können Sie gerne Spiele im Pixel-Art-Stil machen.
Die Entwicklung von Pyxel wird durch das Feedback der Benutzer angetrieben. Bitte geben Sie Pyxel einen Stern auf Github!
Die Spezifikationen und APIs von Pyxel sind von Pico-8 und TIC-80 inspiriert.
Pyxel ist Open Source unter der MIT -Lizenz und kostenlos zu verwenden. Machen wir mit Pyxel Retro -Spiele!
Führen Sie nach der Installation von Python3 (Version 3.8 oder höher) den folgenden Befehl aus:
pip install -U pyxel
Überprüfen Sie bei der Installation von Python mithilfe des offiziellen Installationsprogramms die Option Add Python 3.x to PATH
um den Befehl pyxel
zu aktivieren.
Führen Sie nach der Installation von Homebrew die folgenden Befehle aus:
brew install pipx
pipx ensurepath
pipx install pyxel
Um Pyxel nach der Installation zu verbessern, führen Sie pipx upgrade pyxel
aus.
Führen Sie nach der Installation des SDL2-Pakets ( libsdl2-dev
für Ubuntu), Python3 (Version 3.8 oder höher) und python3-pip
den folgenden Befehl aus:
sudo pip3 install -U pyxel
Wenn der vorherige Befehl fehlschlägt, sollten Sie Pyxel aus der Quelle erstellen, indem Sie den Anweisungen im Makefile befolgen.
Die Webversion von Pyxel erfordert keine Python- oder Pyxel -Installation und wird auf PCs, Smartphones und Tablets mit unterstützten Webbrowsern ausgeführt.
Ausführliche Anweisungen finden Sie auf dieser Seite.
Nach der Installation von Pyxel 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 | Einfachste Anwendung | Demo | Code |
02_jump_game.py | Springen Sie das Spiel mit Pyxel -Ressourcendatei | Demo | Code |
03_draw_api.py | Demonstration des Zeichnens von APIs | Demo | Code |
04_Sound_api.py | Demonstration von Ton -APIs | Demo | Code |
05_color_palette.py | Farbpalette Liste | Demo | Code |
06_click_game.py | Mausklickspiel | Demo | Code |
07_Snake.py | Schlangenspiel mit BGM | Demo | Code |
08_triangle_api.py | Demonstration von Dreieckszeichnungs -APIs | Demo | Code |
09_shooter.py | Schießen Sie das Spiel mit Bildschirmübergängen | Demo | Code |
10_Platformer.py | Side-Scrolling-Plattformspiel mit Karte | Demo | Code |
11_offscreen.py | Offscreen -Rendering mit Bildklasse | Demo | Code |
12_perlin_noise.py | Perlin Noise Animation | Demo | Code |
13_bitmap_font.py | Zeichnen einer Bitmap -Schriftart | Demo | Code |
14_Synthesizer.py | Synthesizer mithilfe von Audio -Expansionsfunktionen | Demo | Code |
15_tiled_map_file.py | Laden und Zeichnen einer Fliesenkartendatei (.tmx) | Demo | Code |
16_transform.py | Bildrotation und Skalierung | Demo | Code |
99_flip_animation.py | Animation mit Flip-Funktion (nur Nicht-Web-Plattformen) | Demo | Code |
30sec_of_daylight.pyxApp | 1. Pyxel Jam -Gewinnspiel von Adam | Demo | Code |
megaball.pyxapp | Arcade Ball Physics Game 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 in Ihrem Python -Skript das Pyxel -Modul, geben Sie die Fenstergröße mit der init
-Funktion an und starten Sie dann 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
sind die update
, die Frame -Updates verarbeitet, und die draw
-Funktion, die die Bildschirmzeichnung übernimmt.
In einer tatsächlichen Anwendung wird empfohlen, den Pyxel -Code in einer Klasse zu wickeln, wie unten 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 mit der show
-Funktion Ihren Code vereinfachen.
import pyxel
pyxel . init ( 120 , 120 )
pyxel . cls ( 1 )
pyxel . circb ( 60 , 60 , 40 , 7 )
pyxel . show ()
Ein erstelltes Skript kann mit dem Befehl python
ausgeführt werden:
python PYTHON_SCRIPT_FILE
Es kann auch mit dem Befehl pyxel run
ausgeführt werden:
pyxel run PYTHON_SCRIPT_FILE
Darüber hinaus überwacht der Befehl pyxel watch
die Änderungen in einem bestimmten Verzeichnis und führt das Programm automatisch erneut aus, wenn Änderungen erkannt werden:
pyxel watch WATCH_DIR PYTHON_SCRIPT_FILE
Die Verzeichnisüberwachung kann durch Drücken von Ctrl(Command)+C
gestoppt werden.
Die folgenden speziellen Schlüsselaktionen sind verfügbar, während eine Pyxel -Anwendung ausgeführt wird:
Esc
Alt(Option)+1
Alt(Option)+2
Alt(Option)+3
Alt(Option)+8
oder A+B+X+Y+DL
auf GamepadAlt(Option)+9
oder A+B+X+Y+DR
auf GamepadAlt(Option)+0
oder A+B+X+Y+DU
auf Gamepadupdate
/ draw
Zeit) um.Alt(Option)+Enter
oder A+B+X+Y+DD
auf GamepadShift+Alt(Option)+1/2/3
Shift+Alt(Option)+0
Der Pyxel -Editor kann Bilder und Sounds erstellen, die in einer Pyxel -Anwendung verwendet werden.
Sie können den Pyxel -Editor mit dem folgenden Befehl starten:
pyxel edit PYXEL_RESOURCE_FILE
Wenn die angegebene Pyxel -Ressourcendatei (.pyxres) vorhanden ist, wird sie geladen. Wenn es nicht vorhanden ist, wird eine neue Datei mit dem angegebenen Namen erstellt. Wenn die Ressourcendatei weggelassen wird, wird eine neue Datei namens my_resource.pyxres
erstellt.
Nach dem Start von Pyxel -Editor können Sie zu einer anderen Ressourcendatei wechseln, indem Sie sie auf den Pyxel -Editor ziehen und fallen lassen.
Die erstellte Ressourcendatei kann mit der load
geladen werden.
Der Pyxel -Editor hat die folgenden Bearbeitungsmodi.
Bildredakteur
Der Modus zur Bearbeitung des Bildes in jeder Bildbank .
Sie können eine Bilddatei (PNG/GIF/JPEG) in den Bildeditor ziehen und fallen lassen, um das Bild in die aktuell ausgewählte Bildbank zu laden.
Tilemap Editor
Der Modus zur Bearbeitung von Tilemaps , die Bilder von den Bildbanken in einem Fliesenmuster anordnen.
Ziehen Sie eine TMX -Datei (gekachelte Kartendatei) auf den Tilemap -Editor, um ihre Ebene in der Zeichnungsreihenfolge zu laden, die der aktuell ausgewählten Tilemap -Nummer entspricht.
Sound Editor
Der Modus zum Bearbeiten von Klängen für Melodien und Soundeffekte.
Musikredakteur
Der Modus zur Bearbeitung von Musiks , in der die Geräusche in der Reihenfolge der Wiedergabe angeordnet sind.
Pyxelbilder und Tilemaps können auch mit den folgenden Methoden erstellt werden:
Image.set
-Funktion oder der Funktion Tilemap.set
.Image.load
-FunktionPyxel -Sounds können auch mit der folgenden Methode erstellt werden:
Sound.set
-Funktion oder Music.set
.Weitere Informationen finden Sie in der API -Referenz für die Verwendung dieser Funktionen.
Pyxel unterstützt ein dediziertes Anwendungsverteilungsdateiformat (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 einbeziehen müssen, platzieren Sie sie in das Anwendungsverzeichnis.
Metadaten können zur Laufzeit angezeigt werden, indem sie im folgenden Format im Startskript angeben. Andere Felder als 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 in eine ausführbare Datei oder eine HTML -Datei mit den Befehlen pyxel app2exe
oder pyxel app2html
konvertiert werden.
width
, height
Die Breite und Höhe des Bildschirms
frame_count
Die Anzahl der verstrichenen Frames
init(width, height, [title], [fps], [quit_key], [display_scale], [capture_scale], [capture_sec])
Initialisieren Sie die Pyxel -Anwendung mit der Bildschirmgröße ( width
, height
). display_scale
folgenden Optionen können angegeben werden: Der Fenstertitel mit title
, die capture_scale
mit fps
, der Schlüssel zum Beenden der Anwendung mit quit_key
Video 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)
Starten Sie die Pyxel -Anwendung und rufen Sie die update
für das Frame -Update und die draw
-Funktion zum Zeichnen auf.
show()
Zeigen Sie den Bildschirm an und warten Sie, bis die Esc
-Taste gedrückt wird.
flip()
Aktualisieren Sie den Bildschirm um einen Frame. Die Anwendung beendet, wenn die Esc
-Taste gedrückt wird. Diese Funktion ist in der Webversion nicht verfügbar.
quit()
Beenden Sie die Pyxel -Anwendung.
load(filename, [excl_images], [excl_tilemaps], [excl_sounds], [excl_musics])
Laden Sie die Ressourcendatei (.pyxres). Wenn eine Option auf True
eingestellt ist, wird die entsprechende Ressource vom Laden ausgeschlossen. Wenn eine Palette -Datei (.pyxpal) mit demselben Namen am selben Ort wie die Ressourcendatei vorhanden ist, werden auch die Farben der Palette aktualisiert. Die Palette -Datei enthält hexadezimale Einträge für die Anzeigefarben (z. B. 1100FF
), die durch Newlines getrennt sind. Die Palettendatei kann auch verwendet werden, um die im Pyxel -Editor angezeigten Farben zu ändern.
user_data_dir(vendor_name, app_name)
Gibt das Benutzerdatenverzeichnis zurück, das basierend auf vendor_name
und app_name
erstellt wurde. Wenn das Verzeichnis nicht vorhanden ist, wird es automatisch erstellt. Es wird verwendet, um hohe Punktzahlen, Spiele Fortschritte 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)
Return True
, wenn die key
gedrückt wird, andernfalls geben Sie False
zurück. (Schlüsseldefinitionsliste)
btnp(key, [hold], [repeat])
Return True
, wenn die key
in diesem Frame gedrückt wird, ansonsten return False
. Wenn hold
und repeat
angegeben werden, wird nach dem Schlüssel repeat
nach dem der key
für hold
-Frames oder mehr abgehalten wurde, jeder True
zurückgegeben.
btnr(key)
Return True
wenn der key
in diesem Rahmen veröffentlicht wird, ansonsten return False
.
mouse(visible)
Zeigen Sie den Mauszeiger, wenn visible
True
ist, und verbergen Sie ihn, wenn visible
False
ist. Die Position des Cursors aktualisiert weiterhin, wenn er versteckt ist.
colors
Liste der Farben der Palette. Die Anzeigefarbe wird durch einen numerischen Wert von 24 Bit angegeben. Verwenden Sie 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 Bildklasse) (0-2)
Beispiel: pyxel.images[0].load(0, 0, "title.png")
tilemaps
Liste der Tilemaps (Instanzen der Tilemap-Klasse) (0-7)
clip(x, y, w, h)
Stellen Sie den Zeichenbereich des Bildschirms von ( x
, y
) mit einer Breite von w
und einer Höhe von h
ein. Rufen Sie clip()
an, um den Zeichenbereich auf den Vollbildmodus zurückzusetzen.
camera(x, y)
Ändern Sie die oberen linken Eckkoordinaten des Bildschirms in ( x
, y
). Rufen Sie camera()
an, um die oberen linken Eckkoordinaten auf ( 0
, 0
) zurückzusetzen.
pal(col1, col2)
Ersetzen Sie Color col1
durch col2
beim Zeichnen. Rufen Sie pal()
an, um auf die anfängliche Palette zurückzusetzen.
dither(alpha)
Wenden Sie beim Zeichnen Dithering (Pseudo-Transparenz) an. Stellen Sie alpha
in den Bereich von 0.0
- 1.0
ein, wobei 0.0
transparent und 1.0
undurchsichtig sind.
cls(col)
Bildschirm mit Color col
.
pget(x, y)
Holen Sie sich die Farbe des Pixels bei ( x
, y
).
pset(x, y, col)
Zeichnen Sie ein Pixel Color col
bei ( x
, y
).
line(x1, y1, x2, y2, col)
Zeichnen Sie eine col
von ( x1
, y1
) nach ( x2
, y2
).
rect(x, y, w, h, col)
Zeichnen Sie ein Rechteck aus Breite w
, Höhe h
und Farbe col
aus ( x
, y
).
rectb(x, y, w, h, col)
Zeichnen Sie den Umriss eines Rechtecks der Breite w
, Höhe h
und Color col
aus ( x
, y
).
circ(x, y, r, col)
Zeichnen Sie einen Radiuskreis r
und Color col
bei ( x
, y
).
circb(x, y, r, col)
Zeichnen Sie den Umriss eines Radius -Kreises r
und Color col
bei ( x
, y
).
elli(x, y, w, h, col)
Zeichnen Sie eine Ellipse Breite w
, Höhe h
und Farbe col
aus ( x
, y
).
ellib(x, y, w, h, col)
Zeichnen Sie den Umriss einer Ellipse der Breite w
, Höhe h
und Color col
aus ( x
, y
).
tri(x1, y1, x2, y2, x3, y3, col)
Zeichnen Sie ein Dreieck mit Eckpunkten ( x1
, y1
), ( x2
, y2
), ( x3
, y3
) und color col
.
trib(x1, y1, x2, y2, x3, y3, col)
Zeichnen Sie den Umriss eines Dreiecks mit Scheitelpunkten ( x1
, y1
), ( x2
, y2
), ( x3
, y3
) und color col
.
fill(x, y, col)
Füllen Sie den Bereich mit der gleichen Farbe wie ( x
, y
) mit Color col
.
blt(x, y, img, u, v, w, h, [colkey], [rotate], [scale])
Kopieren Sie die Region der Größe ( w
, h
) von ( u
, v
) der Bildbank img
(0-2) nach ( x
, y
). Wenn w
und/oder h
ein negativer Wert zugeordnet wird, wird der Bereich horizontal und/oder vertikal umgedreht. Wenn colkey
angegeben ist, wird es als transparente Farbe behandelt. Wenn rotate
(in Grad), scale
(1,0 = 100%) oder beide angegeben werden, werden die entsprechenden Transformationen angewendet.
bltm(x, y, tm, u, v, w, h, [colkey], [rotate], [scale])
w
, h
) von ( u
, v
) des Tilemap tm
(0-7) nach ( x
, y
). Wenn w
und/oder h
ein negativer Wert zugeordnet wird, wird der Bereich horizontal und/oder vertikal umgedreht. Wenn colkey
angegeben ist, wird es als transparente Farbe behandelt. Wenn rotate
(in Grad), scale
(1,0 = 100%) oder beide angegeben werden, werden die entsprechenden Transformationen angewendet. Die Größe einer Fliese beträgt 8x8 Pixel und wird in einem Tilemap als Tupel von (image_tx, image_ty)
gespeichert. text(x, y, s, col)
s
in Color col
bei ( x
, y
). sounds
Liste der Sounds (Instanzen der Tonklasse) (0-63)
Beispiel: pyxel.sounds[0].speed = 60
musics
Liste der Musik (Instanzen der Musikklasse) (0-7)
play(ch, snd, [tick], [loop], [resume])
Spielen Sie den Sound snd
(0-63) auf Channel ch
(0-3). Wenn snd
eine Liste ist, werden die Sounds nacheinander gespielt. Die Playback -Startposition kann durch tick
angegeben werden (1 Tick = 1/120 Sekunden). Wenn loop
auf True
eingestellt ist, wird die Loop -Wiedergabe durchgeführt. Um den vorherigen Sound nach dem Ende der Wiedergabe wieder aufzunehmen, setzen Sie resume
auf True
.
playm(msc, [tick], [loop])
Spielen Sie die Musik msc
(0-7). Die Playback -Startposition kann durch tick
angegeben werden (1 Tick = 1/120 Sekunden). Wenn loop
auf True
eingestellt ist, wird die Loop -Wiedergabe durchgeführt.
stop([ch])
Stoppen Sie die Wiedergabe des angegebenen Kanals ch
(0-3). Rufen Sie stop()
um alle Kanäle zu stoppen.
play_pos(ch)
Holen Sie sich die Soundwiedergabeposition von Channel ch
(0-3) als Tupel von (sound_no, note_no)
. Rückkehr None
, wenn die Wiedergabe gestoppt ist.
ceil(x)
Geben Sie die kleinste Ganzzahl zurück, die größer oder gleich x
ist.
floor(x)
Geben Sie die größte Ganzzahl zurück, die weniger als oder gleich x
ist.
sgn(x)
Rückgabe 1
Wenn x
positiv ist, 0
, wenn es 0
ist, und -1
wenn es negativ ist.
sqrt(x)
Geben Sie die Quadratwurzel von x
zurück.
sin(deg)
Geben Sie den Sinus von deg
zurück.
cos(deg)
Geben Sie den Cosinus von deg
zurück.
atan2(y, x)
Geben Sie das Arktangent von y
/ x
in Grad zurück.
rseed(seed)
Legt den Samen des Zufallszahlengenerators fest.
rndi(a, b)
Gibt eine zufällige Ganzzahl zurück, die größer oder gleich a
und weniger als oder gleich b
ist.
rndf(a, b)
Gibt eine zufällige Gleitpunktzahl zurück, die größer oder gleich a
und weniger als oder gleich b
ist.
nseed(seed)
Stellen Sie den Samen des Perlin -Rauschens ein.
noise(x, [y], [z])
Geben Sie den Perlin -Rauschwert für die angegebenen Koordinaten zurück.
width
, height
Die Breite und Höhe des Bildes
set(x, y, data)
Stellen Sie das Bild auf ( x
, y
) mit einer Liste von Zeichenfolgen ein.
Beispiel: pyxel.images[0].set(10, 10, ["0123", "4567", "89ab", "cdef"])
load(x, y, filename)
Laden Sie eine Bilddatei (PNG/GIF/JPEG) unter ( x
, y
).
pget(x, y)
Holen Sie sich die Farbe des Pixels bei ( x
, y
).
pset(x, y, col)
Zeichnen Sie ein Pixel mit dem col
bei ( x
, y
).
width
, height
Die Breite und Höhe des Tilemaps
imgsrc
Die Bildbank (0-2), auf die der Tilemap verwiesen wird
set(x, y, data)
Stellen Sie die Tilemap auf ( x
, y
) mit einer Liste von Strings ein.
Beispiel: pyxel.tilemap(0).set(0, 0, ["0000 0100 a0b0", "0001 0101 a1b1"])
load(x, y, filename, layer)
Laden Sie die Ebene in der layer
(0-) in der TMX-Datei (gekachelte Kartendatei) unter ( x
, y
).
pget(x, y)
Holen Sie sich die Fliese bei ( x
, y
). Eine Kachel wird als Tupel von (image_tx, image_ty)
dargestellt.
pset(x, y, tile)
Zeichnen Sie eine tile
bei ( x
, y
). Eine Kachel wird als Tupel von (image_tx, image_ty)
dargestellt.
notes
Liste der Notizen (0-127). Je höher die Zahl, desto höher ist die Tonhöhe. Anmerkung 33
entspricht 'A2' (440Hz). Ruhenotizen werden durch -1
dargestellt.
tones
Liste der Töne (0: Dreieck / 1: Quadrat / 2: Puls / 3: Rauschen)
volumes
Liste der Bände (0-7)
effects
Liste der Effekte (0: Keine / 1: Folie / 2: Vibrato / 3: Fadeout / 4: halb Abschluss / 5: Viertelverzögert)
speed
Wiedergabegeschwindigkeit. 1
ist die schnellste und je größer die Zahl, desto langsamer die Wiedergabegeschwindigkeit. Bei 120
wird die Länge einer Note 1 Sekunde.
set(notes, tones, volumes, effects, speed)
Setzen Sie Notizen, Töne, Volumina und Effekte mit einer Schnur. Wenn die Länge der Töne, Volumina oder Effekte kürzer sind als die Noten, werden sie von Anfang an wiederholt.
set_notes(notes)
Setzen Sie die Notizen mit einer Zeichenfolge aus 'CDEFGAB'+'#-'+'01234' oder 'R'. Es ist unempfindlich, und die Whitespace wird ignoriert.
Beispiel: pyxel.sounds[0].set_notes("G2B-2D3R RF3F3F3")
set_tones(tones)
Stellen Sie die Töne mit einer Zeichenfolge aus "TSPN" ein. Fall-unempfindlich und weißespace wird ignoriert.
Beispiel: pyxel.sounds[0].set_tones("TTSS PPPN")
set_volumes(volumes)
Stellen Sie die Volumina mit einer Zeichenfolge aus '01234567' ein. Fall-unempfindlich und weißespace wird ignoriert.
Beispiel: pyxel.sounds[0].set_volumes("7777 7531")
set_effects(effects)
Stellen Sie die Effekte mit einer Zeichenfolge aus 'NSVFHQ' fest. Fall-unempfindlich und weißespace wird ignoriert.
Beispiel: pyxel.sounds[0].set_effects("NFNF NVVS")
seqs
Eine zweidimensionale Liste von Sounds (0-63) über mehrere Kanäle hinweg
set(seq0, seq1, seq2, ...)
Legen Sie die Listen von Sound (0-63) für jeden Kanal ein. Wenn eine leere Liste angegeben ist, wird dieser Kanal nicht für die Wiedergabe verwendet.
Beispiel: pyxel.musics[0].set([0, 1], [], [3])
Pyxel enthält eine "erweiterte API", die in dieser Referenz nicht erwähnt wird, da sie Benutzer verwirren oder spezielle Kenntnisse benötigen.
Wenn Sie zu Ihren Fähigkeiten zuversichtlich sind, versuchen Sie, erstaunliche Arbeiten als Leitfaden zu erstellen!
Verwenden Sie den Problemverfolger, um Fehlerberichte und Funktionen oder Verbesserungsanfragen einzureichen. Stellen Sie vor der Einreichung eines neuen Problems sicher, dass es keine ähnlichen offenen Probleme gibt.
Jeder, der den Code manuell testet und Fehler oder Vorschläge für Verbesserungen im Problem Tracker meldet, ist sehr willkommen!
Patches und Korrekturen werden in Form von Pull -Anfragen (PRS) akzeptiert. Stellen Sie sicher, dass das Problem der Pull -Request -Adressen im Problem Tracker geöffnet ist.
Wenn Sie eine Pull -Anfrage einreichen, erklärt sich die Lizenzierung für Ihren Beitrag im Rahmen der MIT -Lizenz.
Pyxel ist unter der MIT -Lizenz lizenziert. Es kann in proprietärer Software wiederverwendet werden, vorausgesetzt, alle Kopien der Software oder ihrer wesentlichen Teile enthalten eine Kopie der MIT -Lizenzbedingungen und eine Urheberrechtsanzeige.
Pyxel sucht Sponsoren auf Github -Sponsoren. Bitte erwägen Sie, Pyxel zu sponsern, um seine fortgesetzte Wartungs- und Funktionsentwicklung zu unterstützen. Als Vorteil können Sponsoren direkt mit dem Pyxel -Entwickler konsultieren. Weitere Informationen finden Sie auf dieser Seite.