2013-04-27 253 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