Skocz do zawartości
Husky7

Problem z przyciskami

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 :)

Udostępnij tego posta


Odnośnik do posta
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?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Aha... ok to popróbuje w takim razie :) Dzięki wielkie :)

Udostępnij tego posta


Odnośnik do posta
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 :/

Udostępnij tego posta


Odnośnik do posta
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;

(...)

}

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Ok nadrobię zaległości :)

Pozamieniałem kod i działa :D ale gdy postać ma kolizję z innym obiektem, przyciski przesuwają się o tą wartość "5". Jak to można zniwelować?

 

Mb9eOD6.gif

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

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

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

A czy czasem end step nie dzieje sie po draw? To też nie rozwiąże problemu.

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

Udostępnij tego posta


Odnośnik do posta
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?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

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

Zaloguj się tutaj

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×