Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Estela En Movimiento ¿cómo Borro Imagen Anterior?

Iniciado por J_F_NASH, 06 de Agosto de 2005, 10:03:46 PM

« anterior - próximo »

J_F_NASH

 
Bitmap img(L"img/player.gif");
TextureBrush tBrush(&img);
float x = 0.0;
for(x = 0; x<400.0; x += 5){
 Sleep(20);
 Graphics grafico(hdc);
 grafico.TranslateTransform(x, 0.0);
 grafico.FillRectangle(&tBrush, 0, 0, 65, img.GetHeight());
}


Trato de mover un bitmap de izquierda a derecha de la pantalla.
Mi duda es:
Cuando imprimo en la siguiente posición el bitmap ¿cómo borro la anterior para que no me deje una "estela"?.
Solo se me ocurre rellenar la posicion anterior del color de fondo. Pero si cambio el fondo aparecerá un cuadrado siempre detras del bitmap.
¿Hay alguna técnica?

A todo esto ¿alguna página buena sobre GDI+ ?



S2.

zupervaca

 si el fondo es de color uniforme al moverlo debes de rellenar del color de fondo en su posicion actual y luego moverlo, si el color no fuera uniforme hay dos formas, si sabes de alguna manera lo que hay en el fondo volver a pintarlo y si no, guardar ese fondo en una imagen y cuando lo mueves volver a pintarla

TheAzazel

 Psee.... GDI+? porque usas "eso"? ya que estas aprendiendo...ponte con directdraw o si quieres hasta incluso con SDL o allegro pero GDI???

y para borrar la estela tienes varias opciones:

Si el fondo es de color uniforme y tienes mucha cosa moviendose... puedes limpiar todo el fondo de golpe con un fillrect y luego volver a dibujar todo.
Si el fondo es una imagen fija y mucha cosa moviendose..idem que lo anterior...
y la mas utilizada antiguamente...cada vez q escribas el sprite....tienes q guardar su fondo para que luego..antes de moverse, lo restaura, se copia el nuevo sprite previo guardado del nuevo fondo... esto, si tienes poco bicho moviendose es lo mas optimo...

pero vamos....yo te aconsejo ponerte con allegro,o mejor aun.. SDL

J_F_NASH

Cita de: "TheAzazel"Psee.... GDI+? porque usas "eso"? ya que estas aprendiendo...ponte con directdraw o si quieres hasta incluso con SDL o allegro pero GDI???
¿"Eso"?
Bueno, mi intención era conocer el entorno Windows. SDL es el siguiente paso que quiero dar y "finalmente" OpenGL.
¿Por qué debería cambiar?.
Acepto sugerencias.


S2.

zupervaca

 bueno el gdi+ no esta pensado para juegos, mas bien es para aplicaciones de windows, ademas aunque sepas gdi+ no significa que sepas sdl ya que son apis diferentes, lo mejor es meterte con el api que vayas a usar

saludos

TheAzazel

 zupervaca ya te lo ha dicho... y creo q aprender GDI  a estas alturas es malgastar tu tiempo....ahora, q quieres hacerlo por que si, pues que nadie te diga lo contrario :P

pero vamos, yo me tiraria a por SDL y luego sobre ello si quieres te pones tambien con OpenGL que puedes hacerlo todo juntitoooo
te diria tb mi lib pero creo que lo q tu quieres es aprender no hacer juegos.... aun y asi, echala un ojo, para hacer un juego te facilitara mucho la tarea y es SDL asik...no pierdes tiempo :)






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.