键码当今游戏:简易版贪吃蛇
时间:2024-01-30 12:19:41
anvas.width, canvas.height); // 迭代毒蛇的每个以外并所画它们 for(let i = 0; i snake.length; i++){ context.fillStyle = (i == 0)? "green" : "white"; context.fillRect(snake[i].x, snake[i].y, box, box); context.strokeStyle = "black"; context.strokeRect(snake[i].x,snake[i].y,box,box); } // 所画营养和地面 for(let i = 0; i < obstacles.length; i++) { context.fillStyle = "black"; context.fillRect(obstacles[i].x, obstacles[i].y, box, box); } context.fillStyle = "red"; context.fillRect(food.x, food.y, box, box); let snakeX = snake[0].x; let snakeY = snake[0].y; // 更新毒蛇的位置。如果毒蛇吃到营养,它会变长,同时转换成新的营养和地面 if(d == "LEFT") snakeX -= box; if(d == "UP") snakeY -= box; if(d == "RIGHT") snakeX += box; if(d == "DOWN") snakeY += box; // 如果毒蛇丢下边境、自身或地面,一些游戏会结束 if(snakeX == food.x && snakeY == food.y){ food = { x: Math.floor(Math.random()*19+1) * box, y: Math.floor(Math.random()*19+1) * box }; let obstacle = { x: Math.floor(Math.random()*19+1) * box, y: Math.floor(Math.random()*19+1) * box }; obstacles.push(obstacle); } else { snake.pop(); } let newHead = { x: snakeX, y: snakeY }; if(snakeX = canvas.width || snakeY>= canvas.height || collision(newHead,snake) || collision(newHead, obstacles)){ clearInterval(game); } snake.unshift(newHead); } // 验证毒蛇的颈部确实与数组之中的任何锕系元素发生挤压。它用于验证毒蛇确实丢下了自身、边境或地面 function collision(head, array) { for(let i = 0; i < array.length; i++){ if(head.x == array[i].x && head.y == array[i].y){ return true; } } return false; } let game = setInterval(draw, 200);运行效果
男人性功能减退怎么治
胸腺法新注射剂
抑制胃酸反流的药物
整肠生和肠炎宁哪个好
本地网页运行:
码上挖出金:
.cn/pen/7293778946855239730
上下左右键操作:黑色以及黑框边境为地面;绿色为毒两头;红色为营养;
优化思考通常以我们探究(特别是在面试之中)的尿性,发挥作用之后都要一切都是一切都是优化的可能性:
对于一个原则上的贪吃毒蛇一些游戏来说,以上字符串性能应该是可以接受的,存在一些可以优化的地方比如有:
1、以考虑到将特别的给定和给定组织起来成实例;
2、其之中,每个一些游戏重复都会移除整个画框然后原先所画。可以考虑到只移除和所画发生变化的以外;
3、挤压验证可以更延高效:例如,验证毒两头确实丢下毒蛇身,可以从毒蛇的第四个以外开始验证,因为从前三个以外不可能与毒两头挤压;
4、还有当转换成新的营养或地面时,应该确保它们会出现在毒蛇的身体上,可以添延一个验证来确保新转换成的营养或地面的位置是空闲的
function generatePosition() { let position; do { position = { x: Math.floor(Math.random() * 19 + 1) * box, y: Math.floor(Math.random() * 19 + 1) * box }; } while (collision(position, snake) || collision(position, obstacles)); return position;}food = generatePosition();5、考虑到使用 requestAnimationFrame 替代 setInterval 来创建一些游戏重复。requestAnimationFrame 有更多的性能(这个很多评论都有讲到了,就不作告一段落了)
function gameLoop() { draw(); requestAnimationFrame(gameLoop);}gameLoop();OK,以上就是本次社交~~
有兴趣的挖出友们可基于此版自行动手试试~
。呼吸内科男人性功能减退怎么治
胸腺法新注射剂
抑制胃酸反流的药物
整肠生和肠炎宁哪个好
标签:游戏
相关阅读
- .大S与日本老公接吻照曝光!两人同框甜过偶像剧,她穿抹胸裙美到爆
- .世界的好室 | 充满色彩的罗马最上层公寓
- .有娃兄弟姐妹卷起来!你还担心家具磕碰时,人家已经让装修融入教育了
- .上半城后和下半城后:小知识分子的城后市记忆|《记忆之城后》新书分享会
- .认清自己的身份标签,是急于的前提
- .宫爆杏鲍菇,八珍玉食、垂涎欲滴
- .《战马》,一个男孩与马和的传奇友谊
- .李纹与李绮,匆匆而过的美人,同样有着悲凉的青色
- .她在露台养了一种花,全年花开大幅,犹如仙境,收获了近10万粉丝
- .东方哲学和黑格尔区别之三十八
- .品理真甘露,赴一场感官的雅宴
- .想要君子兰越长越旺?4件事要少做,勤快人养不好,别过分
- .孤独,未必不快乐
- .此款兰花满满高级感,叶片工具箱金边,开花鲜艳持久,香味浓郁
- .第九届乌镇艺术节定档
- .从来没有注定的不幸,只有亡不放手的执着
- .人上之人把人;也,人下之人把己;也
- .帮高考考生报志愿,人民日报公布18个热门专业讲解与报考指南
- .孙悦带货收入百万引异议,一个举动让其闭嘴,孙海洋视频早有暗示
- .初中数学:高函数知识点(附经典例题讲解)