Mercurial > projects > openmelee
annotate ai/human.d @ 27:d63faa81a5e4
removed Dog, added derelict and glfw
author | zzzzrrr <mason.green@gmail.com> |
---|---|
date | Mon, 30 Mar 2009 12:41:29 -0400 |
parents | 88cca12cc8b9 |
children |
rev | line source |
---|---|
0 | 1 /* |
2 * Copyright (c) 2009, Mason Green (zzzzrrr) | |
8 | 3 * http://www.dsource.org/projects/openmelee |
0 | 4 * |
5 * All rights reserved. | |
6 * | |
7 * Redistribution and use in source and binary forms, with or without modification, | |
8 * are permitted provided that the following conditions are met: | |
9 * | |
10 * * Redistributions of source code must retain the above copyright notice, | |
11 * this list of conditions and the following disclaimer. | |
12 * * Redistributions in binary form must reproduce the above copyright notice, | |
13 * this list of conditions and the following disclaimer in the documentation | |
14 * and/or other materials provided with the distribution. | |
15 * * Neither the name of the polygonal nor the names of its contributors may be | |
16 * used to endorse or promote products derived from this software without specific | |
17 * prior written permission. | |
18 * | |
19 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |
20 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |
21 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | |
22 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR | |
23 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | |
24 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | |
25 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | |
26 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF | |
27 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | |
28 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | |
29 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
30 */ | |
18 | 31 module openmelee.ai.human; |
0 | 32 |
27
d63faa81a5e4
removed Dog, added derelict and glfw
zzzzrrr <mason.green@gmail.com>
parents:
26
diff
changeset
|
33 import openmelee.ships.ship : Ship; |
26 | 34 import openmelee.melee.melee : Melee; |
27
d63faa81a5e4
removed Dog, added derelict and glfw
zzzzrrr <mason.green@gmail.com>
parents:
26
diff
changeset
|
35 import openmelee.glfw.glfw; |
0 | 36 |
18 | 37 class Human |
0 | 38 { |
26 | 39 Melee melee; |
18 | 40 Ship ship; |
41 | |
26 | 42 this(Ship ship, Melee melee) { |
43 this.melee = melee; | |
18 | 44 this.ship = ship; |
0 | 45 } |
46 | |
27
d63faa81a5e4
removed Dog, added derelict and glfw
zzzzrrr <mason.green@gmail.com>
parents:
26
diff
changeset
|
47 void onKey(int key, int state) { |
5 | 48 // Key pressed |
27
d63faa81a5e4
removed Dog, added derelict and glfw
zzzzrrr <mason.green@gmail.com>
parents:
26
diff
changeset
|
49 if (state == 257 || state == 1) { |
d63faa81a5e4
removed Dog, added derelict and glfw
zzzzrrr <mason.green@gmail.com>
parents:
26
diff
changeset
|
50 switch (key) { |
d63faa81a5e4
removed Dog, added derelict and glfw
zzzzrrr <mason.green@gmail.com>
parents:
26
diff
changeset
|
51 case GLFW_KEY_SPACE: |
18 | 52 drawAABBs = !drawAABBs; |
5 | 53 break; |
27
d63faa81a5e4
removed Dog, added derelict and glfw
zzzzrrr <mason.green@gmail.com>
parents:
26
diff
changeset
|
54 case GLFW_KEY_ESC: |
0 | 55 quit = true; |
56 break; | |
27
d63faa81a5e4
removed Dog, added derelict and glfw
zzzzrrr <mason.green@gmail.com>
parents:
26
diff
changeset
|
57 case GLFW_KEY_UP: |
5 | 58 thrust = true; |
59 break; | |
27
d63faa81a5e4
removed Dog, added derelict and glfw
zzzzrrr <mason.green@gmail.com>
parents:
26
diff
changeset
|
60 case GLFW_KEY_LEFT: |
18 | 61 ship.turnLeft(); |
5 | 62 break; |
27
d63faa81a5e4
removed Dog, added derelict and glfw
zzzzrrr <mason.green@gmail.com>
parents:
26
diff
changeset
|
63 case GLFW_KEY_RIGHT: |
18 | 64 ship.turnRight(); |
5 | 65 break; |
27
d63faa81a5e4
removed Dog, added derelict and glfw
zzzzrrr <mason.green@gmail.com>
parents:
26
diff
changeset
|
66 case GLFW_KEY_DOWN: |
5 | 67 break; |
27
d63faa81a5e4
removed Dog, added derelict and glfw
zzzzrrr <mason.green@gmail.com>
parents:
26
diff
changeset
|
68 case GLFW_KEY_DEL: |
26 | 69 melee.ship2.explode(); |
70 melee.objectList.remove(melee.ship2); | |
71 melee.world.destroyBody(melee.ship2.rBody); | |
72 melee.ship2 = null; | |
27
d63faa81a5e4
removed Dog, added derelict and glfw
zzzzrrr <mason.green@gmail.com>
parents:
26
diff
changeset
|
73 melee.render.ship2 = null; |
26 | 74 melee.ai.ship = null; |
0 | 75 default: |
76 break; | |
77 } | |
78 // Key released | |
79 } else { | |
27
d63faa81a5e4
removed Dog, added derelict and glfw
zzzzrrr <mason.green@gmail.com>
parents:
26
diff
changeset
|
80 if(key == GLFW_KEY_UP) { |
0 | 81 thrust = false; |
27
d63faa81a5e4
removed Dog, added derelict and glfw
zzzzrrr <mason.green@gmail.com>
parents:
26
diff
changeset
|
82 } else if (key == GLFW_KEY_LEFT || key == GLFW_KEY_RIGHT) { |
18 | 83 ship.rBody.angularVelocity = 0.0f; |
0 | 84 } |
85 } | |
86 } | |
87 | |
88 bool quit; | |
89 bool thrust; | |
18 | 90 bool drawAABBs; |
0 | 91 } |