-
Notifications
You must be signed in to change notification settings - Fork 0
/
Sky.cpp
71 lines (56 loc) · 1.38 KB
/
Sky.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
#include "Sky.hpp"
Sky::Sky(int _size)
{
size = _size;
Init();
sleeptime=0;
}
void Sky::Init()
{
mColUp.set(0,0,0,100);
mColDown.set(0,0,100,150);
tab = new sf::Color[size];
}
Sky::~Sky()
{
delete[] tab;
}
void Sky::update()
{
if(sleeptime >= 20)
{
if( (appManager.getTimeDiff() > 10) && (appManager.getTimeDiff() < 1500) )
{
//mColUp.set(mColUp.r,mColUp.g+0.05,mColUp.b+0.3,mColUp.a);
mColUp.set(mColUp.r,mColUp.g+1,mColUp.b+1,mColUp.a);
mColDown.set(mColDown.r+1,mColDown.g+1,mColDown.b,mColDown.a);
//LOG(mColDown.b);
}
if(mColDown.g > 100) mColDown.g = 50;
if(mColDown.r > 250) mColDown.r = 250;
if(mColUp.b > 180) mColUp.b = 180;
insertGrad();
sleeptime=0;
}
++sleeptime;
DisplayManager().getWindow().draw(sprite);
}
void Sky::insertGrad()
{
ColorScale gradient;
gradient.insert(0.0,sf::Color(mColUp.r,mColUp.g,mColUp.b,mColUp.a));
gradient.insert(1.0,sf::Color(mColDown.r,mColDown.g,mColDown.b,mColDown.a));
//LOG(mColUp.r);
gradient.fillTab(tab,size);
sf::Image img;
img.create(size,size);
for(int i=0; i<size; ++i)
{
for(int j=0; j<size; ++j)
{
img.setPixel(i,j,this->tab[j]);
}
}
texture.loadFromImage(img);
sprite.setTexture(texture);
}