-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathExtraParts.cpp
More file actions
101 lines (87 loc) · 2.65 KB
/
Copy pathExtraParts.cpp
File metadata and controls
101 lines (87 loc) · 2.65 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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#include "engine/InputsMap.h"
#include "engine/Shader.h"
#include "engine/DropLabel.h"
#include "ExtraParts.h"
#include "Camera.h"
void Subtitle::AudioEvent(float time, const std::string& text)
{
Target->SetText(text);
auto meas = Target->Size();
Target->AbsolutePosition.x = (width * 0.5f) - (meas.x * 0.5f);
Target->AbsolutePosition.y = height - (meas.y * 1.5f);
}
void Subtitle::Draw(float dt)
{
Target->Draw(dt);
}
bool FirstPersonController::Tick(float dt)
{
if (Inputs.KeyDown(Binds::WalkN) || Inputs.KeyDown(Binds::WalkS))
{
auto speed = Inputs.KeyDown(Binds::WalkN) ? 0.05f : -0.05f;
auto pos = MainCamera->GetTarget();
auto yaw = MainCamera->GetAngles().z;
pos.x -= glm::sin(glm::radians(yaw)) * speed;
pos.z -= glm::cos(glm::radians(yaw)) * speed;
MainCamera->Target(pos);
}
if (Inputs.KeyDown(Binds::WalkE) || Inputs.KeyDown(Binds::WalkW))
{
auto speed = Inputs.KeyDown(Binds::WalkW) ? 0.025f : -0.025f;
auto pos = MainCamera->GetTarget();
auto yaw = MainCamera->GetAngles().z + 90.0f;
pos.x -= glm::sin(glm::radians(yaw)) * speed;
pos.z -= glm::cos(glm::radians(yaw)) * speed;
MainCamera->Target(pos);
}
return Tickable::Tick(dt);
}
void Background::Draw(float dt)
{
(void)(dt);
Sprite::DrawSprite(Shaders["background"], *whiteRect, glm::vec2(0), glm::vec2(width, height), glm::vec4(0, 0, width, height));
}
void BoingBall::Draw(float dt)
{
(void)(dt);
Sprite::DrawSprite(Shaders["boingball"], *whiteRect, glm::vec2(0), glm::vec2(width, height), glm::vec4(0, 0, width, height));
}
void Farrah::Draw(float dt)
{
(void)(dt);
auto time = commonUniforms.TotalTime * 10.0f;
auto pos = glm::vec2(BECKETT_SCREENWIDTH, BECKETT_SCREENHEIGHT) * 0.5f;
Sprite::DrawSprite(stage,
pos, stage[0], 0.0f,
glm::vec4(glm::vec3(0.5f + glm::abs(glm::sin(time * 0.1f) * 0.5f)), 1.0f),
Sprite::SpriteFlags::CenterOrigin
);
Sprite::DrawSprite(sprite,
pos, sprite[(int)time / 2 % sprite.Frames()], 0.0f,
glm::vec4(1.0f),
Sprite::SpriteFlags::MidBotOrigin
);
}
#ifndef BECKETT_NO3DMODELS
//Not a 2D thing but still Crap Storage.
void Teapot::Draw(float dt)
{
(void)(dt);
auto time = commonUniforms.TotalTime * 50.0f;
//Have to flush here so the draw order becomes boingball, teapot, stage.
Sprite::FlushBatch();
glClear(GL_DEPTH_BUFFER_BIT);
glEnable(GL_DEPTH_TEST);
model.Draw(glm::vec3(0), time);
MeshBucket::Flush();
glDisable(GL_DEPTH_TEST);
}
#endif
void RoryNite::Draw(float dt)
{
for (int i = trailCt - 1; i >= 0; i--)
{
auto p = position + glm::vec2(i * 8, glm::sin((commonUniforms.TotalTime * 8) - i) * 4); //* (trailCt / (float)i));
Sprite::DrawSprite(sprite, p, sprite[0], 0.0f, glm::vec4(1, 1, 1, 1.0 - (i / (float)trailCt)));
}
}