我正在写一个简单的游戏,我最近遇到了似乎并不难解决的问题,但是我没有想法。
在文件 blocks.c 以及其他函数中,我定义了一个简单的函数:
field block_get_field_coordinates(int x, int y)
{
field temp;
temp.x = floor( x / 65 ) * 65 + 15;
temp.y = floor( y / 65) * 65 + 15;
return temp;
}
field 是在文件 grid.h 中声明的结构
struct field
{
int x, y;
}f;
typedef struct field field;
当我尝试以下操作时,在 main.c 中:
f = block_get_field_coordinates(blocks[x][y].x4, blocks[x][x].y4);
其中 f 是“字段”我收到一个错误:
incompatible types when assigning to type 'struct field' from type 'int'
我真的不知道我在这里做错了什么。blocks.c 中的其他函数可以正常工作而不会抛出任何错误。
有趣的是,当我将结构字段的声明、函数 block_get_field_coordinates 复制到单独的文件中时,它起作用了。