Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- '''Programa los procedimientos y funciones necesarios para permitir al usuario del programa
- cambiar de tipo de figura presionando la tecla \espacio".
- Para ello utiliza el evento pertinente
- y un nuevo atributo del estado que indique de que tipo es cada figura. Sugerencia:
- mantenganse en las figuras simples como el rectangulo y la ellipsis.
- Utiliza las teclas , Flechas,Enter, Espacio, 1,2,3,4 de la parte superior del teclado'''
- import pygame
- import sys
- BLANCO = (255,255,255)
- VERDE = (0,255,0)
- AZUL = (0,0,255)
- MEDIDA_PANTALLA = (640,480)
- X = 0
- Y = 1
- def Pelota(pantalla, posicion, dimension):
- pygame.draw.ellipse (pantalla, VERDE, (posicion, dimension), 5)
- def Rectangulo(pantalla, posicion, dimension):
- pygame.draw.rect (pantalla, AZUL, (posicion, dimension), 5)
- def DibujarFigura(pantalla, posicion, dimension, forma):
- if forma == "pelota":
- forma = Pelota(pantalla, posicion, dimension)
- else:
- forma = Rectangulo(pantalla, posicion, dimension)
- def DibujarPantalla(pantalla, estado):
- DibujarFigura(pantalla, estado ["figuraActual"]["posicion"],estado ["figuraActual"]["dimension"], estado ["figuraActual"]["forma"])
- for figura in estado ["figurasImpresas"]:
- DibujarFigura (pantalla, figura ["posicion"], figura ["dimension"], figura["forma"])
- def actualizarEstado(estado):
- figuraActual = estado["figuraActual"]
- figurasImpresas = estado ["figurasImpresas"]
- forma = ["forma"]
- for evento in pygame.event.get():
- if evento.type == pygame.KEYDOWN:
- #mover
- if evento.key == pygame.K_LEFT:
- figuraActual["posicion"] = (figuraActual["posicion"][X]-10, figuraActual["posicion"][Y])
- if evento.key == pygame.K_RIGHT:
- figuraActual ["posicion"] = (figuraActual["posicion"][X]+10, figuraActual["posicion"][Y])
- if evento.key == pygame.K_UP:
- figuraActual ["posicion"] = (figuraActual["posicion"][X], figuraActual["posicion"][Y]-10)
- if evento.key == pygame.K_DOWN:
- figuraActual ["posicion"] = (figuraActual["posicion"][X], figuraActual["posicion"][Y]+10)
- # dimension
- if evento.key == pygame.K_1:
- figuraActual ["dimension"] = (figuraActual ["dimension"][X]-10, figuraActual ["dimension"][Y])
- if evento.key == pygame.K_2:
- figuraActual["dimension"] = (figuraActual ["dimension"][X]+10, figuraActual ["dimension"][Y])
- if evento.key == pygame.K_3:
- figuraActual ["dimension"] = (figuraActual ["dimension"][X], figuraActual ["dimension"][Y]-10)
- if evento.key == pygame.K_4:
- figuraActual ["dimension"] = (figuraActual ["dimension"][X], figuraActual ["dimension"][Y]+10)
- # cambiar forma
- if evento.key == pygame.K_SPACE:
- if figuraActual ["forma"] == "pelota":
- figuraActual ["forma"] = "rectangulo"
- else:
- figuraActual["forma"] = "pelota"
- #imprimir
- if evento.key == pygame.K_RETURN:
- figurasImpresas = figurasImpresas + [dict(figuraActual)]
- if evento.type == pygame.QUIT:
- pygame.quit()
- nuevoEstado = {
- "figuraActual" : figuraActual,
- "figurasImpresas" : figurasImpresas,
- "forma" : forma
- }
- return nuevoEstado
- def EjecutarCiclo():
- estado = {
- "figuraActual" : {"posicion" : (80,0), "dimension" : (240,240), "forma" : "circulo"},
- "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