flappy bird压扁小鸟小游戏js代码

版权:原创 更新时间:1年以上
[该文章底部包含文件资源,可根据自己情况,决定是否下载资源使用,时间>金钱,如有需要,立即查看资源]

以下是 flappy bird压扁小鸟小游戏js代码 的示例演示效果:

当前平台(PC电脑)
  • 平台:

部分效果截图:

flappy bird压扁小鸟小游戏js代码

HTML代码(index.html):

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>flappy bird压扁小鸟小游戏</title>
<meta name="description" content="你恨 flappy bird 吗?你每天晚上对着那个愚蠢的鸟做噩梦吗? 压扁它们!.">
<meta property="og:description" content="你恨 flappy bird 吗?你每天晚上对着那个愚蠢的鸟做噩梦吗? 压扁它们!.">
<meta property="og:type" content="website">
<meta property="og:title" content="Squishy Bird">
<meta property="og:site_name" content="Squishy Birds">
<meta property="og:image" content="./src/wav/fbthumb.jpg">
<meta name="viewport" content="user-scalable=no, initial-scale=0.5, width=610, height=1024">
<link rel="image_src" href="./src/wav/fbthumb.jpg">
</head>
<body style="margin: 0px; overflow: hidden;-moz-user-select: none;-webkit-user-select: none;user-select: none;"  >
<div id="lgd" style="width: 300px; height: 64px; position: absolute; left: 533px; top: 301px; font-family: Verdana; font-size: 16px; font-weight: bold; text-align: center;">Loading...</div>
<script type="text/javascript" src="./src/squishybird.js"></script>
<div style="overflow: hidden; position: relative; width: 1366px; height: 620px;">
  <canvas width="1366" height="620"></canvas>
  <img src="./src/wav/pipe1.png" width="148" height="1664" style="position: absolute; left: 609px; top: -1533px; z-index: 420;"><img src="./src/wav/pipe2.png" width="148" height="1664" style="position: absolute; left: 609px; top: 400.9999999999999px; z-index: 420;">
  <canvas width="1366" height="88" style="position: absolute; z-index: 31337; left: 0px; top: 532px;"></canvas>
  <canvas width="1366" height="256" style="position: absolute; z-index: 60; left: 0px; top: 276px;"></canvas>
  <canvas width="1366" height="216" style="position: absolute; z-index: 61; left: 0px; top: 316px;"></canvas>
  <img src="./src/wav/logo.png" style="position: absolute; opacity: 0; z-index: 42069; left: 370px; top: 174px; display: none;"><img src="./src/wav/gameover.png" style="position: absolute; opacity: 1; z-index: 42069; left: 370px; top: 93px; display: inline;"><img src="./src/wav/clicktostart.png" style="position: absolute; opacity: 0; z-index: 42070; left: 514px; top: 435px; display: none;">
  <div style="width: 800px; height: 24px; position: absolute; text-align: center; font-family: Verdana; font-size: 12px; z-index: 87654; left: 283px; top: 592px; display: none;">适用浏览器:360、FireFox、Chrome、Safari、Opera、傲游、搜狗、世界之窗. 不支持IE8及以下浏览器。</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 536px; top: 23px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 536px; top: 22px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 536px; top: 21px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 536px; top: 20px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 536px; top: 19px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 536px; top: 18px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 536px; top: 17px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 535px; top: 23px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 535px; top: 22px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 535px; top: 21px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 535px; top: 20px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 535px; top: 19px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 535px; top: 18px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 535px; top: 17px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 534px; top: 23px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 534px; top: 22px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 534px; top: 21px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 534px; top: 20px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 534px; top: 19px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 534px; top: 18px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 534px; top: 17px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 533px; top: 23px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 533px; top: 22px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 533px; top: 21px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(255, 255, 255); z-index: 88888; -webkit-user-select: none; left: 533px; top: 20px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 533px; top: 19px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 533px; top: 18px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 533px; top: 17px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 532px; top: 23px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 532px; top: 22px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 532px; top: 21px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 532px; top: 20px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 532px; top: 19px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 532px; top: 18px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 532px; top: 17px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 531px; top: 23px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 531px; top: 22px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 531px; top: 21px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 531px; top: 20px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 531px; top: 19px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 531px; top: 18px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 531px; top: 17px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 530px; top: 23px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 530px; top: 22px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 530px; top: 21px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 530px; top: 20px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 530px; top: 19px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 530px; top: 18px;">0</div>
  <div style="width: 300px; height: 50px; position: absolute; text-align: center; font-family: Verdana; font-weight: bold; font-size: 30px; color: rgb(0, 0, 0); z-index: 88887; -webkit-user-select: none; left: 530px; top: 17px;">0</div>
  <canvas width="150" height="150" style="z-index: 69; position: absolute; left: 880.7973799593747px; top: 288.1699138371274px;"></canvas>
  <canvas width="150" height="150" style="z-index: 69; position: absolute; left: 94.18296936130267px; top: 175.22475277371694px;"></canvas>
  <canvas width="150" height="150" style="z-index: 69; position: absolute; left: 147.39346598794316px; top: 196.6628938429057px;"></canvas>
  <canvas width="150" height="150" style="z-index: 69; position: absolute; left: -235.79706690685066px; top: -486.7269952782424px;"></canvas>
</div>
<audio src="./src/wav/flap.wav"></audio>
<audio src="./src/wav/flap.wav"></audio>
<audio src="./src/wav/flap.wav"></audio>
<audio src="./src/wav/flap.wav"></audio>
<audio src="./src/wav/flap.wav"></audio>
<audio src="./src/wav/slide.wav"></audio>
<audio src="./src/wav/slide.wav"></audio>
<audio src="./src/wav/slide.wav"></audio>
<audio src="./src/wav/clang.wav"></audio>
<audio src="./src/wav/clang.wav"></audio>
<audio src="./src/wav/clang.wav"></audio>
<audio src="./src/wav/coin.wav"></audio>
<audio src="./src/wav/coin.wav"></audio>
<audio src="./src/wav/coin.wav"></audio>
<audio src="./src/wav/coin2.wav"></audio>
<audio src="./src/wav/coin2.wav"></audio>
<audio src="./src/wav/coin2.wav"></audio>
<audio src="./src/wav/coin3.wav"></audio>
<audio src="./src/wav/coin3.wav"></audio>
<audio src="./src/wav/coin3.wav"></audio>
<audio src="./src/wav/coin4.wav"></audio>
<audio src="./src/wav/coin4.wav"></audio>
<audio src="./src/wav/coin4.wav"></audio>
<audio src="./src/wav/kick.wav"></audio>
<audio src="./src/wav/kick.wav"></audio>
<audio src="./src/wav/kick.wav"></audio>
<audio src="./src/wav/kick.wav"></audio>
<audio src="./src/wav/kick.wav"></audio>
<audio src="./src/wav/kick2.wav"></audio>
<audio src="./src/wav/kick2.wav"></audio>
<audio src="./src/wav/kick2.wav"></audio>
<audio src="./src/wav/kick2.wav"></audio>
<audio src="./src/wav/kick2.wav"></audio>
<audio src="./src/wav/kick3.wav"></audio>
<audio src="./src/wav/kick3.wav"></audio>
<audio src="./src/wav/kick3.wav"></audio>
<audio src="./src/wav/kick3.wav"></audio>
<audio src="./src/wav/kick3.wav"></audio>
<audio src="./src/wav/kick4.wav"></audio>
<audio src="./src/wav/kick4.wav"></audio>
<audio src="./src/wav/kick4.wav"></audio>
<audio src="./src/wav/kick4.wav"></audio>
<audio src="./src/wav/kick4.wav"></audio>
<audio src="./src/wav/kick5.wav"></audio>
<audio src="./src/wav/kick5.wav"></audio>
<audio src="./src/wav/kick5.wav"></audio>
<audio src="./src/wav/kick5.wav"></audio>
<audio src="./src/wav/kick5.wav"></audio>
<audio src="./src/wav/squish1.wav"></audio>
<audio src="./src/wav/squish1.wav"></audio>
<audio src="./src/wav/squish1.wav"></audio>
<audio src="./src/wav/squish2.wav"></audio>
<audio src="./src/wav/squish2.wav"></audio>
</body>
</html>

JS代码(squishybird.js):

document.body.style.margin = '0px';
	document.body.style.overflow = 'hidden';
	var raf = function (x){
	alert('Your browser is not compatible with this site. Sorry:(');
}
if (window.requestAnimationFrame) raf = window.requestAnimationFrame;
	// Firefox 23 / IE 10 / Chrome / Safari 7 (incl. iOS)else if (window.mozRequestAnimationFrame) raf = window.mozRequestAnimationFrame;
	// Firefox < 23else if (window.webkitRequestAnimationFrame) raf = window.webkitRequestAnimationFrame;
	// Older versions of Safari / Chromevar game ={
}
;
	game.ended = false;
	game.div = document.createElement('div');
	game.div.style.overflow = 'hidden';
	game.div.style.position = 'relative';
	game.div.style.width = '100%';
	game.div.style.height = '100%';
	document.body.appendChild(game.div);
	var resize = function (){
	ww = Math.ceil(window.innerWidth);
	hh = Math.ceil(window.innerHeight);
	var fblikebox = document.getElementById('fblikebox');
	var googbox = document.getElementById('googbox');
	if (fblikebox){
	if (hh < 710){
	fblikebox.style.right = '178px';
	if (googbox){
	googbox.style.bottom = '5px';
	googbox.style.top = 'auto';
}
}
else{
	fblikebox.style.right = '8px';
	if (googbox){
	googbox.style.top = '5px';
	googbox.style.bottom = 'auto';
}
}
}
game.div.style.width = ww+'px';
	game.div.style.height = hh+'px';
	pipe_center = (hh - 88)/2;
	game.canvas.width = ww;
	game.canvas.height = hh;
	game.ctx.fillStyle = '#71c5cf';
	game.ctx.fillRect(0,0,ww,hh);
	ground.canvas.width = ww;
	ground.canvas.height = 88;
	ground.ctx.fillStyle = '#ddd894';
	ground.ctx.fillRect(0,0,ww,88);
	var gx = 0;
	while (gx < ww){
	ground.ctx.drawImage(ground.bit,gx,0);
	gx += 48;
}
ground.canvas.style.left = '0px';
	ground.canvas.style.top = (hh - 88)+'px';
	logo.reposition();
	gameover.reposition();
	c2s.reposition();
	//fbshare.reposition();
	playagain.reposition();
	parody.div.style.left = Math.round((ww - 800)/2)+'px';
	parody.div.style.top = (hh - 28)+'px';
	var i = 0;
	for (var xx = -3;
	xx <= 3;
	xx++){
	for (var yy = -3;
	yy <= 3;
	yy++){
	var div = score.divs[i];
	i++;
	div.style.left = Math.round(xx + (ww - 300)/2)+'px';
	div.style.top = (yy + 20)+'px';
}
}
city.canvas.width = ww;
	city.canvas.height = 256;
	city.ctx.clearRect(0,0,ww,256);
	var gx = 0;
	while (gx < ww){
	city.ctx.drawImage(city.bit,gx,0);
	gx += 300;
}
city.canvas.style.left = '0px';
	city.canvas.style.top = (hh - 256 - 88)+'px';
	trees.canvas.width = ww;
	trees.canvas.height = 216;
	trees.ctx.clearRect(0,0,ww,216);
	var gx = 0;
	while (gx < ww){
	trees.ctx.drawImage(trees.bit,gx,0);
	gx += 300;
}
trees.canvas.style.left = '0px';
	trees.canvas.style.top = (hh - 216 - 88)+'px';
	pipe_x = Math.floor(ww/2 - 148/2);
	pipe1.img.style.left = pipe_x+'px';
	pipe2.img.style.left = pipe_x+'px';
	for (var i = bloods.length-1;
	i>=0;
	i--){
	var blood = bloods[i];
	repositionBlood(blood);
}
}
var want_image_count = 0;
	var loadGameImage = function (n){
	want_image_count++;
	var o = document.createElement('img');
	o.onload = function (){
	want_image_count--;
	if ((want_image_count == 0) && (want_sound_count == 0)){
	gameLoaded();
}
}
o.src = n;
	return o;
}
//var sounds_playing = [];
	var want_sound_count = 0;
	var loadGameSound = function (n,chc){
	// file name,channel count var o ={
}
;
	o.channels = [];
	o.channel_pos = 0;
	o.chc = chc;
	o.play = function (){
	var tm = new Date().getTime();
	var sc = this.channels.length;
	var got_good_sound = false;
	var ch;
	for (var i = sc;
	i>=0;
	i--){
	this.channel_pos++;
	if (this.channel_pos >= this.channels.length){
	this.channel_pos = 0;
}
var ch = this.channels[this.channel_pos];
	//if (ch.can_play){
	got_good_sound = true;
	break;
	//}
}
if (got_good_sound){
	//ch.sound.currentTime = 1;
	ch.sound.play();
	//ch.can_play = false;
	//sounds_playing.push(ch);
}
}
//want_sound_count++;
	/* var ao = document.createElement("audio");
	ao.sndo = o;
	ao.addEventListener('canplaythrough',function (){
	//want_sound_count--;
	var o = this.sndo;
	for (var i = 0;
	i<0*o.chc;
	i++){
	var sch ={
}
;
	sch.sound = this.cloneNode(true);
	//sch.can_play = true;
	o.channels.push(sch);
}
var sch ={
}
;
	sch.sound = this;
	//sch.can_play = true;
	o.channels.push(sch);
	if ((want_image_count == 0) && (want_sound_count == 0)){
	gameLoaded();
}
}
,false);
	*/
 for (var i = 0;
	i<chc;
	i++){
	var ao = document.createElement("audio");
	var sch ={
}
;
	sch.sound = ao;
	sch.can_play = true;
	o.channels.push(sch);
	ao.src = n;
	ao.type = "audio/wav";
	document.body.appendChild(ao);
}
return o;
}
var bottom_pipe_gap = 270;
	var pipe_gap = bottom_pipe_gap;
	var pipe_center = 500;
	var pipe_closing = -1;
	var pipe_opening = -1;
	var pipe_x;
	var game_loaded = false;
	var gameLoaded = function (){
	game.div.appendChild(game.canvas);
	game.div.appendChild(pipe1.img);
	game.div.appendChild(pipe2.img);
	game.div.appendChild(ground.canvas);
	game.div.appendChild(city.canvas);
	game.div.appendChild(trees.canvas);
	game.div.appendChild(logo.img);
	game.div.appendChild(gameover.img);
	//document.body.appendChild(fbshare.img);
	document.body.appendChild(playagain.img);
	game.div.appendChild(c2s.img);
	game.div.appendChild(parody.div);
	for (var i = score.divs.length-1;
	i>=0;
	i--){
	game.div.appendChild(score.divs[i]);
}
game_loaded = true;
	resize();
	raf(oef);
	oef();
	//document.body.addEventListener("touchstart",poundPipes,false);
	document.body.onmousedown = function (){
	poundPipes();
}
document.body.onkeydown = function (e){
	if (e.keyCode == 32){
	poundPipes();
}
}
}
var poundPipes = function (){
	if (game.ended){
	// then we have to set ended=false with the play again button return false;
}
if (!game.started){
	fr = 0;
	nbfr = fnbfr = 100;
	points = 0;
	score.update();
	for (var i = birds.length-1;
	i>=0;
	i--){
	var bird = birds[i];
	bird.canvas.width = 1;
	bird.canvas.height = 1;
	game.div.removeChild(bird.canvas);
	birds.splice(i,1);
}
game.started = true;
	logo.showing = false;
	logo.hiding = true;
	gameover.showing = false;
	gameover.hiding = true;
	c2s.showing = false;
	c2s.hiding = true;
	/* fbshare.showing = false;
	fbshare.hiding = true;
	*/
 playagain.showing = false;
	playagain.hiding = true;
	parody.div.style.display = 'none';
	points = 0;
	score.update();
}
want_pound = true;
	if (pipe_opening == -1){
	if (pipe_closing == -1){
	pipe_closing = 0;
	want_pound = false;
	pipeslide.play();
	return true;
}
}
return false;
}
var want_pound = false;
	var ww = 768;
	var hh = 920;
	var bird_images = [];
	var angry_bird_images = [];
	for (var i = 1;
	i<=3;
	i++){
	var o ={
}
;
	var img = loadGameImage('./src/wav/bird'+i+'.png');
	o.img = img;
	bird_images.push(o);
	var o ={
}
;
	var img = loadGameImage('./src/wav/angrybird'+i+'.png');
	o.img = img;
	angry_bird_images.push(o);
}
bird_images.push(bird_images[1]);
	// this one final push makes the wing animation loop correctlyangry_bird_images.push(angry_bird_images[1]);
	// this one final push makes the wing animation loop correctlyvar flap = loadGameSound('./src/wav/flap.wav',5);
	var pipeslide = loadGameSound('./src/wav/slide.wav',3);
	var clang = loadGameSound('./src/wav/clang.wav',3);
	var coin1 = loadGameSound('./src/wav/coin.wav',3);
	var coin2 = loadGameSound('./src/wav/coin2.wav',3);
	var coin3 = loadGameSound('./src/wav/coin3.wav',3);
	var coin4 = loadGameSound('./src/wav/coin4.wav',3);
	var kick = loadGameSound('./src/wav/kick.wav',5);
	var kick2 = loadGameSound('./src/wav/kick2.wav',5);
	var kick3 = loadGameSound('./src/wav/kick3.wav',5);
	var kick4 = loadGameSound('./src/wav/kick4.wav',5);
	var kick5 = loadGameSound('./src/wav/kick5.wav',5);
	var kicks = [kick,kick2,kick3,kick4,kick5];
	var squish1 = loadGameSound('./src/wav/squish1.wav',3);
	var squish2 = loadGameSound('./src/wav/squish2.wav',3);
	var squishes = [squish1,squish2];
	var clanging = -1;
	game.canvas = document.createElement('canvas');
	game.canvas.width = ww;
	game.canvas.height = hh;
	game.ctx = game.canvas.getContext('2d');
	game.started = false;
	game.ctx.fillStyle = '#71c5cf';
	game.ctx.fillRect(0,0,ww,hh);
	var logo ={
}
;
	logo.a = -.2;
	logo.fr = 0;
	logo.showing = true;
	logo.hiding = false;
	logo.img = loadGameImage('./src/wav/logo.png');
	// 626 x 144logo.img.style.position = 'absolute';
	logo.img.style.opacity = 0;
	logo.img.style.zIndex = '42069';
	logo.reposition = function (){
	logo.img.style.left = Math.floor((ww-626)/2)+'px';
	logo.img.style.top = Math.floor(Math.cos(logo.fr/9)*20 + (hh - 144 - 88)/2)+'px';
}
var gameover ={
}
;
	gameover.a = -.2;
	gameover.fr = 0;
	gameover.showing = false;
	gameover.hiding = true;
	gameover.img = loadGameImage('./src/wav/gameover.png');
	// 626 x 144gameover.img.style.position = 'absolute';
	gameover.img.style.opacity = 0;
	gameover.img.style.zIndex = '42069';
	gameover.reposition = function (){
	gameover.img.style.left = Math.floor((ww-626)/2)+'px';
	gameover.img.style.top = Math.floor(Math.cos(gameover.fr/32)*4 + (hh - 200 - 144 - 88)/2)+'px';
}
/*var fbshare ={
}
;
	// 592 x 80fbshare.a = -.2;
	fbshare.fr = 0;
	fbshare.showing = false;
	fbshare.hiding = true;
	fbshare.img = loadGameImage('./src/wav/fbshare.png');
	fbshare.img.style.border = '0px';
	fbshare.img.style.cursor = 'pointer';
	fbshare.img.border = 0;
	fbshare.img.style.position = 'absolute';
	fbshare.img.style.display = 'none';
	fbshare.img.style.opacity = 0;
	fbshare.img.style.zIndex = '142069';
	fbshare.reposition = function (){
	fbshare.img.style.left = Math.floor((ww-592)/2)+'px';
	fbshare.img.style.top = Math.floor(Math.cos(fbshare.fr/12)*5 + (hh + 150 + 80 - 88)/2)+'px';
}
*/
/* www.datouwang.com */
/*fbshare.img.onclick = function (){
	FB.ui({
	method:'feed',link:'http://squishybird.com/',name:'Squishy Bird',picture:'http://squishybird.com/fbthumb.jpg',caption:'I hate that freakin\' bird so much...',description:'I scored '+points+' in Squishy Bird! Can you beat that?'}
,function(response){
}
);
}
*/
var playagain ={
}
;
	// 252x71 592 x 80playagain.a = -.2;
	playagain.fr = 0;
	playagain.showing = false;
	playagain.hiding = true;
	playagain.img = loadGameImage('./src/wav/playagain.png');
	playagain.img.style.border = '0px';
	playagain.img.style.cursor = 'pointer';
	playagain.img.border = 0;
	playagain.img.style.position = 'absolute';
	playagain.img.style.display = 'none';
	playagain.img.style.opacity = 0;
	playagain.img.style.zIndex = '142068';
	playagain.reposition = function (){
	playagain.img.style.left = Math.floor((ww-252)/2)+'px';
	playagain.img.style.top = Math.floor(Math.cos(playagain.fr/14)*5 + (hh + 320 + 71 - 88)/2)+'px';
}
playagain.img.onclick = function (){
	game.ended = false;
	poundPipes();
}
var c2s ={
}
;
	c2s.a = -1;
	c2s.showing = true;
	c2s.hiding = false;
	c2s.img = loadGameImage('./src/wav/clicktostart.png');
	// 337 x 75c2s.img.style.position = 'absolute';
	c2s.img.style.opacity = 0;
	c2s.img.style.zIndex = '42070';
	c2s.reposition = function (){
	c2s.img.style.left = Math.floor((ww-337)/2)+'px';
	c2s.img.style.top = Math.floor((hh + 250)/2)+'px';
}
var parody ={
}
;
	parody.div = document.createElement('div');
	parody.div.style.width = '800px';
	parody.div.style.height = '24px';
	parody.div.style.position = 'absolute';
	parody.div.style.textAlign = 'center';
	parody.div.style.fontFamily = 'Verdana';
	parody.div.style.fontSize = '12px';
	parody.div.style.zIndex = 87654;
	parody.div.innerHTML = '适用浏览器:360、FireFox、Chrome、Safari、Opera、傲游、搜狗、世界之窗. 不支持IE8及以下浏览器。来源:<a href="http://sc.chinaz.com/" target="_blank">站长素材</a>';
	var points = 0;
	var highscore = 0;
	var score ={
}
;
	score.divs = [];
	for (var xx = -3;
	xx <= 3;
	xx++){
	for (var yy = -3;
	yy <= 3;
	yy++){
	var div = document.createElement('div');
	score.divs.push(div);
	div.style.width = '300px';
	div.style.height = '50px';
	div.style.position = 'absolute';
	div.style.textAlign = 'center';
	div.style.fontFamily = 'Verdana';
	div.style.fontWeight = 'bold';
	div.style.fontSize = '30px';
	div.style.color = '#000000';
	div.style.zIndex = 88887;
	div.style['user-select'] = 'none';
	div.style['-webkit-user-select'] = 'none';
	div.style['-moz-user-select'] = 'none';
	div.style['-ms-user-select'] = 'none';
	div.style['-o-user-select'] = 'none';
	/* -webkit-user-select:none;
	// Chrome/Safari -moz-user-select:none;
	// Firefox -ms-user-select:none;
	// IE10+ // Rules below not implemented in browsers yet -o-user-select:none;
	user-select:none;
	*/
 if (xx == 0 && yy == 0){
	div.style.color = '#FFFFFF';
	div.style.zIndex = 88888;
}
div.innerHTML = '';
}
}
score.update = function (){
	for (var i = score.divs.length-1;
	i>=0;
	i--){
	score.divs[i].innerHTML = points;
}
}
var ground ={
}
;
	ground.canvas = document.createElement('canvas');
	ground.canvas.style.position = 'absolute';
	ground.canvas.style.zIndex = '31337';
	ground.ctx = ground.canvas.getContext('2d');
	ground.bit = loadGameImage('./src/wav/ground.png');
	var city ={
}
;
	city.canvas = document.createElement('canvas');
	city.canvas.style.position = 'absolute';
	city.canvas.style.zIndex = '60';
	city.ctx = city.canvas.getContext('2d');
	city.bit = loadGameImage('./src/wav/city.png');
	var trees ={
}
;
	trees.canvas = document.createElement('canvas');
	trees.canvas.style.position = 'absolute';
	trees.canvas.style.zIndex = '61';
	trees.ctx = trees.canvas.getContext('2d');
	trees.bit = loadGameImage('./src/wav/trees.png');
	var birds = [];
	var dead_birds = [];
	var newBird = function (){
	var bird ={
}
;
	bird.cw = 150;
	bird.ch = 150;
	bird.ww = 85;
	bird.hh = 60;
	bird.xx = -200 - Math.random()*360;
	bird.yy = 0 - Math.random() * 280;
	bird.svx = 3 + Math.random()*2 + Math.pow((100 - nbfr)/20,2);
	bird.vx = bird.svx;
	bird.vy = -13 - Math.random()*13;
	bird.vr = 0;
	bird.ar = 0;
	bird.ang = 0;
	bird.fr = 0;
	bird.anger = 0;
	bird.anger_fr = 0;
	bird.dying = false;
	bird.dead = false;
	bird.invincible = 0;
	// if greater than 0,counts down per frame until 0 again bird.canvas = document.createElement('canvas');
	game.div.appendChild(bird.canvas);
	bird.canvas.width = bird.cw;
	bird.canvas.height = bird.ch;
	bird.canvas.style.zIndex = '69';
	bird.canvas.style.position = 'absolute';
	bird.ctx = bird.canvas.getContext('2d');
	birds.push(bird);
}
var blood_image = loadGameImage('./src/wav/blood.png');
	var bloods = [];
	var newBlood = function (){
	var blood ={
}
;
	blood.ww = 325*4;
	blood.hh = 138*4;
	blood.fr = 0;
	blood.canvas = document.createElement('canvas');
	game.div.appendChild(blood.canvas);
	blood.canvas.width = blood.ww;
	blood.canvas.height = blood.hh;
	blood.canvas.style.zIndex = '70';
	blood.canvas.style.position = 'absolute';
	repositionBlood(blood);
	blood.ctx = blood.canvas.getContext('2d');
	bloods.push(blood);
}
var repositionBlood = function (blood){
	blood.canvas.style.left = (pipe_x + 148/2 - (325*4/2))+'px';
	blood.canvas.style.top = (pipe_center - 32)+'px';
}
var pipe1 ={
}
;
	pipe1.img = loadGameImage('./src/wav/pipe1.png');
	pipe1.img.width = 148;
	pipe1.img.height = 1664;
	pipe1.img.style.position = 'absolute';
	pipe1.img.style.left = '340px';
	pipe1.img.style.top = '0px';
	pipe1.img.style.zIndex = '420';
	var pipe2 ={
}
;
	pipe2.img = loadGameImage('./src/wav/pipe2.png');
	pipe2.img.width = 148;
	pipe2.img.height = 1664;
	pipe2.img.style.position = 'absolute';
	pipe2.img.style.left = '340px';
	pipe2.img.style.top = '0px';
	pipe2.img.style.zIndex = '420';
	var nbfr = 100;
	var fnbfr = 100;
	var fr = 0;
	var ltm = 0;
	var oef = function (){
	if (game_loaded){
	var ftm = new Date().getTime();
	var tm;
	var tj = 0;
	while (ltm < ftm){
	ltm += 20;
	tj++;
	if (tj > 10){
	// we're way too many frames behind. just give up. ltm = ftm;
	break;
}
if (game.started){
	fr++;
	if ((fr % fnbfr) == 1){
	newBird();
	if (nbfr > 13){
	nbfr = (nbfr - 13)*.996 + 13;
	//nbfr -= (101 - nbfr) * .1;
	//console.log(nbfr);
	fnbfr = Math.ceil(nbfr);
}
}
}
if (want_pound){
	want_pound = !poundPipes();
}
/* for (var i = sounds_playing.length-1;
	i>=0;
	i--){
	var ch = sounds_playing[i];
	if (ch.sound.currentTime > (ch.sound.duration - 1)){
	ch.sound.currentTime = 1;
	ch.sound.pause();
	ch.can_play = true;
}
}
*/
 if (logo.showing){
	logo.a += .03;
	if (logo.a >= 1){
	logo.a = 1;
	logo.showing = false;
}
logo.img.style.opacity = logo.a;
}
if (logo.hiding){
	logo.a -= .1;
	if (logo.a <= 0){
	logo.a = 0;
	logo.hiding = false;
}
logo.img.style.opacity = logo.a;
}
if (logo.a > 0){
	logo.fr++;
	logo.reposition();
}
if (logo.a > .01){
	if (!logo.visible){
	logo.visible = true;
	logo.img.style.display = 'inline';
}
}
else{
	if (logo.visible){
	logo.visible = false;
	logo.img.style.display = 'none';
}
}
if (gameover.showing){
	gameover.a += .03;
	if (gameover.a >= 1){
	gameover.a = 1;
	gameover.showing = false;
}
gameover.img.style.opacity = gameover.a;
}
if (gameover.hiding){
	gameover.a -= .1;
	if (gameover.a <= 0){
	gameover.a = 0;
	gameover.hiding = false;
}
gameover.img.style.opacity = gameover.a;
}
if (gameover.a > 0){
	gameover.fr++;
	gameover.reposition();
}
if (gameover.a > .01){
	if (!gameover.visible){
	gameover.visible = true;
	gameover.img.style.display = 'inline';
}
}
else{
	if (gameover.visible){
	gameover.visible = false;
	gameover.img.style.display = 'none';
}
}
/* if (fbshare.showing){
	fbshare.a += .03;
	if (fbshare.a >= 1){
	fbshare.a = 1;
	fbshare.showing = false;
}
fbshare.img.style.opacity = fbshare.a;
}
if (fbshare.hiding){
	fbshare.a -= .1;
	if (fbshare.a <= 0){
	fbshare.a = 0;
	fbshare.hiding = false;
}
fbshare.img.style.opacity = fbshare.a;
}
if (fbshare.a > 0){
	fbshare.fr++;
	fbshare.reposition();
}
if (fbshare.a > .01){
	if (!fbshare.visible){
	fbshare.visible = true;
	fbshare.img.style.display = 'inline';
}
}
else{
	if (fbshare.visible){
	fbshare.visible = false;
	fbshare.img.style.display = 'none';
}
}
*/
 if (playagain.showing){
	playagain.a += .03;
	if (playagain.a >= 1){
	playagain.a = 1;
	playagain.showing = false;
}
playagain.img.style.opacity = playagain.a;
}
if (playagain.hiding){
	playagain.a -= .1;
	if (playagain.a <= 0){
	playagain.a = 0;
	playagain.hiding = false;
}
playagain.img.style.opacity = playagain.a;
}
if (playagain.a > 0){
	playagain.fr++;
	playagain.reposition();
}
if (playagain.a > .01){
	if (!playagain.visible){
	playagain.visible = true;
	playagain.img.style.display = 'inline';
}
}
else{
	if (playagain.visible){
	playagain.visible = false;
	playagain.img.style.display = 'none';
}
}
if (c2s.showing){
	c2s.a += .03;
	if (c2s.a >= 1){
	c2s.a = 1;
	c2s.showing = false;
}
c2s.img.style.opacity = c2s.a;
}
if (c2s.hiding){
	c2s.a -= .1;
	if (c2s.a <= 0){
	c2s.a = 0;
	c2s.hiding = false;
}
c2s.img.style.opacity = c2s.a;
}
if (c2s.a > .01){
	if (!c2s.visible){
	c2s.visible = true;
	c2s.img.style.display = 'inline';
}
}
else{
	if (c2s.visible){
	c2s.visible = false;
	c2s.img.style.display = 'none';
}
}
if (clanging >= 0){
	clanging--;
	pipe1.img.style.left = (pipe_x + Math.cos(fr*Math.PI)*3)+'px';
	pipe2.img.style.left = (pipe_x + Math.cos(fr*Math.PI)*3)+'px';
}
pipe1.img.style.top = (pipe_center - 1664 - pipe_gap/2)+'px';
	pipe2.img.style.top = (pipe_center + pipe_gap/2)+'px';
	if (pipe_opening >= 0){
	pipe_opening++;
	if (pipe_opening >= 15){
	pipe_opening = -1;
}
}
var kill_combo = 0;
	var new_points = 0;
	var kicked = 0;
	if (pipe_closing >= 0){
	pipe_gap -= 50;
	if (pipe_gap <= -3){
	pipe_gap = -3;
	pipe_closing++;
	if (pipe_closing >= 5){
	pipe_closing = -1;
	pipe_opening = 0;
}
var wnb = false;
	for (var i = birds.length-1;
	i>=0;
	i--){
	var bird = birds[i];
	if (bird.invincible == 0){
	if (bird.dying){
	if (bird.xx <= (pipe_x+10)){
	bird.invincible = 5;
	// ensures there isn't a double-kick anomaly bird.vx = -10 - Math.random()*20 - bird.anger*8;
	bird.vy = 0;
	bird.ar = Math.random()*6 - 3;
	bird.dying = false;
	kicks[Math.min(bird.anger,4)].play();
	bird.anger++;
	kicked++;
}
else if (bird.xx >= (pipe_x + 148 -10)){
	bird.vx = 10 + Math.random()*20;
	bird.vy = 0;
	bird.ar = Math.random()*6 - 3;
	bird.dying = false;
	bird.anger++;
}
else{
	bird.dead = true;
	wnb = true;
	new_points += 1 + bird.anger;
	kill_combo++;
	score.update();
}
}
}
}
if (pipe_closing == 1){
	if (kill_combo == 0){
	if (kicked == 0){
	clang.play();
	clanging = 12;
}
}
}
if (wnb){
	newBlood();
}
}
}
else{
	pipe_gap += (bottom_pipe_gap - pipe_gap) * .15;
}
if (new_points > 0){
	new_points *= kill_combo;
	new_points = Math.pow(new_points,2);
	if (new_points == 0){
}
else if (new_points == 1){
	coin1.play();
}
else if (new_points < 8){
	coin2.play();
}
else if (new_points < 50){
	coin3.play();
}
else{
	coin4.play();
}
points += new_points;
	score.update();
}
if (new_points > 0){
	squishes[Math.floor(Math.random()*squishes.length)].play();
}
for (var i = bloods.length-1;
	i>=0;
	i--){
	var blood = bloods[i];
	var bctx = blood.ctx;
	bctx.clearRect(0,0,blood.ww,blood.hh);
	var tx = Math.floor(blood.fr)%5;
	var ty = (Math.floor(blood.fr) - tx)/5;
	bctx.drawImage(blood_image,tx*325,ty*138,325,138,0,0,325*4,138*4);
	blood.fr += 1;
	if (blood.fr >= 30){
	game.div.removeChild(blood.canvas);
	bloods.splice(i,1);
}
}
if (game.started){
	for (var i = birds.length-1;
	i>=0;
	i--){
	var bird = birds[i];
	var bctx = bird.ctx;
	if (bird.invincible > 0){
	bird.invincible--;
}
bctx.save();
	bctx.clearRect(0,0,bird.cw,bird.ch);
	bctx.translate(bird.cw/2,bird.ch/2);
	if (!bird.dying){
	bird.vr += bird.ar;
	bird.vr *= .8;
	bird.ar *= .95;
	var ang = 0;
	if (bird.vy > 11) ang = Math.atan2(bird.vy,bird.vx) * Math.max(0,Math.min(1,.1 * (bird.vy - 11)));
	bctx.rotate(-.4 + ang + bird.vr);
}
bird.fr += .4;
	bird.fr %= bird_images.length;
	var bfr = Math.floor(bird.fr);
	bctx.drawImage(bird_images[bfr].img,0,0,bird.ww,bird.hh,-bird.ww/2 + 10,-bird.hh/2,bird.ww,bird.hh);
	if (bird.anger > 0){
	bird.anger_fr += bird.anger/8;
	bctx.globalAlpha = .5 * (1 - Math.cos(bird.anger_fr)) * Math.min(1,bird.anger/3);
	bctx.drawImage(angry_bird_images[bfr].img,0,0,bird.ww,bird.hh,-bird.ww/2 + 10,-bird.hh/2,bird.ww,bird.hh);
}
bctx.restore();
	bird.canvas.style.left = (bird.xx - bird.cw/2)+'px';
	bird.canvas.style.top = (pipe_center + bird.yy - bird.ch/2)+'px';
	if (bird.dying){
	if (bird.stuck_side == 1){
	bird.yy = pipe_gap/2 - 30;
}
else{
	bird.yy = 30 - pipe_gap/2;
}
}
else{
	if (bird.vx < bird.svx){
	bird.vx++;
	if (bird.vx >= bird.svx){
	bird.vx = bird.svx;
}
}
else if (bird.vx > bird.svx){
	bird.vx--;
	if (bird.vx <= bird.svx){
	bird.vx = bird.svx;
}
}
bird.xx += bird.vx + bird.anger*1.5;
	bird.yy += bird.vy;
	bird.vy += .6;
	if (bird.yy > (bottom_pipe_gap/2 - 40)){
	bird.yy = bottom_pipe_gap/2 - 41;
	bird.vy = -8 - Math.random()*6;
	flap.play();
}
if (pipe_closing != -1){
	if (bird.xx >= (pipe_x-40)){
	if (bird.xx <= (pipe_x + 148 +30)){
	//if (Math.abs(bird.yy) < (pipe_gap/2 + 20)){
	if (bird.invincible == 0){
	bird.dying = true;
	if (bird.yy > 0){
	bird.stuck_side = 1;
}
else{
	bird.stuck_side = 2;
}
}
//}
}
}
}
else{
	// pipe might be opening from last close if (!bird.dying){
	// bird might be overlapping a pipe but won't be killed so must fly away instead if (bird.xx >= (pipe_x-40)){
	if (bird.xx <= (pipe_x + 148 +30)){
	if (Math.abs(bird.yy) > (pipe_gap/2 + 20)){
	bird.vx = -10 - Math.random()*20 - bird.anger*8;
	bird.vy = 0;
	bird.ar = Math.random()*6 - 3;
	kicks[Math.min(bird.anger,4)].play();
	bird.anger++;
}
}
}
}
}
}
if (bird.xx > (pipe_x + 148 + 200)){
	game.started = false;
	game.ended = true;
	gameover.hiding = false;
	gameover.showing = true;
	/* fbshare.hiding = false;
	fbshare.showing = true;
	*/
 playagain.hiding = false;
	playagain.showing = true;
	if (points > highscore){
	highscore = points;
}
}
if (bird.dead || (bird.xx > (ww + 311))){
	bird.canvas.width = 1;
	bird.canvas.height = 1;
	game.div.removeChild(bird.canvas);
	birds.splice(i,1);
}
}
}
}
}
raf(oef);
}
window.onresize = function (){
	resize();
}
附件:下载该文件资源,减少时间成本(增值服务)
留言
该资源可下载
File Source
.rar
830.34 KB
html5特效
最新结算
jquery虚拟键盘中文打字效果js代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
jquery虚拟键盘中文打字效果js代码
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
HTML5实现CSS滤镜图片切换特效代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
jQuery头像裁剪插件cropbox js代码
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
jQuery头像裁剪插件cropbox js代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
jQuery+css3实现信封效果
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
我们力求给您提供有用的文章,再此基础上,会附加营收资源,不做任何广告,让平台可以更好发展 若您发现您的权利被侵害,或使用了您的版权,请发邮件联系 sunlifel@foxmail.com ggbig觉得 : 不提供源码的文章不是好文章
合作伙伴
联系我们
  • QQ:21499807
  • 邮箱:sunlifel@foxmail.com
  • QQ扫一扫加QQ
    QQ扫一扫
Copyright 2023-2024 ggbig.com·皖ICP备2023004211号-1
打赏文章