我正在使用Blender Game Engine创建一个2d平台游戏。我无法让相机跟随我的角色并将他留在屏幕中央。最初,我尝试简单地将相机托管到我的角色,但每当我的角色转动(绕Z轴旋转180度)时,我的相机也是如此,使其面向水平的背面。所以,我想知道是否有一种方法可以将一个或两个对象的轴“父”另一个“父”,或者即使它是父项也可以限制轴移动。这样我可以防止相机旋转,但仍然可以跟随Y轴和Z轴。 我研究的一件事是使用Python代码。我想出了......
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()
我意识到在分配'char'变量之后我需要一个循环,但是我不能让任何Python循环在整个游戏中运行,因为'while'循环使BGE崩溃。如果您可以帮助解决育儿问题或Python代码,我真的很感激。
答案 0 :(得分:0)
你只需要使用bge
模块,因为它适用于游戏引擎。所以你的问题是:你使用了blender 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()
(使用真正触发的始终传感器将此脚本附加到“HitBox”,以便它可以永久循环。)
其他解决方案: 您可以尝试为您的播放器设置顶点父级。