函数'aimshot()'在某个位置(瞄准时)播放声音和动画,函数'noaimshot()'也是如此,但在不瞄准时。出于某种原因,当我稍后在'def input(key)'函数中尝试运行这些函数时,它们不起作用。
def aimshot():
Audio("assets/GunShot.mp3")
Animation("assets/spark", parent=camera.ui, fps=5, scale=.1, position=(.00, -.726), loop=False)
def noaimshot():
Audio("assets/GunShot.mp3")
Animation("assets/spark", parent=camera.ui, fps=5, scale=.1, position=(.34, -.54), loop=False)
def input(key):
if key == 'escape':
quit()
if key == "q":
aim.enable()
noaim.disable()
if key == "left mouse down":
noaimshot()
if key == "e":
aim.disable()
noaim.enable()
if key == "left mouse down":
aimshot()
字符串
完整的代码在这里。注意:你需要pip install ursina来运行它。
from ursina import *
from random import uniform
from ursina.prefabs.first_person_controller import FirstPersonController
app = Ursina()
Sky()
player=FirstPersonController(y=10, origin_y=1)
ground=Entity(model='plane', scale=(20, 1, 20), color=color.lime, texture="white_cube",
texture_scale=(20, 20), collider='box')
noaim = Entity(model="assets/gun.obj", parent=camera.ui, scale=.03, color=rgb(0, 0, 139), position=(.5, -.7),
rotation=(-5, 5, 1))
aim = Entity(model="assets/gun.obj", parent=camera.ui, scale=.03, color=rgb(0, 0, 139), position=(.00, -.726),
rotation=(-5, 1, -1))
aim.disable()
def aimshot():
Audio("assets/GunShot.mp3")
Animation("assets/spark", parent=camera.ui, fps=5, scale=.1, position=(.00, -.726), loop=False)
def noaimshot():
Audio("assets/GunShot.mp3")
Animation("assets/spark", parent=camera.ui, fps=5, scale=.1, position=(.34, -.54), loop=False)
def input(key):
if key == 'escape':
quit()
if key == "q":
aim.enable()
noaim.disable()
if key == "left mouse down":
noaimshot()
if key == "e":
aim.disable()
noaim.enable()
if key == "left mouse down":
aimshot()
app.run()
型
2条答案
按热度按时间toe950271#
因为if语句永远不为True,所以下面的代码永远不会运行。你可以通过打印它来检查变量的状态,例如
print(key)
。变量
key
不能同时是“q”和“left mouse down”。如果你想检查“q”是否在你按下“left mouse down”的时候被按住,你可以这样做:字符串
ndasle7k2#
的数据
这就是为什么你的代码不工作的原因,你不能定义一个函数有两个标签,但只有一个