蘑菇与熊游戏开发第二回(让蘑菇动起来)

上回分析了游戏,在这一回我们将让蘑菇跟随鼠标动起来~

达到这个效果:http://www.html5china.com/html5games/mogu/index1.html

一、写html代码

 
 
 
  1.          
  2.              
  3.                  
  4.                  
  5.     
         
  •     
  • 用ID为container 的DIV来获取鼠标移动画面的事件

    canvas用来绘图

    二、定义全局变量

     
     
     
    1. //全局变量             
    2. var backgroundForestImg = new Image();//森林背景图             
    3. var mushroomImg = new Image();//蘑菇图             
    4. var ctx;//2d画布             
    5. var screenWidth;//画布宽度             
    6. var screenHeight;//画布高度    

    赋予全局变量值

     
     
     
    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

    所以我们定义一个公用的游戏物体

     
     
     
    1. //公用 定义一个游戏物体戏对象          
    2. function GameObject()          
    3. {          
    4.     this.x = 0;//x 坐标         
    5.     this.y = 0;//y 坐标         
    6.     this.image = null; //图片         
    7. }        

    为了方便拓展,定义一个公用的蘑菇

     
     
     
    1. //定义公用蘑菇Mushroom 继承游戏对象GameObject          
    2. function Mushroom() {};          
    3. Mushroom.prototype = new GameObject();//游戏对象GameObject    

    定义一个我们使用到的具体蘑菇

     
     
     
    1. //蘑菇实例          
    2. var mushroom = new Mushroom();      

    初始化蘑菇的位置和图片

     
     
     
    1. mushroom.image = mushroomImg;             
    2. mushroom.x = parseInt(screenWidth/2);             
    3. mushroom.y = screenHeight - 40;      

    四、用canvas把蘑菇绘制出来

     
     
     
    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.     }       

    好了,到这里蘑菇也定义了,背景图也定义了,绘图也定义了,下面就开始整合上面的代码写一个完整的把蘑菇和背景描述在画布上

     
     
     
    1.      
    2.      
    3.      
    4.      
    5. 蘑菇动起来-html5中文网     
    6.    
    7.      
    8.      
    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();      
    30.     //循环描绘物体      
    31.     function gameLoop()      
    32.     {      
    33.         //清除屏幕      
    34.         ctx.clearRect(0, 0, screenWidth, screenHeight);      
    35.         ctx.save();      
    36.         //绘制背景      
    37.         ctx.drawImage(backgroundForestImg, 0, 0);      
    38.         //绘制蘑菇      
    39.         ctx.drawImage(mushroom.image, mushroom.x, mushroom.y);      
    40.         ctx.restore();      
    41.         }      
    42.     //加载图片      
    43.     function loadImages()      
    44.     {      
    45.         mushroomImg.src = "images/mushroom.png";//蘑菇      
    46.         backgroundForestImg.src = "images/forest1.jpg";//森林背景图      
    47.     }         
    48.     //初始化      
    49.     $(window).ready(function(){       
    50.         loadImages();              
    51.         ctx = document.getElementById('canvas').getContext('2d'); //获取2d画布         
    52.         screenWidth = parseInt($("#canvas").attr("width")); //画布宽度    
    53.         screenHeight = parseInt($("#canvas").attr("height"));      
    54.         mushroom.image = mushroomImg;      
    55.         mushroom.x = parseInt(screenWidth/2);// 蘑菇X坐标     
    56.         mushroom.y = screenHeight - 40;//蘑菇Y坐标       
    57.         setInterval(gameLoop, 10);      
    58.     });      
    59.     
    60.      
    61.      
    62.      
    63.      
    64.      
    65.          
    66.              
    67.              
    68.     
         
  •             
  •     
  • 蘑菇图片下载地址: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轴坐标

     
     
     
    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();就可以了,如下

     
     
     
    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. });    

    你再运行代码试下,是不是蘑菇跟着鼠标动起来了~

    第二回就讲到这了,第三回讲怎么绘制一只熊并让他滚动起来~

    网页标题:蘑菇与熊游戏开发第二回(让蘑菇动起来)
    当前地址:http://www.csdahua.cn/qtweb/news8/317708.html

    网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

    广告

    声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网

    成都快上网为您推荐相关内容

    微信小程序知识

    行业网站建设