void Manager::Update()
{
RemoveCheck();
for(std::list<Base*>::iterator it = list.begin() ; it != list.end(); it++)
{
((Base*)(*it))->Update();
}
CreateUpdate();
//!更新回数更新
time++;
}
void Manager::CreateUpdate()
{
for(int i = 0 ; i < EnemyMax ; i++)
{
if( info[i].time == time)
EnemyCreate(Vector(static_cast<float>(info[i].posx), static_cast<float>(info[i].posy)), Vector(static_cast<float>(info[i].sizex), static_cast<float>(info[i].sizey)), Color::Red() );
}
}
void Manager::PlayerCreate(Vector pos, Vector size, Color col)
{
Player* pl = new Player(pos, size, col);
list.push_back(pl);
}
void Manager::EnemyCreate(Vector pos, Vector size, Color col)
{
Enemy* en = new Enemy(pos, size, col);
list.push_back(en);
}
Releaseの最適化あたりで処理ずれてるのかなと思い、逆アセンブルして処理を追ってもやはりわからずでした。
Player,EnemyはともにBaseを継承しており、リストの宣言はlist<Base*> listとしています。どなたか知恵をお貸しいただけないでしょうか。