可以将X-Y坐标用作超过X-Y坐标的值容器

时间:2017-06-30 04:17:07

标签: javascript html html5-canvas

我正在尝试创建基于图块的网格,我需要让XY坐标保存更多的值,而不仅仅是XY位置,以确定图块的特征,例如资源(例如在游戏的上下文中,它可能包含食物,水,石头,木材等的瓷砖)例如我将使用2x2瓷砖网格: 让我们假装这些是画布显示的图块

(x[1]y[1]),(x[2]y[1])
(x[1]y[2]),(x[2]y[2])

这些是我想要坐标的值

(x[1]y[1](contains:10 stone, 15 lumber))
(x[2]y[1](contains:5 food, 2 water))
(x[1]y[2](contains:17 water, 6 food, 10 lumber))
(x[2]y[2](contains:30 stone, 7 lumber))

如何获取坐标以保存其他值?

如果你不能告诉我相当新的编码等等,请尽量让我理解它。提前感谢您提供的任何帮助。

更新!

所以在azad的帮助下,我想出了如何使用其中保存的其他值创建XY坐标,并使用对象和循环函数来填充所有对象以及我需要存储的所有信息。

溶液

XYinitialize = function(){

    XY = {};
    y = 1;
    x = 0;
    for(i = 0;i < Math.pow(gridsize,2);i++){

        if(x < gridsize){x++}else{x = 0;y++}

        XY['Tile' + i] = {
        'X':x,
        'Y':y
        };
    };
}

网格大小由单个行或列中的切片数决定,然后创建一行然后向下移动到下一行,创建具有X和Y坐标的切片,并且切片中的任何其他值都可以根据需要添加。如果网格大小是每行3个图块,则输出看起来类似于:

XY.Tile0:[object Object] .X1 .Y1

XY.Tile1:[object Object] .X2 .Y1

XY.Tile2:[object Object] .X3 .Y1

XY.Tile3:[object Object] .X1 .Y2

1 个答案:

答案 0 :(得分:0)

您可以使用javascript对象来保存更多数据,

 [ {x:1, y:1, stones:10, food:0, water:0, lumber:15},  {x:2, y:1, stones:0, food:5,water:2, lumber:0},
{x:1, y:2, stones:0, food:6, water:17, lumber:10},  {x:1, y:1, stones:30, food:0, water:0, lumber:7}]