使用list来管理人物类的问题
//Name:bAddObjects
//Desc:Add a static object to the SpritManager class Manage
//////////////////////////////////////////////////////////////////////////
void SpritManager::bAddObjects( char* cObjectFileName , char* cObjectBackFileName , int xPos , int yPos )
{
//局部对像
Object TempObject;
//初始化
TempObject.SetWindow( MainDC , hWnd );
TempObject.CreateCompatibleHDC();
TempObject.vSetMemoryDC( MemoryDC );
TempObject.vSetDirection( Left );
TempObject.vSetWalkDistance( 3 );
TempObject.vSetSpritStand( 300 , 400 );
TempObject.SetImageAttribute( 512,512 );
TempObject.SetActionItemCount( 4 , 8 );
TempObject.vComputePartOfWalkBmpWAndH();
TempObject.LoadBmpImage( cObjectFileName , cObjectBackFileName );
ListObject.push_back( TempObject );
//Objects在头文件里定义,下面为初始化
Objects.SetWindow( MainDC , hWnd );
Objects.CreateCompatibleHDC();
Objects.vSetMemoryDC( MemoryDC );
Objects.vSetWalkDistance( 3 );
Objects.vSetSpritStand( xPos , yPos );
Objects.SetImageAttribute( 512,512 );
Objects.SetActionItemCount( 4 , 8 );
Objects.vComputePartOfWalkBmpWAndH();
Objects.LoadBmpImage( cObjectFileName , cObjectBackFileName );
Objects.vSetDirection( NoMove );
}
//////////////////////////////////////////////////////////////////////////
//Name:vRenderObject
//Desc:Render the object
//////////////////////////////////////////////////////////////////////////
void SpritManager::vRenderObject()
{
//奇怪使用迭代器怎么就不能渲染呢?哪里出错了
if( ListObject.size() > 0 )
{
for( list<Object>::iterator TempObject = ListObject.begin() ; TempObject != ListObject.end() ; TempObject++ )
{
TempObject->vRenderObject();
}
}
//这里可以把人物渲染出来
Objects.vRenderObject();
}
我把关键地方用中文写出来,哪位来看看有什么问题导致不能渲染人物,自己也是试了蛮多种方法都不得解!!

