java fly bird小游戏_JavaScript实现Fly Bird小游戏

1.分析页面结构,理清需求和功能

游戏有三个界面,分别是开始界面,游戏界面和游戏结束界面。

1.1 开始界面

e2d0dfe06d14d8976b3128e910daf9df.gif

start.gif

游戏的大背景

上下移动的游戏标题和翅膀摆动的小鸟

start 按钮,点击进入游戏界面

一直移动的地面

1.2 游戏界面

079de9ed33d18b0601a5c210caf3f92a.gif

play.gif

显示越过障碍数量的计分器

移动的障碍物,分别是上管道和下管道

点击游戏界面,小鸟向上飞起,然后在重力作用下下坠,

当小鸟和管道碰撞后,结束界面弹出,同时小鸟落到地面

1.3 结束界面

Game over 提示面板

OK 按钮

2. 开发“开始界面”

考虑到草地的移动效果,我们在页面中加入两个草地

2.1 HTML

Fly Bird

小鸟

2.2 CSS

#wrapBg{/*游戏背景*/

width: 343px;height: 480px;

margin: 0 auto;

background-image:url(../img/bg.jpg);

position: relative;

top: 100px;

overflow: hidden;

}

#headTitle{/*开始标题*/

width: 236px;height: 77px;

background-image: url(../img/head.jpg);

position: absolute; left: 53px; top: 100px;

}

#headBird{/*开始标题中的小鸟*/

float:right;

margin-top: 25px;

}

#startBtn{/*开始按钮*/

width: 85px;height: 29px;

padding: 0;margin: 0;

background-image: url(../img/start.jpg);

position: absolute;left: 129px;top: 250px;

}

#grassLand1{/*草地1*/

height: 14px;width: 343px;

background-image: url(../img/banner.jpg);

position: absolute;top: 423px;

}

#grassLand2{/*草地2*/

height: 14px;width: 343px;

background-image: url(../img/banner.jpg);

position: absolute;top: 423px;left: 343px;

}

将wrapBg中的overflow:hidden 注释掉的页面效果

802a82258f3aea3bdfb1d0cc9e9ea0b0.png

开始界面.jpg

2.3 JS

小鸟煽动翅膀的效果需要用到逐帧动画的原理

逐帧动画是一种常见的动画形式(Frame By Frame),其原理是在“连续的关键帧”中分解动画动作,也就是在时间轴的每帧上逐帧绘制不同的内容,使其连续播放而成动画。

14a93baae07c0c1faf724de5906b575d.png

bird1.png

4f93f9ad1d2944161ea8e173b722af79.png

bird0.png

2.3.1 开始标题的摆动

var jsHeadTitle = document.getElementById("headTitle");// 获取标题

var jsHeadBird = document.getElementById("headBird"); // 获取标题中小鸟

var Y = 3;//标题的摆动幅度

var index = 0;

var imgArr = ["img/bird0.png","img/bird1.png"]

//将小鸟图片路径放入一个数组,利用逐帧动画的原理做出小鸟翅膀摆动的样子

var headWaveTimer = setInterval(headWave,200); //设置标题上下摆动的定时器

function headWave() {

Y *= -1;

jsHeadTitle.style.top = jsHeadTitle.offsetTop + Y +

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值