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

[allegro]chodzenie za pomocą myszki.

Ostatnio zmodyfikowano 2010-02-10 06:53
Autor Wiadomość
Sticky
Temat założony przez niniejszego użytkownika
» 2010-02-10 00:55:27
haha, rzeczywiście :D zaraz poprawie, i napiszę czy działa.
P-13747
Sticky
Temat założony przez niniejszego użytkownika
» 2010-02-10 00:58:32
C/C++
if( mouse_b == 1 ) {
    if( mouse_x > LUDEK_X ) {
        while( mxp > 10 ) {
            dir = DIR_RIGHT;
            LUDEK_X += 10;
            tmp = 1;
        }
    }
    if( mouse_x < LUDEK_X ) {
        while( mxp <- 10 ) {
            dir = DIR_LEFT;
            LUDEK_X -= 10;
            tmp = 1;
        }
    }
   
    if( mouse_y > LUDEK_Y ) {
        while( myp > 10 ) {
            dir = DIR_DOWN;
            LUDEK_Y += 10;
            tmp = 1;
        }
    }
    if( mouse_y < LUDEK_Y ) {
        while( myp <- 10 ) {
            dir = DIR_UP;
            LUDEK_Y += 10;
            tmp = 1;
        }
    }
}
teraz to wygląda tak.
Wszystko co jest w pętli głównej już działa, ale jak klikam myszką ludzik się nie rusza ;/


/edit

nie, to chyba nadal jest źle. muszę pomyśleć na spokojnie. chyba za bardzo mi się z tym śpieszy, nie wiem dlaczego.
P-13748
dmx81
» 2010-02-10 00:58:43
w lewo - dodajesz, w prawo odejmujesz, w dol - dodajesz,w gore....dodajesz??

tez do pewnego momentu chcialem stosowac petle while w srodku gry... i szybko z tym skonczylem, gdyz w tym momencie gra sie "zatrzymywala" - pamietaj, z tej petli program nie wyjdzie az nie spelni warunku... wiec jesli klikniesz gdzies daleko od ludka... a masz zamiar rysowac jego ruch - to narysuje ci zaraz przed kliknieciem... i jesli sie nie zawiesi, to narysuje ci juz po osiagnieciu celu - czyli skoczy na drugi koniec ekranu np

lepiej uzywac if'ow - if myszka wyzej niz ludek, ludek.y-- i to wystarczy - bedziesz mial zapewnione przejscie krok po kroku - mozesz tez zapisywac np klikniecie myszki, MX i MY a pozniej, if ludek.x<MX, ludek++ itd

pamietaj o tych petlach while - ja stosuje je tylko dla glownej petli - wyjscie z gry, oraz timery - ostatnio daje rade juz z kilkoma ;) a w samej gdzie ify, fory i duzo bool'ow :)
P-13749
dmx81
» 2010-02-10 01:02:12
masz tez if wcisniety klawisz - wtedy sprawdz czy myszka=ludek....
byc moze musisz trzymac ciagle wcisniety aby ludek sie poruszal ;)
tak jak napisalem nizej, moze zapisz pozycje klikniecia w zmiennych, a pozniej z nimi porownuj pozycje ludka
P-13750
Sticky
Temat założony przez niniejszego użytkownika
» 2010-02-10 01:02:30
dzięki za rade, ale jeżeli wszystko napiszę tak jak należy warunki pętli while będą spełniane i gra nie będzie się zatrzymywać :)
P-13751
malan
» 2010-02-10 01:05:59
Oczywiście, ale ludzik wtedy się będzie "teleportował" ;p.
P-13752
dmx81
» 2010-02-10 01:10:54
dokladnie, jak napisalem wyzej :) musisz przemyslec dzialanie danej petli - sprobuj samemu sobie przeleciec przez kod tak, jakby to robil kompilator (przynajmniej mi to duzo ulatwia i mozna czesc bledow samemu wychwycic) sam zobaczysz, ze normalnie, zanim nie wejdziesz w petle while, bedziesz wyswietlal obraz na biezaco, jak wejdziesz w petle while z ludkiem na x,y (10,10) a wyjdziesz na (600,500), to nie wyswietli ci jego kroczkow, tylko wychodzac z petli, ma juz nowe wspolrzedne i to tam wyswietli ludka -  musialbys do petli while wrzucic rowniez wyswietlanie - ale ja na swoich doswiadczeniach wole jednak omijac while, byc moze kiedys nie bede umial sie juz bez niej obejsc, ale poki co, nie bylo takiej potrzeby:)
P-13753
Sticky
Temat założony przez niniejszego użytkownika
» 2010-02-10 01:11:53
czyli według was lepiej zrobić to na if'ach, tak?
P-13754
1 « 2 » 3 4
Poprzednia strona Strona 2 z 4 Następna strona