📄 binghe.cpp
字号:
#include "stdafx.h"
#include "define.h"
#include "dinput.h"
#include "BingHe.h"
//////////////////////////////////////////////////////////////////////////////////////////////////////
//CbingHe:
//////////////////////////////////////////////////////////////////////////////////////////////////////
CBingHe::CBingHe()
{
m_bActive=true;
m_bAlive=true;
m_nCosmos=700;
m_bMoving=false;
m_bFiring=false;
m_nX=SCREEN_WIDTH/2;
m_nY=SCREEN_HEIGHT-SPIRIT_HEIGHT*2;
m_nWidth=SPIRIT_WIDTH_2;
m_nHeight=SPIRIT_HEIGHT;
m_rcSource.left=START_X+SPIRIT_WIDTH;
m_rcSource.right=m_rcSource.left+m_nWidth-1;
m_rcSource.top=START_Y+SCREEN_HEIGHT+SPIRIT_HEIGHT*2;
m_rcSource.bottom=m_rcSource.top+m_nHeight-1;
}
void CBingHe::Trace(DWORD dwMouse,POINT MousePoint,bool key[256],long unsigned int luTime)
{
//m_bFiring=false;
bool bLeft;
if(luTime%16<8)bLeft=true;
else bLeft=false;
m_bMoving=false;
if(m_bAlive)
{
switch(dwMouse)
{
case DI_MOUSE_MOVE_X:m_bMoving=true;break;
case DI_MOUSE_MOVE_Y:m_bMoving=true;break;
case DI_MOUSE_LEFT_DOWN:m_bFiring=true;break;
case DI_MOUSE_LEFT_UP:m_bFiring=false;break;
}
//if(key[DIK_LEFT])m_nX--;
if(m_bMoving)
{
m_nX+=(MousePoint.x/3);
m_nY+=(MousePoint.y/3);
if(m_nX<-m_nWidth/2)m_nX=-m_nWidth/2;
if((m_nX+m_nWidth/2)>SCREEN_WIDTH)m_nX=SCREEN_WIDTH-m_nWidth/2;
if(m_nY<0)m_nY=0;
if((m_nY+m_nHeight/2)>SCREEN_HEIGHT)m_nY=SCREEN_HEIGHT-m_nHeight/2;
}
if(m_bFiring)
{
if(bLeft)
m_rcSource.left =START_X+SPIRIT_WIDTH;
else
m_rcSource.left =START_X+SPIRIT_WIDTH+SPIRIT_WIDTH_2;
}
else
{
if(bLeft)
m_rcSource.left =START_X+SPIRIT_WIDTH+SPIRIT_WIDTH_2*2;
else
m_rcSource.left =START_X+SPIRIT_WIDTH+SPIRIT_WIDTH_2*3;
}
m_rcSource.right=m_rcSource.left+m_nWidth-1;
}
return;
}
/////////////////////////////////////////////////////////////////////////
//CFire:
/////////////////////////////////////////////////////////////////////////
CFireBH::CFireBH()
{
m_bActive=false;
m_bAlive=false;
m_nPace=11;
m_nCosmos=1;
m_nHeight=SPIRIT_HEIGHT_4;
m_nWidth=SPIRIT_WIDTH_4;
m_rcSource.top =START_Y+SCREEN_HEIGHT+SPIRIT_HEIGHT*2;
m_rcSource.bottom=m_rcSource.top+m_nHeight-1;
m_rcSource.left =START_X;
m_rcSource.right =m_rcSource.left+m_nWidth-1;
}
/////////////////////////////////////////////////////////////////////////////////
void CFireBH::Activate(CSaintFighter saint)
{
if(saint.m_bFiring&&(!m_bActive))//子弹初始位置;
{
m_nX=saint.m_nX+(saint.m_nWidth-m_nWidth)/2;
m_nY=saint.m_nY-m_nHeight+m_nPace;
m_bActive=true;
m_bAlive=true;
}
return;
}
/////////////////////////////////////////////////////////////////////////////////
void CFireBH::Trace()
{
switch(m_nPace)
{
case 11:m_nPace=14;break;
case 14:m_nPace=17;break;
case 17:m_nPace=11;break;
}
if(m_rcSource.left==START_X)m_rcSource.left=START_X+SPIRIT_WIDTH_4;
else m_rcSource.left =START_X;
m_rcSource.right =m_rcSource.left+m_nWidth-1;
if(m_bActive)
{
m_nY-=m_nPace;
if(m_nY<=-m_nHeight)
{
m_bActive=false;
m_bAlive=false;
}
}
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -