我是panda3d的新手,我遇到了一个我不知道如何修复的问题。我试图使用光标的位置控制相机,但每次光标离开应用程序窗口,并重新进入,程序停止记录光标的位置。这是一个任务问题吗?我把接收光标位置的函数放到taskmgr中并控制相机。我的代码的这一部分在下面。
taskMgr.add(self.get_mousepos, 'getmouse')
taskMgr.add(self.move_camera, 'movecam')
def get_mousepos(self,task):
if base.mouseWatcherNode.hasMouse():
self.camerax=base.mouseWatcherNode.getMouseX()
self.cameray=base.mouseWatcherNode.getMouseY()
return Task.cont
def move_camera(self,task):
if self.camerax>=.6:
self.camh-=.8
camera.setHpr(self.camh,self.camh1 ,0)
elif self.camerax<=-.6:
self.camh+=.8
camera.setHpr(self.camh,self.camh1 ,0)
elif self.cameray>=.6:
self.camh1+=.8
camera.setHpr(self.camh,self.camh1 ,0)
elif self.cameray<=-.6:
self.camh1-=.8
camera.setHpr(self.camh,self.camh1 ,0)
return Task.cont
提前致谢。
答案 0 :(得分:0)
您应该删除return Task.cont
前面的一个缩进。否则,只要鼠标光标在窗口中,任务就会继续;一旦离开窗口,hasMouse()
将返回False
,任务将停止运行。