Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import pygame
- import sys
- BLANCO = (255, 255, 255)
- ROJO = (255, 0, 0)
- MEDIDA_PANTALLA = (640, 480)
- X = 0
- Y = 1
- ANCHO = 0
- ALTO = 1
- def Pelota(pantalla, posicion,dimension):
- pygame.draw.ellipse(pantalla, ROJO, (posicion,dimension), 5)
- def DibujarFigura(pantalla, figura):
- # Va a dibujar distintas figuras
- # dependiendo del estado de la posicion y dimension.
- Pelota(pantalla, figura["posicion"],figura["dimension"])
- def DibujarPantalla(pantalla, estado):
- # Dibuja la figura actual y cada figura de la lista
- # de figuras que ya han sido impresas
- DibujarFigura(pantalla, estado["figuraActual"])
- for figura in estado["figurasImpresas"]:
- DibujarFigura(pantalla, figura)
- def actualizarEstado(estado):
- figuraActual = estado["figuraActual"]
- figurasImpresas = estado["figurasImpresas"]
- imprimir = False
- Pos = figuraActual["posicion"] # Creamos una variable y le asignamos una clave del diccionario estado
- Dim = figuraActual["dimension"]
- for evento in pygame.event.get():
- if evento.type == pygame.KEYDOWN:
- #mover
- if evento.key == pygame.K_LEFT:
- Pos = (figuraActual["posicion"][X]-10, figuraActual["posicion"][Y])
- if evento.key == pygame.K_RIGHT:
- Pos = (figuraActual["posicion"][X]+10, figuraActual["posicion"][Y])
- if evento.key == pygame.K_UP:
- Pos = (figuraActual["posicion"][X], figuraActual["posicion"][Y]-10)
- if evento.key == pygame.K_DOWN:
- Pos = (figuraActual["posicion"][X], figuraActual["posicion"][Y]+10)
- #dimension
- if evento.key == pygame.K_KP2:
- Dim = (figuraActual ["dimension"][ANCHO], figuraActual ["dimension"][ALTO]+10)
- if evento.key == pygame.K_KP8:
- Dim = (figuraActual ["dimension"][ANCHO], figuraActual ["dimension"][ALTO]-10)
- if evento.key == pygame.K_KP6:
- Dim = (figuraActual ["dimension"][ANCHO]+10, figuraActual ["dimension"][ALTO])
- if evento.key == pygame.K_KP4:
- Dim = (figuraActual ["dimension"][ANCHO]-10, figuraActual ["dimension"][ALTO])
- # Imprime
- if evento.key == pygame.K_RETURN: # Enter
- imprimir = True
- if evento.type == pygame.QUIT:
- pygame.quit()
- if imprimir:
- nuevaFiguraActual = { "posicion": (80, 0), "dimension": (240, 240) } #se almacena en un diccionario
- nuevaFiguraImpresa = { "posicion": Pos, "dimension": Dim } #se almacena en un diccionario
- nuevoEstado = {
- "figuraActual" : nuevaFiguraActual,
- "figurasImpresas": figurasImpresas + [nuevaFiguraImpresa]
- }
- else:
- nuevaFiguraActual = { "posicion": Pos, "dimension": Dim }
- nuevoEstado = {
- "figuraActual": nuevaFiguraActual,
- "figurasImpresas": figurasImpresas
- }
- return nuevoEstado
- #El programa primero llena la pantalla
- #luego dibuja la pantalla, en el estado que tiene el programa
- #el estado depende de la "figuraActual" y de
- #las "figurasImpresas" si las hubiera'''
- def EjecutarCiclo():
- estado = {
- "figuraActual": { "posicion" : (80,0), "dimension" : (240,240) },
- "figurasImpresas" : []
- }
- pygame.init()
- pantalla = pygame.display.set_mode(MEDIDA_PANTALLA)
- reloj = pygame.time.Clock()
- while True:
- pantalla.fill(BLANCO)
- DibujarPantalla(pantalla, estado)
- estado = actualizarEstado(estado)
- pygame.display.flip()
- tick = reloj.tick(60)
- if __name__ == "__main__":
- EjecutarCiclo()
Advertisement
Add Comment
Please, Sign In to add comment