Ich versuche ein Spiel mit GameObject zu erstellen, das aus Kacheln, Spielern, Feinden und Wänden besteht. Ich versuche, meine Klasse Character (Parent zu zwei weiteren Klassen Player und Enemy) in die Basisklasse GameObject zu bekommen. Ich erhalte den C2512-Fehler in der Character.cpp-Datei, wenn ich versuche, den Konstruktor für Zeichen zu erstellen. Kann jemand darauf hinweisen, was ich falsch machen könnte? Danke im Voraus.'GameObject': kein passender Standardkonstruktor verfügbar
Characters.h
#ifndef CHARACTERS_H
#define CHARACTERS_H
#include <cstdlib>
#include <ctime> /*cstdlib and ctime are used to help with the pseudo randomness for events*/
#include <cstdio> /*allows remove function*/
#include <iostream>
#include <fstream>
#include <sstream>
#include <array>
#include <string>
#include <vector>
#include "GameObject.h"
using namespace std;
class Character : public GameObject{
public:
Character();
~Character();
virtual void attack(vector<Character *>&characters) = 0;
void set_values(string nam, int hp, int str, int mag) {
name = nam;
health = hp;
strength = str;
magic = mag;
};
string name;
int health;
int strength;
int magic;
};
#endif
GameObject.h
#ifndef GAMEOBJECCT_H
#define GAMEOBJECT_H
#include "Direct3D.h"
#include "Mesh.h"
#include "InputController.h"
class GameObject {
protected:
Vector3 m_position;
float m_rotX, m_rotY, m_rotZ;
float m_scaleX, m_scaleY, m_scaleZ; //Not really needed for A1.
//Used for rendering
Matrix m_world;
Mesh* m_mesh;
Texture* m_texture;
Shader* m_shader;
InputController* m_input; //Might have enemies who react to player input.
float m_moveSpeed;
float m_rotateSpeed;
public:
//Constructor
GameObject(Mesh* mesh, Shader* shader, InputController *input, Vector3 position, Texture* texture);
~GameObject();
void Update(float timestep);
void Render(Direct3D* renderer, Camera* cam);
Characters.cpp
#include "Characters.h"
#include <cstdlib>
#include <ctime> /*cstdlib and ctime are used to help with the pseudo randomness for events*/
#include <cstdio> /*allows remove function*/
#include <iostream>
#include <fstream>
#include <sstream>
#include <array>
#include <string>
#include <vector>
using namespace std;
void Character::attack(vector<Character *>&characters) {};
Character::Character() {
};
Character::~Character() {};
nicht so aussieht Standardkonstruktor zu 'GameObject' ist die Absicht oder das sichere Verhalten hier. Ich denke, R Sahu ist auf das Geld als die Absicht .. – EyasSH
Danke, dass geholfen hat. Ich habe jetzt einen noch einfacheren Fehler, der das ungelöste externe Symbol ist. Das ist normalerweise, wenn Sie etwas nicht richtig aufgenommen haben? – Zone
@Zone Haben Sie Ihren neu hinzugefügten Standardkonstruktor implementiert? Denn wenn Sie es nicht tun, wird es sicherlich einen ungelösten Symbolfehler verursachen. –