Skocz do zawartości

Problem z przyciskami


Husky7

Rekomendowane odpowiedzi

Cześć :) , mam problem z poruszającymi się przyciskami:

 

NDjMDuB.gif

 

W roomie "narysowałem" jakby pokrywę konsoli nad obiektami głównymi gry, a całkowicie na wierzchu umieściłem przyciski ale już nie komendą draw_sprite, tylko po ich stworzeniu, wyznaczam pozycję:

GML
if room = roomKK

{

x = view_xview+120;

y = view_yview+572;

}

próbowałem również z:

 

GML
if room = roomKK

{

mp_linear_step(view_xview+120, view_yview+572, 100, false);

}

 

ale za każdym razem gdy postać się porusza (na zasadzie gdy przycisnę odpowiedni przycisk to x = x+5) one również.

Nie wiem jak pozbyć sie tego efektu :/

Byłbym wdzięczny za pomoc :)

Odnośnik do komentarza
Udostępnij na innych stronach

Dawno nie było kogoś z tym problemem. Ogółem chodzi o to że masz zepsutą kolejność wykonywania kodu.

Poprawnie powinno być: Poruszenie postaci => ustawienie view => narysowanie gui.

U ciebie jest błąd bo kolejność jest nie poprawna. Nie ma jednego rozwiązania. Musisz prześledzić co jest nie tak. Może musisz przestawić miejsce w którym ustawiasz view?

Odnośnik do komentarza
Udostępnij na innych stronach

Dawno nie było kogoś z tym problemem. Ogółem chodzi o to że masz zepsutą kolejność wykonywania kodu.

Poprawnie powinno być: Poruszenie postaci => ustawienie view => narysowanie gui.

U ciebie jest błąd bo kolejność jest nie poprawna. Nie ma jednego rozwiązania. Musisz prześledzić co jest nie tak. Może musisz przestawić miejsce w którym ustawiasz view?

View ustawiam od razu w roomie. Najpierw próbowałem przestawić kod z

GML
with(P1) P1.x=P1.view_xview+120 P1.y=P1.view_yview+572;
np. przed ruchem postaci, lub po, w stepie. próbowałem też go przekształcić na draw_sprite ale przyciski się animują i nie umie tego zrobić :(

 

Aktualnie dałem to do ruchu postaci:

(np. ruch w prawo)

GML
if global.right = 1

{

{

sprite_index = spr_KKplayerR;

image_speed = 0.2;

x = x+5;

with(P1) P1.x=P1.view_xview+120 P1.y=P1.view_yview+572;

with(P2) P2.x=P2.view_xview+326 P2.y=P2.view_yview+548;

with(P3) P3.x=P3.view_xview+348 P3.y=P3.view_yview+649;

with(P4) P4.x=P4.view_xview+418 P4.y=P4.view_yview+579;

with(P5) P5.x=P5.view_xview+420 P5.y=P5.view_yview+456;

with(P6) P6.x=P6.view_xview+172 P6.y=P6.view_yview+458;

with(P7) P7.x=P7.view_xview+126 P7.y=P7.view_yview+686;

with(kkPlay) kkPlay.x=P6.x kkPlay.y=P6.y;

}

}

else if global.left != 1 {image_index = 0; image_speed = 0;}

 

Ale też nie działa.

Cały dzień nad tym siedze i nic :/

Odnośnik do komentarza
Udostępnij na innych stronach

GML
with(P1) P1.x=P1.view_xview+120 P1.y=P1.view_yview+572;
Te kawałki kodu nie mają sensu. Poczytaj o adresowaniu zmiennych z innych instance. view_xview w ogóle jest globalne, no i nie jest zmienną a tablicą view_xview[0].

 

Wiec analizując co pokazałeś ustalam że mógłbyś chyba zrobić to tak:

GML
if global.right = 1

{

sprite_index = spr_KKplayerR;

image_speed = 0.2;

x += 5;

view_xview[0] += 5;

P1.x=view_xview[0]+120;

P1.y=view_yview[0]+572;

(...)

}

Odnośnik do komentarza
Udostępnij na innych stronach

Musisz to rozdzielić, gracza przesuwać w step a przyciski przesuwać w end step.

Zrobiłem tak i faktycznie nic się nie zmieniło :/

 

Najleniwsze wyjście jakie widze to zostawić kolizje przycisków tak jak są, ale ich rysowanie walnąć w Draw View

O co dokładniej chodzi?

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ę...