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

[Allegro] Płynne cofanie się

Ostatnio zmodyfikowano 2013-12-17 21:48
Autor Wiadomość
Gabes
» 2013-12-17 18:14:12
Przykład z mojego Space Invaders z auto rewersem i obniżaniem się pozycji y.
C/C++
bool stan = 0;
...
...
...
if( kierunek_x <= 300 && stan == 0 ) kierunek_x++; else stan = 1; // kierunek prawo
if( kierunek_x >= 0 && stan == 1 ) kierunek_x--; else stan = 0; // kierunek lewo
if( kierunek_x == 0 && stan == 0 || kierunek_x == 300 && stan == 1 ) kierunek_y = kierunek_y + 8;
P-99460
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ć.

P-99461
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.
P-99463
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. 
P-99482
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.
P-99489
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:


C/C++
bool status = 0;

while( !key[ KEY_ESC ] )
{
    while( speed > 0 ) {
        speed--;
        if( key[ KEY_LEFT ] ) fatboy_x--;
       
       
       
        //if( key[ KEY_UP ] ) fatboy_y--;
       
        // if( key[ KEY_DOWN ] ) fatboy_y++;
       
        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--;
       
P-99534
1 « 2 »
Poprzednia strona Strona 2 z 2