Ошибки компоновщика C++. неопределенная ссылка на несколько разных вещей в моем классеC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Ошибки компоновщика C++. неопределенная ссылка на несколько разных вещей в моем классе

Сообщение Anonymous »

Я изучаю C++ и знаю более щадящие языки. У меня есть небольшой проект, над которым я работаю, и я получаю следующие ошибки.
/src/main.cpp:10: неопределенная ссылка на SpriteAnimation::SpriteAnimation(char const*, int , int, int, int, float)' .../src/main.cpp:17: неопределенная ссылка на SpriteAnimation::Update(float)'
.../src/main.cpp :23: неопределенная ссылка на SpriteAnimation::Draw(Vector2, float, Color)' .../src/main.cpp:30: неопределенная ссылка на SpriteAnimation::~SpriteAnimation()'
. ../src/main.cpp:30: неопределенная ссылка на `SpriteAnimation::~SpriteAnimation()'
collect2.exe: ошибка: ld вернул 1 статус выхода
I Я искал ответы и знаю, что это что-то маленькое и тривиальное, но я действительно мог бы взглянуть на это второй парой ветеранов.
Большое спасибо, что посмотрели!
main.cpp
#include "raylib.h"
#include "SpriteAnimation.h"

int main() {
InitWindow(800, 600, "Sprite Animation Example");
SetTargetFPS(60);

SpriteAnimation animation("src/assets/player/char_a_p1/char_a_p1_0bas_demn_v01.png", 64, 64, 8, 8, 10.0f);

Vector2 position = {400, 300};

while (!WindowShouldClose()) {
// Update
float deltaTime = GetFrameTime();
animation.Update(deltaTime);

// Draw
BeginDrawing();
ClearBackground(RAYWHITE);

animation.Draw(position);

EndDrawing();
}

CloseWindow();
return 0;
}

SpriteAnimation.h
#include "raylib.h"
#include

class SpriteAnimation {
private:
Texture2D spriteSheet;
std::vector frames;
int currentFrame;
float frameTime;
float timer;

public:
SpriteAnimation(const char* filename, int frameWidth, int frameHeight, int framesPerRow, int framesPerColumn, float fps) {
spriteSheet = LoadTexture(filename);
currentFrame = 0;
frameTime = 1.0f / fps;
timer = 0.0f;

// Calculate and store all frame rectangles
for (int y = 0; y < framesPerColumn; y++) {
for (int x = 0; x < framesPerRow; x++) {
Rectangle frame = {
static_cast(x * frameWidth),
static_cast(y * frameHeight),
static_cast(frameWidth),
static_cast(frameHeight)
};
frames.push_back(frame);
}
}
}

~SpriteAnimation() {
UnloadTexture(spriteSheet);
}

void Update(float deltaTime) {
timer += deltaTime;
if (timer >= frameTime) {
currentFrame = (currentFrame + 1) % frames.size();
timer = 0.0f;
}
}

void Draw(Vector2 position, float scale = 1.0f, Color tint = WHITE) {
DrawTexturePro(
spriteSheet,
frames[currentFrame],
{position.x, position.y, frames[currentFrame].width * scale, frames[currentFrame].height * scale},
{0, 0},
0.0f,
tint
);
}
};

SpriteAnimation.h
#ifndef SPRITE_ANIMATION_H
#define SPRITE_ANIMATION_H

#include "raylib.h"
#include

class SpriteAnimation {
private:
Texture2D spriteSheet;
std::vector frames;
int currentFrame;
float frameTime;
float timer;

public:
SpriteAnimation(const char* filename, int frameWidth, int frameHeight, int framesPerRow, int framesPerColumn, float fps);
~SpriteAnimation();

void Update(float deltaTime);
void Draw(Vector2 position, float scale = 1.0f, Color tint = WHITE);
};

#endif // SPRITE_ANIMATION_H


Подробнее здесь: https://stackoverflow.com/questions/791 ... gs-in-my-c
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»