Mercurial > projects > myrrdin
comparison import/myrrdin/tileconsumer.d @ 5:f4b89014ad39
added moving figure stuff + animated sprites. not usable atm.
author | fred@reichbier.de |
---|---|
date | Sat, 19 Jul 2008 14:33:08 +0200 |
parents | src/tileconsumer.d@292df259cc85 |
children | 510541745cd1 |
comparison
equal
deleted
inserted
replaced
4:292df259cc85 | 5:f4b89014ad39 |
---|---|
1 /* | |
2 This file is part of myrrdin. | |
3 | |
4 myrrdin is free software: you can redistribute it and/or modify | |
5 it under the terms of the GNU Lesser General Public License as | |
6 published by the Free Software Foundation, either version 3 of | |
7 the License, or (at your option) any later version. | |
8 | |
9 myrrdin is distributed in the hope that it will be useful, | |
10 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
12 GNU Lesser General Public License for more details. | |
13 | |
14 You should have received a copy of the GNU Lesser General Public | |
15 License along with myrrdin. If not, see <http://www.gnu.org/licenses/>. | |
16 */ | |
17 | |
18 module tileconsumer; | |
19 | |
20 import dsfml.window.all; | |
21 import dsfml.system.all; | |
22 import dsfml.graphics.all; | |
23 import tango.io.Stdout; | |
24 | |
25 import consumer; | |
26 import renderer; | |
27 import tileset; | |
28 import tilemap; | |
29 | |
30 class TileConsumer : Consumer { | |
31 public Tilemap map; | |
32 | |
33 this(Renderer renderer, Tilemap map) { | |
34 super(renderer); | |
35 this.map = map; | |
36 } | |
37 | |
38 void draw() { | |
39 foreach(Sprite sprite; this.map.get_sprites()) { | |
40 this.renderer.draw(sprite); | |
41 } | |
42 } | |
43 | |
44 bool handle_event(Event evt) { | |
45 if (evt.Type == Event.EventType.MOUSEBUTTONPRESSED) { | |
46 Input input = this.renderer.app.getInput(); | |
47 Vector2i tile = this.map.real_to_tile(0, input.getMouseX(), input.getMouseY()); | |
48 if(this.map.has_tile(0, tile.x, tile.y)) { | |
49 Stdout.formatln("You clicked on the tile {}, {}", tile.x, tile.y); | |
50 } | |
51 return true; | |
52 } | |
53 return false; | |
54 } | |
55 } |