Skocz do zawartości

Problem z teleportacją


Rekomendowane odpowiedzi

Problem polega na tym, iż z portalu niebieskiego teleportacja działa poprawnie (teleportacja do zielonego), ale z zielonego do niebieskiego już działać nie chce :/ (kod jest w objekcie do kontrolowania portali (to nie jest gracz))

GML
//Green to Blue

with(obj_player)

{

if place_meeting(x,y,obj_portal_green) && keyboard_check_pressed(vk_up)

{

if instance_exists(obj_portal_blue)

{

effect_create_above(ef_ring,obj_portal_green.x,obj_portal_green.y,0.6,c_green);

with(obj_player)

{

x=obj_portal_blue.x

y=obj_portal_blue.y

}

}

}

}

//Blue to Green

with(obj_player)

{

if place_meeting(x,y,obj_portal_blue) && keyboard_check_pressed(vk_up)

{

if instance_exists(obj_portal_green)

{

effect_create_above(ef_ring,obj_portal_blue.x,obj_portal_blue.y,0.6,c_blue);

with(obj_player)

{

x=obj_portal_green.x

y=obj_portal_green.y

}

}

}

}

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

czemu podwójne with(obj_player)?

 

GML
with(obj_player)

{

x=obj_portal_green.x

y=obj_portal_green.y

}

 

nie wystarczy

 

GML
x=obj_portal_green.x

y=obj_portal_green.y

 

?

Odnośnik do komentarza
Udostępnij na innych stronach

Może nie wykrywa kolizji? Kod wydaje mi się dobry, więc to chyba jedyne rozwiązanie.

Musisz sprawdzić wgl zachodzi kolizja między graczem a zielonym teleportem, przykładowo w ewencie kolizji zamknij grę.

 

Kolizja się pojawia bo mam inny objekt do narysowania czegoś kiedy jest właśnie ta kolizja

 

czemu podwójne with(obj_player)?

 

GML with(obj_player)

{

x=obj_portal_green.x

y=obj_portal_green.y

}

 

nie wystarczy

 

GML x=obj_portal_green.x

y=obj_portal_green.y

 

?

 

Jednak wystarczy to tak jak mówisz, ale problem nie zniknął, dalej z zielonego nie można przejść do niebieskiego

Odnośnik do komentarza
Udostępnij na innych stronach

Popatrz. Nie ma żadnej blokady.

Gracz wchodząc do zielonego portalu, przenosi się do niebieskiego. Następnie jest od razu teleportowany z powrotem.

Polecam używać debugera i patrzeć co się dzieje krok po kroku.

Odnośnik do komentarza
Udostępnij na innych stronach

Popatrz. Nie ma żadnej blokady.

Gracz wchodząc do zielonego portalu, przenosi się do niebieskiego. Następnie jest od razu teleportowany z powrotem.

Polecam używać debugera i patrzeć co się dzieje krok po kroku.

 

Nie mam pojecia jak dziala debugger mode. Zrobilem zeby z niebieskiego do zielonego klikalo sie strzalke w dol i jest ok.

Odnośnik do komentarza
Udostępnij na innych stronach

Faktycznie nie ma blokady :D

Reavel, możesz dodać dodatkową zmienną, aby czas sprawdzała, np:

GML
//Green to Blue

with(obj_player)

{

if place_meeting(x,y,obj_portal_green) && keyboard_check_pressed(vk_up) && moze=1

{

if instance_exists(obj_portal_blue)

{

effect_create_above(ef_ring,obj_portal_green.x,obj_portal_green.y,0.6,c_green);

x=obj_portal_blue.x

y=obj_portal_blue.y

moze=0

alarm[0]=1

}

}

}

//Blue to Green

with(obj_player)

{

if place_meeting(x,y,obj_portal_blue) && keyboard_check_pressed(vk_up) && moze=1

{

if instance_exists(obj_portal_green)

{

effect_create_above(ef_ring,obj_portal_blue.x,obj_portal_blue.y,0.6,c_blue);

x=obj_portal_green.x

y=obj_portal_green.y

moze=0

alarm[0]=1

}

}

}

 

i w alarm[0] ustawiasz moze=1.

Odnośnik do komentarza
Udostępnij na innych stronach

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ę
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...