我试图删除一个对象(在这种情况下,和一个水果类的实例),当它与我的蛇的头相交。问题是,当它检测到一个水果对象时,del
似乎没有做任何事情。我不知道我是否没有正确实现删除函数,或者这可能与我如何将对象馈送到函数有关。
下面是处理游戏功能的main.py脚本的一部分:
# Main loop
while running:
# event handling, gets all event from the event queue
for event in pygame.event.get():
# only do something if the event is of type QUIT
if event.type == pygame.QUIT:
# change the value to False, to exit the main loop
running = False
# Modify game fruit properties
if fruit_tick < 50:
fruit_tick += 1
else:
game.spawn_fruit()
fruit_tick = 0
# Modify game player properties
if not game.player_python:
game.spawn_player()
else:
game.player_python.move()
game.player_python.detect_object(game.get_objects())
# Modify display properties
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
game.draw_shapes()
pygame.display.flip()
以下是当头位于Fruit对象的相同位置时执行的函数:
# Detect object
def detect_object(self, objects):
for obj in objects:
if obj.pivot == self.location:
if isinstance(obj, Fruit):
self.grow(obj.get_growth())
del obj
如果我添加一个print()
语句在if is实例(obj, Fruit):
下,它执行没有问题。问题是del obj
什么都不做。
不要在循环时删除迭代器变量或列表中的项,因为这是一种不好的做法,无论如何,请尝试另一种方法。也许可以通过以下方式删除某些对象:
# Detect object
def detect_object(self, objects):
del_indices = []
for i in len(objects):
obj = objects[i]
if obj.pivot == self.location:
if isinstance(obj, Fruit):
self.grow(obj.get_growth())
# del obj
del_indices.append(i)
# Remove some objects
new_objects = []
for i in len(objects):
if not i in del_indices:
new_objects.append(objects[i])
objects = new_objects
# return objects
vue3 接口pending 的时候,切换路由,理论当前实例会被销毁,autoUpdate 变量 和 visible 变量都不存在了,但是打印出来仍然存在。导致离开页面了,定时器还在执行。 关键点在,路由已经切换了 if (autoUpdateCheck.value && visibility.value === 'visible') 这个条件依然成立,导致定时器执行 1.组件实例为什么没有销毁
有没有办法销毁特定类的所有创建的会话范围bean(并在需要时让spring重新创建)? 例如,两个用户访问应用程序,然后每个用户将有一个bean。我想毁掉这两颗豆子。 用例: 管理员正在更新菜单栏。菜单栏列表数据存储在会话范围的bean中。管理员的bean应该被销毁,菜单栏应该被更新。当然,其他人的菜单也应该更新,所以其他bean也应该被销毁。 注1:不同的用户可能会看到不同的菜单,因此bean是
对象使用完之后需要对其进行清除。对象的清除是指释放对象占用的内存。在创建对象时,用户必须使用 new 操作符为对象分配内存。不过, 在清除对象时,由系统自动进行内存回收,不需要用户额外处理。这也是 Java 语言的一大特色,某种程度上方便了程序员对内存的管理。 Java 语言的内存自动回收称为 垃圾回收(Garbage Collection)机制,简称 GC。垃圾回收机制是指 JVM 用于释放那些
本文向大家介绍ios 单利的完整使用实例 及销毁 宏定义,包括了ios 单利的完整使用实例 及销毁 宏定义的使用技巧和注意事项,需要的朋友参考一下 如下所示: 以上这篇ios 单利的完整使用实例 及销毁 宏定义就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。
销毁 Destroy 在不需要使用iScoll的时候调用iScroll实例的公共方法destroy()可以释放一些内存。 myScroll.destroy(); myScroll = null;
问题内容: 我对垃圾收集器在Java中的工作方式有一个大致的了解,但是我销毁对象的原因不是因为我关心释放内存,而是因为功能。我可以用一个例子更好地解释: 假设我正在制作涉及金钱的游戏。当某人从地面上捡起一个物体时,我想调用该物体的方法,该方法涉及为该人的钱包添加一个值。 之后发现,我不希望别人能够把它捡起来。换句话说,我不希望自己或任何其他程序能够不经意间拨打电话: 因此,在Bob拿起钱后,它的价