Skocz do zawartości

Obrót 90 stopni


Rekomendowane odpowiedzi

Ogólnie ładny efekt dało by takie coś:

CREATE

GML
laserRot = 0;

laserDir = 313;

laserSpeed = 5;

STEP
GML
laserRot += laserSpeed;

laserDir -= cos( degtorad( laserRot ) ) * ( 0.78 * laserSpeed );

DRAW
GML
draw_sprite_ext( Laser, image_index, x, y, 1, 1, laserDir, image_blend, image_alpha );
Lub zamiast draw ustawić image_angle na laserDir.

 

 

Coś bardziej sztywnego:

CREATE

GML
laserMove = 1;

laserDir = 270;

laserSpeed = 5;

STEP
GML
laserDir += laserSpeed * laserMove;

 

if( laserDir > 360 ) {

laserMove = -1;

}

else

if( laserDir < 270 ) {

laserMove = 1;

}

I to samo z draw/image_angle.
Odnośnik do komentarza
Udostępnij na innych stronach

___________________________________________

ERROR in

action number 1

of Draw Event

for object laser_leftright:

 

Error in code at line 1:

draw_sprite_ext( Laser, image_index, x, y, 1, 1, laserDir, image_blend, image_alpha );

 

at position 22: Unknown variable Laser

Odnośnik do komentarza
Udostępnij na innych stronach

Tymon, a mówiłeś, że lepiej używać lengthdir_x zamiast cosa bo wydajniej wtedy jest ( czy jakoś tak ), a sam używasz "cos( degtorad( ) )" :)
A tu po co? Jakbyś wykonywał takich działań... 100 na raz? To mógłbyś się pokusić o drobną optymalizację.
GML
laserDir -= lengthdir_x( 0.78 * laserSpeed, laserRot );
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ę...