二维数组做地图是怎么实现的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二维数组做地图是怎么实现的相关的知识,希望对你有一定的参考价值。

参考技术A #include<stdio.h>
#include<conio.h>

void main()
int i,j,m=0;
int a[4][4]=0,0,0,10,0,0,9,8,0,7,6,5,4,3,2,1;
for(i=0;i<4;i++)
for(j=0;j<4;j++)

printf("%4d",a[i][j]);
m++;

if(m%4==0) printf("\n");



getch();
本回答被提问者采纳

unity之二维数组实现正六边形地图

最近项目有个需求,需要实现的效果如下:

左右上下相邻正六边形的位置坐标如下:

分析:
一行中,两个相邻六边形相差80,假设第一个x坐标为0,则下一个相邻六边形的x值为:

(x-1)*80

上下相邻两个六边形的X值相差-40,两两一循环,因此,可以用y值来确定X的偏移量:

local offX = y%2 == 0 and -40 or 0

最终x的坐标为:

local offX = y%2 == 0 and -40 or 0
(x-1)*80+offX

X的坐标确定啦,Y坐标就更简单了,上下两个相邻的y差值为70,假设第一个y坐标为0,则,对应的其他y坐标为:

(y-1)*70

最终,每个正六边形的坐标也就确定了,为:

local offX = y%2 == 0 and -40 or 0
go.transform.localPosition = Vector3.New((x-1)*80+offX,(y-1)*70,0)

完整代码如下:

ui.list = base:findobj("list")
ui.item = base:findobj("item")

local function RefreshUI()
    local length = 8--长
    local width = 4--宽
    local itemList = 
    for y=1,width do
        itemList[y] = 
        for x=1,length do
            local obj = utils.addchild(ui.list,ui.item)
            utils.findtext(obj,"Text").text = string.format("%s_%s",x,y)
            itemList[y][x] = obj
            local offX = y%2 == 0 and -40 or 0
            itemList[y][x].transform.localPosition = Vector3.New((x-1)*80+offX,(y-1)*70,0)
            SetActive(obj,true)
        end
    end
end

以上是关于二维数组做地图是怎么实现的的主要内容,如果未能解决你的问题,请参考以下文章

请问java中深度copy一个二维数组是啥意思?怎么用代码实现?

char型的二维数组赋值问题?

unity之二维数组实现正六边形地图

unity之二维数组实现正六边形地图

unity之二维数组实现正六边形地图

怎么让一个二维指针指向一个二维数组