I have an obejct that creates a “walker” object used to create another object. It has two bugs for me:
one ifI do not set a startPOS then it breifly creates the walker at 0,0,0 and then jumps to the mouse giving an unprofessional flicker.
two if I set the walker to spawn at the mouse coordinate’s then it is offset from the mouse a good distance. How can I get around this?
def followmouse(Task):
mouseDummyNP = render2d.attachNewNode('mouse')
myTexture = loader.loadTexture("textures/gravestone1.png")#an empty image to walk the mouse to where image will go
cm = CardMaker('gravewalker_1')
self.gravewalker_1 = render.attachNewNode(cm.generate())
self.gravewalker_1.setTexture(myTexture)
self.gravewalker_1.setTransparency(1)
self.gravewalker_1.setScale(0.1)
#this is where I have the problem: How do I have it spawn at the mouse and follow without offset?
self.gravewalker_1.reparentTo(mouseDummyNP)
base.mouseWatcherNode.setGeometry(mouseDummyNP.node())
def mousePut():
mposY=base.mouseWatcherNode.getMouseY()
mposX=base.mouseWatcherNode.getMouseX()
myTexture = loader.loadTexture("textures/outhouse.png")
cm = CardMaker('gravestone_1')
self.gravestone_1 = render.attachNewNode(cm.generate())
self.gravestone_1.setTexture(myTexture)
self.gravestone_1.setTransparency(1)
self.gravestone_1.setBin("fixed",20)
self.gravestone_1.reparentTo(render2d)
self.gravestone_1.setScale(0.1)
self.gravestone_1.setX(mposX)
self.gravestone_1.setZ(mposY)
return Task.done
base.accept("mouse1", mousePut) #left-click puts a piece
return Task.cont
followmouse(Task)
def callzbimkr1():
zbmkr=zombiemaker1()
zombiebutton1 = DirectButton(image='textures/grave1icon.png', scale=0.08, pos=(-1.225,0,-0.891), relief=None, command=callzbimkr1)