EasyRPG Forums

Versión Completa: Implementando Easy Chara Maker
Actualmente estas viendo una versión simplificada de nuestro contenido. Para ver la versión completa en el formato correcto, dale click aquí
(mierda, error y se me borró todo lo que había escritoSad)

A ver, empiezo de nuevo.

Llevo ya tiempo pensando lo sencillo que sería implementar el llamado Easy Chara Maker así que me he puesto manos a la obra un poquillo, en SDL y bajo Linux para luego poder implementarlo como una ventana más del EasyRPG, asi que nada he empezado hoy y esto es lo que he hecho, no es gran cosa pero bueno:

Código:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <SDL.h>
#include <SDL_image.h>

int main (int argc, char *argv[]) {
  SDL_Event event;
  SDL_Surface *screen;
  SDL_Surface *imagen;
  SDL_Surface *imagen2;
  SDL_Rect rect;
  int done = 0;
    
  screen = SDL_SetVideoMode(192,192,16, SDL_SWSURFACE | SDL_DOUBLEBUF );
  if(!screen){
    printf("No se pudo iniciar la pantalla: %s\n", SDL_GetError());
    SDL_Quit();
    exit(-1);
  }
    
  imagen = IMG_Load (argv[1]);
  imagen2 = IMG_Load (argv[2]);
  rect.x = 0;
  rect.y = 0;
  rect.w = imagen->w;
  rect.h = imagen->h;
  SDL_BlitSurface(imagen, NULL, screen, &rect);
  SDL_BlitSurface(imagen2, NULL, screen, &rect);

  while (done == 0) {
    SDL_Flip (screen);
    while (SDL_PollEvent(&event)) {
      if (event.type == SDL_QUIT) { done = 1; }
      if (event.type == SDL_KEYDOWN) {
        done = 1;
      }
    }
  }
    
  SDL_FreeSurface(imagen);
  SDL_FreeSurface(screen);
    
  SDL_Quit();
    
  return 0;
}


Lo que este programilla hace es cargar las dos imágenes que le metamos como parámetros de entrada y superponerlas. Un ejemplo de su funcionamiento es el siguiente:

Tenemos estas tres imágenes ejemplo.png ejemplo1.png y ejemplo2.png


ejecutamos en una consola nueva el programa con el comando ./prueba ejemplo.png ejemplo1.png y aparecerá esta ventana.


ejecutamos en una consola nueva el programa con el comando ./prueba ejemplo.png ejemplo2.png y aparecerá esta otra ventana.


Lo dicho, no es gran cosa pero es un primer paso. Os informaré de nuevos avances!
Interesante aplicación prácticaSmile. Ahora estoy en el trabajo, pero cuando llegue a casa lo pruebo, que no tengo compilador a mano aquíSmile

Aquellos que quieran emplear una resolución de pantalla más estándar, por si alguien quiere ejecutarlo en sistemas sin ventanas, empleando 320,200 o 640,480 en vez de 192,192.

EDIT: No me dí cuenta que aún no habías terminado el post :$ jeje

P.D.: No sabía que también le dieras al SDLCool
Omm interesante...XD

Pues aver si realizamos la primera de las propuestas extras...XD

Animo y suerte.
Que asco, definitivamente tengo algun problema con el SDL...

Voy a compilarlo desde linux, aunque asi sin el config/make, tardare.

Parece buena idea, ya que implementarlo luego al Easy sera tan facil como hacer el menu, y que para el resultado se lanze el programa ese... ^^ Para empezar esta genial.

Simple is better! Saludos!
Para compilarlo tan solo necesitas los paquetes -dev de sdl, sdl_image y no sé si de libpng y demás, al compilar con gcc usa -lSDL -lSDL_image y no se si hará falta -lpng o -lpng12, según la distro y configuración... en todo caso también podrías probar con `pkg-config sdl --libs` puesto que sdl trae configuración para pkg-config, el cual tendrías que instalar si lo usas, claro.
Aqui teneis el archivo de mi projecto con Makefile y todo para que lo compileis.
Lo que hace el programa ahora:

Se introducen por parametros de entrada, las dos imagenes que quieres "unir"

ejemplo:

./prueba ejemplo.png ejemplo1.png

donde ejemplo.png es el cuerpo y ejemplo1.png es el pelo.

Se abrirá una ventana donde aparecerá el chara con el pelo puesto.
Entonces podremos pulsar teclas y aparecerá por consola la tecla que pulsemos (esto no sirve para nada, pero es para poner en el futuro que se puedan mover las imagenes con el teclado)

Cuando cerremos la ventana, se creará una imagen .bmp con el chara que teníamos por pantalla en el directorio del programa.

Se que el programa es un poco warro, pero bueno, soy un n00b en programación y estoy aprendiendo aún.

Tenéis libertad para hacer lo que querais con el programa, pero si añadís modificáis cosas please explicadmelo que quiero aprender! jejeje

Un saludo!

Edito: Lo que dice dela, para compilar se necesitan las libsdl dev, y sdl_image dev, y libpng!
Hombre esto tanbien podria ser usado para poderle modificar el arma y las armaduras a los personajes sera un poco mas complicado y habria que adaptar unas cuantas cosas pero es un pequeño abance de para que podria usarse esta aplicacion. por que al fin y al cabo esto es como la implementacion del arma que se tenia en el 2003.
Nueva actualización, el programa ya no está limitado a dos parámetros de entrada y guarda en png.
Ejemplo, tenemos estas imágenes de Charas-Project:



Llamadas, ropa.png pelo.png cuerpo.png cara.png y alas.png

Bueno, pues llamamos al programa así

./prueba alas.png cuerpo.png cara.png pelo.png ropa.png

y generará la siguiente imagen:

Resultado

Hay un pequeño defectillo en la capa de arriba, porque las alas, aunque en alguna posición se superponen al chara en otra posición tienen que ir detrás pero vamos, si no tiene que hacer cosas raras como esta parece que funciona bien.

Ahora lo que queda es guardar sólo el rectángulo del chara y no la pantalla entera de 640x480. Pero vamos avanzando! Smile

Ah! se me ocurren algunas ventajas también de usar PNG y transparencias, por ejemplo, si a la imagen del pelo le añadiésemos una fila de pixels negros al 50% de opacidad, al juntar las imágenes, los pixels del chara en esa zona estarían 50% más oscuros es decir, que el pelo podría incluir la sombra automáticamente. Nose, cosas que se me ocurren.
Wow Tengo que felicitarlos jejeje tengo que probar el nuevo programita a ver que tal, es un gran avance, y... jeje no sabia que le dabas a la programacion, por cierto aprovecho para presumirles mi primer aporte al Software libre !!!!!!!!!!!!!1 chequen en mi firmaBig Grin
no tienen algun binario por ahi de windows?

digo.. que no todo es linux... jojojo


hmm se ve bien el programa (desde lo unico que se puede ver y se lee), otra alternativa al ECM, la opcion multicapa es lo mejor del easy, y mas si piensas hacer un juego estilo ultima en donde cuandoequipas un arma o una pieza de armadura se ve en el personaje...
Páginas: 1 2 3 4
URLs de Referencia