Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: prometheus48 en 29 Diciembre 2011, 20:25 pm



Título: Como hacer ZOOM?¿
Publicado por: prometheus48 en 29 Diciembre 2011, 20:25 pm
Hola.

Estoy haciendo un juego.El juego es en 2D, y estoy utilizando C++ y SDL. Se va a ver desde arriba, y, lo que pasa es que hice una imagen que es el sitio por donde se mueve el personaje( es una isla),
pero lo que pasa es que cuando se carga la imagen, quiero hacer zomm en donde esta el juegdor y que si se va moviendo al camara le siga ¿Como puedo hacer esto?
¿Si alguien no sabe, por favor, me pueden decri algun sitio donde me lo puedan decir?
Muchas Gracias, Salu2,
y...
Feliz Navidad!


Título: Re: Como hacer ZOOM?¿
Publicado por: Ferno en 30 Diciembre 2011, 03:18 am
Lo que se me ocurre para que la cámara le siga es pintar al personaje siempre en el centro de la superficie pantalla, y en base al evento (más específicamente, para dónde movió al personaje) ir cambiando la superficie "background", en tu caso la isla, de lugar (y a gusto, cambiar el perfil del personaje supongo). Ej: Si lo movió a la izquierda, la superficie de la isla se dibujará más a la derecha y al personaje en el centro del screen SIEMPRE, esto logrará que se vea que el personaje se desplazó hacia la izquierda.

Sobre el zoom.. cuando se me ocurra algo te digo.

Espero que se haya entendido la primer parte.


Título: Re: Como hacer ZOOM?¿
Publicado por: prometheus48 en 30 Diciembre 2011, 14:50 pm
Gracias,

La verdad, ya puedo hacer lo de que el jugador este simpre en el centro.
LO del zoom, hize una isla pintandola, con un programa a lo pixel art, y despues en SDL, la cargue, pero el problema es que puedo jugar y tal pero se ve el jugador lejísimos, no lo ves cazi y encima ves toda la isla.
Habra que ver una solución,
de verdad mychas gracias, estoy impaciente por ver la solucion del zoom
Salu2!
Feliz Navidad!


Título: Re: Como hacer ZOOM?¿
Publicado por: BlackZeroX en 30 Diciembre 2011, 21:35 pm
.
Como dibujas?... en ocasiones hay esta el truco, por ejemplo en GDI32 la funcion:

Código
  1.  
  2. BOOL BitBlt(
  3.  __in  HDC hdcDest,
  4.  __in  int nXDest,
  5.  __in  int nYDest,
  6.  __in  int nWidth,
  7.  __in  int nHeight,
  8.  __in  HDC hdcSrc,
  9.  __in  int nXSrc,
  10.  __in  int nYSrc,
  11.  __in  DWORD dwRop
  12. );
  13.  
  14.  

Para hacer un ZOOM solo hay que aumentar/disminuir las dimensiones en nWidth, nHeight...

Dulces Lunas!¡.


Título: Re: Como hacer ZOOM?¿
Publicado por: Unbr0ken en 31 Diciembre 2011, 19:06 pm
Pues yo estaba pensando en la API GetPixel() y usarla en un bucle y dibujar de la manera correcta con el resultado, pero... bueno, cada quién con sus ideas :xD.


Título: Re: Como hacer ZOOM?¿
Publicado por: BlackZeroX en 31 Diciembre 2011, 20:44 pm
GetPixel... no es de la SDL... ademas GetPixel es demasiado lenta...

Duces Lunas!¡.


Título: Re: Como hacer ZOOM?¿
Publicado por: Unbr0ken en 31 Diciembre 2011, 20:55 pm
GetPixel... no es de la SDL... ademas GetPixel es demasiado lenta...

Duces Lunas!¡.

Fue una opinión simplemente... y bueno, hay que admitir que sí es bastante lenta.