【发布时间】:2021-12-04 21:49:40
【问题描述】:
我正在 Gamemaker Studio 2 中制作一款狙击射击街机风格的游戏,我希望目标在视口外的位置由沿瞄准镜圆周移动的 V 字形指示。我正在使用三角技术来确定坐标,但雪佛龙正在四处跳动,似乎并没有指向目标。我将代码分为两部分:确定敌人类(将指向的对象)的步骤事件中的坐标的代码和同一类中的绘制事件。此外,当我尝试旋转 V 形使其也指向敌人时,它根本不绘制。
这里分别是坐标算法和绘制人字形的代码
//determine the angle the target makes with the player
delta_x = abs(ObjectPlayer.x - x); //x axis displacement
delta_y = abs(ObjectPlayer.y - y); //y axis displacement
angle = arctan2(delta_y,delta_x); //angle in radians
angle *= 180/pi //angle in radians
//Determine the direction based on the larger dimension and
largest_distance = max(x,y);
plusOrMinus = (largest_distance == x)?
sign(ObjectPlayer.x-x) : sign(ObjectPlayer.y-y);
//define the chevron coordinates
chevron_x = ObjectPlayer.x + plusOrMinus*(cos(angle) + 20);
chevron_y = ObjectPlayer.y + plusOrMinus*(sign(angle) + 20);
绘图代码
if(object_exists(ObjectEnemy)){
draw_text(ObjectPlayer.x, ObjectPlayer.y-10,string(angle));
draw_sprite(Spr_Chevron,-1,chevron_x,chevron_y);
//sSpr_Chevron.image_angle = angle;
}
【问题讨论】:
标签: drawing trigonometry game-maker-studio-2