ALT Opublikowano 7 Maja 2011 Udostępnij Opublikowano 7 Maja 2011 Wim że to banalne pytanie,ale dawno nie siedziałem w GameMaker'ze. Mam taki kod: GML image_angle=direction if (keyboard_check(vk_left)) {direction = 270 speed=3; } else if (keyboard_check(vk_right)) { direction = 90 speed=3; } else if (keyboard_check(vk_up) ) { direction = 0 speed=3; } else if (keyboard_check(vk_down) ) { direction = 180 speed=3; } else {speed=0} Dzięki temu kodowi object Player powinien być skierowany w kierunku którym jedzie(Player to czołg),ale jedzie w złym kierunku! Co jest źle? Edit: Zapomniałbym,na początku object jest skierowany w góre. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
karolo320 Opublikowano 7 Maja 2011 Udostępnij Opublikowano 7 Maja 2011 GML image_angle=direction if (keyboard_check(vk_left)) {direction = 180 speed=3; } else if (keyboard_check(vk_right)) { direction = 0 speed=3; } else if (keyboard_check(vk_up) ) { direction = 90 speed=3; } else if (keyboard_check(vk_down) ) { direction = 270 speed=3; } else {speed=0} prosze cie bardzo zapomniales ze w GM direction=0 to prawo Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 7 Maja 2011 Udostępnij Opublikowano 7 Maja 2011 image_angle=direction if (keyboard_check(vk_left)) {direction = 180 speed=3; } else if (keyboard_check(vk_right)) { direction = 0 speed=3; } else if (keyboard_check(vk_up) ) { direction = 90 speed=3; } else if (keyboard_check(vk_down) ) { direction = 270 speed=3; } else {speed=0 } E:@UP:Byłeś szybszy;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
TheMarcQ Opublikowano 7 Maja 2011 Udostępnij Opublikowano 7 Maja 2011 W twoim kodzie jest male utrudnienie: nie mozna jednoczesnie skrecac i jechac, ja bym zrobil to tak: GML if (keyboard_check(vk_left)) {direction = 180 speed=3; } else if (keyboard_check(vk_right)) { direction = 0 speed=3; } //czyli bez tego else if (keyboard_check(vk_up) ) { direction = 90 speed=3; } else if (keyboard_check(vk_down) ) { direction = 270 speed=3; } else {speed=0 } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mentoss Opublikowano 7 Maja 2011 Udostępnij Opublikowano 7 Maja 2011 z tym, ze tu masz ruch na cztery strony, nie na zasadach direction+= to oznacz, ze bedzie do jazdy lewo-prawo z twoim kodem tylko direction sie bedzie zmienial Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 7 Maja 2011 Udostępnij Opublikowano 7 Maja 2011 @TheMarcQ: twój kod też jest zły. Moja propozycja to zrezygnowanie ze zmiennych speed i direction. GML if(keyboard_check(vk_left)) x -= 3 else if(keyboard_check(vk_right)) x += 3 if(keyboard_check(vk_up)) y -= 3 else if(keyboard_check(vk_down)) y += 3 image_angle = point_direction(xprevious,yprevious,x,y) Sposób nie eliminuje jednego mankamentu, a mianowicie po zatrzymaniu się, gracz będzie zawsze zwrócony w prawo. Możesz to jednak wykluczyć używając pewnego warunku, ale to zrobisz już sam ^^ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mentoss Opublikowano 7 Maja 2011 Udostępnij Opublikowano 7 Maja 2011 dlaczego niby miałby byc w prawo ?? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 7 Maja 2011 Udostępnij Opublikowano 7 Maja 2011 A dlaczego nie? Funkcja point_direction zwraca 0, gdy punkty podane w argumentach nakładają się na siebie. Chyba. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ALT Opublikowano 7 Maja 2011 Autor Udostępnij Opublikowano 7 Maja 2011 Zamykam,dzięki karolo320 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi