本文整理汇总了C++中Spell::onProjectileContact方法的典型用法代码示例。如果您正苦于以下问题:C++ Spell::onProjectileContact方法的具体用法?C++ Spell::onProjectileContact怎么用?C++ Spell::onProjectileContact使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Spell
的用法示例。
在下文中一共展示了Spell::onProjectileContact方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: PreSolve
void InGameState::PreSolve(b2Contact* contact, const b2Manifold* oldManifold)
{
b2Fixture *a = contact->GetFixtureA(),
*b=contact->GetFixtureB();
if(contact->IsTouching()){
ActorHook *aData=(ActorHook*)a->GetBody()->GetUserData();
ActorHook *bData=(ActorHook*)b->GetBody()->GetUserData();
float approachVelocity=calculateApproachVelocity(contact);
if(isOfTypeUnit(aData->type)){
Unit *unitA= (Unit*)aData->data;
if(approachVelocity>8){
unitA->damageUnit(approachVelocity/2);
unitA->disturb(5);
}
}
if(isOfTypeUnit(bData->type)){
Unit *unitB= (Unit*)bData->data;
if(approachVelocity>8){
unitB->damageUnit(approachVelocity/2);
unitB->disturb(5);
}
}
if(aData==NULL||bData==NULL)return;
if(isOfTypeUnit(aData->type) && isOfTypeUnit(bData->type)){
/*if(unitA==unitB->p->tower || unitB==unitA->p->tower)
contact->SetEnabled(false);*/
}
if(aData->type==SPELL_TYPE){
Spell* spell = (Spell*)aData->data;
spell->onProjectileContact(a->GetBody(),b->GetBody());
}
if(bData->type==SPELL_TYPE){
Spell* spell = (Spell*)bData->data;
spell->onProjectileContact(b->GetBody(),a->GetBody());
}
}
}