本文整理汇总了C++中std::weak_ptr::_Get方法的典型用法代码示例。如果您正苦于以下问题:C++ weak_ptr::_Get方法的具体用法?C++ weak_ptr::_Get怎么用?C++ weak_ptr::_Get使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类std::weak_ptr
的用法示例。
在下文中一共展示了weak_ptr::_Get方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: doEntitiesOverlap
// STATIC:
bool PhysicsEntityContainer::doEntitiesOverlap(std::weak_ptr<PhysicsEntity> e1,
std::weak_ptr<PhysicsEntity> e2)
{
float bothRadiiCombined = e1._Get()->GetRadius() + e2._Get()->GetRadius();
float squaredDistance = PhysicsEntityContainer::getSquaredDistance(e1, e2);
// Compare distance^2 with bothRadii^2
return squaredDistance < (bothRadiiCombined*bothRadiiCombined);
}
示例2: AddPoint
void Stage::AddPoint(ACTOR_ID id, std::weak_ptr<Player> player)
{
addPoint = 0;
//死んだのがプレイヤーなら
if (id == ACTOR_ID::PLAYER_ACTOR)
{
if (ReturnCrystal(ACTOR_ID::CRYSTAL_PLAYERSIDE_ACTOR)._Get()->IsEnemy())
addPoint++;
if (ReturnCrystal(ACTOR_ID::CRYSTAL_CENTER_ACTOR)._Get()->IsEnemy())
addPoint++;
if (ReturnCrystal(ACTOR_ID::CRYSTAL_ENEMYSIDE_ACTOR)._Get()->IsEnemy())
addPoint++;
addPoint = 1 + addPoint;
enemyPoint += addPoint;
player._Get()->PlusPoint(addPoint);
}
//死んだのがエネミーなら
else
{
if (ReturnCrystal(ACTOR_ID::CRYSTAL_PLAYERSIDE_ACTOR)._Get()->IsPlayer())
addPoint++;
if (ReturnCrystal(ACTOR_ID::CRYSTAL_CENTER_ACTOR)._Get()->IsPlayer())
addPoint++;
if (ReturnCrystal(ACTOR_ID::CRYSTAL_ENEMYSIDE_ACTOR)._Get()->IsPlayer())
addPoint++;
addPoint = 1 + addPoint;
playerPoint += addPoint;
player._Get()->PlusPoint(addPoint);
}
totalPoint = playerPoint + enemyPoint;
////加算
//teamPoint += addPoint;
////クランプ
//teamPoint = min(pointMax, teamPoint);
//teamPoint = max(0, teamPoint);
////コールド勝ち
//if (teamPoint >= pointMax)
//{
// //終了
// gameEnd = true;
// playerTeamWin = true;
//}
//else if (teamPoint <= 0)
//{
// //終了
// gameEnd = true;
// playerTeamWin = false;
//}
}
示例3:
TornadoParticle::TornadoParticle(std::weak_ptr<Tornado> tornade_, float radius)
:
tornade(tornade_),
tornadePos(tornade._Get()->GetParameter().mat.GetPosition()),
tornadeMove(Vector3::Zero),
tornadeRadius(Random::GetInstance().Range(radius/3.0f, radius/3.0f + 30.0f)),
tornadeAddRadius(Random::GetInstance().Range(60.0f, 80.0f)),
tornadeSpeed(700.0f),
tornadeDegree(Random::GetInstance().Range(1.0f, 360.0f)),
risingSpeed(Random::GetInstance().Range(TornadoParticleRizeSpeedMin, TornadoParticleRizeSpeedMax)),
risingAddSpeed(Random::GetInstance().Range(0, 2)),
tornadeAddPosition(Vector3::Zero),
position(tornade_._Get()->GetParameter().mat.GetPosition()),
up(Vector3::Zero),
front(Vector3::Zero),
left(Vector3::Zero),
rotmat(Matrix4::Identity),
frame(Random::GetInstance().Range(1, 2))
{
lifeParam.lifeTime = 0.0f;
lifeParam.lifeTimeLimit = Random::GetInstance().Range(20.0f, 25.0f);
lifeParam.isDead = false;
moveParam.pos = tornadePos;
drawParam.drawID = MODEL_ID::TORNADOPOLY_MODEL;
//drawParam.drawID = MODEL_ID::TORNADOPOLY_MODEL;
drawParam.size = 50.0f + radius / 100.0f;
drawParam.alpha = 0.8f;
}
示例4: OnCollision
// Run if there is a collision with an object of a different group
void ControlPlayer::OnCollision(PhysicsCollisionGroups otherGroup,
std::weak_ptr<PhysicsEntity> otherEntity)
{
// Check if collision was with a enemy bullet
if(otherGroup == PhysicsCollisionGroups::GroupD)
{
// Delete the bullet no matter what
otherEntity._Get()->GetGameObject()._Get()->Destroy();
// Decrement player health
_health--;
// Add 1 point for being hit by enemy bullets
auto scoreKeeperObj = GameObjectContainer::GetByName("ScoreKeeper");
auto scoreKeeper = scoreKeeperObj._Get()->GetCustomComponent<component::ScoreKeeper>();
scoreKeeper._Get()->AddScore(1);
_deathSnd._Get()->Play();
}
// Check if player is out of health
if(_health < 1)
{
SceneRegistry::LoadScene<scene::GameOverScene>();
}
}
示例5:
// Ctor
PhysicsEntity::PhysicsEntity(std::weak_ptr<GameObject> gameObject) :
_radius(1.0f),
_velocity(0.0f, 0.0f, 0.0f),
_acceleration(0.0f, 0.0f, 0.0f),
_rotationalVelocity(0.0f, 0.0f, 0.0f),
_rotationalAcceleration(0.0f, 0.0f, 0.0f),
_linearDrag(0.0f),
_angularDrag(0.0f),
_gameObject(gameObject),
_transform(gameObject._Get()->GetTransform()),
_isPersistant(false)
{
_uniqueID = _idSource++;
}
示例6: getSquaredDistance
// STATIC:
float PhysicsEntityContainer::getSquaredDistance(std::weak_ptr<PhysicsEntity> e1,
std::weak_ptr<PhysicsEntity> e2)
{
// Abort if null pointers
if(e1.expired() || e2.expired()) return 0;
// Set the difference between positions in each dimension
float deltaX = e1._Get()->GetTransform()._Get()->GetPosition().x
- e2._Get()->GetTransform()._Get()->GetPosition().x;
float deltaY = e1._Get()->GetTransform()._Get()->GetPosition().y
- e2._Get()->GetTransform()._Get()->GetPosition().y;
float deltaZ = e1._Get()->GetTransform()._Get()->GetPosition().z
- e2._Get()->GetTransform()._Get()->GetPosition().z;
// Squared distance formula (doesn't use square root)
return deltaX*deltaX + deltaY*deltaY + deltaZ*deltaZ;
}
示例7: ObjectRenderer
// Ctor
ObjectRendererComponent::ObjectRendererComponent(std::weak_ptr<GameObject> owningGameObject) :
Component(owningGameObject)
{
// Create the Object Renderer with defaults
_renderer = std::shared_ptr<ObjectRenderer>(
new ObjectRenderer(
MeshRegistry::GetByName("CubeMesh"),
MaterialRegistry::GetByName("Blank")
)
);
// Make persistant, if owning GameObject is
if(owningGameObject._Get()->IsPersistant())
{
_renderer->SetPersistance(true);
}
// Add it to the render container
RendererContainer::Add(_renderer);
// Run Start
Start();
}