2013-05-14 135 views
0

我正在使用Blender Game Engine创建2D平台游戏。我无法让相机跟随我的角色并将他保持在屏幕中央。最初,我试着简单地将相机养成我的角色,但是每当我的角色转动(围绕Z轴180度旋转)时,我的相机也会朝向关卡的后部。所以,我想知道是否有办法将对象的一个​​或两个坐标轴“父”化为另一个坐标轴,或者即使坐标轴也禁止坐标轴移动。这样我可以防止相机旋转,但仍然沿着Y轴和Z轴。 我研究的一件事是使用Python代码。我想出了...Blender中可能只有一个或两个坐标轴吗?

import bpy 
char = bpy.data.objects['HitBox'] 
obj = bpy.data.objects['Camera'] 
obj.location.x = 69.38762 # this is the set distance from the character to camera 
obj.location.y = char.location.y 
obj.location.z = char.location.z 
bpy.data.scenes[0].update() 

我意识到我需要为这个循环分配“字符”变量之后,但我不能得到任何的Python循环工作,将贯穿整个游戏的运行,为“而'循环崩溃BGE。如果您可以帮助处理父母问题或Python代码,我会非常感激。

回答

0

你只需要使用bge模块,因为它是用于游戏引擎。所以你的问题是:你使用了搅拌机python,但不是bge python。尝试使用cam = bge.logic.getCurrentScene().active_camera联系相机。 ......所以这应该工作:

import bge 

def main(): 
    cam = bge.logic.getCurrentScene().active_camera 
    obj = bge.logic.getCurrentController().owner 
    obj.worldPosition.y = cam.worldPosition.y 
    obj.worldPosition.z = cam.worldPosition.z 

main() 

(附此脚本您有一个真正的“击中格”触发总是传感器,它可以循环永远)

其他解决方案: 你可以尝试让顶点父对你的玩家。

+0

我从来不知道有一个Blender Game Engine特定模块。谢谢! – Pen275 2013-05-14 12:50:23

相关问题