Új hozzászólás Aktív témák
-
Tomi_78
aktív tag
Sziasztok!
Az volna a kérdésem, hogy tud-e valaki olyan labdapattogtató algoritmust, amellyel nem áll be a képernyőn pattogó labda egy útvonalra?
Most Lazarusban (FreePascal) készítek egy olyan játékot, amelyben főszerepet kap a labdapattogás-pattogtatás, és ezeket a kódokat használom hozzá:labdakovx:=labda.xhely+(labda.xirany*labda.sebessege);
labdakovy:=labda.yhely+(labda.yirany*labda.sebessege);if utkozesbaljobb() then
labda.xirany:=labda.xirany*-1;else if utkozesfentlent() then
labda.yirany:=labda.yirany*-1;
if labdautkozik=false then
begin
labda.xhely:=labdakovx;
labda.yhely:=labdakovy;
end;Ez az első módszer nagyon szépen mozgatja a labdát, de túl szabályosan és ezért nem igazán tér el egy adott pályáról a labda.
Próbáltam ezt is:labdakovx:=round(labda.xhely+cos(degtorad(360-labda.irany))*labda.sebessege);
labdakovy:=round(labda.yhely+sin(degtorad(360-labda.irany))*labda.sebessege);Ami után ütközésnél:
labda.irany:=labda.irany-(round(random(180))+90);
De ez meg már nagyon furcsa szögekben téríti el az ütközést követően, ami nem életszerű.
Szóval az volna a kérdésem, hogy e fenti két módszer közül valamelyiket ki lehet-e egészíteni valamivel (egy újabb változóval, stb.), hogy a labda úgy pattogjon, hogy ütközés után ne mindig ugyanabba a szögbe álljon be, hanem kicsit módosuljon a pályája. Persze az sem jó, ha teljesen vízszintes vagy függőleges irányba terelődik.
Azt még próbáltam a legelső módszernél, hogy ütközés után pl.:labda.xirany:=labda.xirany*(-1*round(random(3)+1));
hogy hátha ez kicsit változtat, de ettől kis idő elteltével elkezdett föl-le pattogni a képernyő teteje és alja között, ha éppen úgy ütközött.
Szó ami szó, nem akarom sem a kereket újra feltalálni, sem megoldhatatlan feladaton futni köreimet, ezért kérdezem, hogy ez megoldható-e ezekkel vagy van erre egy másik megoldás?
Savior, te pl, hogy oldottad meg a labdapattogást a flipper és gombfoci játékodban?
Új hozzászólás Aktív témák
- Bomba ár! HP Elitebook 850 G3 - i7-6GEN I 16GB I 256GB SSD I RadeonI 15,6" FHD I Cam I W11 I Gari!
- Csere-Beszámítás! Számítógép PC Játékra! Intel I7 6700/ RX 580 8GB / 32GB DDR4 / 500GB SSD
- Telefon felvásárlás!! Honor 200 Lite, Honor 200, Honor 200 Pro, Honor 200 Smart
- Samsung Galaxy A14 64GB, Kártyafüggetlen, 1 Év Garanciával
- ÁRGARANCIA!Épített KomPhone Ryzen 5 4500 16/32/64GB RAM RX 6500 XT 4GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Liszt Ferenc Zeneművészeti Egyetem
Város: Budapest