键码当今游戏:简易版贪吃蛇
时间: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,以上就是本次社交~~
有兴趣的挖出友们可基于此版自行动手试试~
。呼吸内科男人性功能减退怎么治
胸腺法新注射剂
抑制胃酸反流的药物
整肠生和肠炎宁哪个好
标签:游戏
相关阅读
- .王者荣耀:大环境变了,S34赛季打算用射手上分,还得靠这四位英雄
- .亚洲时段6大货币对、美元指数及玉石阻力/支持位
- .新房搬家要忽略什么?乔迁新居的6个忽略事项,助你顺利入宅!
- .GTA6猛料:预告片背后讯息、女主演员被曝与单人游戏DLC的未来
- .财经台:创业板低开低走跌1% 特高压板块回调
- .“基斯女”的6大特征,特别是最后一个,碰见了直接让你怀疑人生
- .看了这20张对比图片才知道,从前所有的伤害都是由对比所产生的
- .黄金交易提醒:受美元上涨致使,金价录得四连阴,这是“宣告见顶”了?
- .《滴天悬解》自是衰旺之真机,三命之奥,思过半(2)
- .就算夫妻俩把所有电子游戏都玩成了世界第一,又有什么用?
- .张津铍:非农越发临近 黄金趋势不变
- .在工作中,多做这3件事,好运早晚都会降临在你的头上
- .斗罗亚洲地区:剑斗罗尘心,唐昊齐名的真正霸主
- .美联储会议纪要憋大招!降息者的狂欢盛宴将被鹰派“泼凉水”?金子TD小幅波动
- .从为先命理看十神的详细论述(细节决定准确率)
- .掼蛋最强攻略:掼蛋六大口诀
- .警告:细心美联储会议纪要凌晨放鹰,黄金恐继续回撤
- .掌纹杂乱预示什么?与历程命运状态有关吗
- .S34新赛季明日带进,各路T0级“版本大爹”已确定,冲分首选!
- .债券交易员似乎开始再次评估美联储鸽派转向的前景