src/Unuk/Player.cpp
Go to the documentation of this file.

    00001 #include <GL/gl.h>
    00002 #include <SDL/SDL.h>
    00003 #include "../libUnuk/Sprite.h"
    00004 #include "../libUnuk/Debug.h"
    00005 #include "../libUnuk/Input.h"
    00006 #include "Player.h"
    00007
    00008 Player::Player(void) : m_posx(0), m_posy(0) {
    00009   //m_player = new Sprite("../Data/Media/test.bmp");
    00010 }
    00011
    00012 Player::~Player(void) {
    00013   CleanUp();
    00014 }
    00015
    00016 void Player::Prepare(void) {
    00017   // I borked up the image loader, so for now we will
    00018   // rotate the image 180 degrees.
    00019   m_player->Rotate(180);
    00020   m_player->SetScale(0.5f, 0.5f);
    00021   //Set our pivot to the top right.
    00022   m_player->SetPivot(1.0f, 1.0f);
    00023
    00024   CreateInput();
    00025   // Move the player.
    00026   if(KeyStillDown(SDLK_w) || KeyStillDown(SDLK_UP))     { SetVelocity(0, -5); }
    00027   if(KeyStillDown(SDLK_a) || KeyStillDown(SDLK_LEFT))   { SetVelocity(-5, 0); }
    00028   if(KeyStillDown(SDLK_s) || KeyStillDown(SDLK_DOWN))   { SetVelocity( 0, 5); }
    00029   if(KeyStillDown(SDLK_d) || KeyStillDown(SDLK_RIGHT))  { SetVelocity( 5, 0); }
    00030   UpdateInput();
    00031
    00032   SetPosition(m_posx, m_posy);
    00033 }
    00034
    00035 void Player::Render(void) {
    00036   // Only render calls should appear here.
    00037   m_player->Render();
    00038 }
    00039
    00040 void Player::SetSprite(void) {
    00041   m_player = new Sprite("../Data/Media/test.bmp");
    00042 }
    00043
    00044 void Player::SetPosition(GLdouble posx, GLdouble posy) {
    00045   // Set the position of the player sprite.
    00046   m_posx = posx;
    00047   m_posy = posy;
    00048
    00049   m_player->SetX(m_posx);
    00050   m_player->SetY(m_posy);
    00051 }
    00052
    00053 void Player::SetVelocity(GLdouble velx, GLdouble vely) {
    00054   m_velx = velx;
    00055   m_vely = vely;
    00056
    00057   m_posx += m_velx;
    00058   m_posy += m_vely;
    00059 }
    00060
    00061 void Player::CleanUp(void) {
    00062   delete m_player;
    00063 }

All Classes Files Functions Variables Typedefs Enumerations Enumerator Defines