通过循环加载精灵
Loading sprites via loops
我用SFML在C++中做了一个小项目。我添加了精灵(一个角色)。我已经组织了像Assets/Player/Idle/Idle1.jpg
、Idle2.jpg
这样的精灵
我初始化精灵如下:
texture = new Texture[116];
sprite = new Sprite[116];
texture[0].loadFromFile("Assests/Iori/Ready1.png");
sprite[0].setTexture(texture[0]);
texture[1].loadFromFile("Assests/Iori/Ready2.png");
sprite[1].setTexture(texture[1]);
texture[2].loadFromFile("Assests/Iori/Ready3.png");
sprite[2].setTexture(texture[2]);
texture[3].loadFromFile("Assests/Iori/Ready4.png");
sprite[3].setTexture(texture[3]);
texture[4].loadFromFile("Assests/Iori/Ready5.png");
sprite[4].setTexture(texture[4]);
texture[5].loadFromFile("Assests/Iori/Ready6.png");
sprite[5].setTexture(texture[5]);
texture[6].loadFromFile("Assests/Iori/Ready7.png");
等等。现在这个方法工作得很好,并且完全加载了我的精灵。但我认为这不是有效或正确的方法。我必须加载100多个精灵,这对程序员来说简直是一团糟。
我想知道你能通过一个循环初始化这些精灵吗(for/wile),这会大大减少代码。
使用基本的for
循环并构造纹理dynamicaly的名称
根据loadFromFile
方法的不同,您可能需要使用对std::string
或char*
的显式强制转换。
static const int count = 116;
texture = new Texture[count];
sprite = new Sprite[count];
for (int i = 0; i < count; ++i)
{
texture[i].loadFromFile("Assests/Iori/Ready" + std::to_string(i + 1) + ".png");
sprite[i].setTexture(texture[i]);
}
相关文章:
- std::原子加载和存储都需要吗
- 如何加载(或映射)文件部分的最大大小,但适合在Windows上的RAM
- C++ 雷神库 - 使用资源加载器类时出现问题(不命名类型)
- 为什么加载SDF会导致Mobilizer创建闭环错误
- C++atioglxx.pdb未加载错误glBufferData OpenGL
- 如何使用tinyxml2从XML加载父实体和子实体
- 如何在C++中使用pybind11加载一个pickle python列表
- 系统.将数组移交给c#中动态加载的c++DLL时发生AccessViolationException
- 当我尝试加载内核模块时,如何修复C++中的这个 malloc() 错误?
- 树莓上的 Libtorch 无法加载 pt 文件,但在 ubuntu 上工作
- Python ctypes:不会按预期加载 dll
- 为什么会出现 gettnig 运行时错误:加载类型为"_Bit_type"(stl_bvector.h) 的空指针?
- 我的程序有一个保存配置文件的GUI,如何双击此配置文件以直接加载带有配置数据的GUI?
- 保存/加载大量短数组到二进制文件
- 使用 SDL2 和SDL_image C++加载图像
- COCOS2D-X:从另一个线程中加载精灵,任何模式
- 通过循环加载精灵
- 在cocos2d- x3中异步预加载精灵表并使用它
- 如何加载精灵在intwithfile我使用cocos2d 2.2.0.4
- 是否有可能在程序执行过程中通过函数加载精灵、纹理和音乐?