Arriba
Arriba
Abajo
Abajo
Izquierda
Derecha
Izquierda
Derecha
b
a
Es fácil cambiar el código y la etiqueta asignada a él.
# Este código añade fácilmente el Código Konami a tu juego Ren'Py. Cuando # el Código Konami (arriba arriba abajo abajo izquierda derecha izquierda derecha a b) ha # sido introducid, se llama a la etiqueta konami_code (en un nuevo contexto de forma # que el estado actual del juego no se pierde. init python hide: class KonamiListener(renpy.Displayable): def __init__(self, target): renpy.Displayable.__init__(self) import pygame # La etiqueta a la que saltamos cuando usamos el Código Konami. self.target = target # Este es el índice (en self.code) de la tecla que # esperamos. self.state = 0 # El código mismo. self.code = [ pygame.K_UP, pygame.K_UP, pygame.K_DOWN, pygame.K_DOWN, pygame.K_LEFT, pygame.K_RIGHT, pygame.K_LEFT, pygame.K_RIGHT, pygame.K_b, pygame.K_a, ] # Esta función "escucha" en busca de eventos. def event(self, ev, x, y, st): import pygame # Solo nos preocuparemos de eventos de tecla pulsada (KEYDOWN). if ev.type != pygame.KEYDOWN: return # Si no es la tecla que queremos, volvemos al principio de # la máquina de estados. if ev.key != self.code[self.state]: self.state = 0 return # En otro caso, ve al siguiente estado. self.state += 1 # Si estamos al final del código, entonces llamamos a la etiqueta objetivo en # el nuevo contexto. (Después reseteamos la máquina de estados.) if self.state == len(self.code): self.state = 0 renpy.call_in_new_context(self.target) return # Devuelve un pequeño render vacío, de forma que podremos conseguir eventos. def render(self, width, height, st, at): return renpy.Render(1, 1) # Crea un KonamiListener para "escuchar" el código. store.konami_listener = KonamiListener('konami_code') # Esto añade konami_listener a cada interacción. def konami_overlay(): ui.add(store.konami_listener) config.overlay_functions.append(konami_overlay) # Se llama en un nuevo contexto cuando el código Konami es usado. label konami_code: "¡Acabas de ganar 30 vidas extra!" "Aunque puede que no sean muy útiles en un juego de citas. ¡Bien por ti!" return
0 comentarios:
Publicar un comentario
Speak freely, friend.