Seite 1 von 1

#Include Problem

Verfasst: 04.11.2010, 18:52
von Beliaz
Hi

Ich poste erstmal den Code:

Code: Alles auswählen

#pragma once

#include<allegro.h>
#include<winalleg.h>
#include<iostream>
#include<list>

#include"Framework.h"
#include"CPlayer.h"

using namespace std;

class CGame  : public TSingleton<CGame>
{
              private:
		list<CPlayer> m_PlayerList;
		list<CPlayer>::iterator m_It;

	public:	

		BITMAP* m_pBackground;
		BITMAP* m_pCollisionMap;
		BITMAP* m_pPlayerSprite;
		float m_fGravity;

		CGame();

		void SetBackground(char filename[256]);
		void SetCollisionMap(char filename[256]);
		void CreateWorld(char background[256], char collisionMap[256], float gravity);

		CPlayer& AddPlayer(string name, int x, int y, int health);
		//void RemovePlayer(CPlayer name);

		void Render();
		void Move();
		void CheckCollision();

		~CGame(void);
};
Das Problem betrifft die zwei Variablen m_PlayerList und m_It und zwar bekomme ich diese Fehler:

1>c:\users\flo\documents\visual studio 2010\projects\wurms\wurms\cgame.h(19): error C2065: 'CPlayer' : undeclared identifier
1>c:\users\flo\documents\visual studio 2010\projects\wurms\wurms\cgame.h(20): error C2065: 'CPlayer' : undeclared identifier
1>c:\users\flo\documents\visual studio 2010\projects\wurms\wurms\cgame.h(20): error C2955: 'std::list' : use of class template requires template argument list
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\list(579) : see declaration of 'std::list'

Der dritte Punkt ist mir klar aber warum erhalte ich für CPlayer diesen Fehler? Header ist included und falsch geschrieben habe ich den Klassennamen auch nicht.

Könnt ihr mir da bitte helfen bin ratlos

Danke im voraus

mfg
Beliaz

Re: #Include Problem

Verfasst: 04.11.2010, 19:04
von Alexander Kornrumpf
Vielleicht wäre es sinnvoll auch CPlayer.h zu posten.

Re: #Include Problem

Verfasst: 04.11.2010, 19:07
von Beliaz
sry :)

Code: Alles auswählen

#pragma once

#include<allegro.h>
#include<winalleg.h>
#include<iostream>

#include"Framework.h"
#include"CGame.h"

using namespace std;

class CPlayer
{

	private:
		float m_fX;
		float m_fY;
		int m_HP;	
			
		float m_fVx;
		float m_fVy;
		string m_sName;

	public:
		bool m_bJump;	
		int m_Dir;

		CPlayer(string name, int x, int y, int health) { m_sName = name, m_fX = x, m_fY = y, m_HP = health, m_Dir = 0, m_bJump = true, m_fVx = 0, m_fVy = 0;};

		void UpdateHP(int dHP) {m_HP += dHP;};

		void SetVelocityX(int vx) {m_fVx = vx;};
		void SetVelocityY(int vy) {m_fVy = vy;};
		void UpdateVelocityX(int dvx) {m_fVx += dvx;};
		void UpdateVelocityY(int dvy) {m_fVy += dvy;};

		void SetPositionX(int x) {m_fX = x;};
		void SetPositionY(int y) {m_fY = y;};
		void UpdatePositionX(int dx) {m_fX += dx;};
		void UpdatePositionY(int dy) {m_fY += dy;};

		void Render();
		void Move();
		void CheckCollision();

		~CPlayer(void);

};

Re: #Include Problem

Verfasst: 04.11.2010, 19:11
von Aramis
Deine beiden Dateien inkludieren sich gegenseitig. Du brauchst CGame.h in der CPlayer.h doch gar nicht.

Re: #Include Problem

Verfasst: 04.11.2010, 19:19
von Beliaz
aahh.... ich brauche die "CGame.h" schon aber nur in der .cpp Datei....habs jetzt einfach bei "CPlayer.h" rausgenommen und in der .cpp Datei inkludiert....jetzt gehts!

Danke für die schnelle Hilfe :)

Re: #Include Problem

Verfasst: 04.11.2010, 22:20
von Biolunar
Und wichtig: Verwende kein "using namespace" in Headerdateien!