本文整理汇总了C++中Enemy::Kill方法的典型用法代码示例。如果您正苦于以下问题:C++ Enemy::Kill方法的具体用法?C++ Enemy::Kill怎么用?C++ Enemy::Kill使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Enemy
的用法示例。
在下文中一共展示了Enemy::Kill方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Hit
//----------------------------------
//機能:当たり判定
//引数:pTarget 敵の位置情報
//戻値:TRUEorFALSE
//----------------------------------
BOOL Bread::Hit(UnitBase *pTarget)
{
if (typeid(*pTarget) == typeid(Enemy))
{
Enemy *pEnemy = (Enemy*)pTarget;
if (isbread == TRUE)
{
//敵の位置をGetPosを通して受け取る
enemyPosition = pEnemy->GetPos();
//位置の計算を行う
int distance =
(int)(position.x - (enemyPosition.x + g_stageScrollPosition.x)) *
(int)(position.x - (enemyPosition.x + g_stageScrollPosition.x)) +
(int)(position.y - (enemyPosition.y + g_stageScrollPosition.y)) *
(int)(position.y - (enemyPosition.y + g_stageScrollPosition.y)); //(0-0)*(0-0)+(0-0)*(0-0) =((0-0)*(0-0)) + ((0-0)*(0-0))
if (distance <= (28 * 48))
{
//弾が当たったら弾を消す
Reset();
pEnemy->Kill();
return TRUE;
}
}
}
return FALSE;
}
示例2: Hit
//playerのHit関数
//引数:UnitBase型のポインタ
//(UnitBaseクラスを継承した子クラスの情報が扱える)
//戻り値:HRESULT型-成功かどうか
HRESULT Player::Hit(UnitBase* pTarget)
{
//ステージとの当たり判定
if (typeid(*pTarget) == typeid(Stage))
{
//pTargetをステージと判断し、stage型にキャスト
Stage* stage = (Stage*)pTarget;
//RayCastData型の変数を作る
RayCastData ray;
//レイが出る位置
ray.start = position;
ray.start.y = position.y+10;
//レイを向ける方向
ray.dir = D3DXVECTOR3(0, -1, 0);
//レイの情報を格納したアドレスを渡す
stage->GetModel()->RayCast(&ray);
//Rayが当たっているかつ
//ステージの位置Yがプレイヤー位置Y-1より大きかったら
if (ray.hit && ray.pos.y >= (position.y - 1) && ground_flg == FALSE)
{
jump_flg = TRUE;
jump_Count = 0;
ground_flg = TRUE;
position = ray.pos + D3DXVECTOR3(0, 0.5, 0);
}
else if (ground_flg == TRUE)
{
position = ray.pos + D3DXVECTOR3(0,0.5,0);
}
//目の前にステージがあるかの判定
ray.start = position;
D3DXMATRIX matR;
D3DXMatrixRotationY(&matR, D3DXToRadian(dir));
D3DXVECTOR3 rayVec = D3DXVECTOR3(0, 0, 1);
D3DXVec3TransformCoord(&rayVec, &rayVec, &matR);
ray.dir = rayVec;
stage->GetModel()->RayCast(&ray);
if (ray.hit && ray.dist < 2)
{
isWallHit = TRUE;
wallNormal = ray.normal;
}
else
{
isWallHit = FALSE;
}
ray.start = position;
ray.dir = D3DXVECTOR3(0, 0, -1);
stage->GetModel()->RayCast(&ray);
D3DXVECTOR3 v = stage->GetPos() - position;
//プレイヤーとカメラの間にステージがあるか
D3DXVECTOR3 pToCdist = camVec-position;
if (D3DXVec3Length(&v) < D3DXVec3Length(&pToCdist))
{
camVec = D3DXVECTOR3(position.x, 5, position.z);
}
}
//敵との当たり判定
if (typeid(*pTarget) == typeid(Enemy))
{
static int count = 0;
count--;
Enemy* enemy = (Enemy*)pTarget; //UnitBase型をEnemy型にキャスト
BOOL flg = item->Hit(enemy->GetPos()); //アイテムが当たったかどうか
if (flg)
{
enemy->KnockBack();
count = 100;
}
D3DXVECTOR3 v = enemy->GetPos() - position; //プレイヤーから敵に向かうベクトルを求める
if (D3DXVec3Length(&v) < 2) //ベクトルの長さが2以下だったら
{
if (count >= 0)
{
enemy->Kill();
g_gameScene = SC_CLEAR;
}
else
{
g_gameScene = SC_GAME_OVER;
}
}
}
if (typeid(*pTarget) == typeid(Invisible))
{
Invisible* invisible = (Invisible*)pTarget;
D3DXVECTOR3 inTopVec = invisible->GetPos() - position;
if (D3DXVec3Length(&inTopVec) < 1)
{
//.........这里部分代码省略.........