⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 enemyfigher.cpp

📁 一个小的类似于雷电的射击游戏
💻 CPP
字号:
#include "StdAfx.h"
#include ".\enemyfigher.h"

EnemyFigher::EnemyFigher(Bitmap *bmp)
:Plane(bmp)
{
	m_bIsBoss = FALSE;
	m_iValue = 0;
}

EnemyFigher::EnemyFigher(Bitmap* pBitmap, POINT ptPostion, 
				 POINT ptVelocity, int iZorder,
				 RECT& rcBounds, BOUNDSACTION ba, float speed)
				 :Plane(pBitmap, ptPostion, ptVelocity, 1, rcBounds, ba, speed)
{
	m_bIsBoss = FALSE;
	m_iValue = 0;
}

EnemyFigher::~EnemyFigher(void)
{
}

Bullet* EnemyFigher::AddSprite(Fighter *pFighter)
{
	Bitmap *pBulletBmp =
		new Bitmap(".\\bullets\\3.bmp", TRUE, RGB(255, 255, 255));
	RECT rcBounds = {0, 0, 480, 640};
	// 计算敌机下方中间位置,作为子弹发射处
	RECT rcPos = GetPosition();
	POINT ptPos, ptFighter;
	ptPos.x = (rcPos.left + rcPos.right - pBulletBmp->GetWidth()) / 2;
	ptPos.y = rcPos.bottom;
	
	// 计算战斗机中心点位置,作为子弹发射方向
	RECT rcFighter = pFighter->GetPosition();
	ptFighter.x = (rcFighter.left + rcFighter.right) / 2;
	ptFighter.y = (rcFighter.top + rcFighter.bottom) / 2;

	float vy = 10.0f;
	float vx = vy * (ptPos.x - ptFighter.x) / (ptPos.y - ptFighter.y);
	vx = vx > 3 * vy ? 3 * vy : vx;

	// 创建子弹
	Bullet *pBullet = NULL;
	pBullet = new Bullet(pBulletBmp, rcBounds, BA_DIE);
	pBullet->SetPosition(ptPos);
	pBullet->SetVelocity(vx, vy);
	pBullet->SetAttack(30);

	return pBullet;	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -