Game maker 如何使用内置于物理中的游戏制作者创建射击子弹

Game maker 如何使用内置于物理中的游戏制作者创建射击子弹,game-maker,gml,Game Maker,Gml,我对GameMaker和制作游戏都是新手,在我的第二个游戏中,我将使用内置于物理的GameMaker。这是一个RPG,我很难让那家伙开枪。我可以把子弹放在房间里,放在需要的角度。通常情况下,您可以使用objectnamehere.speed=设置您想要的速度。但是使用物理可以使用phy.speed,但这是一个只读变量。所以我想使用phy\u速度x和phy\u速度y。但是我怎样才能让它朝着子弹的方向射击呢?这是我到目前为止的代码 // Player shoot var shootButton =

我对GameMaker和制作游戏都是新手,在我的第二个游戏中,我将使用内置于物理的GameMaker。这是一个RPG,我很难让那家伙开枪。我可以把子弹放在房间里,放在需要的角度。通常情况下,您可以使用objectnamehere.speed=设置您想要的速度。但是使用物理可以使用phy.speed,但这是一个只读变量。所以我想使用phy\u速度x和phy\u速度y。但是我怎样才能让它朝着子弹的方向射击呢?这是我到目前为止的代码

// Player shoot
var shootButton = mouse_check_button_pressed(mb_left);
var bulletSpeed = 10;

if (shootButton) {
    bullet = instance_create(ot_player.x, ot_player.y, ot_bullet);
    bullet.phy_rotation = phy_rotation;
    bullet.phy_speed_x = bulletSpeed;
    bullet.phy_speed_y = bulletSpeed;
}
我试着把许多不同的变量放在我有bulletSpeed变量的地方,但似乎什么都不起作用。我被困在这里,我看了很多教程,读了很多东西,但什么都没用

我明白了

var shootButton=按下鼠标检查按钮(mb左); 速度=10

if (shootButton) {
    bullet = instance_create(ot_player.x, ot_player.y, ot_bullet);
    with(bullet) {
        phy_rotation = other.phy_rotation;
        ldx = lengthdir_x(15, -phy_rotation)
        ldy = lengthdir_y(15, -phy_rotation)
        physics_apply_impulse(x, y, ldx, ldy);
    }
}