Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - eferion

#771
También puedes optar a usar un motor gráfico... como Ogre3D. Mi más sincera recomendación es que sigas los pasos en este orden:

* Asegúrate una buena base programando en C / C++
* Aprende a hacer cosillas en openGL
* Aprende a usar APIs gráficas tipo SDL o Allegro
* Prueba con motores gráficos complejos.

Cita de: h3ct0r en  2 Noviembre 2011, 18:12 PM
Yo ya he hecho varios juegos pequeños usando Allegro con DEV-CPP y mucha gente también recomienda SDL (Que tiene una base de usuarios mayor y mas documentación)

No liemos al personal... DEV-CPP es un IDE y no influye para nada en que se pueda o no hacer el susodicho programa / juego... es como decir que el juego se puede hacer si usas CodeBlocks... pues si, pero también con un mísero block de notas...

Cita de: Belial & Grimoire en  2 Noviembre 2011, 22:05 PM
yo estoy aprendiendo a hacer juegos para android y para pc, utilizo la SDL para pc y para android estoy usando libgdx, lo basico que debes saber, es C/C++ y Java,

Hombre, Java obligatorio... lo que se dice obligatorio... no es. Se puede programar en Android en C++ perfectamente... de hecho el Cundy Crush está programada en C++ y no en Java.
#772
Cita de: nolasco281 en 17 Febrero 2014, 09:13 AM
2. Note que el la función get la declaras como const si le pasas una asignación ya no debería de ser const  o no?

Para que una función miembro pueda ser etiquetada como const ha de cumplir dos requisitos:

* No debe modificar el estado del objeto ( no debe modificar las variables propias de la clase )
* No debe llamar a otras funciones miembro que no estén etiquetadas como const.

Código (cpp) [Seleccionar]

class Test
{
  public:
    Test( )
    { }
   
    int GetValor( int index ) const
    {
      return dato[ index ];
    }

    void SetValor( int index, int valor )
    {
      dato[ index ] = valor;
    }

  private:
    int datos[6];
}


El getter puede ser etiquetado como const sin problemas porque no modifica el estado del objeto.

Cita de: nolasco281 en 17 Febrero 2014, 09:13 AM
3. Has pensado en hacer algún manual. Solo sobre C++ que abarque los temas clases funciones herencia y polimorfismo. Ya que creo que es lo que más nos cuesta a nosotros los mortales  xD. Y para serte sincero las explicaciones me quedan muy claras.

Me lo puedo llegar a plantear... el mayor inconveniente es que no me sobra el tiempo precisamente... pero puedo intentar sacar algo adelante... estate atento :)
#773
Programación C/C++ / Re: Macros en C
16 Febrero 2014, 18:44 PM
Cita de: yoel_alejandro en 14 Febrero 2014, 21:07 PM
Las instrucciones #define no van terminadas en punto y coma, puesto que no son instrucciones de asignación de valor a una variable, sino un reemplazo formal de texto en el código fuente.

Una corrección... los defines SI pueden terminar con punto y coma. Sobretodo si los defines se usan para concatenar instrucciones que se van a repetir mucho en el código... aunque eso ya es a gusto del programador.
#774
Tienes un error de concepto. La clase "Numero" almacena las coordenadas X e Y. Si tu quieres almacenar varias de estas coordenadas, entonces lo que necesitas es un vector de tipo "Numero"... no un vector de tipo ... "char???"

Además... el vector debe estar, necesariamente, fuera de la clase Numero.

Otro detalle a tener en cuenta es que si en el constructor de una clase haces un new necesariamente ha de existir un delete en el destructor... destructor que no tienes implementado.

Código (cpp) [Seleccionar]

class Numero
{
   private:
         int x;
         int y;

   public:
     Numero( )
       : x( 0 ),
         y( 0 )
     { }

     void cargar( )
     {
       cout<<endl<<"Ingrese X e Y: ";
       cin>>x>>y;
     }
 
     void mostrar( )
     { std::cout << x << " " << y << std::endl; }
};

class ListaNumeros
{
  public:
    ListaNumeros( int numero )
    { numeros = new Numero[ numero ]; }

    ~ListaNumeros( )
    { delete[] numeros; }

    void cargar( int numero )
    { numeros[ numero ].cargar( ); }

    void mostrar( int numero )
    { numeros[ numero ].mostrar( ); }

  private:
    Numero* numeros;
}

void main()
{
  int col;
  cout<<"Ingrese las posiciones del vector: ";
  cin>>col;
  ListaNumeros lista( col );

  for( int i=0;i<col;i++)
  {
    lista.cargar(i);
  };
  for(i=0;i<col;i++)
  {
    lista.mostrar(i);
  };
  system("pause");
}


Este código aún es muy mejorable, pero eso ya te lo dejo a tí.
#775
Si tu tienes una aplicación monohilo (las que has realizado hasta ahora), y en un momento dado tienes que realizar un proceso pesado que lleve varios segundos, te habrás dado cuenta de que durante ese tiempo la aplicación no responde ante el usuario.

Este efecto se produce porque tu aplicación únicamente dispone de un thread o hilo de ejecución. Como sólo hay un hilo y este está ocupado con el proceso pesado no puede encargarse de interactuar con el usuario.

Ahora por ejemplo imagínate que modificas tu código de tal forma que el proceso pesado se ejecute en un segundo hilo... ahora la aplicación podrá interaccionar con el usuario sin problemas porque un hilo de ejecución estará liado con el proceso pesado mientras que otro segundo hilo que está libre podrá prestar atención a otras tareas, como por ejemplo al usuario.

Programar aplicaciones multihilo permite ofrecer una mejor experiencia al usuario, ya que evitas que la aplicación quede congelada, por ejemplo. Sin embargo, diseñar un entorno multihilo tiene sus complicaciones, ya que te puedes encontrar con situaciones inesperadas como condiciones de carrera o abrazos mortales ( busca en google para más información ).
#776
Estaría bien conocer el código que tienes alrededor de esta función... lo mismo el problema está en cómo has implementado el bucle que lee todas las líneas.
#777
Programación C/C++ / Re: inicio en programación
14 Febrero 2014, 08:57 AM
Cita de: rodrigosurvivor en 14 Febrero 2014, 00:22 AM
me gustaría aprender a programar juegos, alguna codificación sencilla pero que no cause mal rendimiento o quejas por X problema
agradeceré cualquier ayuda o link :huh:

Desgraciadamente en este mundo hay que elegir porque no se puede tener todo:

Si quieres rendimiento tienes C++ (recomendado) o C, lo que pasa es que estos de fácil no tienen mucho porque te acercas bastante al lenguaje máquina.

Si quieres sencillez tienes C#, Java, Unity... son lenguajes que te permiten casi ignorar lo que sucede por debajo... pero eso se paga sacrificando rendimiento.

Aún así también te digo que cualquier lenguaje que encuentres en el mercado te va a servir para programar juegos... lo que sucede es que los lenguajes más populares van a tener más recursos disponibles ( a modo de librerías y funciones ).
#778
A mí lo que no me gusta de trabajar con archivos es que tienen dos inconvenientes:

* Hay que tener cuidado con la concurrencia.
* Como el algoritmo se tuerza un poco vas a estropear todo el fichero

Yo personalmente prefiero BD... además con PHP es sumamente fácil trabajar con MySql
#779
Programación C/C++ / Re: modificacion codigo ???
13 Febrero 2014, 09:56 AM
Pasos a seguir:

guarda x2-x1 en x1
guarda x3-x2 en x2
guarda x4-x3 en x3
...

tienes que tener en cuenta que en cada iteración vas a perder el último número, en tu caso, no puedes comparar la diferencia del 8 con el siguiente porque, directamente, no existe... ahí no se si vas a usar un número por defecto o directamente, a diezmar la secuencia.

Si eliminas el último número en cada paso deberías pasar a usar un vector en vez de variables sueltas, así te puedes permitir el lujo de gestionar los accesos de forma dinámica:


int x[6] = { 0, 0, 0 ,0, 0, 0 };

// ...

fscanf(fichero,"%d %d %d %d %d %d ", &x[0], &x[1], &x[2], &x[3], &x[4], &x[5] );

int tope = 5;

while ( tope > 0 )
{
 int i = 0;
 for ( i=0; i<tope; i++ )
 {
   x[ i ] = x[ i + 1 ] - x[ i ];
   fprintf( fich, "%d ", x[ i ] );
 }
 fprintf( fich, "\n" ); // Salto de linea al finalizar cada secuencia.
  tope--;
}
#780
Cita de: Vaagish en 12 Febrero 2014, 20:38 PM
Yo te recomendaría enviar los valores desde el juego y abrir un archivo de texto en el servidor para escritura,, le metes las variables y lo cerras ;) inclusive podes tener un txt por jugador,, aunque lo mas recomendable es usar base de datos..

Si usas un fichero compartido tienes que tener cuidado con la concurrencia para no machacar datos.

Cita de: Vaagish en 12 Febrero 2014, 20:38 PM
Es mucho el texto? (En realidad el método POST según tengo entendido no tiene limite de tamaño, pero no creo que sea aconsejable enviar por ejemplo,, un libro jeje)

El tamaño en POST se puede limitar en el servidor... en cualquier caso, si se envían ficheros grandes también tienes como tope el timeout de la conexión... lo que salte antes te fastidia la subida.