[Allegro] Płynne cofanie się
Ostatnio zmodyfikowano 2013-12-17 21:48
Gabes |
» 2013-12-17 18:14:12 Przykład z mojego Space Invaders z auto rewersem i obniżaniem się pozycji y. bool stan = 0; ... ... ... if( kierunek_x <= 300 && stan == 0 ) kierunek_x++; else stan = 1; if( kierunek_x >= 0 && stan == 1 ) kierunek_x--; else stan = 0; if( kierunek_x == 0 && stan == 0 || kierunek_x == 300 && stan == 1 ) kierunek_y = kierunek_y + 8; |
|
maver144 Temat założony przez niniejszego użytkownika |
» 2013-12-17 18:14:18 Będę chyba musiał pokombinować sam...
x%2!==4 zwróci wszystkie wartości których reszta z nie będzie równa 4 a może być przecież równie dobrze 6 czy 3 więc mogłoby się przydać.
|
|
pekfos |
» 2013-12-17 18:23:28 Będę chyba musiał pokombinować sam... |
Znasz podstawy, więc wskazówki powinny wystarczyć. Gdyby moja poprzednia nie była zbyt jasna: Chcesz by przekroczenie 300 włączało cofanie, np do 200, więc gdy osiągniesz 300, ustaw w jakiejś zmiennej informację, że cofasz. Wtedy ignoruj warunek x>300 i, zamiast tego, sprawdzaj, czy osiągnąłeś docelową pozycję. x%2!==4 zwróci wszystkie wartości których reszta z nie będzie równa 4 a może być przecież równie dobrze 6 czy 3 więc mogłoby się przydać. |
To bez sensu. Dodatkowo, modulo 2 nigdy nie da wartości 4. |
|
maver144 Temat założony przez niniejszego użytkownika |
» 2013-12-17 19:02:37 Wpisałem 2 i 4 od tak nie myśląc, czy może dać taki wynik czy nie. Sens natomiast jest było kiedyś jakieś zadanie maturalne o ciągach w których trzeba było wyliczyć reszty iluśtam elementów z kolei, no i gdyby było trzeba wypisać tylko te które mają reszty które mają jakąś konkretną wartość, za miast np. porównywać każdy wynik to ztablicowanej wartości. |
|
pekfos |
» 2013-12-17 19:28:07 Sensu nie ma - koniec offtopu. To, że zadanie maturalne można by zrobić jedną instrukcją, to nie jest sens. Taka funkcjonalność jest praktycznie niemożliwa do zaimplementowania. A nawet jeśli, to była by zbyt wolna i zbyt pamięciożerna, by nadawać się do czegokolwiek. W każdym potencjalnym zastosowaniu takiego tworu, dobrze dobrany i zaimplementowany algorytm działałby bez porównania lepiej. |
|
maver144 Temat założony przez niniejszego użytkownika |
» 2013-12-17 21:48:16 Dzięki wszystkim za pomoc, wrzucam swoje rozwiązanie gdyby ktoś miał podobny problem: bool status = 0;
while( !key[ KEY_ESC ] ) { while( speed > 0 ) { speed--; if( key[ KEY_LEFT ] ) fatboy_x--; if( key[ KEY_RIGHT ] && fatboy_x == 300 ) { status = 1; } else if( fatboy_x == 0 ) { status = 0; } if( key[ KEY_RIGHT ] && status == 0 ) fatboy_x++; if( key[ KEY_RIGHT ] && status == 1 ) fatboy_x--;
|
|
1 « 2 » |