-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGraphics.cpp
More file actions
81 lines (63 loc) · 2.42 KB
/
Copy pathGraphics.cpp
File metadata and controls
81 lines (63 loc) · 2.42 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
80
81
#include <cmath>
#include <iostream>
#include "Graphics.hpp"
/*
Lida com a renderização das texturas.
Armazena cada textura no array "textures".
*/
Graphics::Graphics() {
SDL_Init(SDL_INIT_EVERYTHING);
window = SDL_CreateWindow(TITLE, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,
WIDTH, HEIGHT, SDL_WINDOW_SHOWN);
renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);
SDL_SetRenderDrawColor(renderer, 15, 15, 15, 255);
//blues
// 96, 192, 214
// 102, 162,209
// 169, 211, 209
// 135, 151,255
// red
// 190, 36, 94
//grey
// 23,23,23
SDL_RenderClear(renderer);
textures[TX_BG] = IMG_LoadTexture(renderer, "img/bg.png");
textures[TX_CLOUDS_D] = IMG_LoadTexture(renderer, "img/clouds_dark.png");
textures[TX_CLOUDS_L] = IMG_LoadTexture(renderer, "img/clouds_light.png");
textures[TX_FROG] = IMG_LoadTexture(renderer, "img/frog.png");
textures[TX_FX_GREEN] = IMG_LoadTexture(renderer, "img/fx_green.png");
textures[TX_FX_YELLOW] = IMG_LoadTexture(renderer, "img/fx_yellow.png");
textures[TX_HEARTS] = IMG_LoadTexture(renderer, "img/hearts.png");
textures[TX_HEARTS_ORANGE] = IMG_LoadTexture(renderer, "img/hearts_orange.png");
textures[TX_NUMBERS] = IMG_LoadTexture(renderer, "img/numbers.png");
textures[TX_NUMBERS_ORANGE] = IMG_LoadTexture(renderer, "img/numbers_orange.png");
textures[TX_PERSON_CUIA] = IMG_LoadTexture(renderer, "img/personage_cuia.png");
textures[TX_PERSON_NOCAP] = IMG_LoadTexture(renderer, "img/player_nocap.png");
textures[TX_PERSON_SPRITE] = IMG_LoadTexture(renderer, "img/player_spritesheetCuia.png");
textures[TX_BG2] = IMG_LoadTexture(renderer, "img/bg2.png");
//AnimationController* animationController = new AnimationController(32,40,10,4);
}
SDL_Texture *Graphics::getTexture(int id) {
if (id >= TEXTURE_N || id < 0)
return NULL;
return textures[id];
}
void Graphics::renderObj(Object *obj) {
AnimationController* objAnim = obj->getAnimationController();
int w = objAnim->getW();
int id = objAnim->getIndex();
int h = objAnim->getH();
SDL_Rect srcrect = {w*id, 0, w, h};
SDL_Rect dstrect = {obj->getX(), obj->getY(), obj->getW(), obj->getH()};
SDL_RendererFlip flip = SDL_FLIP_NONE;
if (obj->getDirX()==-1)
flip = SDL_FLIP_HORIZONTAL;
SDL_RenderCopyEx(renderer, obj->getTexture(), &srcrect, &dstrect, 0, NULL, flip);
}
void Graphics::show() {
SDL_RenderPresent(renderer);
SDL_RenderClear(renderer);
}
SDL_Renderer* Graphics::getRenderer() {
return renderer;
}