Mouse Examples Set 1

# Mouse Example 1
# Getting mouse position and checking the buttons

from pandac.PandaModules import *
from direct.task import *
from direct.showbase import DirectObject
import direct.directbase.DirectStart
import random

from MousePickingManager import *

class World(DirectObject.DirectObject):
  def __init__(self):
    self.mousemanager = MousePickingManager(self)
    taskMgr.add(self.update,"update")

  def update(self,task):
    # get the current position of the mouse on the screen
    mousepos = self.mousemanager.getMouse()
    print mousepos
   
    leftbutton = self.mousemanager.getButtonState(0)

    print leftbutton
    return Task.cont

w=World()
run()

# Mouse Example 2
# mouseUp and mouseDown events

from pandac.PandaModules import *
from direct.task import *
from direct.showbase import DirectObject
import direct.directbase.DirectStart
import random

from MousePickingManager import *

class World(DirectObject.DirectObject):
  def __init__(self):

    self.mousemanager = MousePickingManager(self)

    taskMgr.add(self.update,"update")

    self.accept ("mouseDown",self.onMouseDown)
    self.accept ("mouseUp",self.onMouseUp)

  def onMouseDown(self):
    print "CLICK"

  def onMouseUp(self):
    print "RELEASE"

  def update(self,task):
    # get the current position of the mouse on the screen
    mousepos = self.mousemanager.getMouse()
    #print mousepos
   
    leftbutton = self.mousemanager.getButtonState(0)

    #print leftbutton
    return Task.cont

w=World()
run()

# Mouse Example 3
# start and stop an animation

from pandac.PandaModules import *
from direct.task import *
from direct.showbase import DirectObject
import direct.directbase.DirectStart
import random

from direct.actor.Actor import Actor

from MousePickingManager import *

class World(DirectObject.DirectObject):
  def __init__(self):

    self.mousemanager = MousePickingManager(self)

    taskMgr.add(self.update,"update")

    self.accept ("mouseDown",self.onMouseDown)
    self.accept ("mouseUp",self.onMouseUp)

    base.setBackgroundColor(.8,.8,.8)

    light1 = render.attachNewNode (PointLight("light1"))
    render.setLight(light1)
    light1.setPos(0,-50,20)

    base.disableMouse()

    base.cam.setPos(0,-50,10)

    self.hair = Actor ("models/hair.egg",{"clip1":"models/hair_anim.egg"})
    self.hair.reparentTo(render)

  def onMouseDown(self):
    self.hair.loop("clip1")

  def onMouseUp(self):
    self.hair.stop()

  def update(self,task):
    return Task.cont

w=World()
run()

Leave a Reply