我是 C++ 新手,我正在尝试制作一个小游戏。我有一个名为“UnitController”的类,它在地图中存储了“Unit”类的多个实例。该类还有一个方法“getUnit”,它应该返回一个存储的单位。
这种方法似乎只是部分有效。我想我得到了该单元的副本,而不是请求的实例。
谁能指出我正确的方向?
#include "UnitController.h"
#include "Unit.h"
using namespace ci;
using std::map;
UnitController::UnitController()
{
}
void UnitController::addUnit( Vec2f position )
{
Unit mUnit = Unit();
mUnit.setup( position );
Units.insert( std::pair<int,Unit>( Units.size()+1, mUnit ) );
}
Unit UnitController::getUnit( int k )
{
Unit selectedUnit = Units[0];
return selectedUnit;
}
void UnitController::update()
{
for( map<int,Unit>::iterator u = Units.begin(); u != Units.end(); ++u ){
u->second.update();
}
}
void UnitController::draw()
{
for( map<int,Unit>::iterator u = Units.begin(); u != Units.end(); ++u ){
u->second.draw();
}
}