-
Notifications
You must be signed in to change notification settings - Fork 0
/
Resources.cpp
142 lines (116 loc) · 3.73 KB
/
Resources.cpp
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
///Resources [Source]
#include "Resources.h"
//Project headers
#include "TextureManager.h"
//Static
SDL_Texture* Resources::tile_map;
SDL_Rect Resources::map_sprite[TILE_MAP_COUNT];
SDL_Texture* Resources::snake;
SDL_Rect Resources::snake_sprite[SNAKE_COUNT];
SDL_Texture* Resources::fruit;
SDL_Renderer* Resources::renderer;
Console Resources::console("Resources");
///Resources class
void Resources::init(SDL_Renderer* _renderer)
{
renderer = _renderer;
console.writeLine("Init done!");
}
void Resources::load()
{
//tile_map
tile_map = TextureManager::load("Assets/tileMap.png");
map_sprite[GRASS] = {0, 0, PIXEL, PIXEL};
map_sprite[DIRT] = {PIXEL, 0, PIXEL, PIXEL};
//snake
snake = TextureManager::load("Assets/snakes.png");
//Head
snake_sprite[SNAKE_HEAD_UP] = {0, 0, PIXEL, PIXEL};
snake_sprite[SNAKE_HEAD_DOWN] = {0, PIXEL, PIXEL, PIXEL};
snake_sprite[SNAKE_HEAD_LEFT] = {0, PIXEL*2, PIXEL, PIXEL};
snake_sprite[SNAKE_HEAD_RIGHT] = {0, PIXEL*3, PIXEL, PIXEL};
//Body
snake_sprite[SNAKE_BODY_UP] = {PIXEL, 0, PIXEL, PIXEL};
snake_sprite[SNAKE_BODY_DOWN] = {PIXEL, PIXEL, PIXEL, PIXEL};
snake_sprite[SNAKE_BODY_LEFT] = {PIXEL, PIXEL*2, PIXEL, PIXEL};
snake_sprite[SNAKE_BODY_RIGHT] = {PIXEL, PIXEL*3, PIXEL, PIXEL};
//Corner
snake_sprite[SNAKE_CORNER_RIGHT_UP] = {PIXEL*2, 0, PIXEL, PIXEL};
snake_sprite[SNAKE_CORNER_LEFT_UP] = {PIXEL*2, PIXEL, PIXEL, PIXEL};
snake_sprite[SNAKE_CORNER_UP_LEFT] = {PIXEL*2, PIXEL*2, PIXEL, PIXEL};
snake_sprite[SNAKE_CORNER_DOWN_LEFT] = {PIXEL*2, PIXEL*3, PIXEL, PIXEL};
snake_sprite[SNAKE_CORNER_RIGHT_DOWN] = {PIXEL*3, 0, PIXEL, PIXEL};
snake_sprite[SNAKE_CORNER_LEFT_DOWN] = {PIXEL*3, PIXEL, PIXEL, PIXEL};
snake_sprite[SNAKE_CORNER_UP_RIGHT] = {PIXEL*3, PIXEL*2, PIXEL, PIXEL};
snake_sprite[SNAKE_CORNER_DOWN_RIGHT] = {PIXEL*3, PIXEL*3, PIXEL, PIXEL};
//Tail
snake_sprite[SNAKE_TAIL_UP] = {PIXEL*4, 0, PIXEL, PIXEL};
snake_sprite[SNAKE_TAIL_DOWN] = {PIXEL*4, PIXEL, PIXEL, PIXEL};
snake_sprite[SNAKE_TAIL_LEFT] = {PIXEL*4, PIXEL*2, PIXEL, PIXEL};
snake_sprite[SNAKE_TAIL_RIGHT] = {PIXEL*4, PIXEL*3, PIXEL, PIXEL};
//fruit
fruit = TextureManager::load("Assets/fruit.png");
console.writeLine("Load textures done!");
}
SDL_Texture* Resources::getTexture(RESOURCES_VALUE value)
{
SDL_Texture* tmpTexture = NULL;
switch (value)
{
//tile map
case TILE_MAP:
case GRASS_VAL:
case DIRT_VAL:
tmpTexture = tile_map;
break;
//snake
case SNAKE_VAL:
tmpTexture = snake;
break;
//fruit
case FRUIT_VAL:
tmpTexture = fruit;
break;
}
return tmpTexture;
}
SDL_Rect Resources::getSprite(RESOURCES_VALUE value)
{
SDL_Rect tmpRect = {0, 0, 0, 0};
switch (value)
{
//tile map
case TILE_MAP:
break;
case GRASS_VAL:
tmpRect = map_sprite[GRASS];
break;
case DIRT_VAL:
tmpRect = map_sprite[DIRT];
break;
//snake
case SNAKE_VAL:
break;
//fruit
case FRUIT_VAL:
break;
}
return tmpRect;
}
SDL_Rect Resources::getSprite(SNAKE_VALUE value)
{
SDL_Rect tmpRect = {0, 0, 0, 0};
tmpRect = snake_sprite[value];
return tmpRect;
}
void Resources::free()
{
console.writeLine("Free memory. . .");
SDL_DestroyTexture(tile_map);
SDL_DestroyTexture(snake);
SDL_DestroyTexture(fruit);
tile_map = NULL;
snake = NULL;
fruit = NULL;
renderer = NULL;
}