我有一个播放器类,其中我有一个函数来返回SDL_Rect的尺寸和我的播放器对象的位置:
SDL_Rect Player::pos()
{
return SDL_Rect { mPosX, mPosY, PLAYER_WIDTH, PLAYER_HEIGHT };
}
Run Code Online (Sandbox Code Playgroud)
当我在我的主程序中使用它来渲染播放器:
Renderer::Draw(img, player.pos(), NULL, angle);
Run Code Online (Sandbox Code Playgroud)
我得到错误:"对非const的引用的初始值必须是左值",但当我改为写:
SDL_Rect pos = player.pos();
Renderer::Draw(img, pos, NULL, angle);
Run Code Online (Sandbox Code Playgroud)
有用.为什么我不能直接使用player.pos()并且必须使用另一个SLD_Rect变量?
我有一个关于使用 SDL_image 库在 SDL2 中加载图像的问题。
不幸的是,我在 SDL_image 文档中没有找到有关 IMG_LoadTexture 的任何信息。那么使用 IMG_LoadTexture 直接加载 PNG 图像作为纹理与使用 IMG_Load 加载表面然后使用 SDL_CreateTextureFromSurface 将其转换为纹理之间有什么区别?使用一个比另一个有什么好处吗?