SDL_RenderCopy() 不适用于数组
SDL_RenderCopy() doesn't work with array
我在互联网和这里搜索过,我只找到了 1 个带有矩形数组的井帖子SDL_RenderCopy。(据我了解)没有答案,但我的问题和那里一样。有什么方法可以做到这一点吗?
SDL_RenderCopy(renderer, texture, &rects[index], &sprPos);
调试内容如下:
Error 1 error C2664: 'int SDL_RenderCopy(SDL_Renderer *,SDL_Texture *,const SDL_Rect *,const SDL_Rect *)' : cannot convert argument 3 from 'SDL_Rect **' to 'const SDL_Rect *' c:userskushnirenkodocumentsvisual studio 2013projectssdl_projectsdl_projectmain.cpp 96 1 SDL_Project
2 IntelliSense: argument of type "SDL_Rect **" is incompatible with parameter of type "const SDL_Rect *" c:UserskushnirenkoDocumentsVisual Studio 2013ProjectsSDL_ProjectSDL_Projectmain.cpp 96 37 SDL_Project
我解决了这个问题。有一种方法可以将数组设置为 SDL_RenderCopy。在这里:
// Sprites atlas regions
SDL_Rect left = { sprite * 32, 32, 32, 32 };
SDL_Rect right = { sprite * 32, 64, 32, 32 };
SDL_Rect up = { sprite * 32, 96, 32, 32 };
SDL_Rect down = { sprite * 32, 0, 32, 32 };
SDL_Rect leftIdle = { 32, 32, 32, 32 };
SDL_Rect rightIdle = { 32, 64, 32, 32 };
SDL_Rect upIdle = { 32, 96, 32, 32 };
SDL_Rect downIdle = { 32, 0, 32, 32 };
// End of sprite atlas
sprPos = { x, y, 32, 32 };
spritesCoords[0] = left;
spritesCoords[1] = right;
spritesCoords[2] = up;
spritesCoords[3] = down;
spritesCoords[4] = leftIdle;
spritesCoords[5] = rightIdle;
spritesCoords[6] = upIdle;
spritesCoords[7] = downIdle;
sprFrame = spritesCoords[spriteIndex]; // This is solutuion.
SDL_RenderClear(renderer);
SDL_RenderCopy(renderer, texture, &sprFrame, &sprPos);
SDL_RenderPresent(renderer);
相关文章:
- FLTK 2.0构建和演示,适用于VS2019的2011年左右的代码库
- "string.h"在构建适用于iOS的qt应用程序中找不到消息
- 为什么 std::erase(std::erase_if) 不是适用于<algorithm>任何容器的模板?
- 为什么这适用于 G++ 而不是 CLANG?
- 为什么不区分大小写适用于 std::unordered_set的 std::hash 函数?
- 声明适用于 auto,但不能显式声明类型?
- 什么是通用运行时组件 #ifdef 适用于Windows(UWP)而不是iOS
- Windows 上的 Cmake 不添加共享库路径(适用于 linux)
- Typedef适用于结构,但不适用于枚举,仅适用于C++
- 为什么函数模板不理解 NULL,但适用于 nullptr
- 链接器读取库,但在其中找不到符号?未解析的外部符号,但仅适用于 Win32 而不是 x64
- Netbeans 8.1(适用于 C/C++)找不到我的编译器(gcc-6.0.0 开发版本)
- random_shuffle() 适用于 Windows,但不能在 Linux 上编译
- C++指针到方法模板推导在面向 x86 时不编译,但适用于 x64
- 不在异常中嵌入std::字符串的规则是否仍然适用于move构造函数
- 移动文件夹Windows c++:适用于Vista及以上版本,不包括XP
- 适用于Android的Qt找不到任何兼容的设备答案找到但不知道如何
- 在Windows 7上不起作用,但它适用于Windows 8 dll。
- 可变参数模板转换为 std::function<R(ARGS...)>适用于 GCC 而不是 MSVC2013,为什么?
- C++11 cmath 函数不在 std 命名空间中,适用于 android NDK w/gcc-4.8 或 clang