练习2 —— 玩FlappyBird,做数列题 | 玄数

2014-08-05

flappybird

在玩FlappyBird之前,你以为小鸟是往前飞的,越过柱子来加分,对吗? 但玩了之后,你就会发现原来这是个错觉啊!小鸟只在垂直方向做上下运动。那么小鸟又怎么能够越过柱子?是因为地面和柱子都往左运动,所以根据物理学中的运动是相对的,你会觉得地面和柱子都是静止的,小鸟往右边飞了。

当你不在flash游戏界面上点击时,它就直直地撞到地面上了。

flappybird

 

请根据程序代码和相关的提示,忽略物理课本上的位移公式,建立一个数学模型,分析小鸟的运动状态,并求出假如不在游戏界面上做点击时,小鸟过多长时间撞到地上,撞到时的速度。

程序代码:
flappybird code

提示:

<1> 注释:程序中 “//” 后的灰色文字,说明这些代码的意义和作用.

<2> 帧频:动画animation,视频flv等,都是由众多的帧组合成的一个连续的画面,每1秒经过多少帧,称为帧频。本游戏的帧频是40.

<3> var 是声明变量的关键字,后面紧跟着的是变量名,变量名:后的是变量名的类型,“=” 右边的是变量名的值。即程序的(1)和(2)声明了两个变量,其中一个叫gravity,值为0.8;另一个叫vy,值为4.

<4> 函数:function 后面跟到是函数名,由(3)可得,每1帧都执行 birdMove() 与 hitCheck() 这两个函数.

<5> bird.y:小鸟的 y 坐标,在游戏界面中,y 坐标与笛尔坐标系的 y 坐标不一样,向下为正,向上为负.   单位:像素.

<6> 游戏开始时:bird.y = 260, 游戏结束时:bird.y = 514.