注册 登录
编程论坛 VC++/MFC

计分代码问题

CSDN89 发布于 2011-05-01 16:00, 301 次点击
我正在写一个吃豆的游戏,在计分上出了点问题,希望有人指教。
我将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
1 回复
#2
CSDN892011-05-01 16:14
在Player.h中:
class Player
{
public:
    int GetSocre() {return m_score;}
    int m_score;
}

这样游戏界面显示的就一直是0,为什么?
上贴我把int m_score 设成private了
1