def draw(self, screen, frame_ticks, ticks, fps): # Move self.angle += self.angle_speed if self.angle > 359: self.angle = 0 self.pos[0] -= self.speed_X self.pos[1] += self.angle_size * math.sin(math.radians(self.angle)) # Animation self.updateAnim(ticks) if Game.outsideScreen(self.pos, self.rect): self.visible = False else: self.visible = True if self.pos[0] < -self.rect.width: self.kill() if self.visible: # Draw screen.blit(self.image, self.rect) return ["check-collisions", "player-paint"]
def draw( self, screen, frame_ticks, ticks, fps ): if self.target: # Apply gravity #self.target[1] += 5 dx = float( self.target[0] - self.pos[0] ) dy = float( self.target[1] - self.pos[1] ) if dy == 0: dy = 0.01 a = math.atan(dx / dy) self.move_X = (self.speed * math.sin(a)) self.move_Y = (self.speed * math.cos(a)) if dy < 0: self.move_X = -self.move_X self.move_Y = -self.move_Y # Move self.pos[0] += self.move_X self.pos[1] += self.move_Y near_x = abs(self.pos[0] - self.target[0]) near_y = abs(self.pos[1] - self.target[1]) check = 10 if near_x > -check and near_x < check and near_y > -check and near_y < check: self.target = None self.setAnimState( "splat-idle" ) if self.pos[1] < 100: #instant drip if near top of screen self.age = 99 else: self.age = 1 self.updateAnim( ticks ) if self.age > 0: self.age += 1 if self.state == "splat-drip" and self._frame == 10: self.kill( ) else: self.updateAnim( ticks ) if self.age == 100: self.setAnimState( "splat-drip" ) if Game.outsideScreen( self.pos, self.rect ): if self.state == "move": #self.visible = False pass else: self.kill( ) if self.visible: # Draw screen.blit( self.image, self.rect ) return None