当前位置: 首页 Cocos Creator

Cocos Creator开发之贪吃蛇前进逻辑

时间:2023年05月13日 阅读:747
以下内容仅是站长或网友个人学习笔记、总结和研究收藏。不保证正确性,因使用而带来的风险与本站无关!
淘客轩-衣食住行外卖生活好助手

在开发贪吃蛇过程中,用数组来计算蛇经过的点,每个蛇头和蛇身用两点来存储,正常情况前进 是每次都走一个点的距离。当进行加速时每次都两个点。这样就能进行加速前进了。

之前写过贪吃蛇前进性能分析,在此在叙述下,

首先上一张图在有15条蛇,同时每个的长度是50000个身体,在进行前进的时候遍历这么多申请GameLogic 占用时间多主要用到了array的push 和unshift。

------优化前-----------

Cocos Creator开发之贪吃蛇前进逻辑 - MOMO教程

-----优化后-------

Cocos Creator开发之贪吃蛇前进逻辑 - MOMO教程

从原理就可以知道,unshift的效率是较低的。原因是,它每添加一个元素,都要把现有元素往下移一个位置。但到底效率差异有多大呢?下面来测试一下。

以下代码是默认array  的测试数据和自定义链表的测试数据。

let array = []                
let arrayLabel: string = 'array push性能测试(毫秒)';                
console.time(arrayLabel);                //push性能测试                 
for (let i = 0; i < 50000; i++) {                         
array.push(i);                 
}                 
console.timeEnd(arrayLabel);         
let linkList = new LinkList<number>();                
arrayLabel = 'linkList push性能测试(毫秒)';                
console.time(arrayLabel);                
//push性能测试                 
for (let i = 0; i < 50000; i++) {                         
linkList.push(i);                 
}                 
console.timeEnd(arrayLabel);         
arrayLabel = 'array unshift 性能测试(毫秒)';                
array = [ ];         
//unshift性能测试                 
console.time(arrayLabel);                
for (let i = 0; i < 50000; i++) { 
  array.unshift(i);                 
}                 
console.timeEnd(arrayLabel);                        
arrayLabel = 'linkList unshift 性能测试(毫秒)';                
let linkList2 = new LinkList<number>();                
//unshift性能测试                 
console.time(arrayLabel);                
for (let i = 0; i < 50000; i++) {                         
linkList.unshift(i);                 
}                 
console.timeEnd(arrayLabel);        
arrayLabel = 'array push 一个 性能测试(毫秒)';                
console.time(arrayLabel);                
array.push(121212);                
console.timeEnd(arrayLabel);        
arrayLabel = 'linkList push 一个性能测试(毫秒)';                
console.time(arrayLabel);                
linkList.push(121212);                
console.timeEnd(arrayLabel);        
arrayLabel = 'array unshift 一个 性能测试(毫秒)';                
console.time(arrayLabel);                
array.unshift(121212);                
console.timeEnd(arrayLabel);        
arrayLabel = 'linkList unshift 一个性能测试(毫秒)';                
console.time(arrayLabel);                
linkList.unshift(121212);                
console.timeEnd(arrayLabel);

Cocos Creator开发之贪吃蛇前进逻辑 - MOMO教程

以下为详细代码:


打赏

本文地址:https://www.momojc.cn/cocos/cocos-crea0mo.html

相关推荐
支付宝领大额红包
支付宝领大额红包
似水流年
    今日已经过去小时
    这周已经过去
    本月已经过去
    今年已经过去个月
小姐姐视频

关于本站 | 隐私政策 | 免责声明 | 广告合作 | 我要投稿 | 后台管理

CopyRight © 2023-2024 MOMO教程 WWW.MOMOJC.CN , All Rights Reserved.

站长E-mail:378074730@qq.com 网站已运行:  运行时长:0.026 秒

京ICP备20029690号-1京ICP备20029690号-2 京公网安备11011402013892号京公网安备11011402013892号 中国互联网违法和不良信息举报中心 网络违法犯罪举报网站

本网站托管于 腾讯云 .由网站卫士提供网站加速和攻击防御服务 提供CDN加速/防御服务.由zblogcn强力驱动 又拍云提供CDN加速/云存储服务 51la网站统计