码迷,mamicode.com
首页 > 其他好文 > 详细

canvas 做一个小鸟运动的小游戏 (第一步)

时间:2017-09-18 17:32:34      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:text   prototype   方法   const   piped   画布   htm   pipe   小游戏   

1. 首先有一个loadImage.js

    代码如下:

function loadImage(imgUrl,fn){
var imgObj = {};
var tempImg,load = 0, imgLength = 0;
for(var key in imgUrl){
imgLength++;
tempImg = new Image();
tempImg.onload = function () {
load++;
if( load >= imgLength){
fn( imgObj );
}
};

tempImg.src = imgUrl[key];
imgObj[key] = tempImg;
}
}

2. 使画布开始动起来,也就是背景图
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<canvas id="cvs" height="500" width="500"></canvas>
</body>
<script src="js/loadImage.js"></script>
<script>
var cvs = document.getElementById("cvs");
var ctx = cvs.getContext("2d");
function Sky( ctx, img, speed) {
//debugger;
this.ctx = ctx;
this.img = img;
this.speed = speed || 2;
/*创建一个实例,length就自增*/
Sky.len++;
console.log(Sky.len);
this.width = this.img.width;
//console.log(this.width);
this.height = this.img.height;
/*根据背景数量,动态计算起始的x轴坐标*/
this.x = this.width * ( Sky.len - 1 );
//console.log(this.x);
//this.x = 0;
this.y = 0;
}
/*sky实例默认的数量*/
Sky.len = 0;
/*给原型扩充方法*/
Sky.prototype = {
constructor: Sky,
draw: function () {
this.ctx.drawImage(this.img, this.x, this.y);
}
}
</script>
<script>
loadImage({
bird: ‘./images/bird.png‘,
land: ‘./images/land.png‘,
pipeDown: ‘./images/pipeDown.png‘,
pipeDown: ‘./images/pipeDown.png‘,
sky: ‘./images/sky.png‘
},function ( imgObj) {

/*根据背景的大小设置画布的大小*/
cvs.width = imgObj.sky.width;
cvs.height = imgObj.sky.height;

var sky = new Sky(ctx, imgObj.sky,10);
var sky2 = new Sky(ctx, imgObj.sky,10);
setInterval(function () {
sky.draw();
sky.x -= sky.speed;
//console.log(sky.x);
if( Math.abs(sky.x) >= sky.width){
sky.x += sky.width *2;
}
sky2.draw();
sky2.x -= sky2.speed;
if( Math.abs(sky2.x) >= sky2.width){
sky2.x += sky2.width *2;
}
},100);
})
</script>
</html>
结果如图所示:(背景图片是运动的)

技术分享




canvas 做一个小鸟运动的小游戏 (第一步)

标签:text   prototype   方法   const   piped   画布   htm   pipe   小游戏   

原文地址:http://www.cnblogs.com/huqinqin/p/7543757.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!