<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>游戏初始化界面</title><style>body {margin: 0;padding: 0;}#main {margin: 100px;}.btn {width: 100px;height: 40px;}</style>
</head><body><div id="main"><!-- 按钮 --><input class="btn" type="button" value="开始游戏" id="begin"><input class="btn" type="button" value="暂停游戏" id="pause"></div><!-- 贪吃蛇游戏设计 --><script>var main = document.getElementById('main');/* 画布格子是否开启 */var showcanvas = true;/* atom 原子大小 xnum横向原子数量 ynum纵向原子数量 */function Map(atom, xnum, ynum) {this.atom = atom;this.xnum = xnum;this.ynum = ynum;//声明画布this.canvas = null;//第二部分 创建画布方法this.create = function() {this.canvas = document.createElement('div');this.canvas.style.cssText = 'position:relative;top:40px;border:1px solid red;background:#FAFAFA';this.canvas.style.width = this.atom * this.xnum + 'px'; //画布的宽this.canvas.style.height = this.atom * this.ynum + 'px'; //画布的宽main.appendChild(this.canvas);if (showcanvas) {for (var x = 0; x < xnum; x++) {for (var y = 0; y < ynum; y++) {var a = document.createElement('div');a.style.cssText = "border:1px solid yellow";a.style.width = this.atom + 'px';a.style.height = this.atom + 'px';a.style.backgroundColor = 'green';this.canvas.appendChild(a);a.style.position = 'absolute';a.style.left = x * this.atom + 'px';a.style.top = y * this.atom + 'px';}}}}}var map = new Map(20, 40, 20);map.create();var food = new Food(map);/* 第三部分 创建食物 map地图对象 */function Food(map) {this.width = map.atom;this.height = map.atom;this.bgcolor = "rgb(" + Math.floor(Math.random() * 200) + "," + Math.floor(Math.random() * 200) + "," +Math.floor(Math.random() * 200) + ")"this.x = Math.floor(Math.random() * map.xnum);this.y = Math.floor(Math.random() * map.ynum);//画出食物this.flag = document.createElement('div');this.flag.style.width = this.width + 'px';this.flag.style.height = this.height + 'px';this.flag.style.backgroundColor = this.bgcolor;this.flag.style.borderRadius = '50%';this.flag.style.position = 'absolute';this.flag.style.left = this.x * this.width + 'px';this.flag.style.top = this.y * this.height + 'px';map.canvas.appendChild(this.flag);}var timer; //变量可以提升/* 第一部分 *//* 第一部分开始 */document.getElementById('begin').onclick = function() {clearInterval(timer);timer = setInterval(function() {}, 300)}/*第一部分 暂停 */document.getElementById('begin').onclick = function() {clearInterval(timer);timer = setInterval(function() {}, 300)}</script>
</body></html>

运行结果

前端学习(1679):前端系列实战课程之为蛇创建食物对象相关推荐

  1. 前端学习(1683):前端系列实战课程之让蛇吃食物变长

    <!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8" ...

  2. 前端学习(1682):前端系列实战课程之让蛇改变方向

    <!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8" ...

  3. 前端学习(1681):前端系列实战课程之让蛇动起来

    <!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8" ...

  4. 前端学习(1678):前端系列实战课程之声明和创建游戏地图

    <!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8" ...

  5. 前端学习(1676):前端系列实战课程之贪吃蛇游戏设计

  6. 2021年最新版Web前端学习路线图-前端小白入门必读-推荐

    2021年最新版Web前端学习路线图-前端小白入门必读-推荐 Hello,大家好,相信很多学习前端的小伙伴,会有很多的疑惑: 我要学习那些技术? 我要到哪里去学习这些技术呢? 学习这些技术的目的对就业 ...

  7. 网站首页实战教程html,Python实战课程1-1练习:创建一个网页

    最近在网易课堂上学习python的一个实战课程,正好简书也是我喜欢的一个平台,不妨在这里提交作业分享心得.第一个小练习是做一个简单的网页,最终呈现的效果如下: 下面开始吧! 1.创建html文件 将h ...

  8. web前端学习之前端重构方案,来了解一下

    前端技术发展很快,很多项目面临前端部分重构,很开心可以让我进行这次项目前端的重构方案编写,在思考的同时参考了网上很多资料,希望本篇重构方案有一定的完整性,可以带给大家一些在面临重构时有用的东西,同时希 ...

  9. 前端学习(1685):前端系列实战课程之设置难度

    <!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8" ...

最新文章

  1. Linux命令:文本处理工具awk详解
  2. 十分钟掌握多项式回归:非线性预测
  3. 13种老人不适合带孩子_这十三种老人不适宜带孩子,亲爹亲妈们慎重!
  4. uc/os内存管理的理解
  5. 面试文员计算机水平考题,一般电脑文员面试上机操作的时候会考什么?
  6. redis在linux下安装并測试(在spring下调用)
  7. MSF常用的监听模块命令
  8. HDOJ 2041 超级楼梯
  9. oracle 客户端监听文件配置
  10. 【FPGA】相关介绍
  11. java abstract类和abstract方法
  12. amazon云计算平台_腾讯云首次公开边缘计算网络开源平台,拥抱5G与万物互联
  13. 微服务模式下API测试
  14. 机器学习之决策树(数据分析师学习必备)——糖潮丽子的博客
  15. 小米刷机一直在android界面,小米手机变砖怎么办?(小白刷机记)卡在开机怎么办?界面进不去,重启不管用​...
  16. 分水岭 matlab代码,分水岭算法MATLAB编程代码解析
  17. 信奥日记——动态规划(动规初步)
  18. Javascript中四舍六入五成双
  19. SpringSecurity原理:探究SpringSecurity运作流程
  20. 路由算法之——ECMP算法的改进方向

热门文章

  1. NOIP2003提高组
  2. 值大于为此列指定的允许精度_电能质量测试精度会受到哪些因素影响?如何解决?...
  3. oracle model 分组,【已解决】关于Oracle分组函数高级用法(按照N条分组并生成唯一号)...
  4. linux系统死机窗口移动不了怎么办,Linux 操作系统死机故障处理方法总结
  5. php layout布局文件,layout(布局) - jQuery EasyUI中文文档 - EasyUI中文站
  6. glove中文词向量_Summary系列glove模型解读
  7. 如何利用echarts图表获取条状图点击名称和值
  8. WordPress PHP Fatal Error “Maximum execution time of 30 seconds exceeded” 的解决办法
  9. 【Jetson Nano学习笔记】4. python 3编译bridge
  10. vue Method 事件