El problema que tengo es con el pause.
Tengo entendido que en otros para pausar con un evento el pseudocódigo es algo como:
- Código: Seleccionar todo
pause falso
while jugar:
if evento y pasue falso:
pause verdadero
if evento y pause verdadero:
pause falso
if pause falso:
actualizamos las posiciones de los sprites
dibujamos los sprites
Pero cuando lo paso a pygame, no pasa nada XD, e aquí el código:
- Código: Seleccionar todo
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import pygame
from pygame.locals import *
import sys
ALTO = 500
ANCHO = 650
class pelota(pygame.sprite.Sprite):
"Initialpos = possiciones 'x' y 'y' iniciales"
"medidas = ancho y alto"
"change = cambio de possiciones 'x' y 'y'"
"nombre de la imagen"
def __init__(self, initialpos, medidas, change, imagen):
(self.posx, self.posy)=initialpos
(self.alto,self.ancho)=medidas
(self.dx, self.dy)=change
self.imagen = imagen
pygame.sprite.Sprite.__init__(self)
(self.image, self.rect) = self.load_image(self.imagen, True)
def load_image(self, name, colorkey=False):
fullname = os.path.join("datos", name)
#comprobamos si existe la imagen
try:
image = pygame.image.load(fullname)
except pygame.error, message:
print 'No se puede cargar la imagen: ', fullname
raise SystemExit, message
#combierte la imagen para que pygame la pueda usar
image = image.convert()
#En este punto asignamos el colorkey
if colorkey:
colorkey = image.get_at((0, 0))
image.set_colorkey(colorkey, RLEACCEL)
#devuelve la imagen y la recta de la imagen
return (image, image.get_rect())
def change(self, dx, dy):
#lo que crea una funcion que cambia la posicion
self.posx=self.posx+dx
self.posy=self.posy+dy
#lo que hace que rebote la pelota
if (self.posx >= self.ancho)or(self.posx <= 0):
self.dx = -self.dx
if (self.posy >= self.alto)or(self.posy<=0):
self.dy = -self.dy
return (self.posx,self.posy)
def update(self):
posicion=self.change(self.dx, self.dy)
self.rect.center = posicion
def Main():
pygame.init()
#pygame.font.init()
# creamos la ventana y le indicamos un titulo:
size = (ALTO,ANCHO)
screen = pygame.display.set_mode((ANCHO,ALTO))
pygame.display.set_caption("Ejemplo")
sprites = pygame.sprite.RenderClear()
inicial = (0,0)
cambio = (5,10)
pygame.mouse.set_visible(True)
pelotita = pelota(inicial,size,cambio,'pelota.png')
sprites.add(pelotita)
clock = pygame.time.Clock()
# el bucle principal del juego
Escojer=True
pause = 0
while Escojer:
clock.tick(75)
# Posibles entradas del teclado y mouse
for event in pygame.event.get():
if event.type == pygame.QUIT:
Escojer=False
sys.exit()
elif event.type == KEYDOWN and event.key == K_ESCAPE:
Escojer=False
if event.type == MOUSEBUTTONDOWN:
if ((event.button==1)and(pause==0)):
pause=1
print pause
if ((event.button==1)and(pause==1)):
pause=0
print pause
screen.fill((0,0,0))
if pause==0:
sprites.update()
sprites.draw(screen)
pygame.display.flip()
pygame.time.delay(15)
if __name__ == "__main__":
Main()
Y si se lo preguntaban ya e utilizado time.waith (creo que asi se escribe), pero no me da los resultados que espero XD
¿Alguien sabe como hacerlo?
