8.游戏场景-继承游戏对象基类的类
8.1 知识点
将要实现的类图
创建墙壁类,继承游戏对象类,墙壁类的构造函数初始化位置。实现墙的绘制方法。
//地图墙壁类 继承游戏对象类
class Wall : GameObject
{
//地图墙壁类构造函数
public Wall(int x, int y)
{
//直接设置前的位置就行
pos = new Position(x, y);
}
//实现墙的绘制方法
public override void Draw()
{
//设置颜色和输出位置 输出一个墙符号
Console.SetCursorPosition(pos.x, pos.y);
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("■");
}
}
创建食物类,继承游戏对象类,食物类构造函数初始化食物类位置,但是不能和蛇的位置重合。实现食物的绘制方法。
//食物类 继承游戏对象类
class Food : GameObject
{
//食物类构造函数
public Food(Snake snake)
{
//食物的位置不能和蛇重合 要有一定规则的随机出食物的位置
RandomPos(snake);
}
//实现食物的绘制方法
public override void Draw()
{
//设置颜色和输出位置 输出一个食物符号
Console.SetCursorPosition(pos.x, pos.y);
Console.ForegroundColor = ConsoleColor.Cyan;
Console.Write("¤");
}
//随机位置的行为 行为 和蛇的位置 有关系 有了蛇再来考虑
public void RandomPos(Snake snake)
{
//这个函数的目标 最终还是要设置食物的位置的
//只是不能和蛇重合
}
}
创建蛇身子类和蛇身体类型枚举。蛇身子类构造函数要初始化蛇身体类型和位置。实现蛇身子类的绘制方法,根据蛇身体类型变量 ,设置身体的颜色和对应的身体类型的符号。
/// <summary>
/// 蛇身体类型
/// </summary>
enum E_SnakeBody_Type
{
/// <summary>
/// 头
/// </summary>
Head,
/// <summary>
/// 身体
/// </summary>
Body,
}
//蛇身子类 继承游戏对象类
class SnakeBody : GameObject
{
//蛇身体类型变量 用于判断自己这个蛇身子类的身体类型
private E_SnakeBody_Type type;
//蛇身子类构造函数 要初始化蛇身体类型和位置
public SnakeBody(E_SnakeBody_Type type, int x, int y)
{
this.type = type;
this.pos = new Position(x, y);
}
//实现蛇身子类的绘制方法
public override void Draw()
{
//设置位置 根据蛇身体类型变量 设置身体的颜色和对应的身体类型的符号
Console.SetCursorPosition(pos.x, pos.y);
Console.ForegroundColor = type == E_SnakeBody_Type.Head ? ConsoleColor.Yellow : ConsoleColor.Green;
Console.Write(type == E_SnakeBody_Type.Head ? "●" : "◎");
}
}
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com