por ke no funciona el colorkey??

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

por ke no funciona el colorkey??

Notapor GsusKrist » Lun Sep 15, 2008 6:32 am

hace tiempo intenté hacer un ejercicio de como cargar un fondo y mover una imagen, no logro por ke esta imagen se dibuja sin tener en cuenta el colorkey o sea se ve el recuadro negro ke devería ser transparente en este caso; aki dejo el codigo a ver si me pueden ayudar:

Código: Seleccionar todo
import pygame, os, sys, math, random
from pygame.locals import *

#funcioncita para cargar la imagen

def cargar_imagen(name, colorkey = None ):
    Archivo = os.path.join('Imagenes', name)
    return pygame.image.load(Archivo).convert()
    if colorkey is not None:
        if colorkey is -1:
            colorkey = surface.get_at((0,0))
        surface.set_colorkey(colorkey, RLEACCEL)
    return surface.convert_alpha()
#programa principal
def main():
    pygame.init()   

    screen = pygame.display.set_mode( (375,456) )
   
    background = cargar_imagen("fondo.bmp")

    sprite = cargar_imagen( "personaje.bmp", -1 ) '''se supone ke el colorkey aki es distinto de None y además es igual a -1, por lo tanto devería usar el colorkey situado en la region 0,0 pero no lo hace :( '''

    spriteRect = sprite.get_rect()

    spriteRect.centerx = (287)
    spriteRect.centery = (228)

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

    pygame.display.flip()

    while 1:
        pygame.event.pump()
        keyinput = pygame.key.get_pressed()
       
        if keyinput[K_ESCAPE] or pygame.event.peek(QUIT):
            break

        if keyinput[K_LEFT]:
            spriteRect.centerx -= 2
       
        if keyinput[K_RIGHT]:
            spriteRect.centerx += 2

        if keyinput[K_UP]:
            spriteRect.centery -= 2      

        if keyinput[K_DOWN]:
            spriteRect.centery += 2
        if  spriteRect.centery > 447:
            spriteRect.centery = 0
        if  spriteRect.centerx > 367:
            spriteRect.centerx = 0
        if  spriteRect.centery <= 10:
            spriteRect.centery = 10
        if  spriteRect.centerx <= 10:
            spriteRect.centerx = 10
       

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

        pygame.display.flip()

if __name__ == '__main__': main()

Muchas gracias de antemano :)
Avatar de Usuario
GsusKrist
 
Mensajes: 20
Registrado: Mar Ago 26, 2008 7:04 pm
Ubicación: BarranquiJAZZ, Rockombia (en realidad es barranquilla colombia jeje)

Notapor endaramiz » Lun Sep 15, 2008 7:57 am

Creo que el fallo está en la función cargar_imagen:
Código: Seleccionar todo
def cargar_imagen(name, colorkey = None ):
    Archivo = os.path.join('Imagenes', name)
    surface = pygame.image.load(Archivo)
    if colorkey is None:
        return surface.convert()
    else:
        if colorkey is -1:
            colorkey = surface.get_at((0,0))
        surface.set_colorkey(colorkey, RLEACCEL)
        return surface.convert_alpha()


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

Notapor GsusKrist » Lun Sep 15, 2008 10:31 pm

Hey Brother tenias toda la razón el error estába en la funcion

Muchacs gracias por su colavoracion
:) :lol:
Bendiciones.
Avatar de Usuario
GsusKrist
 
Mensajes: 20
Registrado: Mar Ago 26, 2008 7:04 pm
Ubicación: BarranquiJAZZ, Rockombia (en realidad es barranquilla colombia jeje)


Volver a General

¿Quién está conectado?

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

cron