-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDino.cpp
More file actions
79 lines (68 loc) · 2.29 KB
/
Dino.cpp
File metadata and controls
79 lines (68 loc) · 2.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include "Dino.h"
#include <SDL3_image/SDL_image.h>
SDL_Texture* Dino::load_spritesheet(SDL_Renderer* renderer, const char* filename)
{
SDL_Texture* texture;
texture = IMG_LoadTexture(renderer, filename);
if (!texture)
{
SDL_Log("Couldn't create the texture: %s", SDL_GetError());
throw;
}
return texture;
}
Dino::Dino(std::array<float, 2> position, SDL_Renderer* renderer, SDL_Texture* spritesheet)
{
Dino::renderer = renderer;
Dino::spritesheet = spritesheet;
Dino::position = position;
Dino::anim_idle = new Animation(spritesheet, ANIM_IDLE_FRAME_START, ANIM_IDLE_FRAME_COUNT, FRAME_WIDTH, FRAME_HEIGHT, true);
Dino::anim_walk = new Animation(spritesheet, ANIM_WALK_FRAME_START, ANIM_WALK_FRAME_COUNT, FRAME_WIDTH, FRAME_HEIGHT, true);
Dino::anim_kick = new Animation(spritesheet, ANIM_KICK_FRAME_START, ANIM_KICK_FRAME_COUNT, FRAME_WIDTH, FRAME_HEIGHT, true);
Dino::anim_hurt = new Animation(spritesheet, ANIM_HURT_FRAME_START, ANIM_HURT_FRAME_COUNT, FRAME_WIDTH, FRAME_HEIGHT, true);
Dino::anim_crouch = new Animation(spritesheet, ANIM_CROUCH_FRAME_START, ANIM_CROUCH_FRAME_COUNT, FRAME_WIDTH, FRAME_HEIGHT, true);
Dino::anim_sneak = new Animation(spritesheet, ANIM_SNEAK_FRAME_START, ANIM_SNEAK_FRAME_COUNT, FRAME_WIDTH, FRAME_HEIGHT, true);
Dino::anim_current = Dino::anim_idle;
Dino::frect = new SDL_FRect();
Dino::frect->x = (float)(position[0] - (FRAME_WIDTH / 2));
Dino::frect->y = (float)(position[1] - (FRAME_HEIGHT / 2));
Dino::frect->w = (float)FRAME_WIDTH;
Dino::frect->h = (float)FRAME_HEIGHT;
}
Dino::~Dino()
{
delete Dino::renderer;
delete Dino::spritesheet;
delete Dino::anim_idle;
delete Dino::anim_walk;
delete Dino::anim_kick;
delete Dino::anim_hurt;
delete Dino::anim_crouch;
delete Dino::anim_sneak;
delete Dino::anim_current;
delete Dino::frect;
}
void Dino::update(double &deltatime)
{
Dino::anim_current->update(deltatime);
}
void Dino::render()
{
Dino::anim_current->render(Dino::renderer, Dino::frect);
}
void RedDino::update(double& deltatime)
{
Dino::update(deltatime);
}
void GreenDino::update(double& deltatime)
{
Dino::update(deltatime);
}
void BlueDino::update(double& deltatime)
{
Dino::update(deltatime);
}
void YellowDino::update(double& deltatime)
{
Dino::update(deltatime);
}