Borysiak Temat założony przez niniejszego użytkownika |
Problem z Allegro c++ » 2011-04-04 08:56:11 Witam od tygodnia pracuje nad gra i mam problem nie umiem zrobić aby program wykonywał tylko raz ta funkcje a nie ze trzeba czy mac cały czas na klawiaturze G i on nie wykonuje jej razy tylko zależnie od tego ile przytrzymasz G jak 2 sekundy to kawałek całej funkcje zostanie ....
while( !key[ KEY_ESC ] ) { if( key[ KEY_G ] ) { w = 7; } if(( w >= 7 ) &&( w < 8 ) ) { if( frame < 10 ) { draw_sprite( bufor, naruto_resengan_a, ludek_x, ludek_y ); } else if( frame >= 10 && frame < 15 ) { draw_sprite( bufor, naruto_resengan_b, ludek_x, ludek_y ); } else if( frame >= 15 && frame < 20 ) { draw_sprite( bufor, naruto_resengan_c, ludek_x, ludek_y ); } else if( frame >= 20 && frame < 30 ) { draw_sprite( bufor, naruto_resengan_d, ludek_x, ludek_y ); } else if( frame >= 30 && frame < 40 ) { draw_sprite( bufor, naruto_resengan_e, ludek_x, ludek_y ); } else if( frame >= 40 && frame < 50 ) { draw_sprite( bufor, naruto_resengan_f, ludek_x, ludek_y ); } else if( frame >= 50 && frame < 60 ) { draw_sprite( bufor, naruto_resengan_g, ludek_x, ludek_y ); } } } }
Dzięki za pomoc ;) |
|
McAffey |
» 2011-04-04 09:38:04 Nie możesz to jakimiś warunkami zabezpieczyć ? Np: bool klikniecie = false;
if( klikniecie == false ) { if( key[ KEY_G ] ) { w = 7; klikniecie = true; } }
if( w == 7 ) { klikniecie = false; w = 5; }
Nie wiem czy to zadziała tak jak chcesz bo napisałem na poczekaniu i nie kompilowałem, ale spróbuj pokombinować w tym kierunku. edit: A poza tym, czemu warunki w if'ie : if(( w >= 7 ) &&( w < 8 ) ) masz w dodatkowych nawiasach, i czemu jak wyżej deklarujesz w = 7; nie zrobisz po prostu if'a : if( w == 7 ) ? |
|
Borysiak Temat założony przez niniejszego użytkownika |
» 2011-04-04 21:48:11 Sory ze odpisuje teraz ale nie miałem czasu Sory ja chyba źle sprecyzowawszy pytanie i nie zamiscilem jednej rzeczy w kodzie :p Bo jak widzisz każde zdjęcie jest wczytywane wtedy kiedy frame równa się jakieś wartości np: przy 10 wczytuje jedno ,aż frame dojdzie do 20 i wtedy wczyta drugie zdjęcie i ja chce żeby on wczytał te 7 zdjęć podczas jednego kliknięcia G ... Dzieki za odp ;) while( !key[ KEY_ESC ] ) { frame++; if( frame > 69 ) frame = 0; if( key[ KEY_G ] ) { w = 7; } if(( w >= 7 ) &&( w < 8 ) ) { if( frame < 10 ) { draw_sprite( bufor, naruto_resengan_a, ludek_x, ludek_y ); } else if( frame >= 10 && frame < 15 ) { draw_sprite( bufor, naruto_resengan_b, ludek_x, ludek_y ); } else if( frame >= 15 && frame < 20 ) { draw_sprite( bufor, naruto_resengan_c, ludek_x, ludek_y ); } else if( frame >= 20 && frame < 30 ) { draw_sprite( bufor, naruto_resengan_d, ludek_x, ludek_y ); } else if( frame >= 30 && frame < 40 ) { draw_sprite( bufor, naruto_resengan_e, ludek_x, ludek_y ); } else if( frame >= 40 && frame < 50 ) { draw_sprite( bufor, naruto_resengan_f, ludek_x, ludek_y ); } else if( frame >= 50 && frame < 60 ) { draw_sprite( bufor, naruto_resengan_g, ludek_x, ludek_y ); } } } }
A ten kod gdy wciskałem G wczytywać chodzenie bona w=5 mam chodzenie;) Bo program wykrywał G i przypisywal zaraz 5 bez wyswitlenia animacji o ktora mi chodzilo |
|
malan |
» 2011-04-04 23:37:47 A tak: if( key[ KEY_G ) ) { if( frame < 10 ) { draw_sprite( bufor, naruto_resengan_a, ludek_x, ludek_y ); } else if( frame >= 10 && frame < 15 ) { draw_sprite( bufor, naruto_resengan_b, ludek_x, ludek_y ); } else if( frame >= 15 && frame < 20 ) { draw_sprite( bufor, naruto_resengan_c, ludek_x, ludek_y ); } else if( frame >= 20 && frame < 30 ) { draw_sprite( bufor, naruto_resengan_d, ludek_x, ludek_y ); } else if( frame >= 30 && frame < 40 ) { draw_sprite( bufor, naruto_resengan_e, ludek_x, ludek_y ); } else if( frame >= 40 && frame < 50 ) { draw_sprite( bufor, naruto_resengan_f, ludek_x, ludek_y ); } else if( frame >= 50 && frame < 60 ) { draw_sprite( bufor, naruto_resengan_g, ludek_x, ludek_y ); } } ? |
|
McAffey |
» 2011-04-05 08:49:55 @malan wydaje mi się, że tak też nie, bo jak puścisz G zanim pokaże ostatnie zdjęcie to i tak go już nie pokaże. Ale wciąż nie wiem o co Ci chodzi, takie coś może być ? bool klikniecie = false;
while( !key[ KEY_ESC ] ) { frame++; if( frame > 69 ) frame = 0; if( klikniecie == false ) { if( key[ KEY_G ] ) { w = 7; klikniecie = true; } } if(( w >= 7 ) &&( w < 8 ) ) { if( frame < 10 ) { draw_sprite( bufor, naruto_resengan_a, ludek_x, ludek_y ); } else if( frame >= 10 && frame < 15 ) { draw_sprite( bufor, naruto_resengan_b, ludek_x, ludek_y ); } else if( frame >= 15 && frame < 20 ) { draw_sprite( bufor, naruto_resengan_c, ludek_x, ludek_y ); } else if( frame >= 20 && frame < 30 ) { draw_sprite( bufor, naruto_resengan_d, ludek_x, ludek_y ); } else if( frame >= 30 && frame < 40 ) { draw_sprite( bufor, naruto_resengan_e, ludek_x, ludek_y ); } else if( frame >= 40 && frame < 50 ) { draw_sprite( bufor, naruto_resengan_f, ludek_x, ludek_y ); } else if( frame >= 50 && frame < 60 ) { draw_sprite( bufor, naruto_resengan_g, ludek_x, ludek_y ); klikniecie = false; w = 5; } } } } Po czymś takim powinny niezależnie od tego jak długo trzyma się G, 1 raz wszystkie zdjęcia pokazać. Jednak trudno powiedzieć w ciemno, a kompilować twój kawałek kodu, bez jego pozostałej części i plików nie chce mi się. |
|
musk |
» 2011-04-08 11:02:06 while( !key[ KEY_ESC ] ) { int frame = 0; if( key[ KEY_G ] ) { for( frame = 0; frame < 61; frame++ ) { if( frame < 10 ) { draw_sprite( bufor, naruto_resengan_a, ludek_x, ludek_y ); } if( frame >= 10 && frame < 15 ) { draw_sprite( bufor, naruto_resengan_b, ludek_x, ludek_y ); } if( frame >= 15 && frame < 20 ) { draw_sprite( bufor, naruto_resengan_c, ludek_x, ludek_y ); } if( frame >= 20 && frame < 30 ) { draw_sprite( bufor, naruto_resengan_d, ludek_x, ludek_y ); } if( frame >= 30 && frame < 40 ) { draw_sprite( bufor, naruto_resengan_e, ludek_x, ludek_y ); } if( frame >= 40 && frame < 50 ) { draw_sprite( bufor, naruto_resengan_f, ludek_x, ludek_y ); } if( frame >= 50 && frame < 60 ) { draw_sprite( bufor, naruto_resengan_g, ludek_x, ludek_y ); } } } }
Może tak? |
|
McAffey |
» 2011-04-08 13:58:59 Myślę, że dopóki autor tematu się nie odezwie nie ma co wysnuwać nowych propozycji (jeśli w ogóle się odezwie) :) |
|
Borysiak Temat założony przez niniejszego użytkownika |
» 2011-04-10 15:46:53 Sorki że sie nie odzywałem ale nie mialem dostpu do kompa ;) Dalej nie działa ale ja juz sobie to odpuściłem i wziałem za coś innego :) Dzieki |
|
« 1 » |