# [![Downloads](https://static.pepy.tech/personalized-badge/pyxel?period=total&units=international_system&left_color=grey&right_color=blue&left_text=PyPI%20downloads)](https://pypi.org/project/pyxel/) [![GitHub Repo stars](https://img.shields.io/github/stars/kitao/pyxel?style=social)](https://github.com/kitao/pyxel) [![GitHub forks](https://img.shields.io/github/forks/kitao/pyxel?style=social)](https://github.com/kitao/pyxel) [![GitHub Sponsors](https://img.shields.io/github/sponsors/kitao?label=Sponsor%20me&logo=github%20sponsors&style=social)](https://github.com/sponsors/kitao) [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/H2H27VDKD) [ [English](../README.md) | [中文](README.cn.md) | [Deutsch](README.de.md) | [Español](README.es.md) | [Français](README.fr.md) | [Italiano](README.it.md) | [日本語](README.ja.md) | [한국어](README.ko.md) | [Português](README.pt.md) | [Русский](README.ru.md) | [Türkçe](README.tr.md) | [Українська](README.uk.md) ] **Pyxel** (/ˈpɪksəl/), Python için bir retro oyun motorudur. Özellikler, yalnızca 16 renk desteği ve 4 ses kanalıyla retro oyun konsollarından ilham alınarak tasarlanmıştır, böylece piksel sanat tarzı oyunlar yapmayı kolayca keyifle yaşayabilirsiniz. [](https://github.com/kitao/pyxel/wiki/Pyxel-User-Examples) [](https://gihyo.jp/book/2025/978-4-297-14657-3) Pyxel'in geliştirilmesi, kullanıcı geri bildirimleriyle yönlendirilmektedir. Lütfen GitHub'da Pyxel'e bir yıldız verin!

Pyxel'in spesifikasyonları ve API'leri, [PICO-8](https://www.lexaloffle.com/pico-8.php) ve [TIC-80](https://tic80.com/) tarafından ilham alınarak hazırlanmıştır. Pyxel, [MIT Lisansı](../LICENSE) altında açık kaynaklıdır ve ücretsiz olarak kullanılabilir. Haydi, Pyxel ile retro oyun yapmaya başlayalım! ## Spesifikasyonlar - Windows, Mac, Linux ve Web üzerinde çalışır - Python ile programlama - Özelleştirilebilir ekran boyutu - 16 renk paleti - 3 adet 256x256 görüntü bankası - 8 adet 256x256 döşeme haritası - 64 tanımlanabilir ses ile 4 kanal - Herhangi bir sesi birleştirebilen 8 müzik parçası - Klavye, fare ve gamepad girişi - Görüntü ve ses düzenleme araçları - Kullanıcı tarafından genişletilebilir renkler, kanallar ve bankalar ### Renk Paleti ## Nasıl Kurulur ### Windows [Python3](https://www.python.org/) (3.8 veya daha yüksek sürüm) kurduktan sonra, aşağıdaki komutu çalıştırın: ```sh pip install -U pyxel ``` Python'u resmi yükleyici ile kurarken, `Add Python 3.x to PATH` seçeneğini işaretlemeyi unutmayın, böylece `pyxel` komutunu etkinleştirmiş olursunuz. ### Mac [Homebrew](https://brew.sh/) kurduktan sonra, aşağıdaki komutları çalıştırın: ```sh brew install pipx pipx ensurepath pipx install pyxel ``` Kurulumdan sonra Pyxel'i güncellemek için `pipx upgrade pyxel` komutunu çalıştırın. ### Linux SDL2 paketini (`libsdl2-dev` Ubuntu için), [Python3](https://www.python.org/) (3.8 veya daha yüksek sürüm) ve `python3-pip` kurduktan sonra, aşağıdaki komutu çalıştırın: ```sh sudo pip3 install -U pyxel ``` Yukarıdaki komut çalışmazsa, Pyxel'i kaynak kodundan inşa etmeyi düşünün ve [Makefile](../Makefile) içindeki talimatları izleyin. ### Web Pyxel'in web sürümü, uyumlu bir tarayıcıyla PC, akıllı telefon ve tablette, Python veya Pyxel yüklemeden kullanılabilir. Kullanmanın en kolay yolu, çevrimiçi IDE [Pyxel Code Maker](https://kitao.github.io/pyxel/wasm/code-maker/) aracılığıyladır. Kendi sitenizde Pyxel uygulamalarını gömme gibi diğer kullanım modelleri için, lütfen [bu sayfaya](pyxel-web-en.md) bakın. ### Örnekleri Çalıştır Pyxel'i kurduktan sonra, aşağıdaki komutla örnekleri geçerli dizine kopyalayabilirsiniz: ```sh pyxel copy_examples ``` Aşağıdaki örnekler geçerli dizine kopyalanacaktır:
01_hello_pyxel.py En basit uygulama Demo Kod
02_jump_game.py Pyxel kaynak dosyasıyla zıplama oyunu Demo Kod
03_draw_api.py Çizim API'lerinin gösterimi Demo Kod
04_sound_api.py Ses API'lerinin gösterimi Demo Kod
05_color_palette.py Renk paletleri listesi Demo Kod
06_click_game.py Fare tıklama oyunu Demo Kod
07_snake.py BGM'li yılan oyunu Demo Kod
08_triangle_api.py Üçgen çizim API'lerinin gösterimi Demo Kod
09_shooter.py Shoot'em up oyunu ile ekran geçişleri ve MML Demo Kod
10_platformer.py Haritalı yan kaydırmalı platform oyunu Demo Kod
11_offscreen.py Image sınıfıyla ekran dışı renderleme Demo Kod
12_perlin_noise.py Perlin gürültüsü animasyonu Demo Kod
13_bitmap_font.py Bitmap font çizimi Demo Kod
14_synthesizer.py Ses genişletme özelliklerini kullanan sentezleyici Demo Kod
15_tiled_map_file.py Tiled Map File (.tmx) yükleme ve çizme Demo Kod
16_transform.py Görüntü döndürme ve ölçeklendirme Demo Kod
17_app_launcher.py Pyxel uygulama başlatıcı (çeşitli oyunlar oynayabilirsiniz!) Demo Kod
99_flip_animation.py `flip` fonksiyonu ile animasyon (sadece Web dışı platformlar için) Demo Kod
Örnekler aşağıdaki komutlarla çalıştırılabilir: ```sh # 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.pyxapp ``` ## Nasıl Kullanılır ### Uygulama Oluşturma Python betiğinizde Pyxel'i içe aktarın, pencere boyutunu `init` ile belirtin ve uygulamayı `run` ile başlatın. ```python 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` fonksiyonunun argümanları, kare güncellemelerini işleyen `update` fonksiyonu ve ekran çizimini gerçekleştiren `draw` fonksiyonudur. Gerçek bir uygulamada, Pyxel kodunu bir sınıf içine sarmak önerilir, aşağıdaki gibi: ```python 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() ``` Animasyon olmadan basit grafikler oluşturmak için, kodunuzu basitleştirmek için `show` fonksiyonunu kullanabilirsiniz. ```python import pyxel pyxel.init(120, 120) pyxel.cls(1) pyxel.circb(60, 60, 40, 7) pyxel.show() ``` ### Uygulamayı Çalıştırma Oluşturulan bir betik `python` komutu ile çalıştırılabilir: ```sh python PYTHON_SCRIPT_FILE ``` Ayrıca `pyxel run` komutu ile de çalıştırılabilir: ```sh pyxel run PYTHON_SCRIPT_FILE ``` Ek olarak, `pyxel watch` komutu belirtilen bir dizindeki değişiklikleri izler ve değişiklik algılandığında programı otomatik olarak yeniden çalıştırır: ```sh pyxel watch WATCH_DIR PYTHON_SCRIPT_FILE ``` Dizin izlemeyi `Ctrl(Command)+C` tuşlarına basarak durdurun. ### Özel Tuş Operasyonları Bir Pyxel uygulaması çalışırken, aşağıdaki özel tuş işlemleri gerçekleştirilebilir: - `Esc`
Uygulamadan çık - `Alt(Option)+R` veya gamepad'de `A+B+X+Y+BACK`
Uygulamayı sıfırla - `Alt(Option)+1`
Ekran görüntüsünü masaüstüne kaydet - `Alt(Option)+2`
Ekran kaydı videosunun başlangıç zamanını sıfırla - `Alt(Option)+3`
Ekran kaydı videosunu masaüstüne kaydet (maksimum 10 saniye) - `Alt(Option)+8` veya gamepad'de `A+B+X+Y+DL`
Ekran ölçeğini maksimum ve tam sayı arasında değiştir - `Alt(Option)+9` veya gamepad'de `A+B+X+Y+DR`
Ekran modları arasında geçiş yap (Crisp/Smooth/Retro) - `Alt(Option)+0` veya gamepad'de `A+B+X+Y+DU`
Performans monitörünü değiştir (FPS/`update` süresi/`draw` süresi) - `Alt(Option)+Enter` veya gamepad'de `A+B+X+Y+DD`
Tam ekran modunu değiştir - `Shift+Alt(Option)+1/2/3`
Görüntü bankası 0, 1 veya 2'yi masaüstüne kaydet - `Shift+Alt(Option)+0`
Geçerli renk paletini masaüstüne kaydet ### Kaynakları Nasıl Oluşturulur Pyxel Editor, Pyxel uygulamalarında kullanılan resim ve sesleri oluşturur. Pyxel Editor'ü aşağıdaki komut ile başlatabilirsiniz: ```sh pyxel edit PYXEL_RESOURCE_FILE ``` Belirtilen Pyxel kaynak dosyası (.pyxres) mevcutsa, yüklenecektir. Eğer mevcut değilse, belirtilen isimle yeni bir dosya oluşturulacaktır. Kaynak dosyası belirtilmezse, `my_resource.pyxres` adıyla yeni bir dosya oluşturulacaktır. Pyxel Editor başlatıldıktan sonra, başka bir kaynak dosyasına geçmek için dosyayı editöre sürükleyip bırakabilirsiniz. Oluşturulan kaynak dosyası, `load` fonksiyonu ile yüklenebilir. Pyxel Editor aşağıdaki düzenleme modlarına sahiptir. **Resim Editörü** Her **görüntü bankasındaki** görüntüyü düzenlemek için kullanılan mod. Resim editörüne bir resim dosyası (PNG/GIF/JPEG) sürükleyip bırakarak, görüntüyü şu anda seçili olan görüntü bankasına yükleyebilirsiniz. **Döşeme Haritası Editörü** Görüntü bankalarındaki görüntüleri bir **döşeme haritası** içinde düzenlemek için kullanılan mod. Bir TMX dosyasını (Tiled Map File) döşeme haritası editörüne sürükleyip bırakarak, şu anda seçili olan döşeme haritasına katman 0'ı yükleyebilirsiniz. **Ses Editörü** Melodi ve **ses** efektlerinde kullanılan sesleri düzenlemek için mod. **Müzik Editörü** Seslerin çalma sırasına göre dizildiği **müzik parçalarını** düzenlemek için kullanılan mod. ### Diğer Kaynak Oluşturma Yöntemleri Pyxel resimleri ve döşeme haritaları aşağıdaki yöntemlerle de oluşturulabilir: - `Image.set` veya `Tilemap.set` fonksiyonlarıyla dize listelerinden resim veya döşeme haritası oluşturun - `Image.load` fonksiyonuyla Pyxel paletine uygun bir resim dosyasını (PNG/GIF/JPEG) yükleyin Pyxel sesleri ve müzikleri de aşağıdaki yöntemle oluşturulabilir: - `Sound.set` veya `Music.set` fonksiyonlarıyla dizelerden oluşturun Bu fonksiyonların kullanımı için API referansına bakın. ### Uygulamaları Nasıl Dağıtılır Pyxel, platformlar arası çalışan özel bir uygulama dağıtım dosyası formatını (Pyxel uygulama dosyası) destekler. Bir Pyxel uygulama dosyası (.pyxapp) `pyxel package` komutu kullanılarak oluşturulur: ```sh pyxel package APP_DIR STARTUP_SCRIPT_FILE ``` Kaynakları veya ek modülleri dahil etmeniz gerekiyorsa, bunları uygulama dizinine yerleştirin. Başlatma betiği içinde aşağıdaki formatla belirtilen meta veriler çalışma zamanında görüntülenebilir. `title` ve `author` dışında diğer alanlar isteğe bağlıdır. ```python # title: Pyxel Platformer # author: Takashi Kitao # desc: A Pyxel platformer example # site: https://github.com/kitao/pyxel # license: MIT # version: 1.0 ``` Oluşturulan uygulama dosyası `pyxel play` komutu kullanılarak çalıştırılabilir: ```sh pyxel play PYXEL_APP_FILE ``` Bir Pyxel uygulama dosyası ayrıca `pyxel app2exe` veya `pyxel app2html` komutları kullanılarak çalıştırılabilir bir dosya veya HTML dosyasına dönüştürülebilir. ## API Başvurusu ### Sistem - `width`, `height`
Ekranın genişliği ve yüksekliği - `frame_count`
Geçen kare sayısı - `init(width, height, [title], [fps], [quit_key], [display_scale], [capture_scale], [capture_sec])`
Pyxel uygulamasını ekran boyutlarıyla (`width`, `height`) başlatır. Şu seçenekler belirtilebilir: pencere başlığı `title`, kare hızı `fps`, uygulamayı kapatma tuşu `quit_key`, ekran ölçeği `display_scale`, ekran yakalama ölçeği `capture_scale` ve ekran yakalama videosunun maksimum kayıt süresi `capture_sec`.
Örnek: `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 uygulamasını başlatır ve kare güncellemeleri için `update` fonksiyonunu ve çizim için `draw` fonksiyonunu çağırır. - `show()`
Ekranı gösterir ve `Esc` tuşuna basılana kadar bekler. - `flip()`
Ekranı bir kare yeniler. Uygulama `Esc` tuşuna basıldığında kapanır. Bu fonksiyon Web sürümünde çalışmaz. - `quit()`
Pyxel uygulamasını kapatır. - `reset()`
Pyxel uygulamasını sıfırlar. Sıfırlama sonrası ortam değişkenleri korunur. ### Kaynaklar - `load(filename, [exclude_images], [exclude_tilemaps], [exclude_sounds], [exclude_musics])`
Kaynak dosyasını (.pyxres) yükler. Bir seçenek `True` olarak ayarlandığında, ilgili kaynak yüklemeden hariç tutulur. Eğer aynı konumda aynı ada sahip bir palet dosyası (.pyxpal) varsa, palet görüntü renkleri de güncellenir. Palet dosyası, görüntü renklerini 16'lık sayılar (örn. `1100ff`) ile satır satır içerir. Bu palet dosyası, Pyxel Editor'deki renkleri değiştirmek için de kullanılabilir. - `user_data_dir(vendor_name, app_name)`
`vendor_name` ve `app_name` temel alınarak oluşturulan kullanıcı veri dizinini döndürür. Dizin mevcut değilse, otomatik olarak oluşturulur. Yüksek skorları, oyun ilerlemesini ve benzeri verileri saklamak için kullanılır.
Örnek: `print(pyxel.user_data_dir("Takashi Kitao", "Pyxel Shooter"))` ### Girdi - `mouse_x`, `mouse_y`
Fare imlecinin mevcut konumu - `mouse_wheel`
Fare tekerleğinin mevcut değeri - `btn(key)`
`key` basılıysa `True`, basılı değilse `False` döndürür. ([Tuş tanımları listesi](../python/pyxel/__init__.pyi)) - `btnp(key, [hold], [repeat])`
`key` o karede basılmışsa `True`, basılmamışsa `False` döndürür. Eğer `hold` ve `repeat` belirtilirse, `key` en az `hold` kare boyunca basılı tutulduktan sonra her `repeat` karede bir `True` döndürür. - `btnr(key)`
`key` o karede serbest bırakılmışsa `True`, serbest bırakılmamışsa `False` döndürür. - `mouse(visible)`
`visible` `True` ise fare imlecini gösterir, `False` ise gizler. İmleç gizlenmiş olsa bile konumu güncellenmeye devam eder. ### Grafikler - `colors`
Palet görüntü renkleri listesi. Görüntü rengi 24 bitlik sayısal bir değerle belirtilir. Python listelerini doğrudan atamak ve almak için `colors.from_list` ve `colors.to_list` kullanılır.
Örnek: `old_colors = pyxel.colors.to_list(); pyxel.colors.from_list([0x111111, 0x222222, 0x333333]); pyxel.colors[15] = 0x112233` - `images`
Görüntü bankalarının listesi (Image sınıfı örnekleri) (0-2)
Örnek: `pyxel.images[0].load(0, 0, "title.png")` - `tilemaps`
Döşeme haritalarının listesi (Tilemap sınıfı örnekleri) (0-7) - `clip(x, y, w, h)`
Ekranın çizim alanını (`x`, `y`) koordinatlarından genişlik `w` ve yükseklik `h` olarak ayarlar. Çizim alanını tam ekran olarak sıfırlamak için `clip()` çağrılır. - `camera(x, y)`
Ekranın sol üst köşesinin koordinatlarını (`x`, `y`) olarak değiştirir. Sol üst köşe koordinatlarını (`0`, `0`) olarak sıfırlamak için `camera()` çağrılır. - `pal(col1, col2)`
Çizim sırasında `col1` rengini `col2` ile değiştirir. Başlangıç paletine sıfırlamak için `pal()` çağrılır. - `dither(alpha)`
Çizim sırasında dithering (sahte şeffaflık) uygular. `alpha` değerini `0.0` ile `1.0` arasında ayarlayın, `0.0` tamamen şeffaf, `1.0` ise opaktır. - `cls(col)`
Ekranı `col` rengiyle temizler. - `pget(x, y)`
(`x`, `y`) noktasındaki pikselin rengini alır. - `pset(x, y, col)`
(`x`, `y`) noktasına `col` renginde bir piksel çizer. - `line(x1, y1, x2, y2, col)`
(`x1`, `y1`) ile (`x2`, `y2`) arasında `col` renginde bir çizgi çizer. - `rect(x, y, w, h, col)`
(`x`, `y`) noktasından `w` genişlik ve `h` yükseklik ile `col` renginde bir dikdörtgen çizer. - `rectb(x, y, w, h, col)`
(`x`, `y`) noktasından `w` genişlik ve `h` yükseklik ile `col` renginde bir dikdörtgenin dış çizgilerini çizer. - `circ(x, y, r, col)`
(`x`, `y`) noktasına yarıçapı `r` olan `col` renginde bir daire çizer. - `circb(x, y, r, col)`
(`x`, `y`) noktasına yarıçapı `r` olan `col` renginde bir dairenin dış çizgilerini çizer. - `elli(x, y, w, h, col)`
(`x`, `y`) noktasından `w` genişlik ve `h` yükseklik ile `col` renginde bir elips çizer. - `ellib(x, y, w, h, col)`
(`x`, `y`) noktasından `w` genişlik ve `h` yükseklik ile `col` renginde bir elipsin dış çizgilerini çizer. - `tri(x1, y1, x2, y2, x3, y3, col)`
Tepeleri (`x1`, `y1`), (`x2`, `y2`), (`x3`, `y3`) olan `col` renginde bir üçgen çizer. - `trib(x1, y1, x2, y2, x3, y3, col)`
Tepeleri (`x1`, `y1`), (`x2`, `y2`), (`x3`, `y3`) olan `col` renginde bir üçgenin dış çizgilerini çizer. - `fill(x, y, col)`
(`x`, `y`) ile aynı renkle bağlanan alanı `col` rengiyle doldurur. - `blt(x, y, img, u, v, w, h, [colkey], [rotate], [scale])`
Görüntü bankası `img`(0-2) içinde (`u`, `v`) noktasından (`w`, `h`) boyutundaki bölgeyi (`x`, `y`) noktasına kopyalar. `w` ve/veya `h` için negatif bir değer atanırsa, bölge yatay ve/veya dikey olarak çevrilir. Eğer `colkey` belirtilirse, şeffaf renk olarak kabul edilir. Eğer `rotate`(derece olarak), `scale`(1.0 = %100) veya her ikisi belirtilirse, uygun dönüşümler uygulanır. - `bltm(x, y, tm, u, v, w, h, [colkey], [rotate], [scale])`
Karo Haritası `tm` (0-7) içindeki (`u`, `v`) konumundan başlayarak (`w`, `h`) boyutundaki bölgeyi (`x`, `y`) konumuna kopyalar. `w` ve/veya `h` için negatif bir değer atanırsa, bölge yatay ve/veya dikey olarak çevrilir. Eğer `colkey` belirtilirse, şeffaf renk olarak kabul edilir. Eğer `rotate` (derece cinsinden), `scale` (1.0 = %100) veya her ikisi belirtilirse, uygun dönüşümler uygulanır. Bir döşemenin boyutu 8x8 pikseldir ve döşeme haritasında `(image_tx, image_ty)` şeklinde bir ikili olarak saklanır. - `text(x, y, s, col)`
`s` metnini, `col` renginde (`x`, `y`) noktasına çizer. ### Ses - `sounds`
Seslerin listesi (Sound sınıfı örnekleri) (0-63)
Örnek: `pyxel.sounds[0].speed = 60` - `musics`
Müziklerin listesi (Music sınıfı örnekleri) (0-7) - `play(ch, snd, [sec], [loop], [resume])`
Kanal `ch`(0-3) üzerinde ses `snd`(0-63) çalınır. `snd` bir ses numarası, bir ses numaraları listesi veya bir MML dizesi olabilir. Çalma başlangıç konumu saniye cinsinden `sec` ile belirtilebilir. Eğer `loop` `True` olarak ayarlanırsa, ses döngüye alınır. Çalma bittikten sonra önceki sese devam etmek için `resume` `True` olarak ayarlanır. - `playm(msc, [sec], [loop])`
Müzik `msc`(0-7) çalınır. Çalma başlangıç konumu saniye cinsinden `sec` ile belirtilebilir. Eğer `loop` `True` olarak ayarlanırsa, müzik döngüye alınır. - `stop([ch])`
Belirtilen `ch`(0-3) kanalındaki çalmayı durdurur. Tüm kanalların çalmasını durdurmak için `stop()` çağrılır. - `play_pos(ch)`
Kanal `ch`(0-3) çalma pozisyonunu `(sound_no, sec)` ikilisi olarak döndürür. Çalma durduğunda `None` döner. ### Matematik - `ceil(x)`
`x`'ten büyük veya ona eşit en küçük tamsayıyı döndürür. - `floor(x)`
`x`'ten küçük veya ona eşit en büyük tamsayıyı döndürür. - `sgn(x)`
`x` pozitif olduğunda `1`, `0` olduğunda `0`, negatif olduğunda `-1` döndürür. - `sqrt(x)`
`x`'in karekökünü döndürür. - `sin(deg)`
`deg` derece için sinüs değerini döndürür. - `cos(deg)`
`deg` derece için kosinüs değerini döndürür. - `atan2(y, x)`
`y`/`x`'in ters tanjantını derece olarak döndürür. - `rseed(seed)`
Rastgele sayı üreticisinin tohumunu ayarlar. - `rndi(a, b)`
`a` ile `b` arasında rastgele bir tamsayı döndürür. - `rndf(a, b)`
`a` ile `b` arasında rastgele bir ondalıklı sayı döndürür. - `nseed(seed)`
Perlin gürültüsü için tohum ayarlar. - `noise(x, [y], [z])`
Belirtilen koordinatlar için Perlin gürültü değerini döndürür. ### Image Sınıfı - `width`, `height`
Görüntünün genişliği ve yüksekliği - `set(x, y, data)`
(`x`, `y`) konumuna bir dizi dize kullanarak görüntü ayarlar.
Örnek: `pyxel.images[0].set(10, 10, ["0123", "4567", "89ab", "cdef"])` - `load(x, y, filename)`
(`x`, `y`) konumuna bir görüntü dosyasını (PNG/GIF/JPEG) yükler. - `pget(x, y)`
(`x`, `y`) konumundaki pikselin rengini alır. - `pset(x, y, col)`
(`x`, `y`) konumuna `col` renginde bir piksel çizer. ### Tilemap Sınıfı - `width`, `height`
Döşeme haritasının genişliği ve yüksekliği - `imgsrc`
Döşeme haritasının referans aldığı görüntü bankası (0-2) - `set(x, y, data)`
(`x`, `y`) konumuna bir dizi dize kullanarak döşeme haritası ayarlar.
Örnek: `pyxel.tilemaps[0].set(0, 0, ["0000 0100 a0b0", "0001 0101 a1b1"])` - `load(x, y, filename, layer)`
TMX dosyasından `layer`(0-) katmanını (`x`, `y`) konumuna yükler. - `pget(x, y)`
(`x`, `y`) konumundaki döşemeyi alır. Döşeme, `(image_tx, image_ty)` ikilisi olarak temsil edilir. - `pset(x, y, tile)`
(`x`, `y`) konumuna bir `tile` çizer. Döşeme, `(image_tx, image_ty)` ikilisi olarak temsil edilir. ### Sound Sınıfı - `notes`
Notaların listesi (0-127). Sayı büyüdükçe perde yükselir. `33` notası 'A2' (440 Hz) ile eşleşir. Sus notaları `-1` ile gösterilir. - `tones`
Ses tonlarının listesi (0:Triangle / 1:Square / 2:Pulse / 3:Noise) - `volumes`
Ses seviyelerinin listesi (0-7) - `effects`
Efektlerin listesi (0:None / 1:Slide / 2:Vibrato / 3:FadeOut / 4:Half-FadeOut / 5:Quarter-FadeOut) - `speed`
Çalma hızı. `1` en hızlısıdır ve sayı büyüdükçe çalma hızı yavaşlar. `120`'de, bir notanın süresi 1 saniyeye eşittir. - `set(notes, tones, volumes, effects, speed)`
Bir dize kullanarak notaları, tonları, ses seviyelerini ve efektleri ayarlar. Eğer tonların, ses seviyelerinin veya efektlerin uzunluğu notalardan kısaysa, baştan itibaren tekrarlanır. - `set_notes(notes)`
`CDEFGAB`+`#-`+`01234` veya `R` ile notaları ayarlar. Büyük/küçük harf duyarsızdır ve boşluklar göz ardı edilir.
Örnek: `pyxel.sounds[0].set_notes("g2b-2d3r rf3f3f3")` - `set_tones(tones)`
`TSPN` dizesiyle tonları ayarlar. Büyük/küçük harf duyarsızdır ve boşluklar göz ardı edilir.
Örnek: `pyxel.sounds[0].set_tones("ttss pppn")` - `set_volumes(volumes)`
`01234567` dizesiyle ses seviyelerini ayarlar. Büyük/küçük harf duyarsızdır ve boşluklar göz ardı edilir.
Örnek: `pyxel.sounds[0].set_volumes("7777 7531")` - `set_effects(effects)`
`NSVFHQ` dizesiyle efektleri ayarlar. Büyük/küçük harf duyarsızdır ve boşluklar göz ardı edilir.
Örnek: `pyxel.sounds[0].set_effects("nfnf nvvs")` - `mml(code)`
Bir [MML (Music Macro Language)](https://en.wikipedia.org/wiki/Music_Macro_Language) dizesi geçirildiğinde MML moduna geçilir ve içeriğine göre ses çalınır. Bu modda `notes` ve `speed` gibi normal parametreler yok sayılır. MML modundan çıkmak için `mml()` fonksiyonunu argümansız olarak çağırın. MML hakkında daha fazla bilgi için [bu sayfaya](faq-en.md) bakın.
Örnek: `pyxel.sounds[0].mml("T120 Q90 @1 V100 O5 L8 C4&CC.C.D16 @VIB1{10,20,20} E2C2")` - `save(filename, sec, [ffmpeg])`
Belirtilen saniye boyunca sesi çalan bir WAV dosyası oluşturur. FFmpeg yüklüyse ve `ffmpeg` `True` olarak ayarlandıysa, bir MP4 dosyası da oluşturulur. - `total_sec()`
Sesi saniye cinsinden çalma süresini döndürür. MML'de sonsuz döngü kullanılmışsa `None` döndürür. ### Music Sınıfı - `seqs`
Birden fazla kanal boyunca seslerin (0-63) iki boyutlu listesi - `set(seq0, seq1, seq2, ...)`
Her kanal için ses listelerini (0-63) ayarlar. Boş bir liste belirtilirse, o kanal çalma için kullanılmaz.
Örnek: `pyxel.musics[0].set([0, 1], [], [3])` - `save(filename, sec, [ffmpeg])`
Belirtilen saniye boyunca müziği çalan bir WAV dosyası oluşturur. FFmpeg yüklüyse ve `ffmpeg` `True` olarak ayarlandıysa, bir MP4 dosyası da oluşturulur. ### Gelişmiş API Pyxel, kullanıcıları yanıltma veya kullanmak için özel bilgi gerektirme potansiyeli nedeniyle, bu referansta yer almayan "Gelişmiş API" içerir. Eğer yeteneklerinize güveniyorsanız, [bu](../python/pyxel/__init__.pyi) rehber olarak kullanarak harika eserler yaratmayı deneyin! ## Katkıda Bulunma ### Sorun Bildirme Hata raporları ve özellik veya iyileştirme talepleri göndermek için [Sorun Takip Sistemi](https://github.com/kitao/pyxel/issues) kullanın. Yeni bir sorun göndermeden önce, benzer açık sorunlar olmadığından emin olun. ### Fonksiyonel Test Kodu manuel olarak test eden ve [Sorun Takip Sistemi](https://github.com/kitao/pyxel/issues) üzerinden hata veya iyileştirme önerileri bildiren herkes çok memnun karşılanır! ### Pull İsteği Gönderme Yamanlar ve düzeltmeler, pull isteği (PR) şeklinde kabul edilmektedir. Pull isteğinin ele aldığı sorunun Sorun Takip Sistemi'nde açık olduğundan emin olun. Pull isteği göndermek, katkınızı [MIT Lisansı](../LICENSE) altında lisanslamayı kabul ettiğiniz anlamına gelir. ## Web Araçlar ve Örnekler - [Pyxel Web Examples](https://kitao.github.io/pyxel/wasm/examples/) - [Pyxel Web Launcher](https://kitao.github.io/pyxel/wasm/launcher/) - [Pyxel Code Maker](https://kitao.github.io/pyxel/wasm/code-maker/) [[User Manual](https://qiita.com/kitao/items/b5b3fb28ebf9781eda2e)] - [Pyxel MML Studio](https://kitao.github.io/pyxel/wasm/mml-studio/) [[User Manual](https://qiita.com/kitao/items/a86de4f7d6a0ed656a89)] ## Diğer Bilgiler - [Sıkça Sorulan Sorular](faq-en.md) - [Kullanıcı Örnekleri](https://github.com/kitao/pyxel/wiki/Pyxel-User-Examples) - [Geliştiricinin X Hesabı](https://x.com/kitao) - [Discord Sunucusu (İngilizce)](https://discord.gg/Z87eYHN) - [Discord Sunucusu (Japonca)](https://discord.gg/qHA5BCS) ## Lisans Pyxel, [MIT Lisansı](../LICENSE) ile lisanslanmıştır. Tüm kopyalardındaki yazılım veya onun önemli bölümleri, MIT Lisansı koşullarını ve telif hakkı bildirimini içermesi koşuluyla özel yazılımda kullanılabilir. ## Sponsor Arayışı Pyxel, GitHub Sponsors üzerinde sponsorlar arıyor. Pyxel'in sürdürülebilir bakımı ve özellik geliştirmesi için sponsor olmayı düşünün. Bir avantaj olarak, sponsorlar Pyxel geliştiricisiyle doğrudan danışma imkânına sahip olabilirler. Daha fazla bilgi için [bu sayfayı](https://github.com/sponsors/kitao) ziyaret edin.