Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Juegos basados en tiles como si fuesen ....

Iniciado por josette, 21 de Febrero de 2003, 10:10:16 AM

« anterior - próximo »

josette

                                Intentando crear un juego basado en tiles he concluido lo siguiente:

  -Modulo de conjunto de casillas (tileSets). Un tileSet contiene un Bitmap.
     . Un bitmap puede contener:
        -un tile o varios tiles.
  -Modulo de Animaciones que usan los tiles de los Bitmaps.
     · Una animacion puede ser:
        -de un solo frame.
        -de una sequencia de frames.
        -de muchas sequencias de frames.
  -Mapas que usan las animaciones.

  · Modulo de tileSets:
   class CTileSet
   {
      CImage *Img;                 // Bitmap
      int tile_width, tile_height;  // altura y anchura de los tiles del bitmap
   }
   class CImage
   {
       static CGraphicEngine *ptGE;
       TPixel *image;
       void Draw(){ GE->Draw(); };
   }

  · Modulo de Animaciones:
  class CAnimation
  {
     int IdTileSet;
     CSequence Sequence[][];
     void SetSequence(int idSeq){ Sequence.SetCurrent(idSeq); }
     void Next(){ Sequence->Next(); }
     void Draw()
     {
         g_TileSet[idTileSet]->Draw(Sequence->GetCurrentFrame());
     }
  }

  · Mapas de Animaciones
  class CTileMap
  {
     int IdAnimations[][]; // contiene las referencias a las animaciones.
     void Render()
     {
        for h=0;
        for w=0;
           g_Animation->Draw(IdAnimations[h][w]);
     }
  }


  // variables globales
  CTileSet *g_TileSet;
  CAnimation *g_Animation;
  CMap **g_Maps;

  Espero que entendais el código...... Si hay sugerencias exponerlas. OK?                                

samsaga2

                                Sugerencia: elimina esas variables globales  :enfadado: usa singletons http://www.codeproject.com/tips/singleton.asp

Citar
for h=0;  
for w=0;  

Mande? Esto compila?  8O Parece que hayas escrito el codigo a ojo de buen cubero.

CTileSet lo veo bien, falta un public: pero bueno dejemoslo pasar.

En CImage no se que es TPixel a parte de que faltan las coordenadas de pantalla donde dibujar la imagen.

Si ya tienes CAnimation ¿para que quieres CSequence? O CAnimation es para tiles animados y CSequences es para sprites animados  :?:

En CTileMap falta pasarle las coordenadas de la pantalla y del mapa.

Por lo demas lo veo bien... ostia, si es que ya no queda mas, me lo he cargao todo :loco:

Si quieres una explicacion general de como van los mapas de tiles pidela y  te la dare con mucho gusto (plus parallax).                                

Grugnorr

                                Como dice Samsaga, ,tienes algo raro, o te faltan public: en las clases, o te faltam métodos Get() Set() para los atributos. Además tienes alguna clase con métodos y atributos privados  :?:                                
hat the hells!

josette

                                Las clases son a modo de esquema, ya se que faltan cosas pero no era cuestion de meter todo el código.

  class CSequence
  {
  private:
     int **sequence;        //almacena numeros de frames
     int currentSequence; //selecciona filas
     int currentFrame;      //selecciona columnas
  public:
     ....
  };

  Si sabeis de páginas de estos temas, las acepto mientras no sean de gametutorials o gamedev, que ya me las conozco. Y si hay algo de motores gráficos 2D mejor.


  A ver si de una vez consigo que esto 'furule'.                                

samsaga2

                                Paste por http://www.2dgame-tutorial.com/                                






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.