![]() |
Unuk 1.0
|
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 }