0

我正在使用 Blender 游戏引擎创建 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 代码,我将不胜感激。

4

1 回答 1

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”,以便它可以永远循环。)

其他解决方案:您可以尝试将顶点设置为播放器的父级。

于 2013-05-14T09:38:29.230 回答