C#基础视频教程7.4 如何编写简单游戏
2021-05-11 16:29
标签:判断 注意 遍历 一个 方法 基础 font 视频教程 png 接下来我们实现整个的游戏流程,当点击开始游戏,则需要三个事情开始运行
1 小鸟初始化并往下掉(当然还是可以用按钮让他飞一下)
2 每隔一定时间从左侧产生一个管子(宽度和高度随机,产生周期2000ms左右)
3 每隔一定时间检测是否鸟撞到了管子(这个时间周期要50ms左右,也可以更大或者更小)
? 跟上一节不同的地方在于,小鸟是唯一的,而管子不唯一。我们之前只是判断一个小鸟和一个管子是否有碰撞,随着管子的不断生成,要检测小鸟和每个管子是否有碰撞。所以我们把生成管子放在了GameSense的一个list里面,list存储的是GameRectange的类的实例,在另一个判断的线程,就需要遍历list的每一个元素做判断,并且只要有任意一个撞击了,就认为撞击了
? 我们前面用了很多类都是静态的,这里管子的类却不能是静态的,因为每一个管子大小都是不一样的,每隔一定时间都会new一个出来。可想而知,如果我们要做成两只鸟双人游戏,鸟也不能做成静态的(所以读者在考虑是否有必要做成静态的类,方法的时候,只要想清楚这个类是否会需要多个实例,如果需要则不能是静态的),本例中只有场景是唯一的,裁判是唯一的,所以可以用静态的。
? 为了提高游戏的体验,每产生一个管子,没有撞上去,就可以给用户增加一点分数(我们在屏幕用了绘制文字的方法,这比用控件更加合理,至少不会有控件自带的背景色干扰)。在每个子线程中我们都把延时Sleep操作放到了最后,读者可以测试一下如果放到前面会有什么问题(多次的弹窗,或者游戏结束了还产生多余的一个管子)
? 把游戏开始,游戏结束,游戏清空场景也单独做成方法,注意游戏清空场景并不等同于游戏结束。结束的时候要弹窗告诉用户他挂了,但是此时还不能马上清空场景(画面要显示他撞在哪里了),点击确定按钮之后才去执行清空场景(原来的list保存的管子都扔掉,小鸟也回到初始位置等等,很多布尔值都要复位)
? 已经可以测试完整的运行了,点击小鸟飞行,绕过障碍物,则得分,撞上去就提示游戏结束,下一节我们继续完善
?
?
? 更多教学视频和资料下载,欢迎关注以下信息:
我的优酷空间:
http://i.youku.com/acetaohai123
? 我的在线论坛:
http://csrobot.gz01.bdysite.com/
? 问题交流:
QQ:910358960
邮箱:acetaohai123@163.com
?
?
?
?
? C#基础视频教程7.4 如何编写简单游戏 标签:判断 注意 遍历 一个 方法 基础 font 视频教程 png 原文地址:http://www.cnblogs.com/acetaohai123/p/7586717.html
文章标题:C#基础视频教程7.4 如何编写简单游戏
文章链接:http://soscw.com/index.php/essay/84338.html