Example #1
0
    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"]
Example #2
0
	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