- Xiaomi 15T Pro - a téma nincs lezárva
- Motorola Edge 50 Neo - az egyensúly gyengesége
- Samsung Galaxy S26 Ultra - fontossági sorrend
- Szívós, szép és kitartó az új OnePlus óra
- Megérkezett a Samsung Galaxy A37 és Galaxy A57
- Xiaomi 14 Ultra - Leica hercegnő
- Azonnali mobilos kérdések órája
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Poco M8 Pro 5G gyorsteszt
- Samsung Galaxy S22 Ultra - na, kinél van toll?
Új hozzászólás Aktív témák
-
Karma
félisten
válasz
#39560925
#4439
üzenetére
Folyt.: A kódban ki az a GA? A Move most viewport (ablak) vagy világ (0-100) koordinátákban számol? Mert egyértelműen az utóbbiban kéne, és csak rajzolásnál konvertálni pixelpozíciókra. PROTIP: a játékmotor és a konkrét ablak két egymástól független dolog.
Egyébként a game loopodat kicsit rendbe kéne szedni, mert a mostani elnevezésekkel nem jön át hogy mi mit csinál. Ennek kellene történnie:
1) Kiszámolod a legutolsó periódus óta eltelt időt.
2) Ezzel az értékkel mozgatod a modell szinten (world koordinátákban) az objektumokat.
3) Kiszámolod és kezeled az ütközéseket - a ConcurrentModificationExceptionök miatt okosan kezelve a pusztulásokat - pl. naívan egy listát gyűjtesz minden meghaló entitásról, és az ütköztetés után külön ciklusban törlöd őket a világból.
4) Eltárolod az időt az első lépéshez, most.
5) Invalidálod a panelt.
6) Vársz. Várakozás helyett lehet, hogy egy jó időzítőosztályt kéne használnod amúgy.Rajzolásnál meg, ami aszinkron meghívódik, az aktuális állapotot rajzold ki. Semmi mást ne csinálj. Egyébként azt is lehetne, hogy egy másik ciklus hívogatja a rajzolást, de nem biztos hogy szükséges. Duplapufferelést is lehetne írni, nem sokból tart.
Ez így egy hótprimitív játékciklus, de egyszerű dolgokhoz elég lehet.

-
Karma
félisten
válasz
#39560925
#4439
üzenetére
Gyorskérdés, amíg tovább olvasom: miért nem használsz foreach ciklust manuális iterátorozás helyett?
Második: a rajzolási ciklusodból takarítsd kifelé a destroyEmeny hívást! Semmi köze hozzá, rajzolja csak ki a pillanatnyi állapotot, de semmi logika.
Harmadik: ezzel a Move implementációval biztosan pofonba szaladsz. Egyrészt a 20 ms fix idő semmilyen körülmények között nem garantálható, ezért úgy szokták megoldani ezt, hogy a Move paraméterben megkap egy legutolsó frissítés óta eltelt időt (pl. milliszekundumban), és azzal számolja a képleteket.
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Xiaomi 15 fehér független mobiltelefon 2 év garanciával
- teljesen ÚJ Apple Watch Ultra 3 49mm Black Titanium !! aktiválástól 1 ÉV nemzetközi APPLE GARANCiA
- Dell WD15 type-c dokkoló 130W-os töltővel
- FLSUN V400 3D nyomtató megkímélt, 680 üzemóra
- BESZÁMÍTÁS! Lenovo LOQ 15AHP10 FHD GAMER notebook - Ultra7 155U 32GB DDR5 1TB SSD Intel Graphics W11
- AKCIÓ! Apple MacBook Air 13 M1 8GB RAM 256GB SSD notebook garanciával hibátlan működéssel
- Keresünk iPhone 14/14 Plus/14 Pro/14 Pro Max
- GYÖNYÖRŰ iPhone 15 Pro Max 256GB White Titanium -1 ÉV GARANCIA - Kártyafüggetlen, MS4694
- Gamer PC-Számítógép! Csere-Beszámítás! R7 5700 / RTX 2080Ti 11GB / 16GB DDR4 / 1TB SSD!
- Keresünk iPhone 13/13 Mini/13 Pro/13 Pro Max
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


