2010-09-01 62 views
0

我目前正在为iPhone/iPod/iPad开发一款游戏。为了存储12行乘8行的电路板数据,我有一个数组存储指向其中一个游戏项目的指针,一个块。它的声明如下:游戏开发 - 阵列与阵列元素指针

BlockData* mBoard[kNumberOfColumns][kNumberOfRows]; 

我也有另一个数组声明如下:

BlockData* mCenterSquare[16]; 

这是我想要存储的指针到板上的特定位置,例如,

mCenterSquare[0] = mBoard[4][5]; 

这是正确的做法吗?我想使用上面的代码行完成的是mCenterSquare [0]存储指向板上位置的指针 - 第4列和第5行。我会如何去做这件事?

在此先感谢。

回答

0

我不禁想到这是个诡异的问题。是的,这是你会这样做的方式。 :)

+0

它并不虽然编译。 。 。 – benkraus 2010-09-02 05:01:18

+0

@ macdude93:这是合法的语法(它为我编译)。 BlockData是一个typedef?你得到的编译错误是什么? – 2010-09-02 18:20:46

+0

我的错误 - 我觉得很愚蠢。没有;在最后的声明之后。荒谬。在发布之前,我甚至没有看到错误。必须已经累了。 – benkraus 2010-09-02 22:22:42

1

为什么不能只用mCenterSquare阵列来存储数据:

function BlockData* getBlockData(int row, int col) { 
    return mCenterSquare[row * kNumberOfCols + col] 
} 
+0

Whate行* kNumberOfCols + col应该做的? – benkraus 2010-09-02 05:05:33

+0

为每个{row,col}对查找唯一索引。 – Avall 2010-09-02 16:19:36