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

📄 baosystem.cpp

📁 射击小游戏
💻 CPP
字号:
#include "stdafx.h"
#include "BaoSystem.h"

BaoSystem::BaoSystem()
{
	
}

// 释构函数
BaoSystem::~BaoSystem()
{
	list<Bao*>::iterator p, pend;
	p = m_BaoList.begin();
	pend = m_BaoList.end();
	while(p != pend)
	{
		delete *p;
		p++;
	}
}

// 新增bao
void BaoSystem::BaoHappened(Bao::BAO_TYPE BaoType, int x, int y, double sprite_vx, double sprite_vy)
{
	Bao *pNewBao;
	switch(BaoType)
	{
	case Bao::BAO_BLOOD:
		pNewBao  =  new Bao_Blood(x,y,sprite_vx,sprite_vy,Bao::BAO_BLOOD);
		m_BaoList.push_back(pNewBao);
		break;
	case Bao::BAO_WEAPON:
		pNewBao  =  new Bao_Weapon(x,y,sprite_vx,sprite_vy,Bao::BAO_WEAPON);
		m_BaoList.push_back(pNewBao);
		break;
	}
}

// 返回第一个bao
Bao* BaoSystem::GetFirstBao()
{
	m_iBaoIndex = -1;
	m_iBaoCount = m_BaoList.size();
	if(m_iBaoCount == 0)
		return NULL;

	m_pCurElement = m_BaoList.end();
	return GetNextBao();
}

// 返回下一个bao
Bao* BaoSystem::GetNextBao()
{
	m_iBaoIndex++;
	m_pCurElement++;
	while( ( m_iBaoIndex < m_iBaoCount ) && ( ( *m_pCurElement )->m_bUsed  ==  false ) )
	{
		delete *m_pCurElement;
		m_iBaoCount--;
		m_pCurElement = m_BaoList.erase(m_pCurElement);
	}

	if(m_pCurElement == m_BaoList.end())
		return NULL;
	else
		return *m_pCurElement;
}

void BaoSystem::Update()
{
	Bao *pBao = GetFirstBao();
	while(pBao)
	{
		pBao->Update();
		pBao = GetNextBao();
	}
}
void BaoSystem::Clear()
{
	m_BaoList.clear();
}

⌨️ 快捷键说明

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