]> git.localhorst.tv Git - orbi.git/blob - src/orbi.cpp
orientation for entities
[orbi.git] / src / orbi.cpp
1 #include "app/Application.h"
2 #include "app/IMG.h"
3 #include "app/SDL.h"
4 #include "graphics/const.h"
5 #include "graphics/Canvas.h"
6 #include "graphics/Window.h"
7 #include "world/AABB.h"
8 #include "world/Character.h"
9 #include "world/Entity.h"
10 #include "world/Tile.h"
11 #include "world/Tileset.h"
12 #include "world/World.h"
13
14 #include <iostream>
15 #include <SDL_image.h>
16
17 using namespace orbi;
18 using namespace std;
19
20
21 int main(int argc, const char *argv[]) {
22         SDL sdl(SDL_INIT_VIDEO);
23         IMG img(IMG_INIT_PNG);
24         Window win(
25                 "orbi",
26                 Window::POS_UNDEF,
27                 Vector<int>(800, 600),
28                 SDL_WINDOW_RESIZABLE
29         );
30         Canvas canv(win.CreateCanvas(
31                 0
32         ));
33
34         Tileset tiles(
35                 canv.LoadTexture(sdl.GetBasePath() + "../../data/test-tile.png"),
36                 Vector<int>(16, 16)
37         );
38
39         World world(Vector<int>(10, 10));
40         world.SetTile(Vector<int>(5, 5), Tile(0));
41         world.SetTile(Vector<int>(5, 6), Tile(0));
42         world.SetTile(Vector<int>(6, 5), Tile(0));
43         world.SetTile(Vector<int>(6, 6), Tile(0));
44         world.SetTile(Vector<int>(6, 7), Tile(0));
45         world.SetTile(Vector<int>(7, 4), Tile(0));
46         world.SetTile(Vector<int>(7, 5), Tile(0));
47         world.SetTile(Vector<int>(8, 5), Tile(0));
48         world.SetTile(Vector<int>(9, 4), Tile(0));
49         world.SetTile(Vector<int>(9, 5), Tile(0));
50         world.SetTile(Vector<int>(9, 6), Tile(0));
51
52         world.SetTile(Vector<int>(3, 8), Tile(0));
53         world.SetTile(Vector<int>(2, 9), Tile(0));
54         world.SetTile(Vector<int>(3, 9), Tile(0));
55
56         Character player;
57         player.bounds = AABB(0, 0, 2, 3);
58         player.vbox = AABB(.1, 0, 1.8, 3);
59         player.hbox = AABB(0, .1, 2, 1.8);
60         player.arm = AABB(.5, 1.4, 1, .5);
61         player.armOrigin = Vector<float>(1.4, 1.65);
62         //player.armAngle = 1;
63         player.Move(Vector<float>(5, 0));
64         world.AddEntity(player);
65
66         Entity mob;
67         mob.bounds = AABB(0, 0, 2, 1.5);
68         mob.vbox = mob.bounds;
69         mob.hbox = mob.bounds;
70         mob.Move(Vector<float>(1, 0));
71         world.AddEntity(mob);
72
73         Application app(canv, world, tiles);
74         app.Control(player);
75         app.Run();
76
77         return 0;
78 }