移动对象的方向

问题描述 投票:1回答:1

我在游戏制造商携手合作,这个项目,我想对另一对象移动的对象。这是我这么远。有谁知道我做错了吗?敌人现在转圈的球员。

draw_sprite(sprite_index,image_index,x,y);
moveSpeed = 1;
angle = arctan2(enemy_obj.x - player_obj.x, enemy_obj.y - player_obj.y);
enemy_obj.x += cos(angle) * moveSpeed;
enemy_obj.y -= sin(angle) * moveSpeed;
game-maker
1个回答
3
投票

使用内置GM-函数(此代码必须被放置在敌方目标的end step事件):

angle = point_direction(x, y, player_obj.x, player_obj.y);
x += lengthdir_x(moveSpeed, angle);
y += lengthdir_y(moveSpeed, angle);

要么:

direction = point_direction(x, y, player_obj.x, player_obj.y);
if point_distance(x, y, player_obj.x, player_obj.y) > 10 // min distance
{
    speed = moveSpeed;
}

或者你可以使用运动规划功能,如mp_potential_stepmp_grid_...A*

附:当您使用这样的代码

angle = arctan2(enemy_obj.x - player_obj.x, enemy_obj.y - player_obj.y);

你必须明白,如果是enemy_obj的几个实例,然后将只采取的第一个人(用最小的ID)

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.