Spadające kamienie w allegro

2011-10-09 22:09
0

Witam!
Mam do zaliczenia projekt.
Postanowiłem zrobić grę w której spadać będą kamienie a użytkownik ma ich unikać.
Niestety nie mam pomysłu jak te kamienie mają spadać.
Założenie jest takie, że ma być kilka kamieni jednocześnie w różnych miejscach (randomowo na osi x) i spadać mają z górnej krawędzi ekranu w dół do momentu nastąpienia kolizji. Prosiłbym o rady jak to wykonać (jakiś schemat, algorytm, wskazówki)
Będę bardzo wdzięczny. Pozdrawiam

Można wiedzieć jaka uczelnia? Technikum? LO? Studia? - nerf 2011-10-19 15:56
Technikum 3 klasa - Langol 2011-10-22 17:29
To fajnie macie;d Ja aktualnie 2 klasa i żadnej pracy domowej nie było z programowania jeszcze w tej szkole... - nerf 2011-10-22 19:08
My już mamy trzecią. Pierwsza w TurboPascalu(robiłem "Wirtualne Pianino" - ale bardzo słaby język). Drugi projekt to baza danych w C++, a teraz gra w C++ z biblioteką allegro (czuje się jakbym przesiadł się z malucha (TurboPascal) do merca(C++) ;). - Langol 2011-10-22 21:56

Pozostało 580 znaków

2011-10-19 15:21
0

Allegro to nie znam, ale ci mogę powiedzieć jak można to zrobić. Zrób klasę kamienia, tam trzymaj texturę, pozycję (X,Y), metodę Update i konstruktor z losowym X. Tworząc ileś tam kamieni w konstruktorze każdego wylosuj X. W Update kamienia odświeżasz pozycję, nie wiem jaką tam prędkość będziesz chciał (najlepiej żeby prędkość Y też była losowa), w metodzie jeszcze sprawdzasz czy nie wyszedł kamień za ekran (kamien.y > clientRect.y), jeżeli tak to resetujesz go z powrotem na pozycję startową tj. -texturaKamienia.Y, po to, aby zaczął faktycznie spadać z góry, a nie pojawiał się w na górze formatki. To chyba tyle.


Co kurła debuguj ten kod i streszczaj się klientowi chce się fixa, a jak nie kurła to odpale visuala i ci pomoge a tego byś nie chciał
Losowa prędkość spadania? Chyba raczej ruchem przyśpieszonym powinny. - siararadek 2011-10-20 11:15
No pewnie, że można i tak, ale do takiej gry wolę chyba losowe z jakiegoś stosownego przydziału. - xeo545x39 2011-10-20 15:06

Pozostało 580 znaków

2011-10-22 17:31
0

Problem z kamieniami rozwiązałem w dość prosty sposób.

if((kamien_y<=768))
   {  

     kamien_y++; 
     }

else
   {  

                  pkt+=10;
                   kamien_x=( rand() % 950 ) + 50 ;
                   kamien_y=0;                      
   }   
 masked_blit( glaz, bufor, 0, 0, kamien_x, kamien_y, glaz->w, glaz->h );       

Pozostało 580 znaków

Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0