def __init__(self, game, pos, vel): self.initCordPos = numpy.array([pos[0], pos[1]]) line = game.segLine lineLen = 0 prevPoint = line[0] self.initNum = 0 for point in line: norm = numpy.linalg.norm(point - prevPoint) if pos[0] >= lineLen and pos[0] < lineLen + norm: ldirec = (point - prevPoint) / norm rdirec = numpy.array([ldirec[1], -ldirec[0]]) post = prevPoint + (pos[0] - lineLen) * ldirec + rdirec * pos[1] self.initPos = Vec3(post[0], post[1], pos[2]) break lineLen = lineLen + norm prevPoint = point self.initNum = self.initNum + 1 chassis = setChassis(game, self.initPos, vel) BulletVehicle.__init__(self, game.world, chassis.node()) self.setCoordinateSystem(ZUp) game.world.attachVehicle(self) self.yugoNP = loader.loadModel('models/yugo/yugo.egg') self.yugoNP.reparentTo(chassis) # Right front wheel np = loader.loadModel('models/yugo/yugotireR.egg') np.reparentTo(game.worldNP) self.addWheel(Point3(0.70, 1.05, 0.3), True, np) # Left front wheel np = loader.loadModel('models/yugo/yugotireL.egg') np.reparentTo(game.worldNP) self.addWheel(Point3(-0.70, 1.05, 0.3), True, np) # Right rear wheel np = loader.loadModel('models/yugo/yugotireR.egg') np.reparentTo(game.worldNP) self.addWheel(Point3(0.70, -1.05, 0.3), False, np) # Left rear wheel np = loader.loadModel('models/yugo/yugotireL.egg') np.reparentTo(game.worldNP) self.addWheel(Point3(-0.70, -1.05, 0.3), False, np) # Steering info self.steering = 0.0 # degree self.steeringClamp = 45.0 # degree self.steeringIncrement = 10.0 # degree per second
def __init__(self,game,pos,vel): self.initCordPos=numpy.array([pos[0],pos[1]]) line=game.segLine lineLen=0 prevPoint=line[0] self.initNum=0 for point in line: norm=numpy.linalg.norm(point-prevPoint) if pos[0]>=lineLen and pos[0]<lineLen+norm: ldirec=(point-prevPoint)/norm rdirec=numpy.array([ldirec[1],-ldirec[0]]) post=prevPoint+(pos[0]-lineLen)*ldirec+rdirec*pos[1] self.initPos=Vec3(post[0],post[1],pos[2]) break lineLen=lineLen+norm prevPoint=point self.initNum=self.initNum+1 chassis=setChassis(game,self.initPos,vel) BulletVehicle.__init__(self,game.world,chassis.node()) self.setCoordinateSystem(ZUp) game.world.attachVehicle(self) self.yugoNP = loader.loadModel('models/yugo/yugo.egg') self.yugoNP.reparentTo(chassis) # Right front wheel np = loader.loadModel('models/yugo/yugotireR.egg') np.reparentTo(game.worldNP) self.addWheel(Point3( 0.70, 1.05, 0.3), True, np) # Left front wheel np = loader.loadModel('models/yugo/yugotireL.egg') np.reparentTo(game.worldNP) self.addWheel(Point3(-0.70, 1.05, 0.3), True, np) # Right rear wheel np = loader.loadModel('models/yugo/yugotireR.egg') np.reparentTo(game.worldNP) self.addWheel(Point3( 0.70, -1.05, 0.3), False, np) # Left rear wheel np = loader.loadModel('models/yugo/yugotireL.egg') np.reparentTo(game.worldNP) self.addWheel(Point3(-0.70, -1.05, 0.3), False, np) # Steering info self.steering = 0.0 # degree self.steeringClamp = 45.0 # degree self.steeringIncrement = 10.0 # degree per second
def __init__(self, game, pos, vel, length, width, height, axisDis, wheelDis, radius, wheelH): self.initCordPos = numpy.array([pos[0], pos[1]]) '''self.length=length self.width=width self.height=height self.axisDis=axisDis self.wheelDis=wheelDis self.radius=radius self.wheelH=wheelH''' line = game.segLine lineLen = 0 prevPoint = line[0] self.initNum = 0 for point in line: norm = numpy.linalg.norm(point - prevPoint) if pos[0] >= lineLen and pos[0] < lineLen + norm: ldirec = (point - prevPoint) / norm rdirec = numpy.array([ldirec[1], -ldirec[0]]) post = prevPoint + (pos[0] - lineLen) * ldirec + rdirec * pos[1] self.initPos = Vec3(post[0], post[1], pos[2]) break lineLen = lineLen + norm prevPoint = point self.initNum = self.initNum + 1 chassis = setChassis(game, self.initPos, vel, length, width, height) BulletVehicle.__init__(self, game.world, chassis.node()) self.setCoordinateSystem(ZUp) game.world.attachVehicle(self) #self.yugoNP = loader.loadModel('models/yugo/yugo.egg') self.yugoNP = loader.loadModel('models/car.egg') self.yugoNP.reparentTo(chassis) # Right front wheel np = loader.loadModel('models/yugo/yugotireR.egg') np.reparentTo(game.worldNP) self.addWheel(Point3(wheelDis / 2, axisDis / 2, wheelH), True, np, radius) # Left front wheel np = loader.loadModel('models/yugo/yugotireL.egg') np.reparentTo(game.worldNP) self.addWheel(Point3(-wheelDis / 2, axisDis / 2, wheelH), True, np, radius) # Right rear wheel np = loader.loadModel('models/yugo/yugotireR.egg') np.reparentTo(game.worldNP) self.addWheel(Point3(wheelDis / 2, -axisDis / 2, wheelH), False, np, radius) # Left rear wheel np = loader.loadModel('models/yugo/yugotireL.egg') np.reparentTo(game.worldNP) self.addWheel(Point3(-wheelDis / 2, -axisDis / 2, wheelH), False, np, radius) # Steering info self.steering = 0.0 # degree self.steeringClamp = 45.0 # degree self.steeringIncrement = 10.0 # degree per second
def __init__(self, game, v_id, pos, vel, length, width, height, axisDis, wheelDis, radius, wheelH): self.initCordPos = numpy.array([pos[0], pos[1]]) '''self.length=length self.width=width self.height=height self.axisDis=axisDis self.wheelDis=wheelDis self.radius=radius self.wheelH=wheelH''' self.id = v_id line = game.segLine lineLen = 0 prevPoint = line[0] self.initNum = 0 for point in line: norm = numpy.linalg.norm(point - prevPoint) if pos[0] >= lineLen and pos[0] < lineLen + norm: ldirec = (point - prevPoint) / norm rdirec = numpy.array([ldirec[1], -ldirec[0]]) post = prevPoint + (pos[0] - lineLen) * ldirec + rdirec * pos[1] self.initPos = Vec3(post[0], post[1], pos[2]) break lineLen = lineLen + norm prevPoint = point self.initNum = self.initNum + 1 chassis = setChassis(game, self.initPos, vel, length, width, height) BulletVehicle.__init__(self, game.world, chassis.node()) self.setCoordinateSystem(ZUp) game.world.attachVehicle(self) ### if length < 17: v_type = 'car' elif length < 19: v_type = 'suv' elif length < 25: v_type = 'truck' else: v_type = 'bus' self.yugoNP = loader.loadModel('models/low_poly_cars_set/' + v_type + '.obj') nn = str(numpy.random.randint(3)) tex = loader.loadTexture('models/low_poly_cars_set/tex/' + v_type + '_' + nn + '.png') self.yugoNP.setTexture(tex, 1) ### # self.yugoNP = loader.loadModel('models/yugo/yugo.egg') min, max = self.yugoNP.getTightBounds() size = max - min self.yugoNP.setSx(width / size[0]) self.yugoNP.setSy(length / size[1]) self.yugoNP.setSz(width / size[0]) min, max = self.yugoNP.getTightBounds() self.yugoNP.setPos(-(min + max) / 2) self.yugoNP.setZ(-min[2]) self.yugoNP.reparentTo(chassis) # Right front wheel np = loader.loadModel('models/yugo/yugotireR.egg') np.reparentTo(game.worldNP) self.addWheel(Point3(wheelDis / 2, axisDis / 2, wheelH), True, np, radius) # Left front wheel np = loader.loadModel('models/yugo/yugotireL.egg') np.reparentTo(game.worldNP) self.addWheel(Point3(-wheelDis / 2, axisDis / 2, wheelH), True, np, radius) # Right rear wheel np = loader.loadModel('models/yugo/yugotireR.egg') np.reparentTo(game.worldNP) self.addWheel(Point3(wheelDis / 2, -axisDis / 2, wheelH), False, np, radius) # Left rear wheel np = loader.loadModel('models/yugo/yugotireL.egg') np.reparentTo(game.worldNP) self.addWheel(Point3(-wheelDis / 2, -axisDis / 2, wheelH), False, np, radius) # Steering info self.steering = 0.0 # degree self.steeringClamp = 45.0 # degree self.steeringIncrement = 10.0 # degree per second