📄 baosystem.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 + -