现在该考虑这个游戏的主程序了。
打开form1.cs文件。
游戏可能有一些actor,分三类,砖块,球,拍子。
所以给form1声明三个字段,一种更理想的情况是只定义一个Actor的列表,然后不管是什么物件,往这个列表里塞就好,在更复杂的游戏中采用那种处理方式也的确是更好的选择。
<span style="white-space:pre"> </span>/// <summary>
/// 场景中所有砖块的列表
/// </summary>
private ArrayList playerBlockList;
/// <summary>
/// 弹球拍子
/// </summary>
private Paddle playerPaddle;
/// <summary>
/// 弹球
/// </summary>
private Ball playerBall;
游戏可能有三种不同的状态,正常游戏中,暂停,和游戏结束,枚举变量如下:
enum GameStatus { Active, Pause, End }
然后给Form1声明字段(游戏状态和游戏得分):
/// <summary>
/// 游戏状态,有四个可能的取值:活动、暂停、结束
/// </summary>
GameStatus GE_GameStatus = GameStatus.Active;
/// <summary>
/// 游戏成绩
/// </summary>
private int GE_GameScore = 0;
然后给游戏一个游戏区域,长宽和边界信息,绘制窗口和保证这个球是在这块区域内弹:
/// <summary>
/// 常量:游戏区域的宽度
/// </summary>
public const int PlayerWidth = 400;
/// <summary>
/// 常量:游戏区域的高度
/// </summary>
public const int PlayerHeight = 600;
/// <summary>
/// 静态只读:设置游戏区域的边界
/// </summary>
public static readonly Bounds PlayerBounds = new Bounds(0, 0, Form1.PlayerWidth, Form1.PlayerHeight);
一个游戏分游戏开始,游戏进行中,游戏结束三个阶段;
此外,游戏进行的时候还要处理玩家的各种操作,当然这个游戏中只有键盘上的左右移动操作;
除此之外游戏还得把各种元素绘制到屏幕上,也就是绘制一个背景板,然后简单的调用游戏中各种物体的Draw()函数