我知道我的头衔有点一厢情愿。我的问题是,我试图用Win32图形语言用C ++编写一个小游戏,我希望将我的所有作品从上向下绘制,以使它们正确地面对面。 (例如,如果我站在一棵树前,它会先绘制一棵树,然后是玩家,所以我就在前面)

我的第一个想法是,在需要动态数组类型的东西的情况下使用向量,在这样的for循环中循环

for(y = 0; y < playerYValue; y++){
    //Check every enemy/object to see if its yValue matches the looping y
    object.drawImage();
}


和在玩家面前一样。但是,在运行了一些测试之后,这是非常低效的,因为循环需要34毫秒,而没有循环则需要2:/

我正在寻找一种方法来按顺序绘制所有对象,并且希望获得任何帮助,所有内容都值得尝试。这是我无法想到的解决问题的创造性方法。

请询问您是否需要我提供更多详细信息:)

编辑:代码中的注释是每次向量迭代的占位符,每次检查对象的yValue是否等于y :)以为我会清除一点:)

最佳答案

也许您应该按y值对对象进行排序,然后渲染它们,如果当前每次绘制对象时都在对每个对象进行搜索,则应该更快。

并尽量不要使播放器与众不同。玩家也应该是一个“对象”,然后您将一次背对背进行排序,然后再对背进行抽签。

09-06 22:12