NukeBoards

Pomoc - [Fusion] Animację się nie aktywują podczas Ruchu.

Frandzelek - 26-08-2017, 01:14
: Temat postu: [Fusion] Animację się nie aktywują podczas Ruchu.
Witam.
Zrobiłem w grze ruch typu gier Moba. Tam gdzie klikniemy PPM tam nasza postać idzie.
Problem w tym że nie aktywują się jej animacje. Jeżeli klikniemy żeby postać szła np w prawo. To idzie do wyznaczonego miejsca jednak bez animacji, jeden zacięty frame.
msg - 26-08-2017, 09:14
:
1. Ustawiłeś animacji zapętlenie?
2. Jeśli twój ruch nie jest ruchem wbudowanym, to przemieszczeniu obiektu aktywnego nie towarzyszy automatyczna zmiana animacji. Musisz tę zmianę wywołać z poziomu klikodu.
3. Jeśli twój ruch jest ruchem wbudowanym, to przemieszczeniu obiektu aktywnego towarzyszy animacja Walking lub Running. Jeśli twoje klatki są w animacji o innej nazwie - znowu trzeba zadbać o to z poziomu klikodu albo przenieść animację w odpowiednie miejsce.
Frandzelek - 26-08-2017, 14:38
:
msg napisał/a:
1. Ustawiłeś animacji zapętlenie?
2. Jeśli twój ruch nie jest ruchem wbudowanym, to przemieszczeniu obiektu aktywnego nie towarzyszy automatyczna zmiana animacji. Musisz tę zmianę wywołać z poziomu klikodu.
3. Jeśli twój ruch jest ruchem wbudowanym, to przemieszczeniu obiektu aktywnego towarzyszy animacja Walking lub Running. Jeśli twoje klatki są w animacji o innej nazwie - znowu trzeba zadbać o to z poziomu klikodu albo przenieść animację w odpowiednie miejsce.


Wszystko jest ok. Może podam Event Editor tego jak zrobiłem ten ruch. Niestety nie ogarniam wstawiania tutaj tych klikkodów ale postaram się to jak najlepiej wytłumaczyć.

Mam 2 obiekty. Postać oraz Obiekt1 (To nie ma znaczenia w tym systemie)

Start of Frame:
Obiekt1 - Make invisible

User click with right button:
Postać - Set internal flag 1 on
Obiekt1 - Set position X jako XMouse oraz Y jako YMouse

Jeżeli na postaci jest Internal Flag 1 on, oraz porównanie: X( "Postać" ) < X( "Obiek1" ):
Postać - Set X position to X( "Postać" ) +2

Jeżeli na postaci jest Internal Flag 1 on, oraz porównanie: X( "Postać" ) > X( "Obiekt1" ):
Postać - Set X position to X( "Postać" ) -2

Jeżeli na postaci jest Internal Flag 1 on, oraz porównanie: Y( "Postać" ) < Y( "Obiekt1" ):
Postać - Set Y position to Y( "Postać" ) +2

Jeżeli na postaci jest Internal Flag 1 on, oraz porównanie: Y( "Postać" ) > Y( "Obiekt1" ):
Postać - Set Y position to Y( "Postać" ) -2

Postać is overlapping Object1, oraz Only one action when event loops:
Postać - Set internal flag 1 off
Obiekt1 - Set position (gdzieś poza plansze gry)

Postać is getting closer than 1 pixels from window's edge:
Postać - Set internal flag 1 off
Obiekt1 - Set position (gdzieś poza plansze gry)

[ Dodano: 26-08-2017, 14:38 ]
Dodam że zmienne +2 i -2 odpowiadają za szybkość przemieszczania się, jeżeli ma to jakiekolwiek znaczenie :P
Oskar1101 - 26-08-2017, 18:27
:
Nie widzę tutaj miejsca w którym wywołujesz animację. Skąd gra ma wiedzieć że postać się porusza skoro nigdzie jej tego nie mówisz.
kamiledi15 - 26-08-2017, 20:12
:
msg napisał/a:

2. Jeśli twój ruch nie jest ruchem wbudowanym, to przemieszczeniu obiektu aktywnego nie towarzyszy automatyczna zmiana animacji. Musisz tę zmianę wywołać z poziomu klikodu.


Dodaj:
Jeżeli na postaci jest Internal Flag 1 on i jeśli animacja walking nie jest grana - change anim to walking.
Jeżeli Internal Flag 1 jest off, to change anim na stopped.
Dodatkowo pewnie trzeba będzie ręcznie poustawiać kierunek.
Rediee - 28-08-2017, 08:18
:

Kod:
Jeżeli na postaci jest Internal Flag 1 on, oraz porównanie: X( "Postać" ) < X( "Obiek1" ):
Postać - Set X position to X( "Postać" ) +2
Postać - ustaw animację na walking
Postać - ustaw kierunek animacji na: *prawo*

Jeżeli na postaci jest Internal Flag 1 on, oraz porównanie: X( "Postać" ) > X( "Obiekt1" ):
Postać - Set X position to X( "Postać" ) -2
Postać - ustaw animację na walking
Postać - ustaw kierunek animacji na: *lewo*

Jeżeli na postaci jest Internal Flag 1 on, oraz porównanie: Y( "Postać" ) < Y( "Obiekt1" ):
Postać - Set Y position to Y( "Postać" ) +2
Postać - ustaw animację na walking
Postać - ustaw kierunek animacji na: *góra*

Jeżeli na postaci jest Internal Flag 1 on, oraz porównanie: Y( "Postać" ) > Y( "Obiekt1" ):
Postać - Set Y position to Y( "Postać" ) -2
Postać - ustaw animację na walking
Postać - ustaw kierunek animacji na: *dół*


to z kierunkiem postaci będzie generowało bugi, ale z tym sobie na pewno już poradzisz (dodatkową szufelką zdarzeń)
kamiledi15 - 29-08-2017, 15:30
:
Rediee, chyba trzeba jeszcze dodać to, co napisałem:
Cytat:
jeśli animacja walking nie jest grana - change anim to walking.
Jeżeli Internal Flag 1 jest off, to change anim na stopped.

W twojej wersji animacja zapętli się na pierwszej klatce, a potem się nie zatrzyma, gdy postać stanie.
wermi - 29-08-2017, 16:52
:
bzdura. jeżeli animacja walking już jest ustawiona to ponowne jej ustawienie nie zrestartuje jej
kamiledi15 - 29-08-2017, 17:50
:
Sprawdzę później w domu, ale dałbym głowę, że jeśli wywołujesz animację ciągle - bo flaga jest ciągle włączona - to widzisz tylko pierwszą klatkę animacji.

[ Dodano: 29-08-2017, 23:56 ]
Ok, zwracam honor :/