[ภาษาอังกฤษ | 中文 | Deutsch | Español | Français | Italiano | 日本語 | 한국어 | โปรตุเกส | руский | Türkçe | українська]
Pyxel เป็นเอ็นจิ้นเกมย้อนยุคสำหรับ Python
ด้วยข้อกำหนดง่ายๆที่ได้รับแรงบันดาลใจจากคอนโซลเกมย้อนยุคเช่นการแสดงเพียง 16 สีและรองรับ 4 ช่องสัญญาณเสียงคุณสามารถเพลิดเพลินกับการสร้างเกมสไตล์พิกเซลศิลปะได้อย่างง่ายดาย
การพัฒนา Pyxel นั้นขับเคลื่อนด้วยความคิดเห็นของผู้ใช้ กรุณาให้ Pyxel เป็นดาราบน GitHub!
ข้อกำหนดและ API ของ Pyxel ได้รับแรงบันดาลใจจาก PICO-8 และ TIC-80
Pyxel เป็นโอเพ่นซอร์สภายใต้ใบอนุญาต MIT และใช้งานได้ฟรี มาเริ่มเกมย้อนยุคด้วย Pyxel กันเถอะ!
หลังจากติดตั้ง Python3 (เวอร์ชัน 3.8 หรือสูงกว่า) ให้เรียกใช้คำสั่งต่อไปนี้:
pip install -U pyxel
เมื่อติดตั้ง Python โดยใช้ตัวติดตั้งอย่างเป็นทางการตรวจสอบให้แน่ใจว่าได้ตรวจสอบตัวเลือก Add Python 3.x to PATH
เพื่อเปิดใช้งานคำสั่ง pyxel
หลังจากติดตั้ง Homebrew ให้เรียกใช้คำสั่งต่อไปนี้:
brew install pipx
pipx ensurepath
pipx install pyxel
หากต้องการอัพเกรด Pyxel หลังจากการติดตั้งให้เรียกใช้ pipx upgrade pyxel
หลังจากติดตั้งแพ็คเกจ SDL2 ( libsdl2-dev
สำหรับ Ubuntu), Python3 (เวอร์ชัน 3.8 หรือสูงกว่า) และ python3-pip
ให้เรียกใช้คำสั่งต่อไปนี้:
sudo pip3 install -U pyxel
หากคำสั่งก่อนหน้านี้ล้มเหลวให้พิจารณาการสร้าง Pyxel จากแหล่งที่มาโดยทำตามคำแนะนำใน MakeFile
เวอร์ชันเว็บของ Pyxel ไม่จำเป็นต้องมีการติดตั้ง Python หรือ Pyxel และทำงานบนพีซีสมาร์ทโฟนและแท็บเล็ตที่มีเว็บเบราว์เซอร์ที่รองรับ
สำหรับคำแนะนำโดยละเอียดโปรดดูหน้านี้
หลังจากติดตั้ง pyxel คุณสามารถคัดลอกตัวอย่างไปยังไดเรกทอรีปัจจุบันด้วยคำสั่งต่อไปนี้:
pyxel copy_examples
ตัวอย่างต่อไปนี้จะถูกคัดลอกไปยังไดเรกทอรีปัจจุบันของคุณ:
01_hello_pyxel.py | แอปพลิเคชันที่ง่ายที่สุด | การสาธิต | รหัส |
02_jump_game.py | กระโดดเกมด้วยไฟล์ทรัพยากร Pyxel | การสาธิต | รหัส |
03_draw_api.py | การสาธิตการวาด APIs | การสาธิต | รหัส |
04_sound_api.py | การสาธิต APIs เสียง | การสาธิต | รหัส |
05_color_palette.py | รายการจานสี | การสาธิต | รหัส |
06_click_game.py | เกมคลิกเมาส์ | การสาธิต | รหัส |
07_snake.py | เกมงูกับ BGM | การสาธิต | รหัส |
08_triangle_api.py | การสาธิตการวาดรูปสามเหลี่ยม APIs | การสาธิต | รหัส |
09_shooter.py | เกม Shoot'em Up พร้อมการเปลี่ยนหน้าจอ | การสาธิต | รหัส |
10_platformer.py | เกมแพลตฟอร์มที่เลื่อนด้านข้างพร้อมแผนที่ | การสาธิต | รหัส |
11_offscreen.py | การแสดงภาพนอกจอแสดงผลด้วยคลาสรูปภาพ | การสาธิต | รหัส |
12_perlin_noise.py | แอนิเมชั่น Noise Perlin | การสาธิต | รหัส |
13_bitmap_font.py | วาดตัวอักษรบิตแมป | การสาธิต | รหัส |
14_synthesizer.py | synthesizer โดยใช้คุณสมบัติการขยายเสียง | การสาธิต | รหัส |
15_tiled_map_file.py | การโหลดและวาดไฟล์แผนที่กระเบื้อง (.tmx) | การสาธิต | รหัส |
16_transform.py | การหมุนภาพและการปรับขนาด | การสาธิต | รหัส |
99_flip_animation.py | แอนิเมชั่นด้วยฟังก์ชั่น Flip (แพลตฟอร์มที่ไม่ใช่ WEB เท่านั้น) | การสาธิต | รหัส |
30Sec_of_daylight.pyxapp | เกมที่ชนะ Pyxel Jam ครั้งที่ 1 โดย Adam | การสาธิต | รหัส |
megaball.pyxapp | เกมอาร์เคดบอลฟิสิกส์โดยอดัม | การสาธิต | รหัส |
8bit-bgm-gen.pyxapp | เครื่องกำเนิดเพลงพื้นหลังโดย FrenchBread | การสาธิต | รหัส |
ตัวอย่างสามารถดำเนินการด้วยคำสั่งต่อไปนี้:
cd pyxel_examples
pyxel run 01_hello_pyxel.py
pyxel play 30sec_of_daylight.pyxapp
ในสคริปต์ Python ของคุณนำเข้าโมดูล Pyxel ระบุขนาดหน้าต่างด้วยฟังก์ชั่น init
จากนั้นเริ่มแอปพลิเคชัน Pyxel ด้วยฟังก์ชั่น run
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 )
อาร์กิวเมนต์ของฟังก์ชั่น run
คือฟังก์ชั่น update
ซึ่งประมวลผลการอัปเดตเฟรมและฟังก์ชั่น draw
ซึ่งจัดการกับการวาดภาพหน้าจอ
ในแอปพลิเคชันจริงขอแนะนำให้ห่อรหัส pyxel ในชั้นเรียนดังที่แสดงด้านล่าง:
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 ()
สำหรับการสร้างกราฟิกแบบง่าย ๆ โดยไม่มีภาพเคลื่อนไหวคุณสามารถใช้ฟังก์ชั่น show
เพื่อทำให้รหัสของคุณง่ายขึ้น
import pyxel
pyxel . init ( 120 , 120 )
pyxel . cls ( 1 )
pyxel . circb ( 60 , 60 , 40 , 7 )
pyxel . show ()
สคริปต์ที่สร้างขึ้นสามารถดำเนินการได้โดยใช้คำสั่ง python
:
python PYTHON_SCRIPT_FILE
นอกจากนี้ยังสามารถรันได้ด้วยคำสั่ง pyxel run
:
pyxel run PYTHON_SCRIPT_FILE
นอกจากนี้คำสั่ง pyxel watch
ตรวจสอบการเปลี่ยนแปลงในไดเรกทอรีที่ระบุและเรียกใช้โปรแกรมอีกครั้งโดยอัตโนมัติเมื่อตรวจพบการเปลี่ยนแปลง:
pyxel watch WATCH_DIR PYTHON_SCRIPT_FILE
การตรวจสอบไดเรกทอรีสามารถหยุดได้โดยการกด Ctrl(Command)+C
การดำเนินการคีย์พิเศษต่อไปนี้มีอยู่ในขณะที่แอปพลิเคชัน Pyxel กำลังทำงานอยู่:
Esc
Alt(Option)+1
Alt(Option)+2
Alt(Option)+3
Alt(Option)+8
หรือ A+B+X+Y+DL
บน gamepadAlt(Option)+9
หรือ A+B+X+Y+DR
บน gamepadAlt(Option)+0
หรือ A+B+X+Y+DU
บน gamepadupdate
/ เวลา draw
)Alt(Option)+Enter
หรือ A+B+X+Y+DD
บน gamepadShift+Alt(Option)+1/2/3
Shift+Alt(Option)+0
Pyxel Editor สามารถสร้างรูปภาพและเสียงที่ใช้ในแอปพลิเคชัน Pyxel
คุณสามารถเริ่ม Pyxel Editor ด้วยคำสั่งต่อไปนี้:
pyxel edit PYXEL_RESOURCE_FILE
หากมีไฟล์ทรัพยากร Pyxel ที่ระบุ (.pyxRes) อยู่จะมีการโหลด หากไม่มีอยู่ไฟล์ใหม่ที่มีชื่อที่ระบุจะถูกสร้างขึ้น หากมีการละเว้นไฟล์ทรัพยากรไฟล์ใหม่ชื่อ my_resource.pyxres
จะถูกสร้างขึ้น
หลังจากเริ่มต้น Pyxel Editor คุณสามารถเปลี่ยนไปใช้ไฟล์ทรัพยากรอื่นได้โดยการลากและวางลงบนตัวแก้ไข Pyxel
ไฟล์ทรัพยากรที่สร้างขึ้นสามารถโหลดได้โดยใช้ฟังก์ชัน load
Pyxel Editor มีโหมดการแก้ไขต่อไปนี้
ตัวแก้ไขภาพ
โหมดสำหรับการแก้ไขภาพในแต่ละ ธนาคารภาพ
คุณสามารถลากและวางไฟล์รูปภาพ (PNG/GIF/JPEG) ลงในตัวแก้ไขรูปภาพเพื่อโหลดภาพลงในธนาคารรูปภาพที่เลือกในปัจจุบัน
TileMap Editor
โหมดสำหรับการแก้ไข tilemaps ที่จัดเรียงภาพจากธนาคารภาพในรูปแบบกระเบื้อง
ลากและวางไฟล์ TMX (ไฟล์แผนที่กระเบื้อง) ลงบนตัวแก้ไข TileMap เพื่อโหลดเลเยอร์ในลำดับการวาดที่สอดคล้องกับหมายเลข TileMap ที่เลือกในปัจจุบัน
ตัวแก้ไขเสียง
โหมดสำหรับการแก้ไข เสียง ที่ใช้สำหรับท่วงทำนองและเอฟเฟกต์เสียง
บรรณาธิการเพลง
โหมดสำหรับการแก้ไข Musics ที่มีการจัดเรียงเสียงตามลำดับการเล่น
สามารถสร้างภาพ Pyxel และ TileMaps ได้โดยใช้วิธีการต่อไปนี้:
Image.set
หรือฟังก์ชัน Tilemap.set
Image.load
functionเสียง Pyxel สามารถสร้างได้โดยใช้วิธีการต่อไปนี้:
Sound.set
หรือ Music.set
functionอ้างถึงการอ้างอิง API สำหรับการใช้งานฟังก์ชั่นเหล่านี้
Pyxel รองรับรูปแบบไฟล์การแจกแจงแอปพลิเคชันเฉพาะ (ไฟล์แอปพลิเคชัน PYXEL) ที่เป็นแพลตฟอร์มข้าม
ไฟล์แอปพลิเคชัน pyxel (.pyxapp) ถูกสร้างขึ้นโดยใช้คำสั่ง pyxel package
:
pyxel package APP_DIR STARTUP_SCRIPT_FILE
หากคุณต้องการรวมทรัพยากรหรือโมดูลเพิ่มเติมให้วางไว้ในไดเรกทอรีแอปพลิเคชัน
ข้อมูลเมตาสามารถแสดงได้ที่รันไทม์โดยระบุในรูปแบบต่อไปนี้ภายในสคริปต์เริ่มต้น ฟิลด์อื่นนอกเหนือจาก title
และ author
เป็นทางเลือก
# title: Pyxel Platformer
# author: Takashi Kitao
# desc: A Pyxel platformer example
# site: https://github.com/kitao/pyxel
# license: MIT
# version: 1.0
ไฟล์แอปพลิเคชันที่สร้างขึ้นสามารถเรียกใช้ได้โดยใช้คำสั่ง pyxel play
:
pyxel play PYXEL_APP_FILE
ไฟล์แอปพลิเคชัน Pyxel สามารถแปลงเป็นไฟล์ที่เรียกใช้งานได้หรือไฟล์ HTML โดยใช้คำสั่ง pyxel app2exe
หรือ pyxel app2html
width
height
ความกว้างและความสูงของหน้าจอ
frame_count
จำนวนเฟรมที่ผ่านไป
init(width, height, [title], [fps], [quit_key], [display_scale], [capture_scale], [capture_sec])
เริ่มต้นแอปพลิเคชัน Pyxel ด้วยขนาดหน้าจอ ( width
height
) สามารถระบุตัวเลือกต่อไปนี้ได้: ชื่อหน้าต่างที่มี title
อัตราเฟรมที่มี fps
กุญแจสำคัญในการออกจากแอปพลิเคชันด้วย quit_key
สเกลแสดงพร้อม display_scale
สเกลการจับภาพหน้าจอพร้อม capture_scale
และเวลาการบันทึกสูงสุดของการจับภาพหน้าจอ วิดีโอด้วย capture_sec
ตัวอย่าง: pyxel.init(160, 120, title="My Pyxel App", fps=60, quit_key=pyxel.KEY_NONE, capture_scale=3, capture_sec=0)
run(update, draw)
เริ่มแอปพลิเคชัน Pyxel และเรียกใช้ฟังก์ชั่น update
สำหรับการอัปเดตเฟรมและฟังก์ชั่น draw
สำหรับการวาด
show()
แสดงหน้าจอและรอจนกว่าจะกดปุ่ม Esc
flip()
รีเฟรชหน้าจอด้วยเฟรมเดียว แอปพลิเคชันออกเมื่อกดปุ่ม Esc
ฟังก์ชั่นนี้ไม่สามารถใช้ได้ในเวอร์ชันเว็บ
quit()
ออกจากแอปพลิเคชัน Pyxel
load(filename, [excl_images], [excl_tilemaps], [excl_sounds], [excl_musics])
โหลดไฟล์ทรัพยากร (.pyxRes) หากตัวเลือกถูกตั้งค่าเป็น True
ทรัพยากรที่เกี่ยวข้องจะถูกแยกออกจากการโหลด หากไฟล์พาเล็ต (.pyxpal) ที่มีชื่อเดียวกันอยู่ในตำแหน่งเดียวกันกับไฟล์ทรัพยากรสีการแสดงผลจานสีจะได้รับการปรับปรุง ไฟล์ Palette มีรายการ hexadecimal สำหรับสีการแสดงผล (เช่น 1100FF
) คั่นด้วย newLines ไฟล์ Palette ยังสามารถใช้เพื่อเปลี่ยนสีที่แสดงใน Pyxel Editor
user_data_dir(vendor_name, app_name)
ส่งคืนไดเรกทอรีข้อมูลผู้ใช้ที่สร้างขึ้นตาม vendor_name
และ app_name
หากไดเรกทอรีไม่มีอยู่จะถูกสร้างขึ้นโดยอัตโนมัติ มันถูกใช้เพื่อจัดเก็บคะแนนสูงความคืบหน้าของเกมและข้อมูลที่คล้ายกัน
ตัวอย่าง: print(pyxel.user_data_dir("Takashi Kitao", "Pyxel Shooter"))
mouse_x
, mouse_y
ตำแหน่งปัจจุบันของเคอร์เซอร์เมาส์
mouse_wheel
ค่าปัจจุบันของล้อเมาส์
btn(key)
ส่งคืน True
หากกด key
มิฉะนั้นจะส่งคืน False
(รายการนิยามคีย์)
btnp(key, [hold], [repeat])
ส่งคืน True
ถ้ากด key
ในเฟรมนั้นมิฉะนั้นจะกลับ False
หากมีการระบุ hold
และ repeat
หลังจากที่ key
ถูกยึดไว้สำหรับเฟรม hold
หรือมากกว่า True
จะถูกส่งกลับทุกเฟรม repeat
ทุกเฟรม
btnr(key)
ส่งคืน True
ถ้า key
ถูกปล่อยในเฟรมนั้นมิฉะนั้นจะกลับ False
mouse(visible)
แสดงเคอร์เซอร์เมาส์หาก visible
เป็น True
และซ่อนถ้า visible
เป็น False
ตำแหน่งของเคอร์เซอร์ยังคงอัปเดตแม้ว่าจะถูกซ่อนไว้
colors
รายการสีแสดงจานสี สีแสดงผลถูกระบุด้วยค่าตัวเลข 24 บิต ใช้ colors.from_list
และ colors.to_list
เพื่อกำหนดและดึงรายการ Python โดยตรง
ตัวอย่าง: old_colors = pyxel.colors.to_list(); pyxel.colors.from_list([0x111111, 0x222222, 0x333333]); pyxel.colors[15] = 0x112233
images
รายการของธนาคารภาพ (อินสแตนซ์ของคลาสรูปภาพ) (0-2)
ตัวอย่าง: pyxel.images[0].load(0, 0, "title.png")
tilemaps
รายการ tilemaps (อินสแตนซ์ของคลาส TileMap) (0-7)
clip(x, y, w, h)
ตั้งค่าพื้นที่วาดภาพของหน้าจอจาก ( x
, y
) ด้วยความกว้างของ w
และความสูงของ h
CALL clip()
เพื่อรีเซ็ตพื้นที่วาดภาพเป็นเต็มหน้าจอ
camera(x, y)
เปลี่ยนพิกัดมุมบนซ้ายของหน้าจอเป็น ( x
, y
) โทรหา camera()
เพื่อรีเซ็ตพิกัดมุมบนซ้ายเป็น ( 0
, 0
)
pal(col1, col2)
แทนที่ Color col1
ด้วย col2
เมื่อวาด โทรหา pal()
เพื่อรีเซ็ตเป็นจานเริ่มต้น
dither(alpha)
ใช้ dithering (pseudo-transparency) เมื่อวาด ตั้งค่า alpha
ในช่วง 0.0
- 1.0
โดยที่ 0.0
มีความโปร่งใสและ 1.0
เป็นทึบแสง
cls(col)
ล้างหน้าจอด้วย Color col
pget(x, y)
รับสีของพิกเซลที่ ( x
, y
)
pset(x, y, col)
วาดพิกเซลสี col
ที่ ( x
, y
)
line(x1, y1, x2, y2, col)
วาดเส้นสี col
จาก ( x1
, y1
) ถึง ( x2
, y2
)
rect(x, y, w, h, col)
วาดรูปสี่เหลี่ยมผืนผ้าความกว้าง w
, ความสูง h
และสี col
จาก ( x
, y
)
rectb(x, y, w, h, col)
วาดโครงร่างของรูปสี่เหลี่ยมผืนผ้าของความกว้าง w
, ความสูง h
และสี col
จาก ( x
, y
)
circ(x, y, r, col)
วาดวงกลมของรัศมี r
และ Color col
ที่ ( x
, y
)
circb(x, y, r, col)
วาดโครงร่างของวงกลมรัศมี r
และ Color col
ที่ ( x
, y
)
elli(x, y, w, h, col)
วาดวงรีที่มีความกว้าง w
, ความสูง h
และสี col
จาก ( x
, y
)
ellib(x, y, w, h, col)
วาดโครงร่างของวงรีที่มีความกว้าง w
, ความสูง h
และสี col
จาก ( x
, y
)
tri(x1, y1, x2, y2, x3, y3, col)
วาดรูปสามเหลี่ยมที่มีจุดยอด ( x1
, y1
), ( x2
, y2
), ( x3
, y3
) และสี col
trib(x1, y1, x2, y2, x3, y3, col)
วาดโครงร่างของสามเหลี่ยมที่มีจุดยอด ( x1
, y1
), ( x2
, y2
), ( x3
, y3
) และสี col
fill(x, y, col)
เติมพื้นที่ที่เชื่อมต่อด้วยสีเดียวกับ ( x
, y
) ด้วยสี col
blt(x, y, img, u, v, w, h, [colkey], [rotate], [scale])
คัดลอกพื้นที่ขนาด ( w
, h
) จาก ( u
, v
) ของ Image Bank img
(0-2) ถึง ( x
, y
) หากค่าลบถูกกำหนดให้กับ w
และ/หรือ h
ภูมิภาคจะถูกพลิกในแนวนอนและ/หรือแนวตั้ง หากมีการระบุ colkey
มันจะถือว่าเป็นสีที่โปร่งใส หาก rotate
(ในองศา), scale
(1.0 = 100%) หรือทั้งสองอย่างจะมีการระบุการแปลงที่สอดคล้องกันจะถูกนำไปใช้
bltm(x, y, tm, u, v, w, h, [colkey], [rotate], [scale])
w
, h
) จาก ( u
, v
) ของ tilemap tm
(0-7) ถึง ( x
, y
) หากค่าลบถูกกำหนดให้กับ w
และ/หรือ h
ภูมิภาคจะถูกพลิกในแนวนอนและ/หรือแนวตั้ง หากมีการระบุ colkey
มันจะถือว่าเป็นสีที่โปร่งใส หาก rotate
(ในองศา), scale
(1.0 = 100%) หรือทั้งสองอย่างจะมีการระบุการแปลงที่สอดคล้องกันจะถูกนำไปใช้ ขนาดของกระเบื้องคือ 8x8 พิกเซลและเก็บไว้ใน tilemap เป็น tuple ของ (image_tx, image_ty)
text(x, y, s, col)
s
ในสี col
ที่ ( x
, y
) sounds
รายการเสียง (อินสแตนซ์ของคลาสเสียง) (0-63)
ตัวอย่าง: pyxel.sounds[0].speed = 60
musics
รายการเพลง (อินสแตนซ์ของคลาสเพลง) (0-7)
play(ch, snd, [tick], [loop], [resume])
เล่นเสียง snd
(0-63) บนช่อง ch
(0-3) หาก snd
เป็นรายการเสียงจะถูกเล่นตามลำดับ ตำแหน่งเริ่มต้นการเล่นสามารถระบุได้โดย tick
(1 ติ๊ก = 1/120 วินาที) หากการตั้ง loop
เป็น True
การเล่นแบบวนรอบจะดำเนินการ หากต้องการกลับมาใช้เสียงก่อนหน้าหลังจากจบการเล่นให้ตั้งค่า resume
เป็น True
playm(msc, [tick], [loop])
เล่นเพลง msc
(0-7) ตำแหน่งเริ่มต้นการเล่นสามารถระบุได้โดย tick
(1 ติ๊ก = 1/120 วินาที) หากการตั้ง loop
เป็น True
การเล่นแบบวนรอบจะดำเนินการ
stop([ch])
หยุดการเล่นของช่องที่ระบุ ch
(0-3) CALL stop()
เพื่อหยุดทุกช่อง
play_pos(ch)
รับตำแหน่งการเล่นเสียงของช่อง ch
(0-3) เป็น tuple ของ (sound_no, note_no)
None
กลับมาเมื่อการเล่นหยุดลง
ceil(x)
ส่งคืนจำนวนเต็มที่เล็กที่สุดที่มากกว่าหรือเท่ากับ x
floor(x)
ส่งคืนจำนวนเต็มที่ใหญ่ที่สุดที่น้อยกว่าหรือเท่ากับ x
sgn(x)
กลับ 1
เมื่อ x
เป็นบวก 0
เมื่อเป็น 0
และ -1
เมื่อมันเป็นลบ
sqrt(x)
ส่งคืนสแควร์รูทของ x
sin(deg)
ส่งคืนไซน์ของ deg
cos(deg)
ส่งคืนโคไซน์ขององศา deg
atan2(y, x)
ส่งคืน Arctangent ของ y
/ x
ในองศา
rseed(seed)
ตั้งค่าเมล็ดพันธุ์ของเครื่องกำเนิดตัวเลขสุ่ม
rndi(a, b)
ส่งคืนจำนวนเต็มแบบสุ่มมากกว่าหรือเท่ากับ a
และน้อยกว่าหรือเท่ากับ b
rndf(a, b)
ส่งคืนหมายเลขจุดลอยตัวแบบสุ่มมากกว่าหรือเท่ากับ a
และน้อยกว่าหรือเท่ากับ b
nseed(seed)
ตั้งเมล็ดพันธุ์ของเสียงรบกวนของเปอร์ลิน
noise(x, [y], [z])
ส่งคืนค่าเสียงรบกวนของ Perlin สำหรับพิกัดที่ระบุ
width
height
ความกว้างและความสูงของภาพ
set(x, y, data)
ตั้งค่าภาพที่ ( x
, y
) โดยใช้รายการสตริง
ตัวอย่าง: pyxel.images[0].set(10, 10, ["0123", "4567", "89ab", "cdef"])
load(x, y, filename)
โหลดไฟล์รูปภาพ (PNG/GIF/JPEG) ที่ ( x
, y
)
pget(x, y)
รับสีของพิกเซลที่ ( x
, y
)
pset(x, y, col)
วาดพิกเซลด้วยสี col
ที่ ( x
, y
)
width
height
ความกว้างและความสูงของ tilemap
imgsrc
ธนาคารรูปภาพ (0-2) อ้างอิงโดย tilemap
set(x, y, data)
ตั้งค่า tilemap ที่ ( x
, y
) โดยใช้รายการสตริง
ตัวอย่าง: pyxel.tilemap(0).set(0, 0, ["0000 0100 a0b0", "0001 0101 a1b1"])
load(x, y, filename, layer)
โหลดเลเยอร์ใน layer
คำสั่งการวาด (0-) จากไฟล์ TMX (ไฟล์แผนที่กระเบื้อง) ที่ ( x
, y
)
pget(x, y)
รับกระเบื้องที่ ( x
, y
) กระเบื้องจะแสดงเป็น tuple ของ (image_tx, image_ty)
pset(x, y, tile)
วาด tile
ที่ ( x
, y
) กระเบื้องจะแสดงเป็น tuple ของ (image_tx, image_ty)
notes
รายการบันทึกย่อ (0-127) ยิ่งมีจำนวนสูงเท่าไหร่สนามก็จะสูงขึ้น หมายเหตุ 33
สอดคล้องกับ 'A2' (440Hz) บันทึกที่เหลือแสดงโดย -1
tones
รายการโทน (0: สามเหลี่ยม / 1: สี่เหลี่ยม / 2: พัลส์ / 3: เสียง)
volumes
รายการปริมาณ (0-7)
effects
รายการเอฟเฟกต์ (0: ไม่มี / 1: สไลด์ / 2: vibrato / 3: fadeout / 4: half-fadeout / 5: quarter-fadout)
speed
ความเร็วในการเล่น 1
เป็นค่าที่เร็วที่สุดและยิ่งมีจำนวนมากขึ้นเท่าใดความเร็วในการเล่นก็จะช้าลง ที่ 120
ความยาวของโน้ตหนึ่งตัวจะกลายเป็น 1 วินาที
set(notes, tones, volumes, effects, speed)
ตั้งค่าหมายเหตุโทนเสียงปริมาตรและเอฟเฟกต์โดยใช้สตริง หากความยาวของโทนเสียงปริมาตรหรือเอฟเฟกต์สั้นกว่าโน้ตพวกเขาจะถูกทำซ้ำตั้งแต่ต้น
set_notes(notes)
ตั้งค่าหมายเหตุโดยใช้สตริงที่ทำจาก 'cdefgab'+'#-'+'01234' หรือ 'r' มันเป็นตัวพิมพ์ใหญ่และช่องว่างจะถูกละเว้น
ตัวอย่าง: pyxel.sounds[0].set_notes("G2B-2D3R RF3F3F3")
set_tones(tones)
ตั้งค่าเสียงด้วยสตริงที่ทำจาก 'TSPN' ตัวพิมพ์ใหญ่และช่องว่างจะถูกละเว้น
ตัวอย่าง: pyxel.sounds[0].set_tones("TTSS PPPN")
set_volumes(volumes)
ตั้งค่าปริมาตรด้วยสตริงที่ทำจาก '01234567' ตัวพิมพ์ใหญ่และช่องว่างจะถูกละเว้น
ตัวอย่าง: pyxel.sounds[0].set_volumes("7777 7531")
set_effects(effects)
ตั้งค่าเอฟเฟกต์ด้วยสตริงที่ทำจาก 'NSVFHQ' ตัวพิมพ์ใหญ่และช่องว่างจะถูกละเว้น
ตัวอย่าง: pyxel.sounds[0].set_effects("NFNF NVVS")
seqs
รายการเสียงสองมิติ (0-63) ในหลายช่องทาง
set(seq0, seq1, seq2, ...)
ตั้งค่ารายการเสียง (0-63) สำหรับแต่ละช่อง หากระบุรายการว่างเปล่าช่องนั้นจะไม่ถูกใช้สำหรับการเล่น
ตัวอย่าง: pyxel.musics[0].set([0, 1], [], [3])
Pyxel รวมถึง "API ขั้นสูง" ที่ไม่ได้กล่าวถึงในการอ้างอิงนี้เนื่องจากอาจทำให้ผู้ใช้สับสนหรือต้องการความรู้พิเศษที่จะใช้
หากคุณมีความมั่นใจในทักษะของคุณลองสร้างผลงานที่น่าทึ่งโดยใช้สิ่งนี้เป็นแนวทาง!
ใช้ตัวติดตามปัญหาเพื่อส่งรายงานข้อผิดพลาดและคุณสมบัติหรือคำขอปรับปรุง ก่อนที่จะส่งปัญหาใหม่ตรวจสอบให้แน่ใจว่าไม่มีปัญหาเปิดที่คล้ายกัน
ทุกคนที่ทดสอบรหัสและรายงานข้อบกพร่องหรือคำแนะนำสำหรับการปรับปรุงในการติดตามปัญหาด้วยตนเองยินดีต้อนรับมาก!
แพตช์และการแก้ไขได้รับการยอมรับในรูปแบบของคำขอดึง (PRS) ตรวจสอบให้แน่ใจว่าปัญหาที่อยู่คำขอดึงนั้นเปิดอยู่ในตัวติดตามปัญหา
การส่งคำขอดึงแสดงให้เห็นว่าคุณตกลงที่จะใบอนุญาตการบริจาคของคุณภายใต้ใบอนุญาต MIT
Pyxel ได้รับใบอนุญาตภายใต้ใบอนุญาต MIT สามารถนำกลับมาใช้ใหม่ได้ในซอฟต์แวร์ที่เป็นกรรมสิทธิ์โดยมีเงื่อนไขว่าชุดซอฟต์แวร์ทั้งหมดหรือส่วนที่สำคัญรวมถึงสำเนาของข้อกำหนดใบอนุญาต MIT และประกาศลิขสิทธิ์
Pyxel กำลังมองหาสปอนเซอร์เกี่ยวกับผู้สนับสนุน GitHub โปรดพิจารณาสนับสนุน Pyxel เพื่อสนับสนุนการบำรุงรักษาและการพัฒนาคุณสมบัติอย่างต่อเนื่อง เพื่อประโยชน์ผู้สนับสนุนสามารถปรึกษาโดยตรงกับนักพัฒนา Pyxel สำหรับรายละเอียดเพิ่มเติมกรุณาเยี่ยมชมหน้านี้