Hello all
Ive been working on getting a second window to work with my game - i can get it to open and i have a new root node for the window and i can see models but half of the window is cut off and my update tasks dont seem to be working properly ( i dont see any movement)
heres the code and a screenshot
##############################################
# #IMPORT# #
##############################################
from pandac.PandaModules import *
from shapes.shapeGenerator import Cube, Sphere
from pandac.PandaModules import Material
import random
from direct.showbase.InputStateGlobal import inputState
#from direct.task import Task
##############################################
# #External Class IMPORT# #
##############################################
from shapes.shapeGenerator import *
##############################################
# #NEW CLASS# #
##############################################
class LevelEditor():
def __init__(self, location):
self.bool = True
self.initEditor()
self.skyBox()
self.controlListener()
taskMgr.add(self.update, "LevelEditUpdate")
def controlListener(self):
inputState.watchWithModifiers('up', 'w')
inputState.watchWithModifiers('left', 'a')
inputState.watchWithModifiers('down', 's')
inputState.watchWithModifiers('right', 'd')
def initEditor(self):
#win = base.openWindow()
self.wp = WindowProperties()
base.makeAllPipes()
pipe = base.pipeList[0]
self.wp.setSize(pipe.getDisplayWidth() - 60, pipe.getDisplayHeight() - 60)
self.wp.setOrigin(30, 30)
self.win1 = base.openWindow(props = self.wp)
self.myRender = NodePath('myRender')
base.camList[-1].reparentTo(self.myRender)
self.cube = Cube(1, 1, 1)
self.node = self.myRender.attachNewNode("node")
self.cube.reparentTo(self.node)
self.node.setPos(4, 4, 4)
base.camera1 = base.camList[-1]
#base.camera1.lookAt(self.node)
def LoadLevel(self, location):
print(location)
def skyBox(self):
material = Material()
material.setAmbient(VBase4(random.random(), random.random(), random.random(), random.random()))
material.setDiffuse(VBase4(random.random(), random.random(), random.random(), random.random()))
material.setEmission(VBase4(random.random(), random.random(), random.random(), random.random()))
material.setShininess(random.random())
self.Sphere = Cube(20, 20, 20)
self.snp = self.myRender.attachNewNode("Sphere Node")
self.Sphere.reparentTo(self.snp)
self.snp.setTwoSided(True)
self.snp.setMaterial(material)
texture = loader.loadTexture("SpaceTexture.jpg")
self.Sphere.setTexture(texture)
self.snp.reparentTo(base.camera1)
self.snp.setBin("Background", 1)
self.snp.setDepthWrite(False)
self.snp.setCompass()
def update(self, task):
base.camera1.setX(self.node.getX())
base.camera1.setZ(self.node.getZ() - 5)
base.camera1.setY(self.node.getY() - 7)
#############################################
# #CAMERA UPDATE# #
#############################################
pointer = base.win.getPointer(0)
pointerX = pointer.getX()
pointerY = pointer.getY()
if self.win1.movePointer(0, self.win1.getXSize()/2, self.win1.getYSize ()/2):
Pitch = -((pointerY - self.win1.getYSize()/2)*.1)
Heading = -((pointerX - self.win1.getXSize()/2)*.1)
self.node.setP(self.node, Pitch)
self.node.setH(self.node, Heading)
#self.camera.cn.setH(self.fakeNode.getH())
if self.bool:
base.camera1.lookAt(self.node)
self.bool = False
#############################################
# #PLAYER UPDATE# #
#############################################
if inputState.isSet('up'):
y = self.node.getY() + 1
self.node.setY(y)
if inputState.isSet('down'):
negY = self.node.getY() - 1
self.node.setY(negY)
if inputState.isSet('left'):
x = self.node.getX() + 1
self.node.setX(x)
if inputState.isSet('right'):
negX = self.node.getX() - 1
self.node.setX(negX)
return task.cont