c++;编码效率低 我用C++中的DeVKIT Pro为NDS编码,并且有一个图形在顶部显示。每个图形都加载了一个值(它是从图像的哪个部分加载的),我希望有大约20个相同类型的图形,但同时加载和显示不同的值。有没有办法创建某种图形数组,而不是定义“graphic INV1;graphic INV2;”并将其全部加载?每个图形的定义、加载和显示如下: graphic inv1; graphic inv2; if (loadedgraphic) unloadGraphic(&inv); //basically reloads graphics loadGraphicSub(&inv1,2,5); //arguments: (Graphic, type, value) loadedgraphicinv = true; if (loadedgraphic) unloadGraphic(&inv); //basically reloads graphics loadGraphicSub(&inv1,2,6); //arguments: (Graphic, type, value) loadedgraphicinv = true; showGraphic(&inv1,10,10); // This shows the inv1 graphics at the coordinate (10,10). showGraphic(&inv2,10,15); // This shows the inv2 graphics at the coordinate (10,10).

c++;编码效率低 我用C++中的DeVKIT Pro为NDS编码,并且有一个图形在顶部显示。每个图形都加载了一个值(它是从图像的哪个部分加载的),我希望有大约20个相同类型的图形,但同时加载和显示不同的值。有没有办法创建某种图形数组,而不是定义“graphic INV1;graphic INV2;”并将其全部加载?每个图形的定义、加载和显示如下: graphic inv1; graphic inv2; if (loadedgraphic) unloadGraphic(&inv); //basically reloads graphics loadGraphicSub(&inv1,2,5); //arguments: (Graphic, type, value) loadedgraphicinv = true; if (loadedgraphic) unloadGraphic(&inv); //basically reloads graphics loadGraphicSub(&inv1,2,6); //arguments: (Graphic, type, value) loadedgraphicinv = true; showGraphic(&inv1,10,10); // This shows the inv1 graphics at the coordinate (10,10). showGraphic(&inv2,10,15); // This shows the inv2 graphics at the coordinate (10,10).,c++,arrays,graphic,nintendo-ds,devkitpro,C++,Arrays,Graphic,Nintendo Ds,Devkitpro,每次使用新图形时,这可能会重复20次…std::vector vMyGraphics(7); std::vector<graphic> vMyGraphics(7); for(int i=0; i<7; i++) { if (loadedgraphic) unloadGraphic(&inv); //basically reloads graphics loadGraphicSub(&vMyGraphics[i],2,i+1);

每次使用新图形时,这可能会重复20次…

std::vector vMyGraphics(7);
std::vector<graphic> vMyGraphics(7);
for(int i=0; i<7; i++)
{
   if (loadedgraphic) unloadGraphic(&inv);  //basically reloads graphics
   loadGraphicSub(&vMyGraphics[i],2,i+1);               //arguments: (Graphic, type, value)
   loadedgraphicinv = true;
}

对于(int i=0;i创建一个数据结构来保存它们,如标准库中的列表或向量。创建一个函数或类来管理资源,如图形工厂。这很有趣,但我仍然必须定义并初始化每个循环…最终,我有2个for循环,我想让它们显示图形,但每个for循环不同。因此,理想情况下,类似于:graphic INV[];//INIT INV for(x=0;x)此代码包含错误。您可能会遇到seg错误…在创建元素之前您正在访问vMyGraphics。实际上,我发现,我只需添加[47]来创建一个47的图形数组即可(我不确定这是否特定于项目)。