| 1 |
if (obj_pl.yprevious != obj_pl.y || obj_pl.xprevious != obj_pl.x) |
| 2 |
{ |
| 3 |
npc_move_current += 1; |
| 4 |
x_new[npc_move_current] = obj_pl.x; |
| 5 |
y_new[npc_move_current] = obj_pl.y; |
| 6 |
dir_new[npc_move_current] = obj_pl.direction; |
| 7 |
} |
| 8 |
if (npc_move_current >= npc_move_delay_max) |
| 9 |
{ |
| 10 |
npc_move_current -= 1; |
| 11 |
x = x_new[1]; |
| 12 |
y = y_new[1]; |
| 13 |
switch (dir_new[1]) |
| 14 |
{ |
| 15 |
case 0: |
| 16 |
sprite_index = right_sprite; |
| 17 |
break; |
| 18 |
case 90: |
| 19 |
sprite_index = up_sprite; |
| 20 |
break; |
| 21 |
case 180: |
| 22 |
sprite_index = left_sprite; |
| 23 |
break; |
| 24 |
case 270: |
| 25 |
sprite_index = down_sprite; |
| 26 |
break; |
| 27 |
} |
| 28 |
can_animate = true; |
| 29 |
image_speed = 0.2; |
| 30 |
for (var i = 0; i < npc_move_delay_max; i++) |
| 31 |
{ |
| 32 |
x_new[i] = x_new[i + 1]; |
| 33 |
y_new[i] = y_new[i + 1]; |
| 34 |
dir_new[i] = dir_new[i + 1]; |
| 35 |
} |
| 36 |
} |
| 37 |
if (can_animate == true && npc_move_current < npc_move_delay_max) |
| 38 |
{ |
| 39 |
if (on_animation_end()) |
| 40 |
{ |
| 41 |
image_index = 0; |
| 42 |
image_speed = 0; |
| 43 |
can_animate = false; |
| 44 |
} |
| 45 |
} |