Cámara en C++ con SDL

Iniciado por avmiitxe, 1 Julio 2012, 20:36 PM

0 Miembros y 1 Visitante están viendo este tema.

avmiitxe

Hola, estoy creando un juego en SDL, y éste tiene una cámara.
He creado un array (direction), 0 es ir a la izquierda y 1 es ir a la derecha.
Mi problema es que la cámara va muy lenta, es decir va píxel por píxel y es bastante lento.
Aquí teneis el código:

Código (cpp) [Seleccionar]
if(direction[0])
      {
      camera.x--;
       }
else if(direction[1])
      {
      camera.x++;

       }
¿Cómo hago que aumente de píxel en píxel de forma más rápida?
He probado hacer
Código (cpp) [Seleccionar]
if(direction[0])
      {
      camera.x-10;
       }
else if(direction[1])
      {
      camera.x+10;

       }
Pero no funciona, espero que me podáis ayudar, gracias.

DickGumshoe

#1
No sé mucho de C, pero quizá pueda ser así:



if(direction[0])
      {
      camera.x = camera.x-10;
      }
else if(direction[1])
      {
      camera.x = camera.x+10
       }


Si le poner camera.x-10 no guardas el valor, creo que debes asignárselo (no sé si es lo que quieres realmente...).

Espero no haberme equivocado.

Saludos.

Anvil

Código (cpp) [Seleccionar]

//otra forma de hacerlo

// valor del paso
const int step = 10;
if(direction[0])
{
camera.x -= step;
}
else if(direction[1])
{
camera.x += step;
}
\\::_--__!!ss"1122

avmiitxe

Muchisimas gracias, las dos opciones funcionan, os lo agradezco mucho!!!
Problema solucionado!!

anonimo12121

Lo estas haciendo mal.

Crea las clases bien, con posibilidad de cambiar la velocidad.

Fuente: Mi experiencia xD

PD: Consejo personal pásate a sfml.
Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746

avmiitxe

Gracias, lo tendré en cuenta, he pensado muchas veces si pasarme a SFML o Allegro porque SDL es bastante dificil para mi que soy novato, ¿me recomiendas algún tutorial sobre SFML?
Gracias.

anonimo12121

Mira lo primero SFML es mejor que todas esas.
lo segundo SDL no es difícil tienes que saber manejarte en c.
tercero SFML usa clases.
cuarto te recomiendo SFML por que yo empece con SDL cuando no tenia conocimientos de SFML y me pase a SFML por que el proyecto SDL esta abandonado.
quinta aquí tienes la documentación.
http://www.sfml-dev.org/documentation/1.6/annotated.php
Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746

Ferno

#7
Cita de: Dr.Hacker++ en  2 Julio 2012, 13:42 PM
Mira lo primero SFML es mejor que todas esas.
lo segundo SDL no es difícil tienes que saber manejarte en c.
tercero SFML usa clases.
cuarto te recomiendo SFML por que yo empece con SDL cuando no tenia conocimientos de SFML y me pase a SFML por que el proyecto SDL esta abandonado.
quinta aquí tienes la documentación.
http://www.sfml-dev.org/documentation/1.6/annotated.php

1) ¿Por qué SFML es mejor que todas esas?
2) ¿Dónde viste que SDL está abandonado?

EDIT: dislexia :P

Foxy Rider

Cita de: Dr.Hacker++ en  1 Julio 2012, 23:44 PM
Lo estas haciendo mal.

Crea las clases bien, con posibilidad de cambiar la velocidad.

Fuente: Mi experiencia xD

PD: Consejo personal pásate a sfml.

SDL → C
SFML → C++

Implícitamente le estás diciendo que aprenda un nuevo lenguaje ... por más familiares que sean (y con el último estándar, C++11, menos familiares todavía)

Saludos.

P.S → SFML no es ninguna bala de plata, pensá que es una abstracción por arriba de SDL ... a la larga te podés encontrar con limitaciones

anonimo12121

Yo he dado mi opinión al chaval.
Leyendo el titulo del post he supuesto que el sabe c++.
Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746