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++ 图形和音频库

如何开始学习 C++ 中的图形? [关闭]

从 C++ 中的 Tensorflow 的 .meta 文件加载图形以进行推理

C++ 中的图形应用程序和 C 中的代码 **Qt 编程**

为什么android studio会自动在图形布局编辑器中重新排序视图和元素

是否像在 MFC 中那样在 nana c++ 中的画布上涂鸦的图形支持?