def setupShip(self,filename): domLevel = parse(filename) shipNodes = domLevel.getElementsByTagName("ship") shipNode = shipNodes[0] self.mainbody = Body() for node in shipNode.childNodes: if node.localName == "position": position = node.getAttribute('value') values = position.split(',') self.mainbody.setPosition(float(values[0]),float(values[1])) if node.localName == "mobile": m = Mobile() for childnode in node.childNodes: if childnode.localName == "position": values = childnode.getAttribute('value').split(',') m.setPosition(float(values[0]),float(values[1])) if childnode.localName == "velocity": values = childnode.getAttribute('value').split(',') m.setVelocity(float(values[0]),float(values[1])) if childnode.localName == "thrust": values = childnode.getAttribute('value').split(',') m.setThrustVector(float(values[0]),float(values[1])) m.setInitialThrustVector(float(values[0]),float(values[1])) if childnode.localName == "mass": value = childnode.getAttribute('value') m.setMass(float(value)) if childnode.localName == "radius": value = childnode.getAttribute('value') m.setRadius(float(value)) if childnode.localName == "texture": value = childnode.getAttribute('value') m.setTexture(TextureHelper.loadTextureFromFile(value)) #if childnode.localName == "physicalPoints": # for ppointnode in childnode.childNodes: # if ppointnode.localName == "point": # values = ppointnode.getAttribute('value').split(',') # m.addPhysicalPoint(Vector2d(float(values[0]),float(values[1]))) m.setupPhysicalPoint() self.mainbody.addMobile(m) self.mainbody.init() focus_position = self.mainbody.getPosition() self.world.addMobile(self.mainbody)