繁体   English   中英

当我需要在while循环中合并两个数组时,如何避免递归添加数组?

[英]How do I avoid recursively adding arrays when I need to merge two arrays in a while-loop?

使用pygame,我试图从两个较小的列表中创建一个更大的列表。 这需要在游戏循环期间完成,因为这些列表包含pygame.Rect对象,这些对象确定与角色的碰撞检测。

charArray.append(guy.rect)
collideArray = newMap.rectArray + charArray

当然,由于这是在游戏循环中, guy.rect以递归方式添加到charArray ,而collideArray以递归方式将newMap.rectArray添加到自身,每帧创建一个越来越大的列表,最终只会破坏帧速率。

有没有办法可以每帧清空列表,以便每帧都重新定义它们? 或者我需要采取其他方法吗?

在每个帧结尾处“清空”每个数组的最简单方法是在每个循环结束时将它们设置为空:

while game==True:
    #your game code goes here
    charArray,collideArray = [],[]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM