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 - kilodepala2

#11
Cita de: ivancea96 en 11 Mayo 2016, 16:32 PM
Porque no existe. Tú pusiste:
Código (cpp) [Seleccionar]
Mapa(Graphics);

Querrías decir:
Código (cpp) [Seleccionar]
Mapa(Graphics*);

tenes razon, que error pelotudo...

gracias amigo por tu ayuda jajaj
#12
Cita de: ivancea96 en 11 Mayo 2016, 15:59 PM
No has puesto la línea del error.
En cualquier caso, coloca antes de los #IFDEF de cada clase, "class NOMBRE;", donde NOMBRE es el nombre de la clase del archivo. Comprueba si así funciona.

Ej:
Código (cpp) [Seleccionar]
class Tile;

#ifndef TILE_H
#define TILE_H

#include "mapa.h"

class Tile
{


tenes razon, disculpa. la linea del error es la linea 12 del primer code.

si pongo el forward como dijiste vos me sale este error:

\mapa.cpp|5|error: prototype for 'Mapa::Mapa(Graphics*)' does not match any in class 'Mapa'
#13
Cita de: ivancea96 en 11 Mayo 2016, 15:34 PM
Has expuesto el tema, pero no el problema. ¿Qué ocurre con ello?

disculpa, tuve un error al puiblicar el tema, ahora lo publico bien
#14
Programación C/C++ / dependencias circulares
11 Mayo 2016, 15:28 PM
que tal amigos, estoy programando un juego en c++ basado en tiles con vista isometrica. tengo un problema que me esta quemando la cabeza.
la cosa es asi:
tengo una clase mapa, que tiene un puntero bidimensional a clases tile, y la clase tile tiene un puntero a mapa. la clase tile tiene un metodo dibujar(), que dibuja sobre una estructura BITMAP que esta definida en una clase Graphics, accediendo a esta mediante un puntero en mapa.

aqui esta el codigo, el error que obtengo es "Expected ')' before '*'"

donde esta el error?

Código (cpp) [Seleccionar]

//tile.h

#ifndef TILE_H

    #define TILE_H
    #include "mapa.h"
    class Tile
    {

    public:

        Tile(Mapa*, int, int);
        ~Tile();

        void Draw();


    private:

        Mapa *parent;
        int posX;
        int posY;

    };


#endif // TILE_H

[/code=cpp]

[code]//tile.cpp

#include "tile.h"

Tile::Tile(Mapa *_parent, int x, int y)
{
    parent = _parent;
    posX = x;
    posY = y;
}

Tile::~Tile()
{

}

void Tile::Draw()
{
    int px = (posX - posY) * (parent->parent->tile->w /2) + parent->scrollX;
    int py = (posX + posY) * (parent->parent->tile->h /2) + parent->scrollY;

    draw_sprite(parent->parent->buffer, parent->parent->tile, px, py);

    delete px;
    delete py;
}


Código (cpp) [Seleccionar]
//mapa.h
#include "graphics.h"


#ifndef MAPA_H

    #define MAPA_H
    #include "tile.h"
    class Mapa
    {

    public:

        Mapa(Graphics);
        ~Mapa();

        void Draw();

    private:

        Tile *matriz[64][64];
        int scrollX;
        int scrollY;
        Graphics *parent;

    };


#endif // MAPA_H


Código (cpp) [Seleccionar]
#include "mapa.h"

Mapa::Mapa(Graphics *_parent)
{
    parent = _parent;

    for(int i=0; i<64; i++)
    {
        for(int j=0; j<64; j++)
        {
            matriz[j][i] = new Tile(this, j, i);
        }
    }
}

Mapa::~Mapa()
{

}

void Mapa::Draw()
{
    for(int i=0; i<64; i++)
    {
        for(int j=0; j<64; j++)
        {
            matriz[j][i]->Draw();
        }
    }
}

[/code]