Skocz do zawartości

błąd w animacji


Cover

Rekomendowane odpowiedzi

No więc mam taki problem:

Chcę zrobić losowe poruszanie się gracza komputera , z przykładu.Ale gdy łącze to z kodem

depth=-y;


    {
    direction=90;
    speed=2;
    sprite_index=sVladWup;
    image_speed=0.4;
    }

    {
    direction=270;
    speed=2;
    sprite_index=sVladWdown;
    image_speed=0.4;
    }


    {
    direction=180;
    speed=4;
    sprite_index=sVladWleft;
    image_speed=0.4;
    }

    {
    direction=0;
    speed=4;
    sprite_index=sVladWrigt;
    image_speed=0.4;
    }

    {
    speed=0;
    image_speed=0;
    image_index=0;
    }
Nie wpisuje ''if keyboard...'' , bo to ma być komputer , a nie gracz

, to w grze bohater nie porusza się losowo , tylko w miejscu przeskakuje raz parę klatek , i się zatrzymuje na zawsze.

Co mam wpisać?

Odnośnik do komentarza
Udostępnij na innych stronach

W Create mam dwa Excute a piece code , w pierwszym nie mam nic a w drugim

 direction=90;
aktualny=90;
image_single=direction/7;
speed=2;
alarm[0]=20;

W Alarm 0 mam Excute a piece code , a w nim

 if direction==aktualny
{

liczba=floor(random(4.99));
switch (liczba)
{
case 0: aktualny=0; break;
case 1: aktualny=90; break;
case 2: aktualny=180; break;
case 3: aktualny=270; break;
}

speed=2;
alarm[0]=20;
}
else
{
if direction<aktualny direction+=5 else direction-=5;
speed=0;
image_single=direction/7;
alarm[0]=1;
}

I w Step mam w Excute a piece code

depth=-y;


    {
    direction = choose(90,0,180,270)
    speed=2;
    sprite_index=sVladWup;
    image_speed=0.4;
    }

    {
    direction = choose(90,0,180,270)
    speed=2;
    sprite_index=sVladWdown;
    image_speed=0.4;
    }


    {
    direction = choose(90,0,180,270)
    speed=4;
    sprite_index=sVladWleft;
    image_speed=0.4;
    }

    {
    direction = choose(90,0,180,270)
    speed=4;
    sprite_index=sVladWrigt;
    image_speed=0.4;
    }

    {
    speed=0;
    image_speed=0;
    image_index=0;
    }

I zrobiłem to co mówił 47xxxxxxxx i dalej nie działa

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

Tak, masz najpierw 4 razy ten sam kod, a potem speed = 0;

 

Nie wiem czy wiesz, ale jak napiszesz

 

speed = 1;
speed = 0;

to po wykonaniu tego kodu prędkośc jest równa 0, ale to chyba powinno być oczywiste.

Odnośnik do komentarza
Udostępnij na innych stronach

Jak teraz ten kod w step poprawiłem , to porusza się postać , ale tylko w prawo.

W kodzie mam

 depth=-y;


    {
    direction = choose(90,0,180,270)
    speed=2;
    sprite_index=sVladWup;
    image_speed=0.4;
    }

    {
    direction = choose(90,0,180,270)
    speed=2;
    sprite_index=sVladWdown;
    image_speed=0.4;
    }


    {
    direction = choose(90,0,180,270)
    speed=4;
    sprite_index=sVladWleft;
    image_speed=0.4;
    }

    {
    direction = choose(90,0,180,270)
    speed=4;
    sprite_index=sVladWrigt;
    image_speed=0.4;
    }

    {
    speed=4;
    image_speed=0;
    image_index=4;
    }

Odnośnik do komentarza
Udostępnij na innych stronach

GML
depth=-y;

 

direction = choose(0,90,180,270)

speed = 2

 

if direction = 0 then sprite_index = PRAWO

if direction = 90 then sprite_index = DÓŁ

if direction = 180 then sprite_index = LEWO

if direction = 270 then sprite_index = GÓRA

Czy ty wiesz co piszesz??? O_O

Pokaże Ci:

GML
depth=-y;//po co to?//depth to GŁĘBOKOŚĆ

 

{

direction=90;

speed=2;

sprite_index=sVladWup;

image_speed=0.4;

}

 

{

direction=270;

speed=2;

sprite_index=sVladWdown;

image_speed=0.4;

}

 

 

{

direction=180;

speed=4;

sprite_index=sVladWleft;

image_speed=0.4;

}

 

{

direction=0;//kierunek

speed=4;//ustawiasz speeda(szybkosc)

sprite_index=sVladWrigt;//zmieniasz sprita

image_speed=0.4;//ustawiasz predkosc obrazka

}

 

{

speed=0;//zerujesz szybkosc

image_speed=0;//zerujesz szybkosc sprita

image_index=0;//klatka w spritcie to pierwsza

}

EDIT:Napisałem direcition :P

Odnośnik do komentarza
Udostępnij na innych stronach

w create:

GML
alarm[0]=1;

w alarm[0]

GML
direction=choose(0,90,180,270);

speed=choose(0,4);//Albo stoi albo idzie

if (speed=4){

if (direction=0){sprite_index=Nazwa sprita w prawo;}

if (direction=90){sprite_index=Nazwa sprite w góre;}

if (direction=180){sprite_index=Nazwa sprita w lewo;}

if (direction=270){sprite_index=Nazwa sprita w duł;}

image_speed=0.3;}

else{image_speed=0;image_index=0;}

alarm[0]=30;//jak za szybko to sobie zwiększ</span></span>

 

Edit:

Małe poprawki

Odnośnik do komentarza
Udostępnij na innych stronach

Tak, masz najpierw 4 razy ten sam kod, a potem speed = 0;

 

Nie wiem czy wiesz, ale jak napiszesz

 

speed = 1;
speed = 0;

to po wykonaniu tego kodu prędkośc jest równa 0, ale to chyba powinno być oczywiste.

twoja logika jest błędną poniekąd :P najpierw będzie równa 1 a następnie równa 0 =) czepiam się szczegółów ale tak jest ;p

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