- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在自学 C。我按照教程操作并获得了一个可以在屏幕上四处移动的图像。现在我正在尝试自己做,并了解如何模块化我的代码并知道它发生了什么。
我构建了一个结构来获取玩家坐标并将其调用到我的 game_loop.h 文件中。但它不允许我从结构中设置变量。我试图只包括重要的部分以保持简洁。让我知道是否需要发布整个代码。我究竟做错了什么。
//includes
#include "game_loop.h"
//main body
int main( int argc, char *argv[])
{
//TODO make game menu and link it here
//TODO make game loop and put it here
initSDL();
renderGame();
handleEvent();
//make game cleanup and put it her
destroySDL();
return 0;
}
int 头文件 game_loop.h -->
#include <stdio.h>
#include <SDL2/SDL.h>
#include <SDL2/SDL_image.h>
#include "player.h"
#define pSIZE 64
#define wWIDTH 1280
#define wHEIGHT 720
//variables for starting SDL
SDL_Event event;
SDL_Window *window = NULL;
SDL_Renderer *render = NULL;
SDL_Surface *bgSurface = NULL;
SDL_Texture *bgTexture = NULL;
SDL_Surface *pSurface = NULL;
SDL_Texture *pTexture = NULL;
int flags = 0; //window flags may need to change in the future
struct Player player;
player.x = 600;
player.y = 300;
void initSDL()
{
//initializing SDL
if(SDL_Init(SDL_INIT_VIDEO)!= 0)
{
printf("ERROR starting SDL: %s\n", SDL_GetError());
}else{printf("Starting SDL: Successful.\n");}
在 player.h 文件中 -->
struct Player{
int x;
int y;
};
最佳答案
您在函数之外有几行可执行代码:
Player player;
player.x = 600;
player.y = 300;
第一行定义了一个变量。那没问题。接下来的两行不是,因为它们是语句。
您需要在定义结构时对其进行初始化。您可以按如下方式进行:
Player player = { 600, 300 };
此外,在头文件中定义变量也不是一个好主意。如果在多个源文件中使用一个 header ,您最终会因多个定义而出错。
在你的头文件中,变量应该被声明为 extern
而没有初始化:
extern Player player;
然后您可以将带有初始化器的定义完全放在一个源文件中。
与函数类似,将函数的声明放在头文件中,并将函数的定义放在一个源文件中。
关于c - 当我尝试定义结构的元素时,我不断收到错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47515585/
如果这不是一个错误,那就是另一个错误。如果不是那样的话,那就是别的东西了。我觉得我的项目已经改变了很多,现在只是试图解决代码签名问题,结果一切都搞砸了。我严格按照说明进行操作,但出现错误,例如当前的“
我不确定是否有一些我不知道的内置变量或规则,或者 make 是否有问题,或者我只是疯了。 对于我的一个项目,我有一个如下的 makefile: CC=g++ CFLAGS=-O3 `libpng-co
我有大约 10 个 div,它们必须不断翻转,每个 div 延迟 3 秒 这个 codrops 链接的最后一个效果是我正在寻找的,但无需单击 div http://tympanus.net/Devel
我如何使用 jQuery 持续运行 PHP 脚本并每秒获取响应,以及将鼠标上的少量数据发送到同一脚本? 我真的必须添加一些随机扩展才能让这么简单的计时器工作吗? 最佳答案 To iterate is
JBoss 4.x EJB 3.0 我见过如下代码(大大简化): @Stateless @TransactionAttribute(TransactionAttributeType.NOT_SUPPO
使用 PHPStorm,我试图忽略每次尝试进行 git 提交时 pop 的 workspace.xml。 我的 .gitignore 看起来像: /.idea/ .idea/workspace.xml
我是一名优秀的程序员,十分优秀!