Sarutobi Opublikowano 12 Maja 2008 Udostępnij Opublikowano 12 Maja 2008 Mam małe pytanko. Mianowicie mam sprite laser_updown: oraz sprite laser_leftright: i chce aby poruszały się ciągle w taki oto sposób: . Proszę o dokładne podanie kodu. Za pomoc umieszczę was w creditsach. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Crackkk-GM Opublikowano 12 Maja 2008 Udostępnij Opublikowano 12 Maja 2008 ehhh... dodaj do jednego direction+=1 a do drugiego direction-=1 żal ;d GML //create obrot=0 //step if obrot=0 { direction += 1 //lub -=1 zalezy ktory laser } if direction=90 then obrot=1 Dodajesz to do laserow i juz Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sarutobi Opublikowano 12 Maja 2008 Autor Udostępnij Opublikowano 12 Maja 2008 coś mi ten laser stoi w miejscu :crying: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawidds Opublikowano 12 Maja 2008 Udostępnij Opublikowano 12 Maja 2008 Crack-Gm : Ciebie mi żal raczej... dodaj do jego kodu: image_angle = direction; Dokładniej nie powiem bo Cie nie czaje do końca :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 13 Maja 2008 Udostępnij Opublikowano 13 Maja 2008 Ogólnie ładny efekt dało by takie coś: CREATE GML laserRot = 0; laserDir = 313; laserSpeed = 5; STEPGML laserRot += laserSpeed; laserDir -= cos( degtorad( laserRot ) ) * ( 0.78 * laserSpeed ); DRAWGML 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; STEPGML 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 Więcej opcji udostępniania...
Snake Opublikowano 13 Maja 2008 Udostępnij Opublikowano 13 Maja 2008 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( ) )" :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sarutobi Opublikowano 13 Maja 2008 Autor Udostępnij Opublikowano 13 Maja 2008 ___________________________________________ 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 Więcej opcji udostępniania...
Marek.S Opublikowano 13 Maja 2008 Udostępnij Opublikowano 13 Maja 2008 za "Laser" wstawiasz nazwę sprita. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sarutobi Opublikowano 13 Maja 2008 Autor Udostępnij Opublikowano 13 Maja 2008 ok działa dzieki Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 13 Maja 2008 Udostępnij Opublikowano 13 Maja 2008 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 Więcej opcji udostępniania...
Rekomendowane odpowiedzi
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ę