这是一个SDL问题,但是我强烈感觉到,我遇到的问题与SDL不相关,而通常与C++ /指针有关。
简而言之,此代码不起作用(已编辑以显示我的实际工作):
player->picture = IMG_Load("player");
SDL_BlitSurface(player->picture, NULL, screen, &pictureLocation);
屏幕上看不到任何东西。但是,当我这样做时,它可以工作:
SDL_Surface* picture = IMG_Load("player.png");
player->picture = picture;
SDL_BlitSurface(player->picture, NULL, screen, &pictureLocation);
我可以看到小家伙很好。
真正的问题是我无法直接实例化Player::picture。即使我尝试
picture = IMG_Load("player.png")
在player.cpp中,我最终得到一个nullpointer。
最佳答案
我真傻事实证明,每次我尝试将表面存储在Player::picture中时,我都忘记了文件扩展名“.png”,而每次我在main.cpp中声明的SDL_Surface中搅拌它时,都方便地记得添加它。
我感觉自己在这里忽略了一个非常简单的东西,但这只是令人尴尬。这是什么合适的惩罚?
关于c++ - C++:无法直接实例化指针,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2384761/