9.游戏场景-地图类
9.1 知识点
将要实现的类图
创建地图类,继承绘制接口,地图类里创建一个墙壁数组。地图类构造函数中初始化墙壁数组。四次遍历new出四周的每一堵墙。实现地图类绘制方法,遍历墙壁数组中的所有墙,逐个调用墙的绘制方法进行绘制。
//地图类 继承绘制接口
class Map : IDraw
{
//墙壁数组
public Wall[] walls;
//地图类构造函数 初始化墙壁数组 new出中的每一堵墙
public Map()
{
//new出墙壁数组
walls = new Wall[Game.w + (Game.h - 3) * 2];
//设置墙的索引 用来计数画了多少堵墙
int index = 0;
//四次遍历 画四周的墙
for (int i = 0; i < Game.w; i += 2)
{
walls[index] = new Wall(i, 0);
++index;
}
for (int i = 0; i < Game.w; i += 2)
{
walls[index] = new Wall(i, Game.h - 2);
++index;
}
for (int i = 1; i < Game.h - 2; i++)
{
walls[index] = new Wall(0, i);
++index;
}
for (int i = 1; i < Game.h - 2; i++)
{
walls[index] = new Wall(Game.w - 2, i);
++index;
}
}
//实现地图类绘制方法 绘制墙壁数组中的所有墙
public void Draw()
{
//遍历墙壁数组中的所有墙 逐个调用墙的绘制方法进行绘制
for (int i = 0; i < walls.Length; i++)
{
walls[i].Draw();
}
}
}
游戏场景类中,创建一个地图类变量,用于管理所有墙壁。创建游戏场景类构造函数,游戏场景类构造函数中初始化地图类变量。游戏场景里的更新方法中调用地图类的绘制方法。
//游戏场景类 继承游戏帧更新接口
class GameScene : ISceneUpdate
{
//地图类变量 管理所有墙壁
Map map;
//游戏场景类构造函数
public GameScene()
{
//初始化地图类变量
map = new Map();
}
//实现游戏场景里的更新方法
public void Update()
{
//绘制地图类
map.Draw();
}
}
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com