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

📄 submarine.cpp

📁 用MFC编写的一个潜艇大战的游戏
💻 CPP
字号:
// Submarine.cpp: implementation of the CSubmarine class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "ShipDemo.h"
#include "Submarine.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

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

CImageList CSubmarine::m_Images;

CSubmarine::CSubmarine(bool bDir, int nVert, int nType, int nSpeed)
{
	m_bDirect = bDir;
	m_ptPos.x = m_bDirect ? GAME_WIDTH : -SUBMARINE_WIDTH;
	m_ptPos.y = nVert;
	m_nType = nType;
	m_nSpeed = nSpeed;
	m_nFireWait = 0;
	m_bFired = true;
	m_bSubmarine = true;
}

CSubmarine::~CSubmarine()
{

}

bool CSubmarine::Draw(CDC *pDC, bool bPause)
{
	m_Images.Draw(pDC, m_nType*2+(m_bDirect?0:1), m_ptPos, ILD_TRANSPARENT);
	if(bPause)
		return false;
	
	if(!m_bFired)
	{
		m_nFireWait++;
		if( m_nFireWait ==100 )
		{
			m_nFireWait=0;
			m_bFired=true;
		}
	}

	if(m_bDirect)
	{
		m_ptPos.x -= m_nSpeed;
		if(m_ptPos.x<-SUBMARINE_WIDTH)
			return true;		
	}
	else
	{
		m_ptPos.x += m_nSpeed;
		if(m_ptPos.x>GAME_WIDTH)
			return true;
	}
	
	return false;
}

BOOL CSubmarine::LoadImage()
{
	CBitmap bmp;
	bmp.LoadBitmap(IDB_SUBMARINE);

	if(!m_Images.Create(SUBMARINE_WIDTH, SUBMARINE_HEIGHT, ILC_COLOR24|ILC_MASK, 8, 0))
		return FALSE;

	m_Images.Add(&bmp, RGB(255, 0, 255));

	return TRUE;
}

void CSubmarine::DeleteImage()
{
	m_Images.DeleteImageList();
}

⌨️ 快捷键说明

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