Class Control
source code
object --+
|
Control
Representa un control de teclado sencillo.
Este objeto permite acceder al estado del teclado usando
atributos.
Por ejemplo, con este objeto, para saber si el usuario está pulsando
el direccional hacia la izquierda de puedes ejecutar:
if pilas.escena_actual().control.izquierda:
print 'Ha pulsado hacia la izquierda'
Es decir, si bien Control es una clase, no hace falta instanciarla. Ya
existe un objeto que se puede consultar bajo el nombre
``pilas.escena_actual().control``.
Entonces, una vez que tienes la referencia para consultar, los
atributos que tiene este objeto control son:
izquierda
derecha
arriba
abajo
boton
Cada uno de estos atributos te pueden devolver True, o False,
indicando si el control está pulsado o no.
Ten en cuenta que este objeto también se puede imprimir usando la
sentencia ``print``. Esto es útil para ver el estado completo del control
de una sola vez:
>>> print pilas.mundo.control
<Control izquierda: False derecha: False arriba: False abajo: False boton: False>
También tienes la posibilidad de crearte un control estableciendo las
teclas personalizadas. Para ello debes crearte un diccionario con las
claves izquierda, derecha, arriba, abajo y boton. Con las constantes de
pilas.simbolos, puedes asignar una tecla a cada una de las entradas del
diccionario.
>>> teclas = {pilas.simbolos.a: 'izquierda',
pilas.simbolos.d: 'derecha',
pilas.simbolos.w: 'arriba',
pilas.simbolos.s: 'abajo',
pilas.simbolos.ESPACIO: 'boton'}
>>> mi_control = pilas.control.Control(pilas.escena_actual(), teclas)
Consultando controles desde un actor:
Una forma habitual de usar los controles, es consultarlos directamente
desde el codigo de un actor.
Para consultar los controles para cambiar la posicion horizontal de un
actor podrías implementar el método ``actualizar``:
class Patito(pilas.actores.Actor):
def __init__(self):
pilas.actores.Actor.__init__(self)
self.imagen = "patito.png"
def actualizar(self):
if pilas.escena_actual().control.izquierda:
self.x -= 5
self.espejado = True
elif pilas.escena_actual().control.derecha:
self.x += 5
self.espejado = False
.. image:: ../../pilas/data/patito.png
|
__init__(self,
escena,
mapa_teclado=None)
x.__init__(...) initializes x; see help(type(x)) for signature |
source code
|
|
|
|
|
|
|
procesar_cambio_de_estado_en_la_tecla(self,
codigo,
estado) |
source code
|
|
|
|
|
|
Inherited from object :
__delattr__ ,
__format__ ,
__getattribute__ ,
__hash__ ,
__new__ ,
__reduce__ ,
__reduce_ex__ ,
__repr__ ,
__setattr__ ,
__sizeof__ ,
__subclasshook__
|
Inherited from object :
__class__
|
__init__(self,
escena,
mapa_teclado=None)
(Constructor)
| source code
|
x.__init__(...) initializes x; see help(type(x)) for signature
- Overrides:
object.__init__
- (inherited documentation)
|
__str__(self)
(Informal representation operator)
| source code
|
str(x)
- Overrides:
object.__str__
- (inherited documentation)
|