从无到有写一个C#弹球小游戏(完)(附上游戏完成的截图)

本文详细介绍了如何使用C#从头编写一个弹球小游戏,涉及面向对象编程,游戏状态管理,碰撞检测及处理,玩家输入响应以及画面绘制。通过游戏开始初始化、游戏循环更新、碰撞检测及绘图事件处理等关键步骤,完整展示了游戏的实现过程。
摘要由CSDN通过智能技术生成

现在该考虑这个游戏的主程序了。

打开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()函数

  • 1
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值