游戏制作工作室2:子弹不向鼠标方向移动
Posted
技术标签:
【中文标题】游戏制作工作室2:子弹不向鼠标方向移动【英文标题】:game maker studio 2: bullets don't move to the mouse direction 【发布时间】:2018-04-15 23:19:31 【问题描述】:我正在尝试在我的游戏中制作射击机制,但我无法强制子弹移动到鼠标方向。它只是在玩家对象下创建并停留在他的坐标上。使用物理不会改变情况,无论 obj_bullet 只是“使用物理”(以及传感器参数)还是不使用。
它们只是停留在我创建它们的坐标上
当我不在 obj_bullet 上使用物理时,子弹精灵旋转取决于鼠标位置,但仍然不移动。
我在子弹的“创建”事件中为我的子弹写了一个简单的代码
BulletPower=1;
bulletSpeed=10;
speed=bulletSpeed;
direction=point_direction(x,y,mouse_x, mouse_y);
direction+=random_range(-5,5);
image_angle=direction;
尝试改用move_towards_point(mouse_x, mouse_y,bulletSpeed);
,但不起作用
然后我将实例层“子弹”置于所有其他层之上 然后在obj_player的“step”事件中设置条件
if (mouse_check_button(mb_left))
instance_create_layer(x,y,"Bullet",obj_bullet);
子弹只会落在玩家坐标上。 我有理论认为子弹只是堆叠在玩家中,但即使我不在玩家坐标上创建子弹,它仍然不起作用 我也改变了玩家和子弹精灵的轴,但仍然没有结果......
我真的不明白为什么它不起作用,因为我在 youtube 教程上看到几乎相同的代码 like this 在他们的情况下它可以工作。
【问题讨论】:
【参考方案1】:我解决了这个问题,我希望它可以帮助别人。子弹不会移动,因为如果房间使用物理,可变“速度”将不起作用。您需要将 obj_bullet 设为物理对象(使用物理),然后在“创建”事件中编写代码
direction=point_direction(x,y, mouse_x , mouse_y );
phy_rotation = -direction;//it's like image angle for bullets
并使事件“步”事件
phy_position_x += lengthdir_x(bulletSpeed, direction);
phy_position_y += lengthdir_y(bulletSpeed, direction);
完成!现在子弹会移动。
【讨论】:
以上是关于游戏制作工作室2:子弹不向鼠标方向移动的主要内容,如果未能解决你的问题,请参考以下文章