Skocz do zawartości

2 graczy pomoc


ziomekkamil

Rekomendowane odpowiedzi

Mam problem gdyż zrobiłem gre dla 2 graczy lecz 2 gracz nierobi animacji a ma wszystko oprucz:(inne ustawienia chodzienia) tak jak pierwszy

pierwszy normalnie chodzi i robi animacje a 2 ma tylko animacje stoi a jak daje np w --> to idzie animacją stoi i nierobi animacji zmieniłem w kodzie playanimation

 

 

 

gra.jpg

Odnośnik do komentarza
Udostępnij na innych stronach

Może byś pokazał kody na poruszanie, bo jasnowidzami nie jesteśmy.

(Ha, stare ale jare :P )

 

create

speedH = 0;

 

speedV = 0;

 

// Podstawowe parametry

 

speedMaxH = 5; //Maksymalna prędkość w poziomie

 

speedMaxV = 8; //Maksymalna prędkość w pionie

 

speedJump = 12; //Maksymalna siła wyskoku

 

 

// Parametry zmienne

 

speedFriction = 0; //Tarcie

 

speedAcceleration = 0; //Przyspieszenie

 

speedGravity = 0; //Grawitacja

 

 

// Dokładność obliczeń

 

precision = 2;

 

// Zmienne konfiguracji klawiszy

 

keyUp = vk_up;

 

keyDown = vk_down;

 

keyLeft = vk_left;

 

keyRight = vk_right;

 

 

 

// Animacje

 

animationInit();

 

animationStoi = animationAdd( stoi, 0.5 );

 

animationIdzie = animationAdd(idzie, 0.4 );

 

animationSkacze = animationAdd(skok, 0.6 );

 

animationStrzela = animationAdd(strzela,1);

 

animationstrzelaw = animationAdd(strzelaw,0.6);

 

 

 

time=0

Step

 

// Gracz jest w powietrzu

 

if( place_free( x, y + 1 ) )

 

{

 

speedFriction = 0.1;

 

speedAcceleration = 0.1;

 

speedGravity = 0.3;

 

}

 

else

 

// Gracz stoi na platformie

 

{

 

speedFriction = 0.4;

 

speedAcceleration = 0.5;

 

speedGravity = 0;

 

// Skok

 

if( keyboard_check( vk_numpad8 ) )

 

speedV = -abs( speedJump );

 

}

 

// Grawitacja

 

speedV += speedGravity;

 

// Skok cd.

 

if( speedV < 0 )

 

{

 

if( keyboard_check_released( vk_numpad8 ) )

 

speedV /= 2;

 

}

 

 

// Ograniczenia

 

if( abs( speedV ) > speedMaxV )

 

speedV = speedMaxV * sign( speedV );

 

 

 

// Ruch pionowy

 

_s = sign( speedV ) / precision;

 

repeat( abs( speedV ) * precision )

 

{

 

if( place_free( x, y + _s ) )

 

y += _s;

 

else

 

{

 

speedV = 0;

 

break;

 

}

 

}

 

var _s;

 

// Ruch w lewo

 

if keyboard_check(vk_numpad4 )

 

speedH -= speedAcceleration;

 

else

 

// Ruch w prawo

 

if keyboard_check( vk_numpad6 )

 

speedH += speedAcceleration;

 

else

 

// Tarcie

 

speedH = max( 0, abs( speedH ) - speedFriction ) * sign( speedH );

 

// Ograniczenia

 

if( abs( speedH ) > speedMaxH )

 

speedH = speedMaxH * sign( speedH );

 

// Ruch poziomy

 

_s = sign( speedH ) / precision;

 

repeat( abs( speedH ) * precision )

 

{

 

_pf = !place_free( x, y + 1 );

 

if( _pf && place_free( x + _s, y + 2 ) )

 

{

 

x += _s;

 

y += 2;

 

}

 

else

 

if( _pf && place_free( x + _s, y + 1 ) )

 

{

 

x += _s;

 

y += 1;

 

}

 

else

 

if( place_free( x + _s, y ) )

 

{

 

x += _s;

 

}

 

else

 

if( _pf && place_free( x + _s, y - 1 ) )

 

{

 

x += _s;

 

y -= 1;

 

}

 

else

 

if( _pf && place_free( x + _s, y - 2 ) )

 

{

 

x += _s;

 

y -= 2;

 

}

 

else

 

{

 

animationPlay( stoi );

 

speedH = 0;

 

break;

 

}

 

}

 

var _s, _pf;

Endstep

 

 

// Kierunek animacji

 

if( speedH != 0 )

 

image_xscale = sign( speedH );

 

 

 

// Gracz jest w powietrzu

 

if( place_free( x, y + 1 ) )

 

animationPlay(skok);

 

else

 

// Gracz jest na platformie

 

{

 

// Gracz stoi

 

if( speedH = 0 )

 

animationPlay( stoi );

 

else

 

// Gracz porusza się

 

animationPlay(idzie );

 

}

 

 

if place_meeting(x,y+1,obj_blok1) and keyboard_check(vk_enter)

 

{animationPlay(strzela)}

 

if not place_meeting(x,y+1,obj_blok1) and keyboard_check(vk_enter)

 

{animationPlay(strzelaw)}

 

Odnośnik do komentarza
Udostępnij na innych stronach

Po pierwsze to istnieje coś takiego jak tag GML i weź że gu używaj w postach bo to się czyta o wiele przyjemniej!

 

Coś jest nie tak z tymi twoimi funkcjami do animacji.

Nie musiałeś nam dokładnie tego wszystkiego dawać tylko to co odpowiada za błędy.

A ty nam nie dałeś kompletnie nic co może nam się przydać.

 

Pokaż te swoje funkcje do animacji. Tylko w tagach GML!

Odnośnik do komentarza
Udostępnij na innych stronach

Po pierwsze to istnieje coś takiego jak tag GML i weź że gu używaj w postach bo to się czyta o wiele przyjemniej!

 

Coś jest nie tak z tymi twoimi funkcjami do animacji.

Nie musiałeś nam dokładnie tego wszystkiego dawać tylko to co odpowiada za błędy.

A ty nam nie dałeś kompletnie nic co może nam się przydać.

 

Pokaż te swoje funkcje do animacji. Tylko w tagach GML!

 

 

chodzi mi oto zeby 2 grac robil animacje tak jak 1

Odnośnik do komentarza
Udostępnij na innych stronach

podaj koda z skryptu z AnimationAdd i AnimationPlay

E: widze że Ci się nudziło ; D, wystarczyło dać [.gml] kod [/gml.] a nie kolorować samemu

 

 

animationCount += 1;

 

animation[animationCount,0] = argument[0];

 

animation[animationCount,1] = argument[1];

 

return animationCount;

 

 

 

 

 

 

 

 

if( !is_real( argument[0] ) )

 

return false;

 

if( argument[0] < 0 || argument[0] > animationCount )

 

return false;

 

sprite_index = animation[argument[0],0];

 

image_speed = animation[argument[0],1];

 

return true;

 

 

 

Odnośnik do komentarza
Udostępnij na innych stronach

Człowieku, czy ja mówię niewyraźnie? Używaj tagów GML jak wstawiasz jakiś kod na forum! -_-

 

A do funkcji AnimationPlay nie masz wysyłać nazwy sprite'a tylko nazwę zmiennej do której go przypisałeś. Czyli na przykład:

 

GML
animationPlay(animationSkacze);

zamiast tego:

GML
animationPlay(skok);
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ę...