0

我目前正在编写游戏,而我目前正在尝试做的是通过使用循环替换游戏中的多个“对象”。

当我说“对象”时,我指的不是 OOP 中的对象,而是游戏中绘制在缓冲区上的简单实体(例如:岩石或树)。

现在,如果只有几个对象,这种替换对象的方法就可以正常工作,但如果我尝试替换多达 25 个以上的对象,它看起来有点奇怪。

我的意思是你可以看到每个对象一次被替换一个,而不是一次全部替换。(我知道这是因为任务是循环执行的)

这几乎总结了我正在做的事情,以编程方式:

for(int i = 0; i < tilesToReplace; i++) //Looping through the total amount of tiles that will be replaced
//Spawning an object in the desired tile
spawnObject(objectPatch.objectId, //irrelevant, (new object ID)
        objectPatch.coords[0][i], //irrelevant, X Coordinate of the current index
        objectPatch.coords[1][i]); //irrelevant, Y Coordinate of the current index

我已经考虑过做一些事情,比如暂停实体渲染,直到我想要替换的所有对象都被初始化,但我想知道是否有更简单的方法来做这件事,比如我处理循环的方法不知道。(我并不是真的想通过我的对象/渲染处理等进行更改。)

4

2 回答 2

0

我试过这个例子N = 10替换 100 个标签仍然同时出现。问题出在您程序的其他地方,您将不得不分析代码以查看哪里。作为一般原则,尽量使事件调度线程上的活动尽可能短;例如,一个sscce可能是一个有用的练习。

于 2012-09-21T01:14:23.820 回答
0

如果您使用 C++ 进行开发,有一种方法可以设置屏幕缓冲。您在下一个屏幕缓冲区(未显示的那个)上处理更改。然后在处理完成后切换屏幕以显示该缓冲区。

您使用的是 C 还是 C++。这是为什么游戏在 C 上效果更好的一个例子。

于 2012-09-21T01:38:59.827 回答