分享

29. 用libgdx 写一个管理临时数组类

 印度阿三17 2021-01-19

需求:  项目需要用到大量的数据 IntArray,IntIntMap 来辅助计算坐标,初始解决方法是建立几个temp数组,然后方法如果使用temp来计算,则命名的时候添加对应后标,后来觉得很容易搞混,并且有些资源浪费.所以写了一个管理类来管理,利用数组的size是否为0来判断.

 

package com.zhfy.game.framework;

import com.badlogic.gdx.utils.Array;
import com.badlogic.gdx.utils.IntArray;
import com.badlogic.gdx.utils.IntIntMap;
import com.badlogic.gdx.utils.ObjectMap;

public class TempUtil {
    //临时工具类,使用Intarray等所有的都从这里获取

    private Array<IntArray> tempIntArrays;
    private Array<IntIntMap> tempIntIntMaps;
      //  int c=0;

    public TempUtil(){
        tempIntArrays=new Array<>();
        tempIntIntMaps=new Array<>();
    }

    public void dispose(){
        tempIntArrays.clear();
        tempIntIntMaps.clear();
    }
    //state -1不存在 0 size==0 1 size>0
    public int  getTempIntArrayState(IntArray i){
        if(tempIntArrays.contains(i,false)){
            if(i.size==0){
                return 0;
            }else{
                return 1;
            }
        }
        return -1;
    }

    public IntArray getTempIntArray(){
        for(int c=0,cMax=tempIntArrays.size;c<cMax;c  ){
            IntArray i=tempIntArrays.get(c);
            if(i.size==0){
                return i;
            }
        }
        if(tempIntArrays.size>10){
            int s=0;
        }
        IntArray n=new IntArray();
        tempIntArrays.add(n);

        return n;
    }

    public void disposeTempIntArray(IntArray i){
        i.clear();
    }
    public void disposeAllTempIntArray(){
       for(int i=0,iMax=tempIntArrays.size;i<iMax;i  ){
           tempIntArrays.get(i).clear();
       }
    }

    public IntIntMap getTempIntIntMap(){
        for(int c=0,cMax=tempIntIntMaps.size;c<cMax;c  ){
            IntIntMap i=tempIntIntMaps.get(c);
            if(i.size==0){
                return i;
            }
        }
        IntIntMap n=new IntIntMap();
        tempIntIntMaps.add(n);
        return n;
    }

    public void disposeTempIntIntMap(IntIntMap i){
        i.clear();
    }


    public void disposeAllTempIntIntMap(){
        for(int i=0,iMax=tempIntIntMaps.size;i<iMax;i  ){
            tempIntIntMaps.get(i).clear();
        }
    }


}
TempUtil

 

使用方法

TempUtil tempUtil=new TempUtil ();


//获取需要用到数组 
IntIntMap tempIntIntMap=tempUtil.getTempIntIntMap();
//TODO 自己的方法
..............
//注销数组
 game.tempUtil.disposeTempIntIntMap(tempIntIntMap);

//获取需要用到的数组
IntArray tempIntArray=tempUtil.getTempIntArray();
//TODO 自己的方法
..............
//注销数组
 game.tempUtil.disposeTempIntArray(tempIntArray3);
 

 

来源:https://www./content-4-827601.html

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多