feet->draw(context, pos, layer-2);
}
-Player::Player(PlayerStatus* _player_status, std::string name) :
- MovingObject(name), player_status(_player_status), grabbed_object(NULL),
- ghost_mode(false)
+Player::Player(PlayerStatus* _player_status, const std::string& name)
+ : player_status(_player_status), grabbed_object(NULL), ghost_mode(false)
{
+ this->name = name;
controller = main_controller;
smalltux_gameover = sprite_manager->create("images/creatures/tux_small/smalltux-gameover.sprite");
smalltux_star = sprite_manager->create("images/creatures/tux_small/smalltux-star.sprite");
void
Player::expose(HSQUIRRELVM vm, SQInteger table_idx)
{
- if (name.empty()) return;
+ if (name.empty())
+ return;
+
Scripting::expose_object(vm, table_idx, dynamic_cast<Scripting::Player *>(this), name, false);
}
void
Player::unexpose(HSQUIRRELVM vm, SQInteger table_idx)
{
- if (name.empty()) return;
+ if (name.empty())
+ return;
+
Scripting::unexpose_object(vm, table_idx, name);
}
void
Player::handle_vertical_input()
{
-
// Press jump key
if(controller->pressed(Controller::JUMP) && (can_jump)) {
if (duck) {
/* When Down is not held anymore, disable butt jump */
if(butt_jump && !controller->hold(Controller::DOWN))
butt_jump = false;
+
+ // swimming
+ physic.set_acceleration_y(0);
+ if (swimming) {
+ if (controller->hold(Controller::UP) || controller->hold(Controller::JUMP)) physic.set_acceleration_y(-2000);
+ physic.set_velocity_y(physic.get_velocity_y() * 0.94);
+ }
}
void