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

📄 missile.cpp

📁 坦克游戏
💻 CPP
字号:
// Missile.cpp: implementation of the CMissile class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "Missile.h"
#include "MainGame.h"
#include "Explode.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CMissile::CMissile(int px,int py,int type,int power,int bulletSpeed,int direction):CWeapon(this)
{
	positionX=px;
	positionY=py;
	this->type=type;
	CWeapon::type=type;
	this->power=power;
	speed=bulletSpeed;
	this->direction=direction;
	
////////////////////////////
	boolFlip=0;
	stage = 0;	//0-25,刚发射

	switch(direction)//设置子弹的具体位置.32*32 子弹:30*10
	{
	case 0:	
		{
			positionX+=11; 	width=10; height=30;
		}break;
	case 1: 
		{
			positionX+=2;  positionY+=11; 	width=30; height=10;
		}break;
	case 2:	
		{
			positionX+=11; positionY+=2;	width=10; height=30;
		}break;
	case 3:	
		{
			positionY+=11; width=30;  height=10;
		}break;
	}

	strcpy(name,"missile");
}

CMissile::~CMissile()
{
	
}

void CMissile::displayObject()
{
	int picture;
	if(stage>25)
	{
		picture=9;
		speed++;
	}
	else 
	{
		picture=7;
		stage++;
	}

	CMainGame *pWnd=(CMainGame*)AfxGetMainWnd();
	CRect rt1(positionX,positionY,positionX+width,positionY+height);
	if(boolFlip)
	{
		switch(direction)
		{
		case 0: 
		case 2: 
			{
				CRect rt2(21*direction,0,21*(direction+1),59);
				pWnd->BltBitMap(pWnd->lpBackBuffer,rt1,pWnd->lpBKGObject[picture],rt2);
				break;
			}
		case 1: 
		case 3: 
			{
				CRect rt2(0,21*(direction-1),59,21*direction);
				pWnd->BltBitMap(pWnd->lpBackBuffer,rt1,pWnd->lpBKGObject[picture+1],rt2);
				break;
			}
		}
		boolFlip=0;
	}
	else
	{
		switch(direction)
		{
		case 0: 
		case 2:
			{
				CRect rt2(21*(direction+1),0,21*(direction+2),59);
				pWnd->BltBitMap(pWnd->lpBackBuffer,rt1,pWnd->lpBKGObject[picture],rt2);
				break;
			}
			
		case 1:
		case 3: 
			{
				CRect rt2(0,21*direction,59,21*(direction+1));
				pWnd->BltBitMap(pWnd->lpBackBuffer,rt1,pWnd->lpBKGObject[picture+1],rt2);
				break;
			}
		}
		boolFlip=1;
	}
}


bool CMissile::ActiveObject()
{
	displayObject();
	return CWeapon::ActiveObject();
}

⌨️ 快捷键说明

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