我正在开发一个基于用户控制屏幕上移动的球的游戏。屏幕的“地图”在文件ThreeDCubeGame.cpp中定义:
char m_acMapData[MAP_WIDTH][MAP_HEIGHT];
ThreeDCubeGame.cpp主要处理与地图相关的大部分内容,但是玩家(和键盘输入)由ThreeDCubePlayer.cpp控制。当玩家移动到新的地图单元格时,游戏将不得不检查该单元格的内容并相应地采取行动。我正在尝试使用ThreeDCubeGame.cpp中的此函数:
inline char GetMapEntry( int iMapX, int iMapY ) { return m_acMapData[iMapX][iMapY]; }
因此,为了检查玩家是否被允许移动到地图单元格中,我使用来自ThreeDCubePlayer.cpp的此函数调用:
if (ThreeDCubeGame::GetMapEntry(m_iMapX+MAP_OFF_X, m_iMapY+MAP_OFF_Y) == ' ')
{
// do stuff
}
但是,当我编译这个代码时,我得到了一个警告:"错误 C2352:'ThreeDCubeGame::GetMapEntry':非静态成员函数的非法调用"。这与变量的作用域有关吗?能否在不重新设计所有代码的情况下修复它?