如何使用物理中构建的游戏制作者创建射击子弹

时间:2016-04-15 04:34:20

标签: game-maker gml

我是GameMaker的新手,为了制作游戏,我的第二场比赛我只是要使用物理中的GameMakers。这是一个RPG,我很难让这个家伙射击子弹。我可以把子弹放在房间里,并按照它需要的角度。你通常可以使用objectnamehere.speed =来达到你想要的速度。但!使用物理,你可以使用phy.speed,但这是一个只读变量。所以我一半使用phy_speed_x和phy_speed_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变量的地方,但似乎没有任何效果。我被困在这里,我看过教程并阅读了很多东西,但没有任何效果!

1 个答案:

答案 0 :(得分:0)

我明白了。

var shootButton = mouse_check_button_pressed(mb_left);    var bulletSpeed = 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);
    }
}