1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
#include <ClanLib/display.h>
#include "sprite.h"
#include "spritedata.h"
#include "client_fighter.h"
#include "fighter.h"
#include "client_world.h"
/////////////////////////////////////////////////////////////////////////////
// ClientFighter construction:
ClientFighter::ClientFighter(
ClientWorld *world,
Fighter *fighter)
:
ClientGameObject(world, fighter)
{
ship_data = new SpriteData("Sprites/Ship", world->get_resources());
ship = new Sprite(ship_data);
}
ClientFighter::~ClientFighter()
{
}
/////////////////////////////////////////////////////////////////////////////
// ClientFighter attributes:
Fighter *ClientFighter::get_fighter()
{
return static_cast<Fighter *>(get_gameobject());
}
/////////////////////////////////////////////////////////////////////////////
// ClientFighter operations:
/////////////////////////////////////////////////////////////////////////////
// ClientFighter overridables:
void ClientFighter::show()
{
Fighter *fighter = get_fighter();
float x = fighter->get_position_x();
float y = fighter->get_position_y();
float angle = fighter->get_direction();
ship->draw(x, y, angle);
}
void ClientFighter::update(float time_elapsed)
{
Fighter *fighter = get_fighter();
if (fighter->local_owner())
{
bool key_accel = CL_Keyboard::get_keycode(CL_KEY_UP);
bool key_turn_left = CL_Keyboard::get_keycode(CL_KEY_LEFT);
bool key_turn_right = CL_Keyboard::get_keycode(CL_KEY_RIGHT);
fighter->set_keys(key_accel, key_turn_left, key_turn_right);
}
ship->update(time_elapsed);
}
/////////////////////////////////////////////////////////////////////////////
// ClientFighter implementation:
|