Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Allegro] Podstawy i wątpliwości.

Ostatnio zmodyfikowano 2012-06-18 17:03
Autor Wiadomość
Sefir
Temat założony przez niniejszego użytkownika
[Allegro] Podstawy i wątpliwości.
» 2012-06-11 17:01:55
Witam :). 2 dni temu zacząłem co nieco pisać w Allegro 4.4. Chciałem dzisiaj napisać programik-grę w Ponga. Jedyne co mi zostało z kwestii fizyki, jeśli mogę to tak nazwać to właśnie odbijanie piłki od paletki. Moje warunki nie działają, a chciałbym jednak zrobić coś, co można zaklasyfikować jako wytwór gro-podobny. Z góry dziękuję za pomoc :) Ostatni edit, bo tak naprawdę tyle mi wystarczy do szczęścia póki co :).
P-58247
xevuel
» 2012-06-11 22:27:18
2 dni temu zacząłem co nieco pisać w Allegro 4.4. Chciałem dzisiaj napisać programik-grę w Ponga.
Nie uważasz, że to trochę krótkawo?

Moje warunki nie działają, a chciałbym jednak zrobić coś, co można zaklasyfikować jako wytwór gro-podobny. Z góry dziękuję za pomoc :)
Cóż, na gotowca nie masz co liczyć, a jeśli masz konkretny problem, zarzuć kod. Od razu mówię - zasady formatowania postów są tutaj: » KursyKurs STC kurs :)
Nie działają... Nie kompilują się, nie wykrywają kolizji, wyłączają komputer, usuwają wszystkie pliki z komputera? Sprecyzuj...
P-58280
Sefir
Temat założony przez niniejszego użytkownika
» 2012-06-18 14:40:59
Mniejsza z tym, już kilka dni temu udało mi się dojść samemu i ładnie się odbija. Jednak chcę sie zapytać, o coś,żeby móc naliczać punkty za nie odbicie piłki.
a) Co mogę zrobić aby piłka znów pojawiła się na środku i kolejny punkt
Bo w końcu po jednym punkcie zawsze zaczynało sie od nowa, czy to wszystko musi być w procedurze tak, aby można zrobić warunek
if(xpilki<xpaletki1)
punkt dla gracza 2
zatrzymać procedurę i od nowa
if (xpilki>xpaletki2)
punkt dla gracza 1
zatrzymać procedurę i od nowa
 
Dziwne pytanie, wiem ale cóż, najlepiej się uczy na własnych błędach i własnej niewiedzy, oczywiście nie proszę o kod, tylko o rady :)
P-58622
xevuel
» 2012-06-18 15:18:41

while(trwa_mecz)
{
   ustaw piłkę na środek();
   nadaj jej prędkość();
   while(odbijają)
   {
      rob coś tam();
   }
   punkty gracza który odbił jako ostatni++;
}
P-58627
Sefir
Temat założony przez niniejszego użytkownika
» 2012-06-18 16:45:32
Dobrze, jest coś w tym stylu, tylko nie wiem, gdzie tu dać reset położenia piłki.W którym miejscu? Ten program po, tak jakby, utracie punktu, zatrzymuje się. Ten drugi while jest chyba jakoś źle umiejscowiony :(


   while(!key[KEY_ESC])
    {
       while(xk-r>recx2-3){            
       rect(bufor,x1,y1,x2,y2,makecol(200,200,0));
       circlefill(bufor,xk,yk,r,makecol(200,0,255));
       _sleep(1);
       vline(bufor,x1,y1,y2,makecol(0,0,0));
       rectfill(bufor,recx,recy,recx2,recy2,makecol(255,0,0));
       circlefill(bufor,xk,yk,r,makecol(122,122,122));
       textprintf(bufor,font,700,20,makecol(100,100,9),"Wynik: %d",licznik);
       blit(bufor,screen,0,0,0,0,1440,900);
      
       xk=xk+dx;
       yk=yk+dy;
      
       if(yk>y2-r-3||yk<y1+r+3) dy=-dy;
       if(xk>x2-r-3) dx=-dx;
       if(key[KEY_UP])recy-=2, recy2-=2;
       if(key[KEY_DOWN])recy+=2,recy2+=2;
       if(xk-r<x1&&(recy2>yk-r&&recy<yk+r))
       {dx=-dx;
       licznik++;
       dx++;
       dy--;}       
      
       clear_to_color(bufor,makecol(0,0,0));
       } }  
 
P-58636
xevuel
» 2012-06-18 16:50:40
Wedle mojego pseudokodu, na początku pętli.

PS. Kod dawaj w [cpp]...[/cpp], i wyjaśnij co oznaczają zmienne typu xk i co oznaczają warunki typu while(xk-r>recx2-3).
P-58638
Sefir
Temat założony przez niniejszego użytkownika
» 2012-06-18 16:53:58
xk oznacza współrzędną x kółka, r to jego promień recx2 to prawy x paletki. To jest warunek przekroczenia boiska z lewej strony, czyli warunek kończący grę.
P-58640
xevuel
» 2012-06-18 17:03:07
Nie jestem 100-procentowo pewny, ale chyba chodzi o to, że po utracie punktu nie ustawiasz zmiennych opisujących położenie piłki (xk?) przez co warunek
while( xk - r > recx2 - 3 )
 jest zawsze fałszywy.
P-58643
« 1 »
  Strona 1 z 1