falla en python

Consulte acerca de programas, técnicas, algoritmos etc.

falla en python

Notapor akiles333 » Jue Feb 28, 2008 7:46 pm

que tal, bueno aqui molestando de nuevo, estoy haciendo unas pruebas con python bajo XP con codigo tuyo y pruebas y pues si funciona, pero, te explico, llamo una imagen, trato de rebotarla en los bordes de la pantalla, y si lo hace pero solo 4 veces y despues de inhibe, que podra ser, te pego el código.


#***** prueba1 ******
import sys,pygame
from pygame.locals import*

pygame.init()
ancho=640
alto=480
color_fondo=(1,1,1)
# x,y
velocidad = [1,1]

pantalla = pygame.display.set_mode((ancho,alto))
titulo= pygame.display.set_caption('Rebote Prueba')
bola = pygame.image.load('bola_roja.png')
fondo = pantalla.convert()
recta = bola.get_rect()

while 1:

recta = recta.move(velocidad)

if recta.left<0 or recta.right>ancho:
velocidad[0]= -velocidad[0]

if recta.top<0 or recta.bottom>alto:
velocidad[1]= -velocidad[1]

#fondo.fill(color_fondo)
pantalla.blit(bola, recta)
pygame.display.flip()
pantalla.blit(fondo, (0,0))

y este es el código, no se si funcione bien bajo linux, pero en XP se traba

Saludos
Se original, enseña lo que sabes, comparte tus sueños, se libre, vive Libre.
akiles333
 
Mensajes: 9
Registrado: Mar Feb 26, 2008 9:30 pm
Ubicación: Monterrey

actualizacion

Notapor akiles333 » Vie Feb 29, 2008 1:32 am

asi funciona un segundo mas, ja ja ja ja, no se porque se inhibe


#******************************

import pygame
from pygame.locals import*

pygame.init()
ancho=640
alto=480
color_fondo=(150,200,15)
# x,y
velocidad = [1,1]

pantalla = pygame.display.set_mode((ancho,alto))
#fondo=pantalla.convert()

titulo= pygame.display.set_caption('Rebote')
bola = pygame.image.load('bola_roja.png').convert_alpha()
recta = bola.get_rect()

while 1:

recta = recta.move(velocidad)

if recta.left<0 or recta.right>ancho:
velocidad[0]= -velocidad[0]

if recta.top<0 or recta.bottom>alto:
velocidad[1]= -velocidad[1]

pantalla.fill(color_fondo)
pantalla.blit(bola, recta)
pygame.display.flip()

Saludos
Se original, enseña lo que sabes, comparte tus sueños, se libre, vive Libre.
akiles333
 
Mensajes: 9
Registrado: Mar Feb 26, 2008 9:30 pm
Ubicación: Monterrey

A mi me funciona

Notapor endaramiz » Vie Feb 29, 2008 5:39 pm

Hola, yo no he tenido ningún problema(en ubuntu), eso si, añadiendo espacios ya que en python eso tiene importancia. Para que podamos comprender el código tendrías que ponerlo dentro de la etiqueta code, de esta manera se aprecia la indentación.

Pd: podrías probar linux a ver si tienes menos problemas xD

Saludos.
Avatar de Usuario
endaramiz
 
Mensajes: 283
Registrado: Vie Ago 31, 2007 9:25 am
Ubicación: Barcelona

Re: falla en python

Notapor hugoruscitti » Vie Feb 29, 2008 11:36 pm

akiles333 escribió:... llamo una imagen, trato de rebotarla en los bordes de la pantalla, y si lo hace pero solo 4 veces y despues de inhibe...


Saludos, al igual que dvd no tuve problemas en Ubuntu, y
claro, al igual que él te sugiero que pruebes con este sistema
también:

http://www.losersjuegos.com.ar/utilidad ... a.t2t.html

Con respecto al código, noté que al aumentar la velocidad de
rebote muchas veces la esfera queda fuera del margen de la
ventana. Esto puede estar ocasionando el problema; imagina
esta situación: cuando la esfera queda fuera de pantalla tu solo
inviertes la dirección del movimiento:

Código: Seleccionar todo
if recta.left <0 or recta.right > ancho:
    velocidad[0] = -velocidad[0]


te recomiendo que escribas algo mas de código para que la
esfera nunca quede fuera del area de pantalla, algo así:

Código: Seleccionar todo
    if recta.left < 0:
        recta.left = 0
        direccion_x = 1
    elif recta.right > ancho:
        recta.right = ancho
        direccion_x = -1

    posicion_x += direccion_x


PD: recuerda usar las etiquetas "code" y "/code" cuando
escribas código fuente en el foro de mensajes.
Avatar de Usuario
hugoruscitti
Site Admin
 
Mensajes: 1242
Registrado: Dom Jul 30, 2006 3:57 am
Ubicación: Buenos Aires, Argentina

Notapor akiles333 » Sab Mar 01, 2008 12:27 am

pues si, se que le falta, pero solo estoy haciendo estas pruebas, ya hice otro mas, un ejemplo que me encontre en el foro, lo pegue identico y se trabo tambien a cierto tiempo

bueno este seria el código anterior del rebote

Código: Seleccionar todo
import pygame
from pygame.locals import*

pygame.init()
ancho=640
alto=480
color_fondo=(150,200,15)
#            x,y
velocidad = [1,1]

pantalla = pygame.display.set_mode((ancho,alto))

titulo= pygame.display.set_caption('Rebote')
bola = pygame.image.load('bola_roja.png').convert_alpha()
recta = bola.get_rect()

while 1:
       
    recta = recta.move(velocidad)
   
    if recta.left<0 or recta.right>ancho:
        velocidad[0]= -velocidad[0]

    if recta.top<0 or recta.bottom>alto:
        velocidad[1]= -velocidad[1]

    pantalla.blit(bola, recta)
    pantalla.fill(color_fondo)
    pygame.display.flip()




saludos
Se original, enseña lo que sabes, comparte tus sueños, se libre, vive Libre.
akiles333
 
Mensajes: 9
Registrado: Mar Feb 26, 2008 9:30 pm
Ubicación: Monterrey


Volver a General

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados

cron