8.游戏场景-玩家和电脑结构体
8.1 知识点
class 语句块外 namespace 语句块内
创建玩家类型枚举
/// <summary>
/// 玩家类型枚举
/// </summary>
enum E_PlayerType
{
/// <summary>
/// 玩家
/// </summary>
Player,
/// <summary>
/// 电脑
/// </summary>
Computer,
}
创建玩家结构体
struct Player
{
// 玩家结构体变量
// 玩家类型
public E_PlayerType type;
// 当前所在地图哪一个索引的格子
public int nowIndex;
// 是否暂停的标识
public bool isPause;
// 玩家结构体构造函数
public Player(int index, E_PlayerType type)
{
nowIndex = index;
this.type = type;
isPause = false;
}
/// <summary>
/// 绘制当前玩家函数
/// </summary>
/// <param name="mapInfo">传入地图</param>
public void Draw(Map mapInfo)
{
// 必须要先得到地图才能够得到我在地图上的哪一个格子
// 从传入的地图中得到格子信息
Grid grid = mapInfo.grids[nowIndex];
// 设置位置
Console.SetCursorPosition(grid.pos.x, grid.pos.y);
// 画 设置颜色 设置图标
switch (type)
{
case E_PlayerType.Player:
Console.ForegroundColor = ConsoleColor.Cyan;
Console.Write("★");
break;
case E_PlayerType.Computer:
Console.ForegroundColor = ConsoleColor.Magenta;
Console.Write("▲");
break;
}
}
}
class 语句块内 主函数外
创建绘制玩家和电脑函数
/// <summary>
///
/// </summary>
/// <param name="player">玩家</param>
/// <param name="computer">电脑</param>
/// <param name="map">地图</param>
static void DrawPlayer(Player player, Player computer, Map map)
{
// 重合时
if (player.nowIndex == computer.nowIndex)
{
// 得到重合的位置 画出重合图案
Grid grid = map.grids[player.nowIndex];
Console.SetCursorPosition(grid.pos.x, grid.pos.y);
Console.ForegroundColor = ConsoleColor.DarkGreen;
Console.Write("◎");
}
// 不重合的时候
else
{
// 逐个画出玩家和电脑
player.Draw(map);
computer.Draw(map);
}
}
class 语句块内 主函数外 游戏场景逻辑函数内
创建玩家和电脑
Player player = new Player(0, E_PlayerType.Player);
Player computer = new Player(0, E_PlayerType.Computer);
绘制玩家和电脑
DrawPlayer(player, computer, map);
8.2 知识点代码
class语句块外 namespace语句块内
//创建玩家类型枚举
/// <summary>
/// 玩家类型枚举
/// </summary>
enum E_PlayerType
{
/// <summary>
/// 玩家
/// </summary>
Player,
/// <summary>
/// 电脑
/// </summary>
Computer,
}
//创建玩家结构体
struct Player
{
//玩家结构体变量
//玩家类型
public E_PlayerType type;
//当前所在地图哪一个索引的格子
public int nowIndex;
//是否暂停的标识
public bool isPause;
//玩家结构体构造函数
public Player(int index, E_PlayerType type)
{
nowIndex = index;
this.type = type;
isPause = false;
}
/// <summary>
/// 绘制当前玩家函数
/// </summary>
/// <param name="mapInfo">传入地图</param>
public void Draw(Map mapInfo)
{
//必须要先得到地图 才能够 得到我在地图上的哪一个格子
//从传入的地图中 得到 格子信息
Grid grid = mapInfo.grids[nowIndex];
//设置位置
Console.SetCursorPosition(grid.pos.x, grid.pos.y);
//画 设置颜色 设置图标
switch (type)
{
case E_PlayerType.Player:
Console.ForegroundColor = ConsoleColor.Cyan;
Console.Write("★");
break;
case E_PlayerType.Computer:
Console.ForegroundColor = ConsoleColor.Magenta;
Console.Write("▲");
break;
}
}
}
class语句块内 主函数外
//创建绘制玩家和电脑函数
/// <summary>
///
/// </summary>
/// <param name="player">玩家</param>
/// <param name="computer">电脑</param>
/// <param name="map">地图</param>
static void DrawPlayer(Player player, Player computer, Map map)
{
//重合时
if (player.nowIndex == computer.nowIndex)
{
//得到重合的位置 画出重合图案
Grid grid = map.grids[player.nowIndex];
Console.SetCursorPosition(grid.pos.x, grid.pos.y);
Console.ForegroundColor = ConsoleColor.DarkGreen;
Console.Write("◎");
}
//不重合的时候
else
{
//逐个画出玩家和电脑
player.Draw(map);
computer.Draw(map);
}
}
class语句块内 主函数外 游戏场景逻辑函数内
//创建玩家和电脑
Player player = new Player(0, E_PlayerType.Player);
Player computer = new Player(0, E_PlayerType.Computer);
//绘制玩家和电脑
DrawPlayer(player, computer, map);
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com