Я только недавно начал изучать C ++, так что я совершенно новый, хотя я пришел с Java. Я делаю игру как мой первый маленький проект. Я хочу, чтобы мой класс проигрывателя был отделен от основного файла. У меня есть мой заголовочный файл и файл cpp, составленный так:
Заголовок:
#pragma once
#include <SFML/Graphics.hpp>
#include <iostream>
class Entity {
public:
Entity(int x, int y, sf::RenderWindow& win) : window(win) {}
void tick();
void render();
private:
int x;
int y;
float velX;
float velY;
sf::RenderWindow& window;
bool keys[264] = {};
};
C ++:
#include <SFML/Graphics.hpp>
#include <iostream>
#include "headers/Entity.h"
using namespace sf;
Texture texture;
Sprite sprite;
Entity::Entity(int x, int y, RenderWindow& win) : window(win) {
this->x = x;
this->y = y;
this->velX = 0;
this->velY = 0;
this->window = win;
texture.loadFromFile("../res/img/test.png");
sprite(texture);
}
void Entity::tick() {
// movement
}
void Entity::render() {
this->window.draw(sprite);
}
Но в файле cpp конструктор продолжает говорить:
redefinition of 'Entity::Entity(int, int, sf::RenderWindow&)'
Я много раз искал, как это исправить, но не могу найти ничего, что работает, потому что эта проблема не зависит от того, что я пытаюсь. Я бы предпочел теорию так же, как я новичок с любым ответом. Спасибо.