c++ 中的图形编码效率低下
Posted
技术标签:
【中文标题】c++ 中的图形编码效率低下【英文标题】:Graphics in c++ coded inefficiently 【发布时间】:2013-03-20 12:23:23 【问题描述】:我在 c++ 中使用 Devkit pro 为 nds 编码,顶部显示了一个图形。每个图形都加载了一个值(这是从中加载图像的哪个部分),我想要大约 20 个相同类型的图形,但同时加载和显示不同的值。有没有办法创建某种图形数组而不是定义“图形INV1;图形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).
这可能会重复 20 次以上,每次都有一个新图形......
【问题讨论】:
创建一个数据结构来保存它们,例如标准库中的列表或向量。创建一个函数或类来管理图形工厂等资源。 这很有趣,但我仍然需要定义和初始化每一个......最终,我有 2 个 for 循环,我想要显示图形,但每一个都不同。所以理想情况下,类似于:graphic INV[]; //INIT INV for (x=0;x 【参考方案1】: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;
【讨论】:
此代码包含错误。您可能会遇到段错误...您在创建元素之前访问 vMyGraphics。 实际上,我发现,我只需要添加 [47] 来创建一个 47 的图形数组(我不确定这是否是特定于项目的)。以上是关于c++ 中的图形编码效率低下的主要内容,如果未能解决你的问题,请参考以下文章
从 C++ 中的 Tensorflow 的 .meta 文件加载图形以进行推理
C++ 中的图形应用程序和 C 中的代码 **Qt 编程**