]> Dogcows Code - chaz/yoink/blob - src/Heroine.cc
remove some unused stlplus modules
[chaz/yoink] / src / Heroine.cc
1
2 /*] Copyright (c) 2009-2011, Charles McGarvey [*****************************
3 **] All rights reserved.
4 *
5 * Distributable under the terms and conditions of the 2-clause BSD license;
6 * see the file COPYING for a complete text of the license.
7 *
8 *****************************************************************************/
9
10 #include <moof/log.hh>
11 #include <moof/sound.hh>
12
13 #include "Heroine.hh"
14
15
16 Heroine::Heroine() :
17 Character("Heroine") {}
18
19 void Heroine::update(moof::scalar t, moof::scalar dt)
20 {
21 Character::update(t, dt);
22
23 moof::vector3 at(0.0, 0.0, 0.0);
24 const moof::vector3 up(0.0, 1.0, 0.0);
25
26 if (state_.velocity[0] < 0.0) at[0] = -1.0;
27 else at[0] = 1.0;
28
29 moof::sound::listener_position(moof::promote(state_.position));
30 moof::sound::listener_velocity(moof::promote(state_.velocity));
31 moof::sound::listener_orientation(at, up);
32 }
33
34 bool Heroine::handle_event(const moof::event& event)
35 {
36 moof::scalar force = 40.0;
37
38 switch (event.type)
39 {
40 case SDL_KEYDOWN:
41 if (event.key.keysym.sym == SDLK_a)
42 {
43 state_.force += moof::vector2(-force, 0.0);
44 return true;
45 }
46 else if (event.key.keysym.sym == SDLK_d)
47 {
48 state_.force += moof::vector2(force, 0.0);
49 return true;
50 }
51 else if (event.key.keysym.sym == SDLK_s)
52 {
53 state_.force += moof::vector2(0.0, -force);
54 return true;
55 }
56 else if (event.key.keysym.sym == SDLK_w)
57 {
58 state_.force += moof::vector2(0.0, force);
59 return true;
60 }
61 break;
62
63 case SDL_KEYUP:
64 if (event.key.keysym.sym == SDLK_a)
65 {
66 state_.force += moof::vector2(force, 0.0);
67 return true;
68 }
69 else if (event.key.keysym.sym == SDLK_d)
70 {
71 state_.force += moof::vector2(-force, 0.0);
72 return true;
73 }
74 else if (event.key.keysym.sym == SDLK_s)
75 {
76 state_.force += moof::vector2(0.0, force);
77 return true;
78 }
79 else if (event.key.keysym.sym == SDLK_w)
80 {
81 state_.force += moof::vector2(0.0, -force);
82 return true;
83 }
84 break;
85 }
86 return false;
87 }
88
This page took 0.034345 seconds and 4 git commands to generate.