def __init__(self, xpos, ypos, theta, size, speed, color, background, time, arena_walls): self.xpos = xpos self.ypos = ypos self.color = color self.background = background self.theta = theta self.time = time self.lastTime = time[0] self.size = size self.speed = speed self.initspeed = speed self.arena_walls = arena_walls self.corridor = corridor((xpos, ypos), theta, time, background, arena_walls)
def update(self): if(self.aim and not self.launch): if(self.aimStartTime == 0): self.aimStartTime = self.time[0] direction = 0 if(self.rotdir): direction = 1 else: direction = -1 aimTimeDiff = self.time[0] - self.aimStartTime if(aimTimeDiff >= self.totalAimTime): self.aimStartTime = 0 else: self.aimAngle = self.theta + math.pow(aimTimeDiff, 2) * (math.pi*2) / (math.pow(self.totalAimTime, 2)) * direction else: self.aimStartTime = 0 if(self.launch): self.aim = False if(self.launchStartTime == 0): self.launchStartTime = self.time[0] self.theta = self.aimAngle self.speed = self.initspeed * 2 self.corridor = corridor((self.xpos, self.ypos), self.theta, self.time, self.background, self.arena_walls) timediff = self.time[0] - self.launchStartTime if(timediff >= 500): self.launch = False self.speed = self.initspeed else: self.launchStartTime = 0 timediff = self.time[0] - self.lastTime self.lastTime = self.time[0] movement = timediff * self.speed self.xpos = self.xpos + math.cos(self.theta)* movement self.ypos = self.ypos + math.sin(self.theta)* movement self.draw()#redraw self.corridor.update()