📄 fighter.cpp
字号:
#include "StdAfx.h"
#include ".\fighter.h"
Fighter::Fighter(Bitmap *bmp)
:Plane(bmp)
{
}
Fighter::Fighter(Bitmap* pBitmap, POINT ptPostion,
POINT ptVelocity, int iZorder,
RECT& rcBounds, BOUNDSACTION ba, float speed)
:Plane(pBitmap, ptPostion, ptVelocity, 1, rcBounds, ba, speed)
{
}
Fighter::~Fighter(void)
{
}
void Fighter::Action(ACTION action)
{
if(m_iLife <= 0)
return;
float x = 0.0f, y = 0.0f;
switch (action)
{
case GO_LEFT:
x = -m_fSpeed;
y = 0;
m_iCurFrame = 1;
break;
case GO_RIGHT:
x = m_fSpeed;
y = 0;
m_iCurFrame = 2;
break;
case GO_UP:
x = 0;
y = -m_fSpeed;
m_iCurFrame = 0;
break;
case GO_DOWN:
x = 0;
y = m_fSpeed;
m_iCurFrame = 0;
break;
case GO_LEFT_UP:
x = -0.7 * m_fSpeed;
y = -0.7 * m_fSpeed;
m_iCurFrame = 1;
break;
case GO_LEFT_DOWN:
x = -0.7 * m_fSpeed;
y = 0.7 * m_fSpeed;
m_iCurFrame = 1;
break;
case GO_RIGHT_UP:
x = 0.7 * m_fSpeed;
y = -0.7 * m_fSpeed;
m_iCurFrame = 2;
break;
case GO_RIGHT_DOWN:
x = 0.7 * m_fSpeed;
y = 0.7 * m_fSpeed;
m_iCurFrame = 2;
break;
case STOP_MOVING:
x = 0;
y = 0;
m_iCurFrame = 0;
break;
case START_FIRING:
StartFire();
break;
case STOP_FIRING:
StopFire();
break;
//case CHANGE_WEAPON:
// ChangeWeapon();
// break;
}
SetVelocity(x, y);
}
void Fighter::UpdateFrame()
{
// 覆盖基类函数
// 战斗机动画由方向键控制,所以什么也不做,
// 如果继承基类显示动画函数的话,飞机会乱动 -_-!
}
Bullet* Fighter::AddSprite()
{
Bitmap *pBulletBmp =
new Bitmap(".\\bullets\\4.bmp", TRUE, RGB(255, 255, 255));
RECT rcBounds = {0, 0, 480, 640};
RECT rcPos = GetPosition();
POINT ptPos;
ptPos.x = (rcPos.left + rcPos.right - pBulletBmp->GetWidth()) / 2;
ptPos.y = rcPos.top;
Bullet *pBullet = NULL;
pBullet = new Bullet(pBulletBmp, rcBounds, BA_DIE);
pBullet->SetPosition(ptPos);
pBullet->SetVelocity(0, -20);
pBullet->SetAttack(5);
return pBullet;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -