Objects
Basisklasse für alle bewegten Objekte
Objects.py — text/python-source, 1 KB (1665 bytes)
Dateiinhalt
from visual import * import math class MovingObject(object): def __init__ (self, position=vector((0,0,0)), speed=vector((0,0,0)), col_radius=1, focus = False ): self.position = position self.speed = speed self.acceleration = vector((0,0,0)) self.col_radius = col_radius self.focus = focus self.collision = False self.collisions = [] #self.adjustFrameToDir = True self.rahmen = frame(pos=self.position) #if self.adjustFrameToDir: #self.rahmen.rotate(angle = math.atan2((-1)*speed[2], (-1)*speed[0]), axis = (0,1,0)) #i = math.sqrt(speed[0]**2 + speed[2]**2) #self.rahmen.rotate(angle = (-1) * math.atan2(speed[1], i), axis = (1,0,0)) self.i = 0 def collisionWith(self,x): self.collision = True self.collisions.append(x) def getCollision(self): y = self.collisions.pop() if self.collisions == []: self.collision = False return y def step(self,dtime): self.eventInteraction() self.speed += self.acceleration self.position += self.speed*dtime self.rahmen.pos = self.position self.rahmen.axis = self.speed #print self.position, "\t", self.speed, "\t", self.i self.i += 1 if self.focus: scene.center = self.position scene.range=(18,18,18) scene.forward = self.speed+vector((0,-10,0)) def eventInteraction(self): # abstract Method pass