Logo

¡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.
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.