annotate client/main.cpp @ 0:8991989c4708

Initial import
author David Demelier <markand@malikania.fr>
date Tue, 22 Mar 2016 18:26:05 +0100
parents
children e33b246ac2d3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 * main.cpp -- main client files
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 *
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 * Copyright (c) 2014 David Demelier <markand@malikania.fr>
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 *
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 * copyright notice and this permission notice appear in all copies.
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 *
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 */
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 #include <iostream>
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 #include <chrono>
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
21 #include <thread>
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 #include <map>
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 #include <malikania/Json.h>
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 #include <malikania/Window.h>
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 #include <malikania/Size.h>
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 #include <malikania/Sprite.h>
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
27 #include <malikania/Image.h>
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
28 #include <malikania/Point.h>
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 #include <malikania/Label.h>
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
30 #include <malikania/Animation.h>
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 #include <malikania/Animator.h>
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
32
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 #if 0
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
34
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 using namespace std::literals::chrono_literals;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
36
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 // TODO delete this... just for fun
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 bool goRight = true;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
39 bool goDown = true;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 const int mokoSize = 300;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
41
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 void bounce(malikania::Window& window, int &x, int &y) {
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 malikania::Size resolution = window.getWindowResolution();
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 int width = resolution.width;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
45 int height = resolution.height;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 if (y < 10) {
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 goDown = true;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 y += 1;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 }
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 if (goDown && y < height - mokoSize) {
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
51 // Moko falls
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
52 y += 0.2 * y;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
53 } else {
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 // Moko will bounce!!!
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
55 goDown = false;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
56 }
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
57 if (!goDown && y > 0) {
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
58 y -= 0.1 * y;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
59 } else {
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
60 goDown = true;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
61 }
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
62
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
63 if (goRight && x < width - mokoSize) {
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
64 x += 4;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
65 } else {
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
66 goRight = false;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
67 }
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
68 if (!goRight && x > 0) {
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
69 x -= 4;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
70 } else {
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
71 goRight = true;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
72 }
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
73 }
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
74
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
75 // End TODO
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
76
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
77 int main(void)
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
78 {
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 malikania::Window mainWindow;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
80
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 bool isBouncing = false;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
82
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
83 int mokoPositionX = 0;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
84 int mokoPositionY = 0;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
85
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
86 std::map<int, bool> keyPressed = { {SDLK_UP, false}, {SDLK_DOWN, false}, {SDLK_RIGHT, false}, {SDLK_LEFT, false} };
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
87
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
88 mainWindow.setOnKeyDown([&mainWindow, &mokoPositionX, &mokoPositionY, &isBouncing, &keyPressed](int sdlKey) {
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
89 switch (sdlKey) {
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
90 case SDLK_ESCAPE:
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
91 mainWindow.close();
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
92 break;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
93 case SDLK_UP:
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
94 keyPressed[SDLK_UP] = true;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
95 break;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
96 case SDLK_DOWN:
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
97 keyPressed[SDLK_DOWN] = true;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
98 break;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
99 case SDLK_RIGHT:
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
100 keyPressed[SDLK_RIGHT] = true;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
101 break;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
102 case SDLK_LEFT:
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
103 keyPressed[SDLK_LEFT] = true;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
104 break;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
105 case SDLK_m:
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
106 isBouncing = !isBouncing;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
107 break;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
108 }
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
109 });
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
110
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
111 mainWindow.setOnKeyUp([&keyPressed](int sdlKey) {
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
112 switch (sdlKey) {
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
113 case SDLK_UP:
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
114 keyPressed[SDLK_UP] = false;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
115 break;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
116 case SDLK_DOWN:
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
117 keyPressed[SDLK_DOWN] = false;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
118 break;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
119 case SDLK_RIGHT:
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
120 keyPressed[SDLK_RIGHT] = false;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
121 break;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
122 case SDLK_LEFT:
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
123 keyPressed[SDLK_LEFT] = false;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
124 break;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
125 }
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
126 });
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
127
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
128 int animationStep = 1;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
129 mainWindow.setOnRefresh([&mainWindow, &keyPressed, &animationStep](){
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
130 if (keyPressed[SDLK_LEFT]) {
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
131 std::string animationState = "left" + std::to_string(animationStep > 4 ? 4 : animationStep++);
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
132 } else if (keyPressed[SDLK_RIGHT]) {
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
133 std::string animationState = "right" + std::to_string(animationStep > 4 ? 4 : animationStep++);
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
134 } else if (keyPressed[SDLK_DOWN]) {
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
135 std::string animationState = "down" + std::to_string(animationStep > 4 ? 4 : animationStep++);
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
136 } else {
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
137 animationStep = 1;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
138 }
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
139 });
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
140
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
141 malikania::Sprite testSprite = malikania::Sprite::fromJson(mainWindow, malikania::JsonDocument(
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
142 "{\"image\": \"resources/images/mokodemo.png\", \"alias\": \"testSprite\", \"cell\": [300, 300], \"size\": [1200, 900]}"
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
143 ).toObject());
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
144
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
145 std::shared_ptr<malikania::Font> font = std::make_shared<malikania::Font>("resources/fonts/DejaVuSans.ttf", 48);
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
146 malikania::Label testLabel("Malikania !!! Youpi !", font, {0, 0, 100, 50});
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
147
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
148 std::shared_ptr<malikania::Animation> testAnimation = std::make_shared<malikania::Animation>(malikania::Animation::fromJson(mainWindow, malikania::JsonDocument(
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
149 std::string("{\"sprite\": \"no-working-yet.json\", \"alias\": \"testAnimation\", \"frames\": [")
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
150 + "{ \"delay\": 200, \"cell\": 0 }, { \"delay\": 10, \"cell\": 1 },"
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
151 + "{ \"delay\": 10, \"cell\": 2 }, { \"delay\": 200, \"cell\": 3 },"
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
152 + "{ \"delay\": 10, \"cell\": 1 }, { \"delay\": 10, \"cell\": 1 },"
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
153 + "{ \"delay\": 200, \"cell\": 4 }, { \"delay\": 10, \"cell\": 5 },"
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
154 + "{ \"delay\": 10, \"cell\": 6 }, { \"delay\": 200, \"cell\": 7 },"
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
155 + "{ \"delay\": 10, \"cell\": 6 }, { \"delay\": 10, \"cell\": 5 },"
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
156 + "{ \"delay\": 200, \"cell\": 8 }, { \"delay\": 10, \"cell\": 9 },"
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
157 + "{ \"delay\": 10, \"cell\": 10 }, { \"delay\": 200, \"cell\": 11 },"
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
158 + "{ \"delay\": 10, \"cell\": 10 }, { \"delay\": 10, \"cell\": 9 }"
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
159 + "]}"
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
160 ).toObject()));
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
161
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
162 std::shared_ptr<malikania::Animation> testAnimation2 = std::make_shared<malikania::Animation>(malikania::Animation::fromJson(mainWindow, malikania::JsonDocument(
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
163 std::string("{\"sprite\": \"no-working-yet.json\", \"alias\": \"testAnimation\", \"frames\": [")
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
164 + "{ \"delay\": 2000, \"cell\": 0 }, { \"delay\": 10, \"cell\": 1 },"
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
165 + "{ \"delay\": 10, \"cell\": 2 }, { \"delay\": 2000, \"cell\": 3 },"
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
166 + "{ \"delay\": 10, \"cell\": 1 }, { \"delay\": 10, \"cell\": 1 }"
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
167 + "]}"
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
168 ).toObject()));
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
169
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
170 malikania::Animator testAnimator1 = malikania::Animator(testAnimation);
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
171 malikania::Animator testAnimator2 = malikania::Animator(std::move(testAnimation));
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
172 malikania::Animator testAnimator3 = malikania::Animator(std::move(testAnimation2));
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
173
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
174 while (mainWindow.isOpen()) {
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
175
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
176 // TODO delete this, just for fun...
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
177 if (isBouncing) {
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
178 bounce(mainWindow, mokoPositionX, mokoPositionY);
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
179 }
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
180
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
181 mainWindow.processEvent();
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
182 mainWindow.setDrawingColor({255, 255, 255, 255});
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
183 mainWindow.clear();
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
184 mainWindow.update();
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
185
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
186 testSprite.draw(mainWindow, 0, {0, 0, 300, 300});
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
187 testSprite.draw(mainWindow, 1, {200, 200, 300, 300});
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
188 testSprite.draw(mainWindow, 2, {400, 400, 300, 300});
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
189 testSprite.draw(mainWindow, 11, {600, 400, 300, 300});
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
190
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
191 malikania::Color c{255, 50, 40, 255};
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
192 mainWindow.setDrawingColor(c);
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
193 mainWindow.drawLine({0, 0, 300, 300});
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
194
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
195 std::vector<malikania::Point> points{{20, 20}, {30, 50}, {100, 200}, {30, 60}, {20, 300}, {100, 20}};
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
196 mainWindow.drawLines(points);
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
197
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
198 mainWindow.setDrawingColor({200, 50, 200, 255});
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
199 mainWindow.drawPoint({400, 400});
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
200 mainWindow.drawPoint({400, 402});
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
201 mainWindow.drawPoint({400, 405});
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
202 mainWindow.drawPoint({400, 407});
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
203 mainWindow.drawPoint({400, 410});
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
204
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
205 mainWindow.setDrawingColor({0, 0, 0, 255});
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
206 mainWindow.drawPoints(points);
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
207
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
208 mainWindow.setDrawingColor({30, 30, 30, 255});
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
209 mainWindow.drawRectangle({500, 500, 200, 100});
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
210
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
211 mainWindow.setDrawingColor({130, 30, 30, 255});
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
212 mainWindow.drawRectangles({{800, 800, 200, 100}, {700, 700, 200, 100}, {750, 750, 200, 100}});
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
213
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
214 mainWindow.drawRectangle({600, 200, 200, 100}, true, {0, 255, 0, 255});
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
215
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
216 mainWindow.drawRectangles(
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
217 {{800, 400, 200, 100}, {700, 450, 200, 100}, {750, 500, 200, 100}},
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
218 true,
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
219 {{255,0,0,255},{0,255,0,255},{0,0,255,255}}
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
220 );
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
221
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
222 testLabel.draw(mainWindow, {300, 300, 200, 50});
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
223
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
224 testAnimator1.draw(mainWindow, {1000, 0, 300, 300});
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
225 testAnimator2.draw(mainWindow, {100, 600, 300, 300});
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
226 testAnimator3.draw(mainWindow, {400, 600, 300, 300});
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
227
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
228 mainWindow.present();
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
229
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
230 std::this_thread::sleep_for(5ms);
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
231 }
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
232
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
233 //malikania::Window::quit();
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
234
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
235 return 0;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
236 }
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
237
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
238 #endif
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
239
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
240 int main() { return 0; }