temporarily be able to move player around

This commit is contained in:
Josh Holtrop 2012-08-29 00:33:59 -04:00
parent ee38a6f655
commit 7b076cdc13
2 changed files with 37 additions and 0 deletions

View File

@ -3,6 +3,7 @@
#include <SFML/OpenGL.hpp>
#include <SFML/Graphics.hpp>
#include "Client.h"
#include <stdio.h>
Client::Client(bool fullscreen)
{
@ -23,6 +24,7 @@ Client::Client(bool fullscreen)
void Client::run()
{
m_clock.restart();
while (m_window->isOpen())
{
sf::Event event;
@ -51,6 +53,7 @@ void Client::run()
}
}
update();
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();
@ -88,6 +91,39 @@ void Client::resize_window(int width, int height)
glLoadIdentity();
}
void Client::update()
{
static double last_time = 0.0;
const double move_speed = 300.0;
const double current_time = m_clock.getElapsedTime().asSeconds();
const double elapsed_time = current_time - last_time;
if (sf::Keyboard::isKeyPressed(sf::Keyboard::A))
{
double direction = m_player->direction + M_PI_2;
m_player->x += cos(direction) * move_speed * elapsed_time;
m_player->y += sin(direction) * move_speed * elapsed_time;
}
if (sf::Keyboard::isKeyPressed(sf::Keyboard::D))
{
double direction = m_player->direction - M_PI_2;
m_player->x += cos(direction) * move_speed * elapsed_time;
m_player->y += sin(direction) * move_speed * elapsed_time;
}
if (sf::Keyboard::isKeyPressed(sf::Keyboard::W))
{
double direction = m_player->direction;
m_player->x += cos(direction) * move_speed * elapsed_time;
m_player->y += sin(direction) * move_speed * elapsed_time;
}
if (sf::Keyboard::isKeyPressed(sf::Keyboard::S))
{
double direction = m_player->direction + M_PI;
m_player->x += cos(direction) * move_speed * elapsed_time;
m_player->y += sin(direction) * move_speed * elapsed_time;
}
last_time = current_time;
}
void Client::draw_players()
{
static const float vertices[][3] = {

View File

@ -15,6 +15,7 @@ class Client
protected:
void initgl();
void resize_window(int width, int height);
void update();
void draw_players();
void draw_map();
refptr<sf::Window> m_window;