Got another qestion when I was working on my maps, how do you go about “warping” to the nexts map? I tried something like this when I press k. I know you should destory the 1st so you can rebuild the new one, (other wise they will just overlap, thats what its doing with this code), not sure how to go about doing this tho.
Updata: After some rereading I found the code that well make hte model go away (witch I was right the 1st time) just it gives me a error with how my code is setup. errer: UnboundLocalError: local variable ‘environ’ referenced before assignment
Meaning its being called somehow befor environ can be called, not sure how to get around it.–I think anyways lol.
class World(DirectObject):
def __init__(self):
f = open("networking/Users/Mradr.txt","r")
lineList = f.readlines()
f.close()
print repr(lineList[2])
town = lineList[2].strip()
#Load the first environment model town.egg
environ = loader.loadModel(town)
environ.reparentTo(render)
environ.setScale(0.15,0.15,0.15)
environ.setPos(0,0,0)
#waterpiller = loader.loadModel("towns/water")
#waterpiller.reparentTo(render)
#waterpiller.setScale(0.15,0.15,0.15)
#waterpiller.setPos(-1000,-100000,-64)
#watershader = Shader.load("shaders/water.sha")
#waterpiller.setShader(watershader)
self.keyMap = {"left":0, "right":0, "forward":0, "back":0, "warp":0}
# Accept the control keys for movement
self.accept("escape", sys.exit)
self.accept("arrow_left", self.setKey, ["left",1])
self.accept("arrow_right", self.setKey, ["right",1])
self.accept("arrow_up", self.setKey, ["forward",1])
self.accept("arrow_down", self.setKey, ["back",1])
self.accept("arrow_left-up", self.setKey, ["left",0])
self.accept("arrow_right-up", self.setKey, ["right",0])
self.accept("arrow_up-up", self.setKey, ["forward",0])
self.accept("arrow_down-up", self.setKey, ["back",0])
self.accept("k", self.setKey, ["warp",1])
self.accept("k_up", self.setKey, ["warp",0])
taskMgr.add(self.move,"moveTask")
# Game state variables
self.prevtime = 0
#disable camera
base.disableMouse()
if town == "towns/a":
base.camera.setPos(0,0,0)
base.camLens.setFar(5000)
#if town == "towns/controlroom":
#base.camera.setPos(0,0,100)
#base.camLens.setFar(1000)
#background color
base.setBackgroundColor(0,0,0)
#Records the state of the arrow keys
def setKey(self, key, value):
self.keyMap[key] = value
def move(self, task):
elapsed = task.time - self.prevtime
camright = base.camera.getNetTransform().getMat().getRow3(1)
if (self.keyMap["left"]!=0):
base.camera.setH(base.camera.getH() + elapsed*250)
if (self.keyMap["right"]!=0):
base.camera.setH(base.camera.getH() - elapsed*250)
if (self.keyMap["forward"]!=0):
base.camera.setPos(base.camera.getPos() + camright*(elapsed*500))
if (self.keyMap["back"]!=0):
base.camera.setPos(base.camera.getPos() - camright*(elapsed*500))
if (self.keyMap["warp"]!=0):
environ.detachNode()
#Load the first environment model town.egg
environ = loader.loadModel("towns/controlroom")
environ.reparentTo(render)
environ.setScale(0.15,0.15,0.15)
environ.setPos(0,0,0)