Hi I was wounding if it is possible to read a file and load its information and how to go about doing it? I set up 2 files for testing, testhome and home. It gives me a error about AttributeError: World instance has no attribute ‘homeworld’.
Home:
def homeworld (self):
f = open("networking/Users/Mradr.txt","r")
lineList = f.readlines()
f.close()
print repr(lineList[2])
print repr(lineList[3])
self.speedread = int(lineList[4].strip())
self.speed = self.speedread
self.loaded = lineList[3].strip()
self.town = lineList[2].strip()
#Load the first environment model town.egg
self.environ = loader.loadModel(self.town)
self.environ.reparentTo(render)
self.environ.setScale(0.15,0.15,0.15)
self.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)
Testhome:
#(1,2,3) 1:leftright,2:forwardbackwords,3:updown
import direct.directbase.DirectStart #Initialize Panda and create a window
from direct.task.Task import Task #Task run
import random, sys, os, math #libs for random, math
from direct.gui.OnscreenText import OnscreenText
import home
from pandac.PandaModules import Fog
from pandac.PandaModules import Shader
from pandac.PandaModules import Point3,Vec4
from pandac.PandaModules import NodePath
from pandac.PandaModules import CollisionTraverser,CollisionNode
from pandac.PandaModules import CollisionHandlerQueue,CollisionRay
from direct.showbase.DirectObject import DirectObject
class World(DirectObject):
def __init__(self):
#Some texts
self.infoText = OnscreenText(text = 'Home Town', pos = (0, .9), scale = 0.07, mayChange=1, fg = (255, 255, 255, 1))
#-----------------------------------------------------
#-----------------------------------------------------
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()
#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 * self.speed))
if (self.keyMap["back"]!=0):
base.camera.setPos(base.camera.getPos() - camright*(elapsed * self.speed))
if (self.keyMap["warp"]!=0):
[color=red]self.homeworld()
#store camrea pos
startpos = base.camera.getPos()
self.prevtime = task.time
return Task.cont
World()
run()