地图分两种,普通地图和隐藏地图(指通过水管进入的地图)。先讲普图地图的切换,再讲隐藏地图的切换。
普通地图的切换:
思路:很简单,用一个数字iMatch表示当前是第几关。每过一关,iMatch+1,加载下一张地图。
存储: int iMatch;
初始化: iMatch=0;(0表示第一关)
过关检测:用一个函数不停地检测玩家是否到了地图终点,如果是,加载下一关的地图。
函数:int GAMEMAP::IsWin()
代码:
//判断玩家的坐标是否到达地图终点(横坐标大于等于地图宽度)
if(rmain.xpos >= MAX_PAGE*GAMEW*32 )
{
// iMatch增加
iMatch=mapinfo.iNextMap;
if(iMatch>=MAX_MATCH)
{
//如果iMatch大于关卡数量(即通过最后一关),加载第一关的数据,代码略
}
else
{
//没有通关
InitMatch();//初始化游戏数据
//设置玩家角色坐标,初始化玩家角色
rmain.SetPos(BM_USER,3*32,8*32);
rmain.InitRole(0,GAMEW*32*MAX_PAGE-32);
//加载下一关的地图
LoadMap();
}
说明:函数LoadMap()根据iMatch的值加载某一关的