JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=794e6eb734c0129bfe8081cb28b97930Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

[C2504] Basisklasse undefiniert Problem

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 20.10.2005, 19:42    Titel: [C2504] Basisklasse undefiniert Problem Antworten mit Zitat

Hallo, kann mir jemand erklären weshalb ich bei den Klassen LifeEntity und CreatureEntity diesen Fehler vom Topic bekomme? Die cpp Datein inkludieren nur ihre entsprechende .h Datei, der Fehler kommt auch dann wenn ich nur die CreatuireEntity.h in meiner main.cpp nur inkludiere und sonst nichts weiter. Hier die .h´s:

BaseEntity.h
CPP:
#pragma once

#include <hgeanim.h>
#include <hgevector.h>
#include <vector>
#include <string>

#include <hge.h>

class BaseEntity
{
public:
   BaseEntity();
   ~BaseEntity(void);

private:
   HGE *_hge;
   std::string _name;
   hgeVector _position;
   hgeVector _direction;
   BaseEntity *_parent;
   std::vector<BaseEntity*> _childs;
   DWORD _collisionMask;
   DWORD _ownMask;
   float _order;
   bool _removeMe;
   float _radius;
   float _width;
   float _height;
   int _collisionType;

public:

   HGE* GetHGE();
   DWORD GetOwnMask();
   void SetOwnMask(DWORD mask);
   DWORD GetCollisionMask();
   void SetCollisionMask(DWORD newMask);
   hgeVector GetRelativePosition();
   float GetOrder();
   void SetOrder(float newOrder);
   float GetAngle();
   void  SetAngle(float angle);
   void Delete(int num=-1);
   void Delete(const std::string &name);
   void Add(BaseEntity* entity);
   BaseEntity* Find(const std::string &name);
   bool IsUsable();
   std::string GetName();
   BaseEntity* GetParent();
   hgeVector GetDirection();
   void SetDirection(hgeVector dir);
   hgeVector GetPosition();
   void SetPosition(hgeVector pos);

   void SetRectangleCollision();
   void SetCircleCollision();
   bool IsRectangleCollision();
   float GetWidth();
   float GetHeight();
   float GetRadius();
   void SetCollisionSize(float radius);
   void SetCollisionSize(float width, float height);

public:
   virtual void Update(float dt);
   virtual void Draw(void);
   virtual void Init(HGE *hge, const std::string &name, const std::string &dataname);
   virtual void DeInit();
};


SpriteEntity.h
CPP:
#pragma once

#include "../RessourceManager.h"
#include "BaseEntity.h"

#include <hgeanim.h>

class SpriteEntity : public BaseEntity
{
public:
   SpriteEntity();
   ~SpriteEntity(void);

public:
   virtual void Update(float dt);
   virtual void Draw(void);
   virtual void Init(HGE *hge, const std::string &name, const std::string &dataname);
   virtual void DeInit();

private:
   hgeAnimation *_sprite;

public:
   hgeAnimation *GetSprite();

public:
   typedef BaseEntity Parent;
};


LifeEntity.h
CPP:
#pragma once

#include "SpriteEntity.h"

class LifeEntity : public SpriteEntity
{
public:
   LifeEntity();
   ~LifeEntity(void);

public:
   virtual void Update(float dt);
   virtual void Draw(void);
   virtual void Init(HGE *hge, const std::string &name, const std::string &dataname);
   virtual void DeInit();
   virtual void OnDamage(BaseEntity* instigator);
   virtual void OnHeal(BaseEntity* instigator);
   virtual void OnDie(BaseEntity* instigator);

private:
   float _healrate;
   float _life;
   int _maxLife;
   bool _bDestroyable;

public:
   void SetHealRate(float rate);
   float GetHealRate();
   void SetLife(float newLife);
   float GetLife();
   void SetMaxLife(int newLife);
   int GetMaxLife();
   void Damage(int ammount, BaseEntity* instigator);
   void Heal(int ammount, BaseEntity* instigator);
   void SetDestroyable(bool bDestroy);
   bool GetDestroyable();

public:
   typedef SpriteEntity Parent;
};


CreatureEntity.h
CPP:
#pragma once

#include "LifeEntity.h"
#include "../Pathfinding/AStar.h"

class CreatureEntity : public LifeEntity
{
public:
   CreatureEntity();
   ~CreatureEntity(void);

public:
   virtual void Update(float dt);
   virtual void Draw(void);
   virtual void Init(HGE *hge, const std::string &name, const std::string &dataname);
   virtual void DeInit();
   virtual void OnDamage(BaseEntity* instigator);
   virtual void OnHeal(BaseEntity* instigator);
   virtual void OnDie(BaseEntity* instigator);

private:
   AStar::Path *_pathfindingManager;
   hgeVector _targetPos;
   bool _walkToTarget;
   std::vector<AStar::Point> _walkingPath;

   float _speed;
   float _maxSpeed;
   float _accelleration;
   float _brakespeed;
   float _rotationspeed;

public:
   void SetAStarManager(AStar::Path* manager);
   AStar::Path* GetAStarManager();
   void SetWalkTarget(hgeVector target);

   void SetSpeed(float speed);
   float GetSpeed();
   void Brake();
   void Accellerate();
   void SetMaxSpeed(float maxspeed);
   float GetMaxSpeed();
   void SetAccelleration(float accel);
   float GetAccelleration();
   void SetBrakeSpeed(float brake);
   float GetBrakeSpeed();
   void SetRotationSpeed(float speed);
   float GetRotationSpeed();

public:
   typedef LifeEntity Parent;
};


Hier die Fehler:

Zitat:
LifeEntity.h(39): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'Parent'
CreatureEntity.h(52): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'Parent'
CreatureEntity.h(52): error C2501: 'CreatureEntity::Parent': Fehlende Speicherklasse oder Typspezifizierer
LifeEntity.h(39): error C2501: 'LifeEntity::Parent': Fehlende Speicherklasse oder Typspezifizierer
CreatureEntity.h(7): error C2504: 'LifeEntity': Basisklasse undefiniert
LifeEntity.h(6): error C2504: 'SpriteEntity': Basisklasse undefiniert

_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Slider|SD
Mini JLI'ler


Alter: 44
Anmeldedatum: 20.10.2005
Beiträge: 18
Wohnort: Gilching
Medaillen: Keine

BeitragVerfasst am: 20.10.2005, 21:08    Titel: Antworten mit Zitat

Hi Fallen,

das haben wir dann wohl abseits des Forums geklärt, hat sich also erledigt...
Tjaja, Zyklen im Include-Baum sind halt nicht so das wahre Wink

Gruß,
Slider
_________________
Stefan Schwarzbach
Lead Programmer & Geschäftsführer
Grotesque - Die geniale Mischung aus Gothic , Final Fantasy und Monkey Island
Silent Dreams - We Create Dreams
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger MSN Messenger
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 21.10.2005, 14:00    Titel: Antworten mit Zitat

Jo dank dir, lag also in einem zyklischen includebaum, hatte voll vergessen das der RessourceManager vieles einbindet was mir heute nicht mehr logisch erscheint.

namespaces sucken auch Wink
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum