Python Ursina的FirstPersonController出现问题

Python Ursina的FirstPersonController出现问题,python,python-3.x,game-engine,Python,Python 3.x,Game Engine,我正在使用Ursina引擎创建一个3D游戏。然而,当我尝试加载FirstPersonCharacter时,我得到的只是一个灰色背景(正常)和一个非常小的洋红色正方形,在中间,倾斜45°。那是什么 我第一次尝试为第一人称角色制作我自己的机械装置,根据鼠标位置移动相机(我有这个),我在玩数学和运动方面的东西。。。我在看这段视频()的时候发现了FirstPersonController 但是,使用和他(几乎)相同的代码,它不起作用!那是什么问题,有人已经碰到了吗?第一个人控制器坏了吗?还是我的脑子坏了

我正在使用Ursina引擎创建一个3D游戏。然而,当我尝试加载FirstPersonCharacter时,我得到的只是一个灰色背景(正常)和一个非常小的洋红色正方形,在中间,倾斜45°。那是什么

我第一次尝试为第一人称角色制作我自己的机械装置,根据鼠标位置移动相机(我有这个),我在玩数学和运动方面的东西。。。我在看这段视频()的时候发现了FirstPersonController

但是,使用和他(几乎)相同的代码,它不起作用!那是什么问题,有人已经碰到了吗?第一个人控制器坏了吗?还是我的脑子坏了

编辑:在ursina备忘单中发现小品红色倾斜正方形是光标。但我还是不能动,不能有重力或其他东西?我看不见我的地板

第二次编辑:使用提供、整理的ursina备忘单上的一些代码,我现在可以看到我的楼层了。但是我只能在一个轴上移动相机(上下),我不能移动,没有重力,什么也没有

这是我的密码:

来自ursina导入的
*
从ursina.prefacts.first_person_controller导入FirstPersonController
app=Ursina()
window.title='实验室'
window.borderless=False
window.fullscreen=True
window.exit_button.visible=False
window.fps_counter.enabled=True
floorcubes=[]
对于范围内的i(-20,20,2):
对于范围(-20,20,2)内的j:
追加(实体(model='cube',color=color.white,scale=(2,2,2),position=(i,0,j)))
player=FirstPersonController()
app.run()
以下是ursina备忘单中提供的代码,稍作安排:

来自ursina导入的
*
从ursina.prefacts.first_person_controller导入FirstPersonController
app=Ursina()
地面=实体(模型=平面,比例=(100,1100),颜色=颜色.黄色.色调(-.2),纹理=白色立方体,纹理=比例=(100100),碰撞器=长方体,位置=(0,-2,0),地面=真)
e=实体(模型='cube',比例=(1,5,10),x=2,y=0.01,旋转度=45,碰撞器='box',纹理='white'u cube')
e、 纹理比例=(e.scale\u z,e.scale\u y)
e=实体(模型='cube',比例=(1,5,10),x=-2,y=.01,碰撞器='box',纹理='white_cube')
e、 纹理比例=(e.scale\u z,e.scale\u y)
player=FirstPersonController(model='cube',y=2,原点y=-.5,重力=1)
player.gun=无
枪=按钮(父对象=场景,模型='cube',颜色=color.blue,原点=-.5,位置=(3,0,3),碰撞器='box')
gun.on_click=序列(Func(setattr,gun,'父',摄影机),Func(setattr,播放器,'枪',枪))
枪2=重复(枪,z=7,x=8)
坡度=实体(模型='立方体',碰撞器='长方体',位置=(0,0,8),比例=6,旋转=(45,0,0),纹理='砖块',纹理\比例=(8,8))
坡度=实体(模型='立方体',碰撞器='长方体',位置=(5,0,10),比例=6,旋转=(80,0,0),纹理='砖块',纹理\比例=(8,8))
def输入(钥匙):
如果键==“鼠标左键按下”和player.gun:
枪。闪烁(颜色。橙色)
项目符号=实体(父项=枪,模型=立方体,比例=0.1,颜色=颜色.黑色)
bullet.world\u parent=场景
bullet.animate_位置(bullet.position+(bullet.forward*50),curve=curve.linear,duration=1)
销毁(子弹,延迟=1)
app.run()
多亏了答案,我现在:

来自ursina导入的
*
从ursina.prefacts.first_person_controller导入FirstPersonController
导入pyautogui
随机输入
输入数学
app=Ursina()
全屏显示=真吗
window.title='实验室'
window.borderless=False
window.fullscreen=是全屏
window.exit_button.visible=False
window.fps_counter.enabled=True
最新的鼠标位置=pyautogui.position()
pyautogui.FAILSAFE=False
灵敏度=2.5
mouse.visible=True
floorrcube=Entity(model=“cube”,color=color.white,scale=(20,1,20),collider=“box”,position=(0,-100,0))
def update():
全球最新鼠标位置
如果按住键[f']:
camera.fov+=1
如果按住键['r']:
摄像机视场-=1
player=FirstPersonController()
app.run()

重力存在,它的作用是让玩家跌入无限。当你移动鼠标向上看时,你会看到立方体消失在远处


解决方法是将
collider='box'
添加到您的地板立方体中,以防止玩家从中跌落。请注意,起点似乎位于其中一个立方体内部,因此您必须跳出(使用空格键)或稍微降低地板立方体的位置。

谢谢!我设法使它起作用了。我仍然有点问题,但我现在可以有一个球员了!(我的问题是,我必须将我的地板定位在-100左右,否则我的球员会在地板下繁殖:/)这确实很奇怪。你可以试着打印球员的位置,并进行相应的调整。是的,我要试试这个。。。仍然令人尴尬(x)