84 std::vector<std::pair<olc::vf2d, olc::vf2d>> vBoom;
87 float fParticleTime = 0.0f;
89 bool bComplete =
false;
95#ifdef OLC_PGEX_SPLASHSCREEN
96#undef OLC_PGEX_SPLASHSCREEN
107 "000000000000000000000000000000000000000000000000000000000000000000005"
108 "EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEED1EE"
109 "EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEED5EEE"
110 "EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE@E@000"
111 "0000000000000000000000000000000000000000000000000000000000001E1D:ZZZZ"
112 "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ1D5BZZZZZZ"
113 "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ5@E:P0002Z0"
114 "02ZZX000000000000ZP0000000000000000000000000000ZX000Z002XE1DX?o`o:Poo"
115 "800SooaE5@E1ED5BX?ol5E@E0E1ED?oo5@E1ED5DE1D5E@ZQEEBPEE2QD5BSooclZ?olQ"
116 "AB?oo5DEEDEEDE:SooaEEAE5DEEDoolEADEEDEAE5AEEBZ5EE:5EE:5@E:?oo?bXoob55"
117 "8o3lEAEEAD5ADZ?oo5@E5EEAD5Cl01E5AD5AE5DE5@E:X01DXEEDXE1DXo3lo:Sl0800S"
118 "ooaE1ED5EE5BXo00EEDEEE5EE?oo5EE5EE5DEEDEEDZQEEBQD5BQD5BSl?cl0?`0ZZZ?o"
119 "o5D5E@EEDE03loaEEAEEDEEDoolEED5EDEAEEAEEBZ5EE:5@E:5@E:?oo?oloob008o00"
120 "EAEEAD01EE?co5EE5EEAD03l01DE@05AE5AE5@0:XE000EEDXE1DXooloocoo8DDSlZQE"
121 "5EE5EE5EDoolE1DE4E5EE?oo5AE5EE5DE5DEEDZQEEAAEEBQD5BPoo3oo3olQAB?bZ5DE"
122 "1D5EDEE@ooaD5AD1D5EDoolE1DEE@EAD5@EEBZ5EE51ED:5@E:P000000020080:X0000"
123 "00000000000000000000000000000000000:X0000002XE1DZZZZZZZZZZZZZZZZZZZZZ"
124 "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZQD5@ZZZZZZZZZZZZZZZZZZZZZZ"
125 "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZX5@E@00000000000000000000000"
126 "00000000000000000000000000000000000000001E1EEEEEEEEEEEEEEEEEEEEEEEEEE"
127 "EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEED5EEEEEEEEEEEEEEEEEEEEEEEEEEE"
128 "EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE@5EEEEEEEEEEEEEEEEEEEEEEEEEEEE"
129 "EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEED0000000000000000000000000000000"
130 "0000000000000000000000000000000000000";
134 for (
size_t b = 0; b < 1624; b += 4)
136 uint32_t sym1 = (uint32_t)logo[b + 0] - 48;
137 uint32_t sym2 = (uint32_t)logo[b + 1] - 48;
138 uint32_t sym3 = (uint32_t)logo[b + 2] - 48;
139 uint32_t sym4 = (uint32_t)logo[b + 3] - 48;
140 uint32_t r = sym1 << 18 | sym2 << 12 | sym3 << 6 | sym4;
142 for (
int i = 0; i < 12; i++)
145 switch ((r & 0xC00000) >> 22)
148 case 1: p =
olc::Pixel(255, 255, 255, 255);
break;
149 case 2: p =
olc::Pixel(255, 120, 26, 255);
break;
150 case 3: p =
olc::Pixel(79, 193, 255, 255);
break;
153 if (++px == 203) { py++; px = 0; }
165 for (
int y = 0; y < spr.
Sprite()->height; y++)
166 for (
int x = 0; x < spr.
Sprite()->width; x++)
167 vBoom[y * spr.
Sprite()->
width + x] = std::make_pair(
168 vPosition +
olc::vf2d(
float(x),
float(y)),
170 (
float(rand()) /
float(RAND_MAX)) * 10.0f - 5.0f,
171 (
float(rand()) /
float(RAND_MAX)) * 10.0f - 5.0f)
177 if (bComplete)
return false;
179 fParticleTime += fElapsedTime;
181 for (
int y = 0; y < spr.
Sprite()->height; y++)
182 for (
int x = 0; x < spr.
Sprite()->width; x++)
186 if (fParticleTime < 1.0f)
190 else if (fParticleTime < 2.0f)
195 (250 - spr.
Sprite()->
height) / 2.0f / fAspect +
float(y)
198 (
float(rand()) /
float(RAND_MAX)) * 0.5f - 0.25f,
199 (
float(rand()) /
float(RAND_MAX)) * 0.5f - 0.25f);
201 else if(fParticleTime < 5.0f)
203 vBoom[y * spr.
Sprite()->
width + x].first += vBoom[y * spr.
Sprite()->
width + x].second * fElapsedTime * 20.0f;
210 pge->
DrawPartialDecal(vScale * vBoom[y * spr.
Sprite()->
width + x].first * 2.0f, spr.
Decal(),
olc::vf2d(
float(x),
float(y)), { 1, 1 }, vScale * 2.0f,
olc::PixelF(1.0f, 1.0f, 1.0f, std::min(1.0f, std::max(4.0f - fParticleTime, 0.0f))));
Definition olcPixelGameEngine.h:1615
static PixelGameEngine * pge
Definition olcPixelGameEngine.h:1627
void DrawStringPropDecal(const olc::vf2d &pos, const std::string &sText, const Pixel col=olc::WHITE, const olc::vf2d &scale={ 1.0f, 1.0f })
void DrawPartialDecal(const olc::vf2d &pos, olc::Decal *decal, const olc::vf2d &source_pos, const olc::vf2d &source_size, const olc::vf2d &scale={ 1.0f, 1.0f }, const olc::Pixel &tint=olc::WHITE)
int32_t ScreenWidth() const
olc::vi2d GetTextSizeProp(const std::string &s)
int32_t ScreenHeight() const
Definition olcPixelGameEngine.h:1125
void Create(uint32_t width, uint32_t height, bool filter=false, bool clamp=true)
olc::Sprite * Sprite() const
olc::Decal * Decal() const
Definition olcPGEX_SplashScreen.h:74
virtual void OnAfterUserCreate() override
virtual bool OnBeforeUserUpdate(float &fElapsedTime) override
bool SetPixel(int32_t x, int32_t y, Pixel p)
int32_t height
Definition olcPixelGameEngine.h:1060
int32_t width
Definition olcPixelGameEngine.h:1059
Definition olcPixelGameEngine.h:593
Pixel PixelF(float red, float green, float blue, float alpha=1.0f)
v_2d< float > vf2d
Definition olcPixelGameEngine.h:894
static const Pixel RED(255, 0, 0)
Definition olcPixelGameEngine.h:924
T x
Definition olcPixelGameEngine.h:604
T y
Definition olcPixelGameEngine.h:606