Dibujar personajes

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

Dibujar personajes

Notapor desnight » Dom Mar 02, 2008 4:14 pm

Hola soy nuevo en el foro y me gustaria saber si hay algun programa para dibujar personajes simples.

Saludos. :D
desnight
 
Mensajes: 11
Registrado: Dom Mar 02, 2008 4:06 pm

Notapor endaramiz » Lun Mar 03, 2008 5:13 pm

Bienvenido al foro. Yo te aconsejo Gimp que aunque tenga una curva de aprendizaje mas elevada que algunos mas simple tipo mspaint puedes hacer dibujos mas rápidos y con mejor resultado que con ellos (tampoco te hace falta saber todas las funciones de Gimp para hacer un buen dibujo). Además es libre, gratuito y multiplataforma.

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

Notapor desnight » Lun Mar 03, 2008 6:05 pm

Gracias es que el problema que tengo con el mspaint es que los personajes
se quedan en forma rectangular. ¿eso se puede cambiar?

Saludos.
desnight
 
Mensajes: 11
Registrado: Dom Mar 02, 2008 4:06 pm

Notapor endaramiz » Lun Mar 03, 2008 9:34 pm

No estoy seguro de entender tu problema, las imágenes tienen una resolución rectangular, lo que puedes hacer es que el fondo sea transparente y eso se puede hacer de dos maneras (que yo sepa):
1 - Poniendo el color de fondo transparente (el color blanco de fondo del mspaint no es transparente)(o al menos en python + pygame que es lo que utilizo yo)
2 - "indicarle al programa el color que quieres que sea transparente de la imagen" por ejemplo en pygame se puede hacer con Surface.set_colorkey.

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

Notapor desnight » Lun Mar 03, 2008 9:40 pm

Gracias, era eso lo que queria saber.

Saludos.
desnight
 
Mensajes: 11
Registrado: Dom Mar 02, 2008 4:06 pm

Notapor desnight » Mar Mar 04, 2008 3:57 pm

Hola ¿me podrian poner como pongo para que no se vea el color blaco?

Saludos.
desnight
 
Mensajes: 11
Registrado: Dom Mar 02, 2008 4:06 pm

Notapor Juan Carlos » Mar Mar 04, 2008 4:40 pm

Hola, hay dos formas para hacer "el fondo transparente". La primera es decirle a la imagen que el color X sera el transparente. Este metodo no esta soportado por todos los formatos de imagen. Un ejemplo de esto es el formato GIF, (conocido como GIF transparente).
La segunda opcion consiste en no modificar la imagen, sino modificar al pintor "el programa que pintara la imagen". Si usas pythom y pygame, el usuario dvd ya te ha dado la respuesta. Si usas la libreria SDL, puedes usar una funcion llamada SDL_SetColorKey.

Cual opcion es mejor? Si estas creando una pagina web, por ejemplo, no pudes modificar al "pintor" (no puedes modificar los exploradores de internet de todo el mundo), entonces deberas modificar la imagen (primera opcion). En cambio si estas creando un programa, hay varias librerias graficas (pintores) que te permitiran seleccionar el color transparente.

Fijate que opcion se adapta mas, y postealo.

Saludos
Juan Carlos
 
Mensajes: 97
Registrado: Sab Jul 07, 2007 1:05 pm

Color Key

Notapor Carlos Guevara Moscol » Mar Mar 04, 2008 5:24 pm

Hola, si no kieres q el color blanco no se vea pues pintalo de algun otro colo, no creo q eso te ayude, no? :D pero es q tu pregunta no es muy especifica..
A ver.. 8) hay q cranear:
Si lo q kieres es q el color blanco juegue el papel de color "transparente" osea q cuando esa imagen se ponga sobre otra o sobre un fondo todo lo blanco deje ver lo q hay atras ( como si hubiera un hueco en lugar de un color)?? Si es eso, si te puedo ayudar xD

Si kieres q esa imagen se comporte asi en cualkier lado pues simple, guardala en un formato q "admita transparencias" como el formato GIF (muy utilizado en las webs) y en el software q lo guardes buscas la Opcion "Establecer transparencia" o similar q debe estar en el menu herramientas, si no te lo permite es porque no lo has guardado bien, y finalmente seleccionas el blanco como color "transparente"


Ahora bien...
Si lo q kieres es usar una imagen en un juego y q todo lo blanco no se vea pues tienes dos opciones :D
O cargas una imagen en formato GIF ejemplo "mi_personaje.gif" y listo! el motor q estas usando deberia hacer todo sin q tu te des cuenta..

O, si usas alguna libreria q no reconoce ese formato, como pasa con la mayoria, no te hagas paltas q ahi entra el concepto de "ColorKey" q es algo asi como "el color clave" q consiste en seleccionar el color q no se va a pintar a la hora de hacer el Blitting en la pantalla o al copiarlo a otra superficie.

Ahora, dependiendo de q estes usando para hacer tus juegos vas a encontrar distintas funciones para establecer el ColorKey como te dijo dvd en uno de los mensajes anteriores en PyGame es "Surface.set_colorKey"
en SDL es :
int SDL_SetColorKey(SDL_Surface *superficie, Uint32 A, Uint32 B)

Pero eso depende d q uses, si usas SDL te puedo ayudar, si usas PyGame u otro aka hay gente q sabe mucho de esos temas y te puede ayudar, si no, caballero, busca manuales en internet, pero el Concepto del CloroKey es sencillo y es el mismo en cualkier caso, es el color q no pinta a la hora del blitting.
imagina una impresora q se kedo sin el color rojo si mandas a imprimir una foto todo lo q debia ser rojo no va a aparecer y por lo tanto va a salir el color q estaba en el fondo, en este caso blanco (el del papel).. para este caso especifico el rojo seria tu ColorKey.
La unica diferencia es q en la impresora todos los posibles tonos de rojo se ven afectados, en cambio al programar solo el tono especifico de rojo q tu hayas establecido como ColorKey sera afectado, los otros tonos de rojo seguiran apareciendo como si nada xD.

Espero q esto te ayude xD
(Se q no entre al royo de ke es una superficie o surface, pero si no lo sabes hazmelo saber y te aclaro esa o cualkier otra duda )

Y un ultimo consejo, si lo vas a usar para juegos usa para todas tus imagenes un solo color, eso te va a facilitar las cosas para no tener q estar asignando distintos ColorKeys a cada superficie q uses o estar cambiando el ColorKey dependiendo q imagen cargues, Standarisa tu ColorKey. Y utiliza un color q sea poco comun en una imagen, el blanco es basico en una imagen, luego te va a traer problemas, utiliza un rosado chillon de esos q sabes q no vas a usar en tus juegos xD

Ahora si, q te ayude y si hay alguna duda, solo consulta xD!!!
Carlos Guevara Moscol
 
Mensajes: 26
Registrado: Vie Feb 29, 2008 10:32 pm
Ubicación: Perú

Ejemplo: poner color como transparente (pygame)

Notapor endaramiz » Mié Mar 05, 2008 2:08 pm

Hola. Aunque desnight no ha especificado el lenguaje y puede que esto no le ayude, ya que estamos con este tema (que no se si tiene el titulo mas apropiado...) publico una demostración, en pygame, de como funciona el set_colorkey:
Código: Seleccionar todo
import pygame
from pygame.locals import *

#se crea la pantalla y se pinta
screen = pygame.display.set_mode((400,200))
screen.fill((200,200,0))

#se carga la imagen(*1) y se copia dos veces
imagen_normal = pygame.image.load("triangulo rectangulo.png")
imagen_color_transparente_1 = imagen_normal.copy()
imagen_color_transparente_2 = imagen_normal.copy()
#a la copia 1 se pone como color transparente el color blanco
imagen_color_transparente_1.set_colorkey((255,255,255))
#a la copia 2 se pone como color transparente el color negro
imagen_color_transparente_2.set_colorkey((0,0,0))
#se convierte la superficie (*2);
#si se eliminan estas lineas no se aprecia la transparencia
imagen_normal = imagen_normal.convert()
imagen_color_transparente_1 = imagen_color_transparente_1.convert_alpha()
imagen_color_transparente_2 = imagen_color_transparente_2.convert_alpha()

while True:
    for event in pygame.event.get():
        if event.type == QUIT:
            #se cierra el programa si hay un evento de salir
            sys.exit()
        if event.type == MOUSEBUTTONDOWN:
            if event.button == 1:
                #si se pulsa el boton 1 del raton:
                #se pinta la pantalla y se imprime la imagen normal
                screen.fill((200,200,0))
                screen.blit(imagen_normal, (50,25))
            if event.button == 2:
                #si se pulsa el boton 1 del raton:
                #se pinta la pantalla y se imprime la imagen con transparencia 1
                screen.fill((200,200,0))
                screen.blit(imagen_color_transparente_1, (75,25))
            if event.button == 3:
                #si se pulsa el boton 1 del raton:
                #se pinta la pantalla y se imprime la imagen con transparencia 2
                screen.fill((200,200,0))
                screen.blit(imagen_color_transparente_2, (100,25))
    #se muestra la pantalla
    pygame.display.update()

(*1): Imagen
(*2): mas información de convert aquí

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

Notapor desnight » Mié Mar 05, 2008 5:08 pm

Gracias y perdon por no especificar.
desnight
 
Mensajes: 11
Registrado: Dom Mar 02, 2008 4:06 pm


Volver a General

¿Quién está conectado?

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

cron