Updating PlayerBehavior class for simplified PhysicalProperties. (Work #135)
This commit is contained in:
parent
4dc363866c
commit
4a8752b3d5
@ -40,8 +40,8 @@ static GameEngine::ComponentStore& entities =
|
||||
GameEngine::ComponentStore::GetInstance();
|
||||
|
||||
PlayerBehavior::PlayerBehavior(InstanceId id)
|
||||
: BaseComponent(id)
|
||||
, IBehavior()
|
||||
: IBehavior()
|
||||
, BaseComponent(id)
|
||||
, IObserver()
|
||||
, position_ptr(nullptr)
|
||||
, properties_ptr(nullptr)
|
||||
@ -64,14 +64,13 @@ PlayerBehavior::PlayerBehavior(InstanceId id)
|
||||
initialize_metadata(id);
|
||||
|
||||
if (!position_ptr) {
|
||||
position_ptr = &(entities.GetComponent<PositionAttribute>(id));
|
||||
auto& position = entities.GetComponent<PositionAttribute>(id);
|
||||
position_ptr = &position;
|
||||
}
|
||||
if (!properties_ptr) {
|
||||
properties_ptr =
|
||||
&(entities.GetComponent<PhysicalProperties>(id));
|
||||
}
|
||||
properties_ptr->RegisterProperty<velocity_t>("velocity",
|
||||
velocity_t{ 0.0f, 0.0f });
|
||||
}
|
||||
|
||||
PlayerBehavior::PlayerBehavior(PlayerBehavior&& other) noexcept
|
||||
@ -109,7 +108,7 @@ PlayerBehavior::handleArrowKeys()
|
||||
int keyboard_len;
|
||||
const Uint8* keys = SDL_GetKeyboardState(&keyboard_len);
|
||||
|
||||
auto velocity = properties.GetValueAs<velocity_t>("velocity");
|
||||
auto& velocity = properties.velocity;
|
||||
decimal& velocityX = velocity.first;
|
||||
decimal& velocityY = velocity.second;
|
||||
|
||||
@ -147,7 +146,7 @@ PlayerBehavior::handleArrowKeys()
|
||||
velocityY += SPEED_INCR;
|
||||
}
|
||||
}
|
||||
properties_ptr->Get("velocity") = velocity;
|
||||
properties_ptr->velocity = { velocityX, velocityY };
|
||||
}
|
||||
|
||||
/* #region IObservable interface implementation */
|
||||
@ -211,11 +210,7 @@ error_flag
|
||||
PlayerBehavior::Update()
|
||||
{
|
||||
auto success = false;
|
||||
InstanceInfo& instance_info = component_info.instance;
|
||||
auto& id = this->component_info.instance.id;
|
||||
|
||||
velocity_t velocity =
|
||||
this->properties_ptr->GetValueAs<velocity_t>("velocity");
|
||||
auto& velocity = this->properties_ptr->velocity;
|
||||
|
||||
if (this->position_ptr) {
|
||||
auto& xPosition = this->position_ptr->xPosition;
|
||||
|
Loading…
Reference in New Issue
Block a user