A tegnap kitűzött cél sikerült, W-A-S-D billentyűkkel lehet irányítani a kockát.. A zuhanási sebbességét a W-S párossal, az oldalirányú (x tengely) pozícióját pedig az A-D gombokkal lehet szabályozni. Az ilyen, futásidőben kiadott billentyűparancsokhoz a kbhit() függvény volt a segítségemre, amit mindjárt picit magyarázok is.
Az alap gondolat, hogy egy while ciklus fusson addig, amíg mondjuk a q gombot meg nem nyomjuk. Jelen példánkban a testnek van induló sebessége, de akár megcsinálhatnám úgy, hogy szépen azt is én indítsam, ez már csak játék a beállításokkal. Időközben beugrott, hogy viszonylag milyen egyszerűen lehetne, egy kis autót a pályán vezetni, bár hozzáteszem, hogy jelen példában az ütközésvizsgálat még igen csak kezdetleges.
A kódrészlet:
char c='h';
int x1=0,x2=50,y1=0,y2=50,s=20;
while(c!='q')
{
rectangle(0,0,620,610); //az alap pálya
rectangle(x1,y1,x2,y2); //maga a mozgó test
delay(150);
y1+=s;
/*a deklarációnál beállított sebesség az alapadat, ezt tudjuk később a kbhit segítségével módosítani*/
y2+=s;
if(kbhit())
c=getch();
/*és itt jön ami még nem volt, a kbhit() mely nem állítja meg a ciklus futását, egyszerűen csak a háttérben garázdálkodik, és billentyűnyomásra végrehajtja az értékadást*/
if(c=='d')
{
x1+=10;
x2+=10;
c='0';
/*adnunk kell egy semleges értéket, különben úgy érzi, mintha folyamatosan nyomnánk a gombot (bent marad az érték a c változóban, és állandóan teljesül a feltétel*/
}
if(c=='a')
{
x1-=10;
x2-=10;
c='0';
}
if(c=='w')
{
s+=10;
c='0';
}
if(c=='s')
{
s-=10;
c='0';
}
if(y2>=600) s*=-1;
cleardevice();
}
A rectangle() és a többi függvény a graphics.h headerfájl függvényei, gugli könnyen segít rátalálni. Egyelőre ez csak egy demózása annak, hogyan fog a végleges irányítás kialakulni, vagy nem, mivel meglehetősen összeakasztottam a bajszom az objektumorientált elvekkel, és a papíralapú ábrám összetépésre lett ítélve..
Többet ilyet nem kérek, de most az egyszer igen, szóval lájkold a bejegyzést, ha hasznosnak, vagy érdekesnek találtad, és kíváncsi vagy a folytatásra!
Erre azért van szükség, hogy lássam, van e érdeklődő a témára...