-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCamera2D.cpp
More file actions
69 lines (48 loc) · 1.46 KB
/
Camera2D.cpp
File metadata and controls
69 lines (48 loc) · 1.46 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
#include "../Include/defGameEngine.hpp"
#define DGE_AFFINE_TRANSFORMS
#include "../Extensions/DGE_AffineTransforms.hpp"
#define DGE_CAMERA2D
#include "../Extensions/DGE_Camera2D.hpp"
class AffineTransforms : public def::GameEngine
{
public:
AffineTransforms()
{
GetWindow()->SetTitle("Affine Transforms");
}
def::AffineTransforms at;
def::Camera2D camera;
def::Vector2f pos;
def::Vector2f size;
def::Sprite* spr;
protected:
bool OnUserCreate() override
{
camera.Initialise({ 0, 0 }, GetWindow()->GetScreenSize(), def::Camera2D::Mode::LazyLock);
size = { 20, 20 };
spr = new def::Sprite("assets/kart.png");
return true;
}
bool OnUserUpdate(float deltaTime) override
{
if (GetInput()->GetScrollDelta() > 0) at.Zoom(1.1f, pos);
if (GetInput()->GetScrollDelta() < 0) at.Zoom(0.9f, pos);
Clear(def::DARK_BLUE);
//pos += (at.ScreenToWorld(GetMousePos()) - pos) * deltaTime;
if (GetInput()->GetKeyState(def::Key::A).held) pos.x -= 500.0f * deltaTime;
if (GetInput()->GetKeyState(def::Key::D).held) pos.x += 500.0f * deltaTime;
if (GetInput()->GetKeyState(def::Key::W).held) pos.y -= 500.0f * deltaTime;
if (GetInput()->GetKeyState(def::Key::S).held) pos.y += 500.0f * deltaTime;
at.SetOffset(camera.Update(pos, deltaTime));
at.DrawSprite({ 0, 0 }, spr);
at.FillRectangle(pos - size / 2, size, def::RED);
return true;
}
};
int main()
{
AffineTransforms app;
if (app.Construct(1280, 720, 1, 1, false, true))
app.Run();
return 0;
}