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. |
|
Sticky Temat założony przez niniejszego użytkownika |
» 2010-02-10 00:58:32 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. |
|
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 :) |
|
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 |
|
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ć :) |
|
malan |
» 2010-02-10 01:05:59 Oczywiście, ale ludzik wtedy się będzie "teleportował" ;p. |
|
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:) |
|
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? |
|
1 « 2 » 3 4 |