|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 20.10.2005, 19:42 Titel: [C2504] Basisklasse undefiniert Problem |
|
|
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 |
|
|
Slider|SD Mini JLI'ler
Alter: 44 Anmeldedatum: 20.10.2005 Beiträge: 18 Wohnort: Gilching Medaillen: Keine
|
Verfasst am: 20.10.2005, 21:08 Titel: |
|
|
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
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 |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 21.10.2005, 14:00 Titel: |
|
|
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 _________________ "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 |
|
|
|
|
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
|