【发布时间】:2015-06-25 16:49:08
【问题描述】:
我正在尝试使用 Python 控制器在 Blender 游戏引擎中制作一个简单的游戏。
我有一个 Python 控制器连接到脉冲模式下的 Always 传感器和一个名为“first”的游戏属性 Sphere,它也是受控对象。
我只想在游戏第一次运行时运行几行代码,这样它就可以定义变量并且在下次运行时不会覆盖它们。
当我运行下面的代码时,我得到一个错误,ForBack 和 LeftRight 变量没有定义。但是我可以从 if 语句中访问它们。
我错过了什么明显的东西还是什么?也请告诉我是否可以压缩此代码。
import bge
from bge import logic
cont = bge.logic.getCurrentController()
player = cont.owner
keyboard = bge.logic.keyboard
scene = logic.getCurrentScene()
objs = scene.objects
ACTIVE = bge.logic.KX_INPUT_ACTIVE
first = objs['Sphere']['first']
if(first == True):
ForBack = 0.0
LeftRight = 0.0
print('1')
print(ForBack)
objs['Sphere']['first'] = False
if (keyboard.events[bge.events.WKEY] == ACTIVE and ForBack < 50):
ForBack += 5
#forward
if (keyboard.events[bge.events.SKEY] == ACTIVE and ForBack > -50):
ForBack -= 5
#backward
if (keyboard.events[bge.events.AKEY] == ACTIVE and LeftRight < 50):
LeftRight += 5
#left
if (keyboard.events[bge.events.DKEY] == ACTIVE and LeftRight > -50):
LeftRight -=5
#right
player.applyTorque((ForBack, LeftRight, 0), False)
【问题讨论】:
标签: python game-engine blender