Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/pilas/actores/mono.py
blob: 012ab7449ef776136c798433b3a2598fabf0aee0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# -*- encoding: utf-8 -*-
# Pilas engine - A video game framework.
#
# Copyright 2010 - Hugo Ruscitti
# License: LGPLv3 (see http://www.gnu.org/licenses/lgpl.html)
#
# Website - http://www.pilas-engine.com.ar

from pilas.actores import Actor
import pilas

class Mono(Actor):
    """Representa la cara de un mono de color marrón.

    .. image:: images/actores/mono.png

    Este personaje se usa como ejemplo básico de un actor. Por
    ejemplo, esta es una forma de usar al actor:

        >>> mono = pilas.actores.Mono()
        >>> mono.decir("Hola!!!")
        >>> mono.gritar()
    """

    def __init__(self, x=0, y=0):
        # carga las imagenes adicionales.
        self.image_normal = pilas.imagenes.cargar('monkey_normal.png')
        self.image_smile = pilas.imagenes.cargar('monkey_smile.png')
        self.image_shout = pilas.imagenes.cargar('monkey_shout.png')

        self.sound_shout = pilas.sonidos.cargar('shout.wav')
        self.sound_smile = pilas.sonidos.cargar('smile.wav')

        # Inicializa el actor.
        Actor.__init__(self, self.image_normal, x=x, y=y)
        self.radio_de_colision = 50

    def sonreir(self):
        """Hace que el mono sonria y emita un sonido."""
        self.definir_imagen(self.image_smile)
        # Luego de un segundo regresa a la normalidad
        pilas.mundo.agregar_tarea_una_vez(0.5, self.normal)
        self.sound_smile.reproducir()

    def gritar(self):
        """Hace que el mono grite emitiendo un sonido."""
        self.definir_imagen(self.image_shout)
        # Luego de un segundo regresa a la normalidad
        pilas.mundo.agregar_tarea_una_vez(1, self.normal)
        self.sound_shout.reproducir()

    def normal(self):
        """Restaura la expresión del mono.

        Este función se suele ejecutar por si misma, unos
        segundos después de haber gritado y sonreir."""
        self.definir_imagen(self.image_normal)

    def decir(self, mensaje):
        """Emite un mensaje y además sonrie mientras habla.
        
        Por ejemplo:

            >>> mono.decir("Estoy hablando!!!")

        .. image:: images/actores/mono_dice.png
        """
        self.sonreir()
        Actor.decir(self, mensaje)