Hirdetés

Hirdetés

Új hozzászólás Aktív témák

  • Tomi_78

    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