📄 enemyfigher.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 + -