X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=src%2FHeroine.cc;fp=src%2FHeroine.cc;h=314f2c984090c013ca697916079f731750dfc81e;hp=0000000000000000000000000000000000000000;hb=a4debfe4a5f5d339410788971b698ba00cb7f09c;hpb=892da43bf5796e7c5f593a6d0f53bd797a36bd3e diff --git a/src/Heroine.cc b/src/Heroine.cc new file mode 100644 index 0000000..314f2c9 --- /dev/null +++ b/src/Heroine.cc @@ -0,0 +1,97 @@ + +/******************************************************************************* + + Copyright (c) 2009, Charles McGarvey + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +*******************************************************************************/ + +#include + +#include "Heroine.hh" +#include "Log.hh" + + +Heroine::Heroine() : + Character("Heroine") {} + + +void Heroine::handleEvent(const Mf::Event& event) +{ + // really just for heroine... + + Mf::Scalar force = 4000.0; + + Mf::Vector2 left = Mf::Vector2(-force, 0.0); + Mf::Vector2 right = Mf::Vector2(force, 0.0); + Mf::Vector2 down = Mf::Vector2(0.0, -force); + Mf::Vector2 up = Mf::Vector2(0.0, force); + + switch (event.type) + { + case SDL_KEYDOWN: + if (event.key.keysym.sym == SDLK_a) + { + userForce += left; + } + else if (event.key.keysym.sym == SDLK_d) + { + userForce += right; + } + else if (event.key.keysym.sym == SDLK_s) + { + userForce += down; + } + else if (event.key.keysym.sym == SDLK_w) + { + userForce += up; + } + break; + + case SDL_KEYUP: + if (event.key.keysym.sym == SDLK_a) + { + userForce -= left; + } + else if (event.key.keysym.sym == SDLK_d) + { + userForce -= right; + } + else if (event.key.keysym.sym == SDLK_s) + { + userForce -= down; + } + else if (event.key.keysym.sym == SDLK_w) + { + userForce -= up; + } + break; + } + + //Mf::logInfo("current force [%f %f]", current.force[0], current.force[1]); + //std::cerr << "current force: " << current.force << std::endl; +} + + +/** vim: set ts=4 sw=4 tw=80: *************************************************/ +