From 267bebfc227c94f543a39e2aa75fb101bc06932e Mon Sep 17 00:00:00 2001 From: Vegard Storheil Eriksen Date: Fri, 21 May 2010 19:24:51 +0200 Subject: Moved engine-sources to seperate subdirectory. --- engine/player.cpp | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 engine/player.cpp (limited to 'engine/player.cpp') diff --git a/engine/player.cpp b/engine/player.cpp new file mode 100644 index 0000000..4a159ca --- /dev/null +++ b/engine/player.cpp @@ -0,0 +1,49 @@ +#ifndef __APPLE__ +#include +#else +#include +#endif +#include +#include + +#include "player.h" +#include "texturesdl.h" +#include "config.h" + +Player::Player() { + x = 0.5; + y = 0.1; + move_factor = 0.005; + focus_factor = 0.5; + texture = new TextureSDL("textures/player.png"); +} + +void Player::draw() { + glPointSize(32.0); + + glColor4f(1, 1, 1, 1); + glEnable(GL_TEXTURE_2D); + glBindTexture(GL_TEXTURE_2D, texture->tex()); + + glBegin(GL_POINTS); + glVertex2f(x, y); + glEnd(); + + glDisable(GL_TEXTURE_2D); +} + +void Player::update() { + Uint8 *keystate = SDL_GetKeyState(NULL); + float factor = move_factor * (SDL_GetModState() & KMOD_SHIFT ? focus_factor : 1); + + float x_speed = factor * keystate[SDLK_RIGHT] - factor * keystate[SDLK_LEFT]; + float y_speed = factor * keystate[SDLK_UP] - factor * keystate[SDLK_DOWN]; + + if(x_speed && y_speed) { + x_speed /= sqrtf(2); + y_speed /= sqrtf(2); + } + + x = fmaxf(fminf(x + x_speed, 1.0 - 0.018), 0.018); + y = fmaxf(fminf(y + y_speed, Config::viewport_aspect - 0.018), 0.018); +} -- cgit v1.2.3