.[ ČeskéHry.cz ].
Asi sem na to kápl.

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> C / C++
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
egrishot



Založen: 05. 01. 2011
Příspěvky: 23

PříspěvekZaslal: 14. únor 2012, 17:43:15    Předmět: Asi sem na to kápl. Odpovědět s citátem

Asi jsem ve vlaku přišel na algoritmus.
Btw .S vektorama v programování nemám zkušenosti ani bych si nedokázal představit jak to tam udělat.
Ale zpět k algoritmu chtěl bych znát váš názor.
jsou dvě textury a panáček mezi dvěmi texurami je díra, kterou má samozřejmě panáček přeskočit.
Tady zhruba jeten algoritmus(je to jenom takový symbolický zápis aby jste věděli nejsou tam žádné opravdové funkce
):



// pozice_akt pozice aktuální v jaké se zrovna nachází myslým y pozici
//pozice_start pozice ve které se nacházel před skokem tedy ze které skočil zase y pozice+jmpmax kdy jmpmax je maximální výška výskoku tedy základní pozice plus těch třeba 80 px.
//začátek smyčky

bool skok;
if(stiskuná klávesa down==true)
{
while(pozice_akt != pozicestart+jmpmax)
{
y=y-5;//zvedá se hodnota y zdá se tedy že skáče
skok=true; skok se provedl alespoň na chvíli
}

}

if(skok==true)//skok byl proveden
{

while(kolize!=true)//bude klesat dokud nedojde ke kolizi
{
y=y+5;// panáček klesá dokud nedojde ke kolizi
}

skok=false;// skok se nastaví na false aby se mohl opt provést
}
//a když k ní dojde tak konec





jednoduše řečeno na ty (čtverce) textury aplikuji čtverce snímané na kolizi
když hráč podrží klávesu začne se posouvat nahoru a když hodnota y aktualní kterou snímám je
na jmpmax tedy maximální výška kterou doskočí inkrementuji tedy posouvám dolů
a když dojde ke kolizi tak je konec a skok je nastaven na false
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
franz



Založen: 30. 07. 2007
Příspěvky: 1325

PříspěvekZaslal: 14. únor 2012, 18:54:04    Předmět: Re: Asi sem na to kápl. Odpovědět s citátem

egrishot napsal:
Ale zpět k algoritmu chtěl bych znát váš názor.


hrůza, všechno vylejt Twisted Evil
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
egrishot



Založen: 05. 01. 2011
Příspěvky: 23

PříspěvekZaslal: 14. únor 2012, 19:02:44    Předmět: Odpovědět s citátem

Jo sorry pak jsem si té chyby všiml že jaksik by to chtělo trochu poupravit že to nepočítá s pár dalšími faktory
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
pcmaster



Založen: 28. 07. 2007
Příspěvky: 1827

PříspěvekZaslal: 15. únor 2012, 10:09:34    Předmět: Odpovědět s citátem

Uplny zaklad je tzv. slucka (smycka, loop) sprav, alebo podobny mechanizmus (timer). Ten zabezpeci, ze sa ti v kazdom snimku vykona tato tvoja "fyzikalna" simulacia. Najprv "spracuje" vstupy (tlacitka klavesnice). Potom sa prepocitaju polohy vsetkych tvojich "simulovanych" objektov v tvojom svete. A nasledne sa tieto polohy pouziju pre vykreslovanie. A dalsi frame znovu. A znovu.

Pre panaka budes mat premennu "(vertikalna) pozicia" (v metroch) a "vertikalna rychlost" (v metroch za sekundu). Tu nastavis pri stisku tlacitka (v pripade, ze panak je nohami na zemi) na nejake relativne vysoke cislo smerom "nahor" (napriklad +20 m/s). V kazdom snimku potom odpocitas "gravitacne zrychlenie" krat "cas od posledneho snimku" (napriklad -9.8 m/s/s * 0.01 s = -0.098 m/s). Finalna vertikalna pozicia v tom snimku potom bude "minula vertikalna pozicia" + "vertikalna rychlost" krat "cas od posledneho snimku" (napriklad 5 m + (20 - 0.098) m/s * 0.01 s = 5.19902 m). Tie jednotky som tam neuvadzal len tak zo srandy Smile

V kazdom frame budes samozrejme detegovat, ci nenarazil na nejaky teren (a potom ho posunies natvrdo do bezkoliznej polohy, napriklad) a pripadne ho pohybovat v horizontalnom smere. "Dvoj-vyskok", "lietanie (jet-pack)", atd, doriesis velmi podobne (povolis dalsie pripadne momenty aplikacie "vyskakovacieho impulzu"). Pri kolizii s terenom mozes aplikovat "proti-impulz", ktory panaka (projektil, ...) odrazi smerom prec od prekazky...

Dufam, ze chapes tento jednoduchy zaklad. Ak nie, pytaj sa. Nie, nejde to jednoduchsie. Cool
_________________
Off-topic flame-war addict since the very beginning. Registered since Oct. 2003!
Interproductum fimi omne est.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
egrishot



Založen: 05. 01. 2011
Příspěvky: 23

PříspěvekZaslal: 15. únor 2012, 22:19:34    Předmět: Odpovědět s citátem

Jo pardon dělám to v c# takže ty smyčky už tam mám je to přes xna jenom právě ten skok sem řešil ale pár lidí mi dalo radu takže už to asi budu mít vrhnu se na to v sobotu.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> C / C++ Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna