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

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>
结果如图所示:(背景图片是运动的)

				
时间: 2024-10-06 02:26:57

canvas 做一个小鸟运动的小游戏 (第一步)的相关文章

做一个略调皮的个人主页--游戏篇

最近严重加班,非常严重··· 万恶的discuz啊,还有万恶的环境问题,死了算了. 这个应该是这个系列最后一篇啦,之后我会做另一个想法.主要是用来查看文章的一个主页,期间发些自己觉得好玩的东西出来. 这一篇主要介绍一下我做的一个flappy bird.由于是自己js手写的,效率肯定不高,就当拿来玩的罢.浏览器不好回很卡哦. 效果演示在这里: flappy bird 首先闭一个包,在里面写个向外接口: ..... 然后分步骤去实现这个东西. 第一步,是解决自由落体,这个我们借用一下google在某

一个投骰子的小游戏

下午学着做了一个掷骰子的小游戏,感觉比较好玩.用到了自定义函数,循环和选择等知识. 还有刚开始做的时候一个简单版(第1个小板凳) 原文地址:https://www.cnblogs.com/wentian24/p/9280747.html

java编程的一个猜数字有趣小游戏

import javax.swing.Icon; import javax.swing.JOptionPane; public class ai { /** * @param args */ public static void main(String[] args) { Icon icon = null; boolean bl = false; int put = 0; int c = (int) (((Math.random())*100)+1); //获取一个1-100的随机数 Syste

【Bugly干货分享】一起用 HTML5 Canvas 做一个简单又骚气的粒子引擎

Bugly 技术干货系列内容主要涉及移动开发方向,是由Bugly邀请腾讯内部各位技术大咖,通过日常工作经验的总结以及感悟撰写而成,内容均属原创,转载请标明出处. 前言 好吧,说是“粒子引擎”还是大言不惭而标题党了,离真正的粒子引擎还有点远.废话少说,先看[demo],扫描后点击屏幕有惊喜哦… 本文将教会你做一个简单的canvas粒子制造器(下称引擎). 世界观 这个简单的引擎里需要有三种元素:世界(World).发射器(Launcher).粒子(Grain).总得来说就是:发射器存在于世界之中,

【菜鸟教程】小白接触白鹭引擎4天,成功做了一款足球小游戏

写在前面:随着越来越多的新人开始接触白鹭引擎,创作属于自己的游戏.考虑到初学者会遇到一些实际操作问题,我们近期整理推出"菜鸟"系列技术文档,以便更好的让这些开发者们快速上手,Egret大神们可以自动忽略此类内容. 本文的作者是白鹭技术支持"熊猫少女",看文的小伙伴们如果有问题可以来白鹭官方论坛与之交流. 正文如下: 在接触白鹭引擎的第四天,我摸索着用EUI做了一个小游戏.可能游戏逻辑比较简单,使用的知识点也比较基础,今天与大家分享交流,请大神勿喷,不吝指点.我的小游

做一个简单的贪吃蛇游戏

这是一个贪吃蛇游戏,你可以忽略他的外表,好了,先上html代码 <style type="text/css"> * {margin: 0;padding: 0;} #container {width: 1000px;height: 550px;border: 1px solid #000;margin: 0 auto;} #container #ground {width: 1000px;height: 500px;background-color:#eeeeee;posi

用HTML5 Canvas做一个画图板

使用HTML5可以非常简单地在canvas上实现画图应用,用支持html5的浏览器便可在下面的区域进行绘画,要看到演示效果,请确保你的浏览器支持HTML5: 功能很简单,原理其实和拖放是类似的,主要是三个事件: 在canvas 上绑定mousedown 事件以标志绘画的开始(调用moveTo 移动画笔)澳门娱乐场 在document 上绑定mousemove 事件来处理绘画时的行为(调用lineTo 以及stroke 进行绘画) 在document 上绑定mouseup 事件以标志绘画的结束(解

在网上看到一个很有趣的小游戏

<html> <title>猜数字</title> <body> <center><h2>猜数字</h2></center> <hr> <script> var target=36; var number=0; do{ number=window.prompt("输入数字",number); if(number==null || number==target) bre

用canvas 做一个钟表

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <style> *{ margin: 0; padding: 0; list-style: none; } #box{ width: 420px; margin: 50px auto 0; } #cav{ backg