/
Transition.cpp
65 lines (57 loc) · 1.55 KB
/
Transition.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
#include "StdAfx.h"
#include "Transition.h"
CTransition::CTransition(void)
{
CModule::CModule();
imageFrom = new CImg("blank.bmp");
imageTo = new CImg("blank.bmp");
transitionTimer= 0;
alpha = 255;
}
CTransition::~CTransition(void)
{
}
void CTransition::Update() {
// initialize images
if (transitionTimer == 0) {
// shared->modules[shared->nextstate]->Render();
// int success = SDL_RenderReadPixels(rect,pixels,pitch);
//printf("%d success reading screen", success);
}
transitionTimer++;
Render();
if (transitionTimer > 59) {
alpha = 255;
shared->gamestate = shared->nextstate;
transitionTimer = 0;
}
}
void CTransition::Render() {
//imageTo->Init("blank.bmp");
if (shared->transitionType == shared->FADE) {
alpha-=4;
// shared->modules[shared->prevstate]->Render(imageFrom->getSurface());
//shared->modules[shared->nextstate]->Render(imageTo->getSurface());
imageFrom->Render(0,0,alpha);
imageTo->Render(0,0,255-alpha);
}
else if (shared->transitionType == shared->FADETOBLACK) {
alpha -= 4;
if (transitionTimer <= 30) {
shared->modules[shared->prevstate]->Render();
int alpha = int((transitionTimer/30.0)*255.0);
//imageFrom->Render(0,0,255-alpha);
} else {
int alpha = int(((transitionTimer-30)/30.0)*255.0);
shared->modules[shared->nextstate]->Render();
//imageTo->Render(0,0,alpha);
}
} else if (shared->transitionType == shared->EXPAND) {
shared->modules[shared->prevstate]->Render();
shared->modules[shared->nextstate]->Render();
}
}
void CTransition::AnimateFrom() {
}
void CTransition::AnimateTo() {
}