C语言 如何在结构中引用二维数组以供函数使用



我正在尝试使用微控制器开发板的LCD屏幕对游戏克隆进行编程。 我决定使用平铺方法,因为LCD实用程序允许我放置单个像素。 我将磁贴定义为单独的头文件中的二维数组。 数组中的每个条目表示该索引 [y][x] 处的像素的颜色。

#define TILE_SIZE 4 \ px
unsigned short TILE[TILE_SIZE][TILE_SIZE] = {
    { Green, Green, Green, Green },
    { Green, Green, Green, Green },
    { Green, Green, Green, Green },
    { Green, Green, Green, Green } 
};

在我的主文件中,我定义了一个平铺结构,如下所示

struct Tile {
    unsigned short width; // width of tile
    unsigned short height; // height of tile
    unsigned short pixels[][TILE_SIZE];
    unsigned short x; // x-coordinate to begin drawing
    unsigned short y; // y-coordinate to begin drawing
};

我不完全确定如何将 TILE 数组中的数据存储到 sprite 结构的像素[][] 数组中。 我相信通过引用是避免过多内存使用的最佳方法,但我相信您不能通过引用传递 2d 数组。 磁贴结构稍后在代码中传递给 render_sprite 函数,该函数循环遍历数组并显示每个像素。 我希望这个render_sprite功能是通用的,因此,我试图避免render_sprite(unsigned short pixels[][4])

任何帮助将不胜感激。

您可以简单地传递指向Tile结构的指针,例如render_sprite(Tile* tile)。该结构包含所需的所有信息(宽度和高度(,以完全描述基础像素数组的大小。

相关内容

  • 没有找到相关文章

最新更新