Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





[Pygame] No se ejecuta este código

Iniciado por Mindro, 23 de Marzo de 2008, 04:06:34 PM

« anterior - próximo »

Mindro

¡Buenas! Soy un aprendiz de Python & Pygame, y estoy empezando a programar, y este simple código no me funciona.

background_image_filename = 'fondo.png'
mouse_image_filename = 'imagen1.JPEG'

import pygame
from pygame.locals import *
from sys import exit

pygame.init()

screen = pygame.display.set_mode((620, 480), 0, 32)
pygame.display.set_caption("Hello, world")

background = pygame.image.load(background_image_filename).convert()
mouse_cursor = pygame.image.load(mouse_image_filename).convert_alpha()

while True:

for event in pygame.event.get()
if event.type == QUIT:
exit()


screen.blit(background, (0,0))

x, y = pygame.mouse.get_pos()
x-= mouse_cursor.get_width() / 2
y-= mouse_cursor,get_height() / 2
screen.blit(mouse_cursor, (x,y))

pygame.display.upadate()


Me resulta extraño, porque viene de un libro, y no sé porqué no funciona.

Gracias anticipadas

Zaelsius

Citarno me funciona

¿Podrías ser algo más concreto? ¿te da un error de ejecución o se ejecuta pero no muestra el resultado esperado?

Mindro

Pues se abre durante un milisegundo y se cierra :?

Prompt

Ejecutalo con una consola abierta no seas brutote! :)

No obstante, intuyo que ese while no tiene cierre, pero no se mucho sobre python... está bien el cierre?

Zaelsius

Haz como dice Prompt.. ejecuta el programa desde la consola (tanto si estás en Windows como en otro SO), tipo:

python mi_programa.py

Así podrás ver la salida de errores y ver porqué falla el programa (puede ser que salte alguna excepción al cargar los recursos, o que no tengas instalado correctamente el paquete pygame o alguna de sus dependencias).

Mindro

Cita de: "Prompt"Ejecutalo con una consola abierta no seas brutote! :)

Jeje, cierto, cierto :oops:

Utilizando SciTe, me da el siguiente error

>python -u "nuevo.py"
 File "nuevo.py", line 18
   for event in pygame.event.get()
                                 ^
SyntaxError: invalid syntax
>Exit code: 1

Zaelsius

Te faltan los dos puntos ( : ) al final de la sentencia for.

Mindro

Sí, me di cuenta, gracias :) Ahora funciona perfectamente. También es que había puesto

Citarpygame.display.upadate()
esa "a" sobraba.

Así quedaría finalmente:

background_image_filename = 'fondo.png'
mouse_image_filename = 'imagen1.png'

import pygame
from pygame.locals import *
from sys import exit

pygame.init()

screen = pygame.display.set_mode((533, 399), 0, 32)
pygame.display.set_caption("Hello, world")

background = pygame.image.load(background_image_filename).convert()
mouse_cursor = pygame.image.load(mouse_image_filename).convert_alpha()

while True:

   for event in pygame.event.get():
       if event.type == QUIT:
           exit()
       
       
   screen.blit(background, (0,0))
   
   x, y = pygame.mouse.get_pos()
   screen.blit(mouse_cursor, (x,y))
   
   pygame.display.update()


Gracias por la ayuda :D

Prompt

Me alegro que finalmente te funcione :P a programaaaaaaaaar !

tamat

Despues de leer este post me ha picado la curiosidad sobre pygame, pero veo que es una librería algo descuidada (no actualizan desde hace dos años) y que no funciona con python 2.5

Alguna alternativa interesante?
Por un stratos menos tenso

Prompt

pygame no se si es necesario actualizarla mucho, pero te haces juegos rapidisimo :)

Zaelsius

Qué pena que no vaya con Python 2.5.. aunque pygame nunca me gustó demasiado.

Para Ruby hay una librería del mismo "palo", se llama Gosu:

http://code.google.com/p/gosu/wiki/RubyTutorial

Aquí el tuto en castellano: http://cafeina.ladybenko.net/?p=485

LC0

Eso que decís de que no está para Python 2.5 no es verdad en parte. Cierto es que Pygame está pensado y programado con Python 2.4, pero hay compatibilidad entre las dos versiones.
Vamos, a mi desde luego no me ha dado ningún problema cuando pasé del 2.4 al 2.5.

Mindro

Cita de: "LC0"Eso que decís de que no está para Python 2.5 no es verdad en parte. Cierto es que Pygame está pensado y programado con Python 2.4, pero hay compatibilidad entre las dos versiones.
Vamos, a mi desde luego no me ha dado ningún problema cuando pasé del 2.4 al 2.5.

Cierto, hay compatibilidad entre las dos versiones. O al menos eso he leído...

ethernet

Es lo que pasa con el software libre que hay veces que no funciona y otras que tampoco :).






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.