当前位置: 首页>>代码示例>>C++>>正文


C++ Enemy::Kill方法代码示例

本文整理汇总了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;
}
开发者ID:mejaseye9083,项目名称:Individual_team,代码行数:33,代码来源:Bread.cpp

示例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)
		{
//.........这里部分代码省略.........
开发者ID:syuta1852,项目名称:Rensyu,代码行数:101,代码来源:Player.cpp


注:本文中的Enemy::Kill方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。