Jecht Opublikowano 21 Lutego 2007 Udostępnij Opublikowano 21 Lutego 2007 Jak zrobic żeby przeciwnik mnie gonił czyli podążaj za mną i żeby mógł chodzic tylko góra dół lewo prawo? Z góry BIG THX Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Elvis Opublikowano 21 Lutego 2007 Udostępnij Opublikowano 21 Lutego 2007 Daj to w step: move_towards_point(twoja nazwa.x,twoja nazwa.y,5) PS: Byłem pierwszy :P :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Jecht Opublikowano 21 Lutego 2007 Autor Udostępnij Opublikowano 21 Lutego 2007 ok, ale nie będzie chodził na pewno na skosy? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Elvis Opublikowano 21 Lutego 2007 Udostępnij Opublikowano 21 Lutego 2007 random(360) speed=2 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Zakol Opublikowano 21 Lutego 2007 Udostępnij Opublikowano 21 Lutego 2007 objectTarget = nazwa_obiektu; // obiekt docelowy objectSpeed = 7; // szybkosc poruszania sie cellSize = 50; // wielkosc 1 komorki siatki po ktorej obiekt sie porusza if (!variable_local_exists('objectDirection')) { x = round(x / cellSize) * cellSize; y = round(y / cellSize) * cellSize; objectDirection = 0; objectX = x; objectY = y; } if (x == objectX && y == objectY) { objectDirection = round(point_direction(x, y, objectTarget.x, objectTarget.y) / 90) * 90; objectX = x + sin(degtorad(objectDirection + 90)) * cellSize; objectY = y + cos(degtorad(objectDirection + 90)) * cellSize; } x += sign(objectX - x) * min(objectSpeed, abs(x - objectX)); y += sign(objectY - y) * min(objectSpeed, abs(y - objectY)); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Jecht Opublikowano 21 Lutego 2007 Autor Udostępnij Opublikowano 21 Lutego 2007 Zakol: Dokładnie o to mi chodziło :D Ale czy dałoby się jeszcze zrobic tak że jak idzie w lewo to ma inny sprite, jak idzie w prawo to inny, do góry i na dół? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pieter Opublikowano 21 Lutego 2007 Udostępnij Opublikowano 21 Lutego 2007 zakol dodał byś jeszcze do tego omijanie solidów ;D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Jecht Opublikowano 21 Lutego 2007 Autor Udostępnij Opublikowano 21 Lutego 2007 Dokładnie :P i jeszcze co z ta zmiana sprite'a? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dangon Opublikowano 21 Lutego 2007 Udostępnij Opublikowano 21 Lutego 2007 if direction = 90 { sprite w gore } if direction = 180 { sprite w lewo } if direction = 270 { sprite w dol } if direction = 0 { sprite w prawo } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Jecht Opublikowano 21 Lutego 2007 Autor Udostępnij Opublikowano 21 Lutego 2007 Chyba zapomniałeś o sprite_index = ale nawet z tym to niedziała:/ i jak jeszcze zrobic żeby solidy omijał? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dangon Opublikowano 21 Lutego 2007 Udostępnij Opublikowano 21 Lutego 2007 O niczym nie zapomnialem poprostu chcialem abys sam wpisal tam kod na zmiane sprita ;) I nie mozliwe ze nie dziala :jezor: No chyba ze twoj komputer przykladowo w lewo chodzi pod katem 179, w gore pod katem 89, w lewo = 359, w dol 269 to no nie bedzie dzialac :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Jecht Opublikowano 21 Lutego 2007 Autor Udostępnij Opublikowano 21 Lutego 2007 nie, właśnie nie działa a użyłem tego kodu powyżej, Zakola. I jak w końcu zrobic to żeby omijał solidy?? EDIT: zapomniałem dodac że jak dodam ten kod na zmiane sprite'ów to przeciwnik jest cały czas animowany biegiem w prawo Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marmot Opublikowano 21 Lutego 2007 Udostępnij Opublikowano 21 Lutego 2007 Jak użyłeś kodu zakola, to ustaw image_angle=direction pod warunkiem, że masz zarejestrowanego GM i sprite obróconego w prawo :) . Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Zakol Opublikowano 21 Lutego 2007 Udostępnij Opublikowano 21 Lutego 2007 ęłęó// Zmienne do edycji objectTarget = nazwa_obiektu; // obiekt docelowy objectSolid = nazwa_obiektu; // obiekt do ominiecia objectSpeed = 5; // szybkosc poruszania sie cellSize = 50; // wielkosc 1 komorki siatki po ktorej obiekt sie porusza spriteUp = sprite_do_gory; // sprite w ruchu do gory spriteRight = sprite_w_prawo; // sprite w ruchu w prawo spriteBottom = sprite_na_dol; // sprite w ruchu na dol spriteLeft = sprite_w_lewo; // sprite w ruchu w lewo // Zmienne systemowe if (!variable_local_exists('objectDirection')) { x = round(x / cellSize) * cellSize; y = round(y / cellSize) * cellSize; objectCollision = 0; objectDirection = 0; objectX = x; objectY = y; } // Jezeli obiekt dotarl do punktu kontrolnego if (x == objectX && y == objectY) { // Ustalenie kierunku docelowego objectCollision = 0; objectDirection = round(point_direction(x, y, objectTarget.x, objectTarget.y) / 90) * 90; // Sprawdzenie kolizji z solid while ((collision_line(x, y, objectX, objectY, objectSolid, 1, 1) || objectCollision == 0) && abs(objectCollision) < 3) { // Wyznaczenie punktu kontrolnego objectX = x + sin(degtorad(objectDirection + 90)) * cellSize; objectY = y + cos(degtorad(objectDirection + 90)) * cellSize; // Obliczenie opcjonalnego kierunku objectCollision = (objectCollision + sign(sign(objectCollision) + 1)) * -1; objectDirection += objectCollision * 90; } } // Zmiana sprite switch (((sign(objectX - x) + 1) * 10) + (sign(objectY - y) + 1)) { case 10: {sprite_index = spriteUp; break;} case 12: {sprite_index = spriteBottom; break;} case 1: {sprite_index = spriteLeft; break;} case 21: {sprite_index = spriteRight; break;} } // Przemieszczenie obiektu x += sign(objectX - x) * min(objectSpeed, abs(x - objectX)); y += sign(objectY - y) * min(objectSpeed, abs(y - objectY)); Dodam jeszcze, ze calosc mozna zrobic prosciej, w 3 linijkach, uzywajac Motion Planning. EDIT: naprawiem sprity i zmienilem omijanie na podany konkretny obiekt (mozna skorzystac z parentow); zeby omijac solidy trzeba by petla przeleciec wszystkie pixele od aktualnego obiektu do punktu kontrolnego w poszukiwaniu solidow, ale tego juz mi sie nie chce pisac ;p Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pieter Opublikowano 21 Lutego 2007 Udostępnij Opublikowano 21 Lutego 2007 no i zakol właśnie napisał nam ruch w stylu tibi ;] Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Jecht Opublikowano 22 Lutego 2007 Autor Udostępnij Opublikowano 22 Lutego 2007 Jest już perfekto, poza tym że wciąż nie omija solidów :( Sprite'y się zmieniają ale np. ja idzie do góry do animowany jest biegiem w prawo ale to już sobie podmienię :) No niby można motion planningiem ale chodzi jeszcze o to żeby chodził tylko góra dół lewo prawo a tego już nie umiem tam dodać :( Wie ktoś jak? Bo musi omijać solidy, a w tym kodzie Zakola nie omija a co to jest?: ęłęó// Zmienne do edycji przez to gra mi się nie włącza :P Warn za floodowanie forum (3 posty pod rząd). Połączyłem je. Marmot. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Zychu Opublikowano 23 Lutego 2007 Udostępnij Opublikowano 23 Lutego 2007 to se to wrzuc ;p i nie pisz trzech postow naraz przecierz chyba znasz ciocie edit??XDXD Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Jecht Opublikowano 23 Lutego 2007 Autor Udostępnij Opublikowano 23 Lutego 2007 znam znam xD ale wtedy nikt by tego tematu juz nie zauwazyl. Ale on nadal nieomija solidow, nawet tego 1 wybranego obiektu:/ HELP Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się