我目前正在使用 Ursina 游戏引擎并尝试制作基本的 FPS 游戏。在游戏中,显然有枪和子弹。
我用来开枪的系统坏了。首先,它没有按照我想要的方式前进,其次,它无法充分检测到碰撞。
我想知道如何让枪正确地向前发射子弹,以及如何让它在击中某物时告诉我。
这是我正在使用的代码:
def shoot():
print(globalvar.currentmag, globalvar.total_ammo)
if globalvar.currentmag > 0:
bullet = Entity(parent=weapon, model='cube', scale=0.1, color=color.brown, collision = True, collider = 'box')
gunshot_sfx = Audio('Realistic Gunshot Sound Effect.mp3')
gunshot_sfx.play()
bullet.world_parent = scene
bullet.y = 2
for i in range(3000):
bullet.position=bullet.position+bullet.right*0.01
globalvar.currentmag -= 1
hit_info = bullet.intersects()
print(hit_info)
if hit_info.hit:
print("bullet hit")
destroy(bullet, delay=0)
destroy(bullet, delay=1)
else:
reload()
我曾尝试在 Ursina 中使用 raycast 方法,但没有奏效。