def get_polygon(self): # self position is center point return gmath.rotate(((self.x, self.y - self.size), (self.x + math.cos(math.pi / 6) * self.size, self.y + math.sin(math.pi / 6) * self.size), (self.x - math.cos(math.pi / 6) * self.size, self.y + math.sin(math.pi / 6) * self.size)), self.theta + math.pi / 2, self)
def polygon(self): return gmath.rotate(((self.x - self.size, self.y + self.size), (self.x + self.size, self.y + self.size), (self.x + self.size / 6, self.y + self.size / 6), (self.x + self.size / 6, self.y - self.size), (self.x - self.size / 6, self.y - self.size), (self.x - self.size / 6, self.y + self.size / 6)), self.rot + math.pi, self)
def update(self, events): super().update(events) if self.entity_inner_tick % self.fire_tick == 0: turret_position = gmath.rotate(((self.x, self.y - self.size), ), self.rot, self) bullet = EntityBullet(self.game, turret_position[0][0], turret_position[0][1]).spawn() theta = math.atan2((self.target.y - turret_position[0][1]), (self.target.x - turret_position[0][0])) bullet.color = (0, 184, 212) bullet.motion.set_x(math.cos(theta) * self.speed).set_y( math.sin(theta) * self.speed)
def bound_model(self): return gmath.rotate(self.polygon, self.rot + math.pi / 2, self)