Skocz do zawartości

Nie działa odpowiednio image_angle


Freezer

Rekomendowane odpowiedzi

Mam pewien problem z funkcją image_angle, nie wiem co robię źle, ale kod ten nie działa poprawnie i nie przekręca mi w ogóle sprite'a. Przechodząc do sedna, mam sprite gdzie narysowany jest pocisk i object do tego, który odpowiada za obrażenia, niszczenie pocisku etc. Z tego co się orientowałem i co w sumie wcześniej działało w obj_bullet powinienem dodać "image_angle = point_direction(obj_player.x, obj_player.y, mouse_x, mouse_y)", nawet jeżeli według mojego rozumowania kod ten był zły, to powinien w jakikolwiek sposób obrócić sprite, a tak się nie dzieje. Myślałem, że błąd jest w umiejscowieniu tego kodu, ale nieważne jest czy dam go w create, czy step to i tak nie działa. W razie pytań w jaki sposób tworzę obj_bullet zamieszczam kod ze swojego skryptu:

GML
if (gun_key && number_of_gun > -1 && obj_player_stats.gun[number_of_gun] == true && obj_player_stats.ammo[number_of_gun] > 0 && !shooting){

switch(number_of_gun){

case 0:

 

var bullet = instance_create(x, y, obj_bullet1);

bullet.creator = id;

alarm[1] = obj_bullet1.fire_rate;

obj_player_stats.ammo[0] -= 1;

shooting = true;

break;

 

Z samym ifem chyba problemów nie ma, bo wszystko ładnie działa tak jak powinno. W sumie to jedyną rzeczą która nie działa jest to obracanie :/

Odnośnik do komentarza
Udostępnij na innych stronach

W draw nic nie mam, mogę podrzucić info o obj_bullet1, jeżeli to coś pomoże.

 

GML
Information about object: obj_bullet1

Sprite: spr_bullet

Solid: false

Visible: true

Depth: 0

Persistent: false

Parent:

Children:

Mask:

Physics

Start Awake: true

Is Kinematic: false

Is Sensor: true

Density: 0.1

Restitution: 0

Group: 0

Linear Damping: 0

Angular Damping: 0

Friction: 0

Shape: Polygon

Points:

(0, 2)

(8, 2)

(10, 4)

(8, 8)

(0, 8)

Create Event:

 

execute code:

 

///Inicjalizacja

//move_towards_point(mouse_x, mouse_y, 10);

dir = point_direction(obj_player.x,obj_player.y,mouse_x,mouse_y);

phy_speed_x = lengthdir_x(10,dir);

phy_speed_y = lengthdir_y(10,dir);

damage = obj_player_stats.attack+2;

creator = noone;

 

fire_rate = 10;

 

phy_bullet = true;

 

Alarm Event for alarm 0:

 

execute code:

 

instance_destroy();

 

Step Event:

 

execute code:

 

image_angle = point_direction(obj_player.x, obj_player.y, mouse_x, mouse_y);

if(distance_to_object(obj_player) > 200){

instance_destroy();

}

 

Collision Event with object obj_wall:

 

execute code:

 

/// niszczenie pocisku po uderzeniu

instance_destroy();

 

Collision Event with object obj_lifeform_parent:

 

execute code:

 

/// Obrazenia w wszystkie formy zycia

if (other.id != creator) {

other.hp -= damage;

// instance_destroy();

alarm[0] = 1;

}

 

Collision Event with object obj_door:

 

execute code:

 

instance_destroy();

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