计分代码问题
我正在写一个吃豆的游戏,在计分上出了点问题,希望有人指教。我将score打在屏幕上显示是正确的,每吃一个增加一分,但在游戏界面上的显示有问题。
//pacman.cpp
/* Draw text labels */
void Pacman::DrawStrings()
{ switch( m_state )
{
case stateInit:
CopyBackgroundPixels( 0/*X*/, 280/*Y*/, GetScreenWidth(), 40/*Height*/ );
DrawScreenString( 100, 300, "Initialised and waiting for SPACE", 0x0, NULL );
SetNextUpdateRect( 0/*X*/, 280/*Y*/, GetScreenWidth(), 40/*Height*/ );
break;
case stateMain:
CopyBackgroundPixels( 0/*X*/, 0/*Y*/, GetScreenWidth(), 30/*Height*/ );
DrawScreenString( 150, 10, "Running", 0xffffff, NULL );
char buf[128];
sprintf( buf, "Player score: %d\n",m_player.GetScore() );//m_player在Pacman.h中定义是Player的一个实例;GetScore()在player.h中获取score
DrawScreenString( 350, 10, buf, 0xffffff, NULL );
SetNextUpdateRect( 0/*X*/, 0/*Y*/, GetScreenWidth(), 30/*Height*/ );
break;
}
}
具体记分在Player.cpp中,每移动一次,判断是否为食物,是就加一分
printf出来是1 2 3 。。。
但在游戏界面中出现的是PLAYER SCORE:6842373