我是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变量的地方,但似乎没有任何效果。我被困在这里,我看过教程并阅读了很多东西,但没有任何效果!
答案 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);
}
}