返回顶部
首页 > 资讯 > 精选 >JavaScript面向对象怎么实现贪吃蛇游戏
  • 112
分享到

JavaScript面向对象怎么实现贪吃蛇游戏

2023-06-30 03:06:43 112人浏览 泡泡鱼
摘要

本篇内容介绍了“javascript面向对象怎么实现贪吃蛇游戏”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1 工具对象(Tools.js)

本篇内容介绍了“javascript面向对象怎么实现贪吃蛇游戏”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

1 工具对象(Tools.js)

因为要随机生成食物,所以先将生成min-max范围内随机整数的方法提取出来。randomNum属性就是生成的随机数。

function Tools(min,max){    min = Math.ceil(min);    max = Math.floor(max);    this.randomNum=Math.floor(Math.random() * (max - min + 1)) + min; //含最大值,含最小值}

2 食物对象(Food.js)

//为避免命名冲突,使用自调用函数(function(){    var foodDivs=[];  //1 定义食物对象  function Food(options){      options=options||{};//封装属性的对象      this.backgroundColor=options.backgroundColor||'green';      this.width=options.width||20;      this.height=options.height||20;      this.x=options.x||0;      this.y=options.y||0;  }  //2 渲染到map上  Food.prototype.render=function(map){      removeFood();      var div=document.createElement('div');      this.x=new Tools(0,map.offsetWidth/this.width-1).randomNum;      this.y=new Tools(0,map.offsetHeight/this.height-1).randomNum;      div.style.width=this.width+'px';      div.style.height=this.height+'px';      div.style.backgroundColor=this.backgroundColor;      div.style.left=this.x*this.width+'px';      div.style.top=this.y*this.height+'px';      div.style.position = 'absolute';      map.appendChild(div);      foodDivs.push(div);  }  function removeFood(){    for(var i=foodDivs.length-1;i>=0;i--){        foodDivs[i].parentnode.removeChild(foodDivs[i]);//先从页面删除        foodDivs.splice(i,1);//删除指定位置元素  //再从数组实际删除    }  }  window.Food=Food;//暴露Food,外部才能访问})();

3 蛇对象(Snake.js)

(function(){    var snakeDivs=[];    //1 蛇构造函数    function Snake(options){        options=options||{};        this.body=[            {x:3,y:2,bGC:'red'},            {x:2,y:2,bgc:'blue'},            {x:1,y:2,bgc:'blue'}        ];        this.width=options.width||20;        this.height=options.height||20;              this.direction=options.direction||'right';          }    //2 渲染到map上    Snake.prototype.render=function(map){        removeSnake();        for(var i=0;i<this.body.length;i++){            var block=this.body[i];            var div=document.createElement('div');            div.style.width=this.width+'px';            div.style.height=this.height+'px';            div.style.backgroundColor=block.bgc;            div.style.left=block.x*this.width+'px';            div.style.top=block.y*this.height+'px';            div.style.position = 'absolute';            map.appendChild(div);            snakeDivs.push(div);//添加蛇divs        }    }    //3 蛇的移动    Snake.prototype.move=function(food,map){        //逻辑上从后往前 先蛇身再蛇头        //蛇身每一节替换上次的位置        for(var i=this.body.length-1;i>0;i--){            this.body[i].x=this.body[i-1].x;            this.body[i].y=this.body[i-1].y;        }        //蛇头移动        var head=this.body[0];        switch(this.direction){              case 'left':              head.x-=1;              break;              case 'up':              head.y-=1;              break;              case 'right':              head.x+=1;              break;              case 'down':              head.y+=1;              break;        }        if(head.x===food.x&&head.y===food.y){//蛇头与食物重合            var last=this.body[this.body.length-1];            this.body.push({                x:last.x,                y:last.y,                bgc:last.bgc            });              food.render(map);//这里就包括移除前面的食物这一操作                   }            }    function removeSnake(){       for(var i=snakeDivs.length-1;i>=0;i--){           snakeDivs[i].parentNode.removeChild(snakeDivs[i]);//先从页面删除           snakeDivs.splice(i,1);//删除指定位置元素  //再从数组实际删除       }    }    window.Snake=Snake;})();

4 游戏对象(Game.js)

主要是控制游戏的开始,以及按键对应的行为在游戏中的含义,将蛇和食物这两个对象组织在一起。

 (function(){var that; function Game(){     this.food=new Food();     this.snake=new Snake();     that=this; } Game.prototype.start=function(map){    this.snake.render(map);    this.food.render(map);    var head=this.snake.body[0];    var span=document.getElementById('tag');    var timerId=setInterval(function(){       that.snake.move(that.food,map);       that.snake.render(map);       if((head.x>map.offsetWidth/that.snake.width-2)||head.x<=0){         clearInterval(timerId);         span.style.display='block';//提示Game Over       }       if((head.y>map.offsetHeight/that.snake.height-2)||head.y<=0){        clearInterval(timerId);        span.style.display='block';//提示Game Over      }    },150);      console.log(map.offsetWidth/this.snake.width-1);    bindKey();}function bindKey(){    document.addEventListener('keydown',function(e){        switch(e.keyCode){//left 37 up 38 right 39 down 40            case 37:            that.snake.direction='left';            break;            case 38:            that.snake.direction='up';            break;            case 39:            that.snake.direction='right';            break;            case 40:            that.snake.direction='down';            break;        }    });}window.Game=Game;})()var Game=new Game();var map=document.getElementById('map');Game.start(map);

5 index.html

显示的html页面

<!DOCTYPE html><html><head>    <meta charset="utf-8" />    <meta Http-equiv="X-UA-Compatible" content="IE=edge">    <title>Page Title</title>    <meta name="viewport" content="width=device-width, initial-scale=1">    <style>    #map{        background-color: lightgray;        width: 800px;        height: 500px;        margin: 0 auto;        position: relative;    }    #tag{    width: 200px;    height: 100px;    background-color: gray;    position: absolute;    left:300px;    top:200px;    line-height: 100px;    text-align: center;    display: none;    }    </style></head><body>    <div id='map'>        <span id='tag'>Game Over</span>    </div>    <script src="js/Tools.js"></script>    <script src="js/Food.js"></script>    <script src="js/Snake.js"></script>    <script src="js/Game.js"></script></body></html>

6 运行界面

JavaScript面向对象怎么实现贪吃蛇游戏

“JavaScript面向对象怎么实现贪吃蛇游戏”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: JavaScript面向对象怎么实现贪吃蛇游戏

本文链接: https://lsjlt.com/news/327255.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • JavaScript面向对象实现贪吃蛇游戏
    本文实例为大家分享了面向对象的贪吃蛇实现代码,供大家参考,具体内容如下 1 工具对象(Tools.js) 因为要随机生成食物,所以先将生成min-max范围内随机整数的方法提取出来。...
    99+
    2024-04-02
  • JavaScript面向对象怎么实现贪吃蛇游戏
    本篇内容介绍了“JavaScript面向对象怎么实现贪吃蛇游戏”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1 工具对象(Tools.js)...
    99+
    2023-06-30
  • JavaScript实现贪吃蛇游戏
    本文实例为大家分享了JavaScript实现贪吃蛇游戏的具体代码,供大家参考,具体内容如下 通过JavaScript,我们可以实现贪吃蛇游戏,具体功能如下: (1)通过按上下左右键来...
    99+
    2024-04-02
  • JS实战面向对象贪吃蛇小游戏示例
    目录思考一、贪吃蛇效果图二、贪吃蛇分析2.1 开始游戏功能2.2 运动功能2.2.1 蛇的不同方向的运动2.2.2 键盘控制方向运动功能2.3 吃食物功能2.3.1 食物的产生2.3...
    99+
    2024-04-02
  • JavaScript怎么实现网页贪吃蛇游戏
    小编给大家分享一下JavaScript怎么实现网页贪吃蛇游戏,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体内容如下<!DOCTYPE html...
    99+
    2023-06-20
  • JavaScript怎么实现精美贪吃蛇游戏
    本篇内容主要讲解“JavaScript怎么实现精美贪吃蛇游戏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript怎么实现精美贪吃蛇游戏”吧!话不多说,我们还是先来看看最后的呈现效果...
    99+
    2023-06-21
  • JavaScript实现经典贪吃蛇游戏
    本文实例为大家分享了JavaScript实现经典贪吃蛇游戏的具体代码,供大家参考,具体内容如下 主要使用单例模式,所有元素动态创建; 1.创建地图 var Map; fu...
    99+
    2024-04-02
  • JavaScript面向对象编程小游戏之贪吃蛇的示例分析
    这篇文章主要为大家展示了“JavaScript面向对象编程小游戏之贪吃蛇的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript面向对象编程...
    99+
    2024-04-02
  • HTML5怎么实现贪吃蛇游戏
    本篇内容主要讲解“HTML5怎么实现贪吃蛇游戏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“HTML5怎么实现贪吃蛇游戏”吧! &n...
    99+
    2024-04-02
  • python怎么实现贪吃蛇游戏
    要实现贪吃蛇游戏,可以使用Python中的pygame库来进行游戏界面的绘制和键盘事件的监听。以下是一个简单的贪吃蛇游戏的示例代码:...
    99+
    2023-08-09
    python
  • QT实现贪吃蛇游戏
    为了熟悉QT的相关知识,我用了大约8个小时的时间用QT再次写了一遍贪吃蛇。 因为QT的机制和平时写的程序流程不同,所以程序中可能没有遵守代码规范。 运行效果: 程序内除了实现贪吃蛇...
    99+
    2024-04-02
  • python实现贪吃蛇游戏
    文章目录 1、效果2、实现过程3、代码 1、效果 2、实现过程 导入 Pygame 和 random 模块。初始化 Pygame。设置游戏界面大小、背景颜色和游戏标题。定义颜色常量。...
    99+
    2023-09-29
    python 游戏 pygame
  • pygame实现贪吃蛇游戏
    本文实例为大家分享了pygame实现贪吃蛇游戏的具体代码,供大家参考,具体内容如下 为了简化起见,游戏素材暂定为两张简单的图片(文中用的是30*30)。大家很方便就能制作。 背景也...
    99+
    2024-04-02
  • Java实现贪吃蛇游戏
    下面是一个简单的Java实现贪吃蛇游戏的示例代码:```javaimport javax.swing.*;import java.a...
    99+
    2023-08-09
    Java
  • JavaScript实现网页版贪吃蛇游戏
    本文实例为大家分享了JavaScript实现网页贪吃蛇游戏的具体代码,供大家参考,具体内容如下 <!DOCTYPE html> <html> <he...
    99+
    2024-04-02
  • javascript实现贪吃蛇小游戏思路
    javascript小游戏贪吃蛇实现思路讲解(完整代码实现),供大家参考,具体内容如下 效果流程 1、首先我们要操作的canvas <!doctype html> &...
    99+
    2024-04-02
  • js怎么实现贪吃蛇小游戏
    这篇文章将为大家详细讲解有关js怎么实现贪吃蛇小游戏,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。示例代码<!DOCTYPE html> <h...
    99+
    2024-04-02
  • 怎么用html5实现贪吃蛇游戏
    这篇文章主要讲解了“怎么用html5实现贪吃蛇游戏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用html5实现贪吃蛇游戏”吧! ...
    99+
    2024-04-02
  • 怎么用C++实现贪吃蛇游戏
    这篇文章给大家分享的是有关怎么用C++实现贪吃蛇游戏的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1976年,Gremlin平台推出了一款经典街机游戏Blockade。游戏中,两名玩家分别控制一个角色在屏幕上移动...
    99+
    2023-06-25
  • Matlab怎么实现贪吃蛇小游戏
    小编给大家分享一下Matlab怎么实现贪吃蛇小游戏,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!补动图:没错这就有点类似贪吃蛇大作战里的蛇啦然后做出的改进包括:在...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作