`
wjlgryx
  • 浏览: 306881 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

html5 手把手教你做游戏《熊和蘑菇》(二)

阅读更多


上回分析了游戏,在这一回我们将让蘑菇跟随鼠标动起来~
达到这个效果:http://www.html5china.com/html5games/mogu/index1.html
一、写html代码
XML/HTML Code复制内容到剪贴板
1. <body>     
2.     <div id="container" style="border:1px solid; cursor:none; width:480px; height:320px;">     
3.         <canvas id="canvas" width="480" height="320" >     
4.         </canvas>     
5.     </div>     
6. </body> 
用ID为container 的DIV来获取鼠标移动画面的事件
canvas用来绘图
二、定义全局变量
JavaScript Code复制内容到剪贴板
1. //全局变量         
2. var backgroundForestImg = new Image();//森林背景图         
3. var mushroomImg = new Image();//蘑菇图         
4. var ctx;//2d画布         
5. var screenWidth;//画布宽度         
6. var screenHeight;//画布高度 
赋予全局变量值
JavaScript Code复制内容到剪贴板
1. mushroomImg.src = "images/mushroom.png";//蘑菇         
2. backgroundForestImg.src = "images/forest1.jpg";//森林背景图         
3. ctx = document.getElementById('canvas').getContext('2d');         
4. screenWidth = parseInt($("#canvas").attr("width"));         
5. screenHeight = parseInt($("#canvas").attr("height"));  
三、定义蘑菇实例
由于在画布上的物体全部都有3个共同的属性:x、y坐标,素材image
所以我们定义一个公用的游戏物体
JavaScript Code复制内容到剪贴板
1. //公用 定义一个游戏物体戏对象      
2. function GameObject()      
3. {      
4.     this.x = 0;//x 坐标     
5.     this.y = 0;//y 坐标     
6.     this.image = null; //图片     
7. }     
为了方便拓展,定义一个公用的蘑菇
JavaScript Code复制内容到剪贴板
1. //定义公用蘑菇Mushroom 继承游戏对象GameObject      
2. function Mushroom() {};      
3. Mushroom.prototype = new GameObject();//游戏对象GameObject 
定义一个我们使用到的具体蘑菇
JavaScript Code复制内容到剪贴板
1. //蘑菇实例      
2. var mushroom = new Mushroom();   
初始化蘑菇的位置和图片
JavaScript Code复制内容到剪贴板
1. mushroom.image = mushroomImg;         
2. mushroom.x = parseInt(screenWidth/2);         
3. mushroom.y = screenHeight - 40;   
四、用canvas把蘑菇绘制出来
JavaScript Code复制内容到剪贴板
1. //循环描绘物体      
2. function gameLoop()      
3. {      
4.     //清除屏幕      
5.     ctx.clearRect(0, 0, screenWidth, screenHeight);      
6.     ctx.save();      
7.     //绘制背景      
8.     ctx.drawImage(backgroundForestImg, 0, 0);      
9.     //绘制蘑菇      
10.     ctx.drawImage(mushroom.image, mushroom.x, mushroom.y);      
11.     ctx.restore();      
12.     }    
好了,到这里蘑菇也定义了,背景图也定义了,绘图也定义了,下面就开始整合上面的代码写一个完整的把蘑菇和背景描述在画布上
XML/HTML Code复制内容到剪贴板
1. <!DOCTYPE> 
2. <html> 
3. <head> 
4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
5. <title>蘑菇动起来-html5中文网</title> 
6. <!-- 要记得引用jquery-1.4.2.js -->
7. <script type="text/javascript" src="./js/jquery-1.4.2.js"></script> 
8. <script type="text/javascript" > 
9.     //全局变量  
10.     var backgroundForestImg = new Image();//森林背景图  
11.     var mushroomImg = new Image();//蘑菇  
12.     var ctx;//2d画布  
13.     var screenWidth;//画布宽度  
14.     var screenHeight;//画布高度  
15.       
16.     //公用 定义一个游戏物体戏对象  
17.     function GameObject()  
18.     {  
19.         this.x = 0;  
20.         this.y = 0;  
21.         this.image = null;  
22.     }  
23.       
24.     //定义蘑菇Mushroom 继承游戏对象GameObject  
25.     function Mushroom() {};  
26.     Mushroom.prototype = new GameObject();//游戏对象GameObject  
27.       
28.     //蘑菇实例  
29.     var mushroom = new Mushroom();   
o     //循环描绘物体  
o     function gameLoop()  
o     {  
o         //清除屏幕  
o         ctx.clearRect(0, 0, screenWidth, screenHeight);  
o         ctx.save();  
o         //绘制背景  
o         ctx.drawImage(backgroundForestImg, 0, 0);  
o         //绘制蘑菇  
o         ctx.drawImage(mushroom.image, mushroom.x, mushroom.y);  
o         ctx.restore();  
o         }  
o     //加载图片  
o     function loadImages()  
o     {  
o         mushroomImg.src = "images/mushroom.png";//蘑菇  
o         backgroundForestImg.src = "images/forest1.jpg";//森林背景图  
o     }     
o     //初始化  
o     $(window).ready(function(){   
o         loadImages();          
o         ctx = document.getElementById('canvas').getContext('2d'); //获取2d画布     
o         screenWidth = parseInt($("#canvas").attr("width")); //画布宽度
o         screenHeight = parseInt($("#canvas").attr("height"));  
o         mushroom.image = mushroomImg;  
o         mushroom.x = parseInt(screenWidth/2);// 蘑菇X坐标 
o         mushroom.y = screenHeight - 40;//蘑菇Y坐标   
o         setInterval(gameLoop, 10);  
o     });  
o
o  
o </script> 
o </head> 
o  
o <body> 
o     <div id="container" style="border:1px solid; cursor:none; width:480px; height:320px;"> 
o         <canvas id="canvas" width="480" height="320" > 
o         </canvas> 
o     </div> 
o        </body> 
o </html> 
蘑菇图片下载地址:http://www.html5china.com/html5games/mogu/images/mushroom.png
背景图片下载地址:http://www.html5china.com/html5games/mogu/images/forest1.jpg
你试着在支持html5的浏览器上运行上面代码试看~是不是蘑菇描绘出来了~
假如你能看到效果了,那祝贺你~你有了个很好的开端~
上面的步骤只是将蘑菇和场景绘出来了,那么接下来我们让他随鼠标动起来~
给DIV#container添加放上鼠标的事件
当鼠标放在DIV#container上面时,蘑菇的X轴坐标等与鼠标的X轴坐标
JavaScript Code复制内容到剪贴板
1. //事件处理  
2. function addEventHandlers()  
3. {  
4.     //鼠标移动则蘑菇跟着移动  
5.     $("#container").mousemove(function(e){  
6.         mushroom.x = e.pageX - (mushroom.image.width/2);  
7.     });   
8.       
9. } 
我们只要在刚才的演示代码中的 $(window).ready(function(){ }); 里面加上addEventHandlers();就可以了,如下
JavaScript Code复制内容到剪贴板
1. //初始化  
2. $(window).ready(function(){ 
3.     addEventHandlers();//加上事件
4.     loadImages();     
5.     ctx = document.getElementById('canvas').getContext('2d'); //获取2d画布     
6.     mushroom.image = mushroomImg;  
7.     screenWidth = parseInt($("#canvas").attr("width"));  
8.     screenHeight = parseInt($("#canvas").attr("height"));  
9.     mushroom.x = parseInt(screenWidth/2);  
10.     mushroom.y = screenHeight - 40;   
11.     setInterval(gameLoop, 10);  
12. }); 
你再运行代码试下,是不是蘑菇跟着鼠标动起来了~

分享到:
评论

相关推荐

    手把手教你学DSP:基于TMS320F28335

    手把手教你学DSP:基于TMS320F28335 手把手教你学DSP:基于TMS320F28335 手把手教你学DSP:基于TMS320F28335 手把手教你学DSP:基于TMS320F28335 手把手教你学DSP:基于TMS320F28335 手把手教你学DSP:基于TMS320F...

    003《老HRD手把手教你做绩效考核》.pdf

    003《老HRD手把手教你做绩效考核》.pdf

    手把手教你用C#制作RPG游戏

    《手把手教你用C#制作RPG游戏》是由罗培羽编著,海洋出版社于2014年5月出版的一本技术书籍,主要面向对游戏开发有兴趣,特别是想使用C#语言进行角色扮演游戏(RPG)开发的读者。本书通过详细的教学指导,帮助初学者...

    手把手教你学单片机(第二版) 周兴华.pdf

    手把手教你学单片机(第二版) 周兴华.pdf

    手把手教你用C#制作RPG游戏__罗培羽著

    《手把手教你用C#制作RPG游戏》是罗培羽撰写的一本深入浅出的IT书籍,专门针对想要学习如何使用C#编程语言开发角色扮演游戏(RPG)的读者。这本书详细介绍了从零开始构建RPG游戏的全过程,涵盖了C#的基础知识以及...

    《Qt5 PyQt 5实战指南-手把手教你掌握100个精彩案例》.rar

    《Qt5 PyQt 5实战指南—手把手教你掌握100个精彩案例》 《Qt5 PyQt 5实战指南—手把手教你掌握100个精彩案例》 《Qt5 PyQt 5实战指南—手把手教你掌握100个精彩案例》

    手把手教你学DSPPDF

    【标题】"手把手教你学DSPPDF"是一份针对数字信号处理(DSP)初学者的教程性PDF文档,旨在引领读者逐步掌握这一领域的基础知识。该文档可能包含了从理论概念到实际应用的全面讲解,适合那些希望踏入数字信号处理世界...

    手把手教你学28335

    手把手教你学28335PDF文档,看了这个确实和2812有了对比

    手把手教你用C#制作RPG游戏素材包.rar

    在本资源包“手把手教你用C#制作RPG游戏素材包.rar”中,你将找到一系列用于创建角色扮演游戏(RPG)的素材,这些素材主要适用于C#编程环境下的游戏开发。RPG游戏通常需要丰富的视觉和听觉元素来营造沉浸式的游戏体验...

    新手入门级html5游戏开发源码(蘑菇熊)

    本资源“新手入门级html5游戏开发源码(蘑菇熊)”是一个很好的起点,它提供了一系列逐步教程,帮助初学者理解游戏开发的核心概念。 首先,我们来看标题中的"蘑菇熊",这很可能是游戏的主题或主角,展示了如何设计...

    手把手教你学dsp2812,手把手教你学dsp2812pdf下载,C,C++

    《手把手教你学DSP2812》是一本专为初学者设计的 DSP(Digital Signal Processor)学习指南,主要围绕TI公司的TMS320F2812 DSP芯片进行讲解。这本书以其全面且易懂的特性,为读者提供了一个深入理解数字信号处理及其...

    教程手把手教你做问答系列答案.docx

    在本教程“手把手教你做问答系列”中,我们将深入探讨如何有效地进行问答系统的构建与优化。这个系列的目的是帮助初学者以及有一定经验的开发者掌握问答系统的核心技术和实践方法,从而能够创建出高质量的问答解决...

    《手把手教你学51单片机》教材pdf

    《手把手教你学51单片机》是一本专为初学者设计的嵌入式开发入门教程,旨在帮助读者从零开始掌握51单片机的基础知识和应用技能。51单片机是嵌入式系统中最基础且广泛应用的一类微控制器,广泛应用于智能家居、工业...

    手把手教你架构3D游戏引擎_姜雪伟_高清PDF扫描版

    本书主要介绍如何利用3D固定流水线编写游戏引擎,以及在已编写引擎的基础上开发游戏,全书共分10章,主要内容包括游戏引擎简介、数学知识、材质和光照、固定流水线、游戏引擎架构、3D引擎底层封装、3D引擎封装、游戏...

    手把手教你dsp28335,高清pdf

    手把手教你学DSP28335高清pdf文件,北京航空航天大学出版社

    手把手教你学单片机(第二版

    手把手教你学单片机(第二版),汇编版(清晰)。 51单片机入门的经典书籍。书中例子句句有注释。 比C语言更彻底的面向硬件,让人有直接与单片机对话的感觉。 UVZ文件,可有UnicornViewer打开。 UnicornViewer软件...

    手把手教你学DSP28335

    手把手教你学DSP28335,PDF格式,有助于随时随地可以学习知识。

    手把手教你用C#制作RPG游戏__罗培羽著_北京:海洋出版社_2014.05_P256_13532862和Unity3D游戏制作-两份资料

    手把手教你用C#制作RPG游戏__罗培羽著是一本很好的国内开发RPG游戏的书籍,可以教会读者如何学会C#做游戏,而Unity3D网络游戏实战游戏开发与设计技术丛书 是在C#基础上,利用Unity引擎开发网络实战游戏,这两本书...

    手把手教你学dsp

    手把手教你学dsp F2812 顾伟刚

    手把手教你架构3D游戏引擎

    《手把手教你架构3D游戏引擎》是一本深入探讨3D游戏引擎开发的书籍,作者姜雪伟通过详细的步骤和实例,旨在引导读者理解和构建自己的3D游戏引擎。该书内容涵盖3D图形学基础、固定流水线技术、游戏引擎架构设计等多个...

Global site tag (gtag.js) - Google Analytics