Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: avmiitxe en 1 Julio 2012, 20:36 pm



Título: Cámara en C++ con SDL
Publicado por: avmiitxe en 1 Julio 2012, 20:36 pm
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
  1. if(direction[0])
  2.       {
  3.       camera.x--;
  4.       }
  5. else if(direction[1])
  6.       {
  7.       camera.x++;
       }
¿Cómo hago que aumente de píxel en píxel de forma más rápida?
He probado hacer
Código
  1. if(direction[0])
  2.       {
  3.       camera.x-10;
  4.       }
  5. else if(direction[1])
  6.       {
  7.       camera.x+10;
       }
Pero no funciona, espero que me podáis ayudar, gracias.


Título: Re: Cámara en C++ con SDL
Publicado por: DickGumshoe en 1 Julio 2012, 20:45 pm
No sé mucho de C, pero quizá pueda ser así:

Código
  1.  
  2. if(direction[0])
  3.       {
  4.       camera.x = camera.x-10;
  5.       }
  6. else if(direction[1])
  7.       {
  8.       camera.x = camera.x+10
  9.       }
  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.


Título: Re: Cámara en C++ con SDL
Publicado por: Anvil en 1 Julio 2012, 21:14 pm
Código
  1. //otra forma de hacerlo
  2.  
  3. // valor del paso
  4. const int step = 10;
  5. if(direction[0])
  6. {
  7. camera.x -= step;
  8. }
  9. else if(direction[1])
  10. {
  11. camera.x += step;
  12. }
  13.  


Título: Re: Cámara en C++ con SDL
Publicado por: avmiitxe en 1 Julio 2012, 21:46 pm
Muchisimas gracias, las dos opciones funcionan, os lo agradezco mucho!!!
Problema solucionado!!


Título: Re: Cámara en C++ con SDL
Publicado por: anonimo12121 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.


Título: Re: Cámara en C++ con SDL
Publicado por: avmiitxe en 2 Julio 2012, 04:33 am
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.


Título: Re: Cámara en C++ con SDL
Publicado por: anonimo12121 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


Título: Re: Cámara en C++ con SDL
Publicado por: Ferno en 2 Julio 2012, 18:17 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


Título: Re: Cámara en C++ con SDL
Publicado por: Foxy Rider en 2 Julio 2012, 18:23 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


Título: Re: Cámara en C++ con SDL
Publicado por: anonimo12121 en 5 Julio 2012, 22:13 pm
Yo he dado mi opinión al chaval.
Leyendo el titulo del post he supuesto que el sabe c++.


Título: Re: Cámara en C++ con SDL
Publicado por: Foxy Rider en 5 Julio 2012, 22:37 pm
Yo he dado mi opinión al chaval.
Leyendo el titulo del post he supuesto que el sabe c++.

Si no encapsuló a la cámara, si no hizo lo mismo con operaciones vectoriales y sobrecargó operadores ... es por que claramente no trabaja pensando en objetos, y  no sabe C++.
Un segundo en este subforo te enseña de cuanta gente cree que programa en C++, y sólo es C mezclado con conceptos de C++ ... y que no pone la cabeza a laburar en términos de objetos.

Saludos.


Título: Re: Cámara en C++ con SDL
Publicado por: anonimo12121 en 5 Julio 2012, 22:51 pm
Tienes razón VertexSymphony pero creo que de eso se tienen que dar cuenta ellos.


Título: Re: Cámara en C++ con SDL
Publicado por: X3R4CK3R en 6 Julio 2012, 02:04 am
Tienes razón VertexSymphony pero creo que de eso se tienen que dar cuenta ellos.

y tú