İçeriğe geç

Tame — 2D Grafik Kütüphanesi

import "tame" size vendor’lanmış raylib üzerine ince ve hızlı bir sarmalayıcı verir: pencere, kare döngüsü, çizim, girdi, ses ve kalıcı kayıt. Yalnız programınız "tame" import ettiğinde ya da bir tm_* yerleşiğini çağırdığında linklenir — sıradan programlar bağımlılıksız kalır.

Aşağıdaki her fonksiyonun bir İngilizce adı ve (varsa) bir Türkçe takma adı vardır; ikisi de aynı çağrıya derlenir.

FonksiyonAçıklama
window(w, h, title): boolPencere aç (döngüden önce bir kez).
running(): boolKullanıcı pencereyi kapatınca false — döngü koşulunuz.
close_window()Pencereyi kapat (döngüden sonra).
set_fps(n)Hedef kare hızı (ör. 60).
frame_begin() / frame_end()Çizdiğiniz her şeyi bir kareye sarar.
frame_time(): floatSon kareden bu yana saniye (delta — hareketi bununla çarpın).
elapsed(): floatProgram başından bu yana saniye (monotonik).
get_fps(): intÖlçülen güncel kare hızı.
screen_width(): int / screen_height(): intPiksel cinsinden pencere boyutu.

Mobil/tam ekran ölçekleme için görüntü sınırları gerçek çizilebilir alanı verir: view_left() / view_right() / view_top() / view_bottom() (TR: ekran_sol/sag/ust/alt). Ekran-üstü kontrolleri bunlara demirleyin ki Android’de gerçek ekran kenarlarına yaslansınlar.

FonksiyonAçıklama
clear(color)Tüm kareyi bir renkle doldur.
rect(x, y, w, h, color)Dolu dikdörtgen.
rect_lines(x, y, w, h, color)Dikdörtgen çerçevesi.
circle(x, y, radius, color)Dolu daire.
line(x1, y1, x2, y2, color)Çizgi.
triangle(x1, y1, x2, y2, x3, y3, color)Dolu üçgen.
pixel(x, y, color)Tek piksel.
text(s, x, y, size, color)Metin çiz (varsayılan font).
measure_text(s, size): intBir metnin piksel genişliği — ortalamak için.

Renkler paketlenmiş tam sayılardır. Onları rgb(r, g, b) ya da rgba(r, g, b, a) ile üretin (her kanal 0–255) veya adlandırılmış bir sabit kullanın:

WHITE BLACK GRAY DARKGRAY RED MAROON GREEN LIME BLUE SKYBLUE
GOLD YELLOW ORANGE PINK PURPLE VIOLET BEIGE BROWN MAGENTA

Klavye — tuş adları "LEFT", "RIGHT", "UP", "DOWN", "SPACE", "ENTER", "ESCAPE", "A""Z" gibi string’lerdir:

FonksiyonAçıklama
key_down(k): boolŞu an basılı mı.
key_pressed(k): boolBu karede basıldı (tek tetik).
key_released(k): boolBu karede bırakıldı.

Fare: mouse_x(), mouse_y(), mouse_down(b), mouse_pressed(b), mouse_wheel().

Dokunma (mobil) — TR: dokunma_*:

FonksiyonAçıklama
touch_count(): intAktif parmak sayısı.
touch_x(i): int / touch_y(i): inti. parmağın konumu.
touched(): boolHerhangi bir parmak basılı mı?

Android’de dokunma koordinatları zaten oyununuzun dünya uzayına ölçeklenir; yani touch_x/y çizdiğinizle hizalıdır.

Gamepad: gamepad_available(id), gamepad_name(id), gamepad_down(id, btn), gamepad_pressed(id, btn), gamepad_axis(id, axis).

Eğim / ivmeölçer (Android) — TR: egim_*: accel_x(), accel_y(), accel_z(), accel_available(). Masaüstü sıfır döner, o yüzden accel_available() ile koruyun.

Dosya gerektirmez — anında bir ton sentezleyin:

FonksiyonAçıklama
beep(freq, ms) (TR bip)freq Hz sinüsü ms milisaniye çalar.
tone(freq, ms, vol) (TR ton)Aynısı ama 0..1 ses seviyesiyle — efektlerin altında arka plan müziği için.

Ya da gerçek ses dosyaları yükleyin:

FonksiyonAçıklama
load_sound(path): int / play_sound(s) / stop_sound(s) / sound_volume(s, v)Kısa ses efektleri.
load_music(path): int / play_music(m) / stop_music(m) / music_volume(m, v)Akış müziği.
FonksiyonAçıklama
load_texture(path): intBir resim yükle.
draw_texture(tex, x, y)Çiz.
draw_texture_ex(tex, x, y, scale, rotation)Ölçekli / döndürülmüş.
texture_width(tex): int / texture_height(tex): intBoyutlar.
unload_texture(tex)Serbest bırak.
load_font(path, size): intBir TTF’yi bir boyutta yükle.
text_font(f, s, x, y, size, color)Yüklü fontla metin çiz.

Varlıkları web/Android derlemesine TULPAR_WEB_ASSETS=<dizin> ile gömün — bkz. Derleme ve Yayınlama.

FonksiyonAçıklama
save_data(name, text): bool (TR kayit_yaz)Küçük bir string yaz (rekorlar, ayarlar). Her platformda açılışlar arası kalıcıdır.
load_data(name): str (TR kayit_oku)Geri oku ("" yoksa).
vibrate(ms) (TR titret)Android’de haptik titreşim; başka yerde no-op.
screenshot(path)Güncel karenin PNG’sini kaydet.

name düz bir dosya adıdır (ör. "skor"), yol değil. Android’de otomatik olarak uygulamanın özel depolamasına eşlenir.

FonksiyonAçıklama
rgb(r, g, b): int / rgba(r, g, b, a): intRenk üret.
rect_overlap(x1,y1,w1,h1, x2,y2,w2,h2): boolAABB çakışma testi.
point_in_rect(px, py, x, y, w, h): boolNokta-dikdörtgen testi.
clamp(v, lo, hi)Bir değeri aralığa kırp.
run(update_fn, draw_fn)Kolaylık döngüsü: pencere kapanana dek her kare update sonra draw çağırır (web animasyon karesini de sürer).

Döngü yazmadan entity, çarpışma ve bölümlere hazır mısınız? Arcade preset motoruna geçin.