📄 shajia.cpp
字号:
#include <math.h>
#include "define.h"
#include "ShaJia.h"
//////////////////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////////////////
CShaJia::CShaJia()
{
m_bActive=false;
m_bAlive=false;
m_bFiring=false;
m_nCosmos=7777;
m_nPace=1;
m_nX=(SCREEN_WIDTH-SPIRIT_WIDTH)/2;
m_nY=-(SPIRIT_HEIGHT*2+130);
//m_nShowX=(SCREEN_WIDTH-SPIRIT_WIDTH)/2;
//m_nShowY=0;
m_nWidth=SPIRIT_WIDTH;
m_nHeight=SPIRIT_HEIGHT;
m_rcSource.top=START_Y+SCREEN_HEIGHT+SPIRIT_HEIGHT;
m_rcSource.bottom=m_rcSource.top+m_nHeight-1;
m_rcSource.left=START_X;
m_rcSource.right=m_rcSource.left+m_nWidth-1;
}
//////////////////////////////////////////////////////////////////////////////////////
void CShaJia::Trace(long unsigned int luTime,CSaintFighter saint)
{
if(m_bActive&&m_bAlive)
{
if(m_bFiring==true)m_bFiring=false;//只发一次子弹;
if(luTime%100==0)m_bFiring=true;
if(luTime%2==0)
{
if((m_nY+m_nHeight/2)-(saint.m_nY+saint.m_nHeight/2)>0)m_nY--;
else if((m_nY+m_nHeight/2)-(saint.m_nY+m_nHeight/2)<0)
{
if((m_nY<(SCREEN_HEIGHT-m_nHeight)/2))m_nY++;
}
if((m_nX+m_nWidth/2)-(saint.m_nX+saint.m_nWidth/2)>0)m_nX--;
else if((m_nX+m_nWidth/2)-(saint.m_nX+m_nWidth/2)<0)m_nX++;
}
}
return;
}
//////////////////////////////////////////////////////////////////////////////////////
//Clotus:
//////////////////////////////////////////////////////////////////////////////////////
CLotus::CLotus()
{
m_bActive=false;
m_bAlive=false;
m_nCosmos=777;
m_nPace=1; //这里m_nPace是一个
m_nRadio=120;
m_nWidth=SPIRIT_WIDTH;
m_nHeight=SPIRIT_HEIGHT;
m_rcSource.top=START_Y+SCREEN_HEIGHT+SPIRIT_HEIGHT;
m_rcSource.bottom=m_rcSource.top+m_nHeight-1;
m_rcSource.left=START_X+SPIRIT_WIDTH;
m_rcSource.right=m_rcSource.left+m_nWidth-1;
}
//////////////////////////////////////////////////////////////////////////////////////
void CLotus::InitAngle(int i)
{
m_nAngle=60*i;
m_bActive=true;
m_bAlive=true;
return;
}
//////////////////////////////////////////////////////////////////////////////////////
void CLotus::Trace(CSaintFighter saint,int i)
{
if(m_bActive)//calculate the position;
{
m_nAngle+=m_nPace;
m_nX=(saint.m_nX+saint.m_nWidth/2)+(int)(m_nRadio*cos(RADIAN(m_nAngle)))-m_nWidth/2;
m_nY=(saint.m_nY+saint.m_nHeight/2)+(int)(m_nRadio*sin(RADIAN(m_nAngle)))-m_nHeight/2;
if((saint.m_nY==(SCREEN_HEIGHT-m_nHeight)/2)&&m_nRadio<290)m_nRadio++;
//if((m_nY+m_nHeight>=0)&&(m_nX+m_nWidth>=0))m_bActive=true;
}
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -