摘要:
有一些BUG需要处理,比如小鸟太高或者太低都应该报错(不然直接掉到窗口下面去了),这个方法跟前面的HitTest应该独立开来,而不是掺和在一起 测试确实可以检测是否超过边界(如果要非常精确,那么就不仅仅是判断跟窗体宽度和高度的比对了,要去掉小鸟本身的宽度和高度) 此外小鸟和管子都应该用一些背景图片代替,而不是只有填充的颜色,这里只是简单的用了普通的图片(尤其是管子会被随时缩放,... 阅读全文
posted @ 2017-09-24 11:32
gary_tao
阅读(1186)
评论(0)
推荐(0)
摘要:
前面我们大致实现了鸟的一圈轨迹(其实如果你不做这个,就用两个矩形块的碰撞检测代替也可以),跟所有前面的教程一样,草稿打完了就要设计封装成一个类。至少到目前为止我们已经知道了鸟的属性和方法,先不要管方法具体如何实现,也不管方法输入输出,我们先要设计大概有几个方法。 鸟的初始化方法-根据前面一节导入导出一些多边形点(这里初始化只需要导入一堆点就行了) 鸟的销毁方法-比如鸟撞到管子上或者地底下,整个游戏... 阅读全文
posted @ 2017-09-24 11:31
gary_tao
阅读(1148)
评论(0)
推荐(0)
摘要:
接下来我们实现整个的游戏流程,当点击开始游戏,则需要三个事情开始运行 1 小鸟初始化并往下掉(当然还是可以用按钮让他飞一下) 2 每隔一定时间从左侧产生一个管子(宽度和高度随机,产生周期2000ms左右) 3 每隔一定时间检测是否鸟撞到了管子(这个时间周期要50ms左右,也可以更大或者更小) 跟上一节不同的地方在于,小鸟是唯一的,而管子不唯一。我们之前只是判断一个小鸟和一个管子是否有碰撞... 阅读全文
posted @ 2017-09-24 11:31
gary_tao
阅读(517)
评论(0)
推荐(0)
摘要:
前面一小节我们实现了简单的碰撞检测,但是实际上游戏的对象并不是一个标准的矩形(小鸟是一个不规则的物体,其实碰撞的管道也是不规则物体),所以如果真的要做的比较完美,我们自己要写一个方法,能够导入一个图像,然后自己照着图像描绘一个不规则的轮廓,然后把这个轮廓提取出来点,以后判断的时候只要判断所有A图形轮廓的点是否在B区域就可以了。所以前面的矩形和椭圆已经不够用了,我们要用一个自定义的点位数组point... 阅读全文
posted @ 2017-09-24 11:30
gary_tao
阅读(851)
评论(0)
推荐(0)
摘要:
在继续往下做之前,我们需要把之前的代码尽可能的精简(会对后面很有好处,而且读者也应该仔细比对这一部分的代码和上一部分哪里真正得到了优化,从而提高编程水平)。 首先数据库的操作类有哪些是可以做的更加普遍,变量名也通用的,至少要连接的目标数据库名称,目标工作薄,密码都应该是通用的,连接方法也是通用的,所以应该把连接到数据库的这个方法独立出来(我后面要写一个读写QuestionUser的类只要复制粘贴修... 阅读全文
posted @ 2017-09-24 11:29
gary_tao
阅读(819)
评论(0)
推荐(0)
摘要:
要做一个FlappyBird,最核心的功能是创建几个区块,如果发生碰撞则游戏结束(小鸟撞到管子上,或者小鸟到地上),至于随机生成一些管子,小鸟如何跳跃,最后如何统计分数,都不难想通要怎么做。 首先是知道如何在窗体上绘制你要的东西,C#为我们提供了GDI+的功能,你可以定义一个Graphic对象,然后调用它的Draw方法,可以发现能绘制的东西很多,矩形,椭圆,多边形,曲线等等(绘制的是多边形,用... 阅读全文
posted @ 2017-09-24 11:29
gary_tao
阅读(307)
评论(0)
推荐(0)
摘要:
上一节我们简单介绍了数据库的读写,所使用的数据库都是随便写的(用水果代替,但不是真正的食品零售数据表,至少没有价格,销量等等)。这一节我们思考如何实现一个测试题的数据库,所谓的测试题数据库就是假定系统里预存了1000道题目,每个学生考试随机抽查50题,以保证每次考试很难相互抄袭,而且每个题目设置时间限制,到时间不作答就认为放弃,考试完成自动阅卷等等,这些功能都是普通的纸质考试没法实现的。 那么... 阅读全文
posted @ 2017-09-24 11:28
gary_tao
阅读(1689)
评论(0)
推荐(0)
摘要:
要理解MySQL,SQLServer,ACCESS都是数据库的品牌,不同品牌的数据库在不同的领域,适用场合有所不同。ACCESS应该是最简单,至少是Windows上最容易上手的数据库,MySQL可能跟PHP搭配在做网站的时候用的比较多,SQLServer跟ASP.NET搭配做服务器。由于ACCESS有很多版本,我们为了兼容之前的版本,尽量使用ACCESS2003的数据库(MDB格式,往后的版本可能... 阅读全文
posted @ 2017-09-24 11:27
gary_tao
阅读(2291)
评论(0)
推荐(0)
摘要:
跟前面一章讲解计算器一样,到最后一小节,我们总是要把代码规整好,让整个程序显得非常简洁,先做个文件夹把我们自定义的类库都放进去 然后我们开始整理Form1里面的代码,为了实现超级热键的功能,我们应该完善FunctionMouseKeyboardHook这个类(因为现在叫做超级热键,可能后面我们需要用鼠标键盘来触发干一些别的事情,到时候如果也能拿着代码直接移植就会很有意义,不改变业务的框架... 阅读全文
posted @ 2017-09-24 11:26
gary_tao
阅读(275)
评论(0)
推荐(0)
摘要:
我们前面已经理解了如何使用官方的代码实现鼠标键盘的监控,其实还差一点,因为他的代码只能捕捉单个的按键,而其实我们要的是组合键。什么是组合键呢?比如我想定义同时按下WIN+C是去执行屏幕截图。这只要理解为WIN键按下且没有弹起,C键也被按下,然后去执行一个EXE程序即可。 我们需要写一个类把之前的封装起来 这样就比较简洁,初始化和添加绑定都只用了一行(+=就是添加绑定,读者也可以测试多... 阅读全文
posted @ 2017-09-24 11:25
gary_tao
阅读(215)
评论(0)
推荐(0)

浙公网安备 33010602011771号