我正在尝试使用微控制器开发板的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)
。该结构包含所需的所有信息(宽度和高度(,以完全描述基础像素数组的大小。