2013-04-27 94 views
0

我对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

您应该删除return Task.cont前面的一个缩进。否则,只要鼠标光标在窗口中,任务只会继续;一旦它离开窗口,hasMouse()将返回False并且任务将停止运行。

+0

非常感谢。 – Anthony 2013-04-28 17:42:15