微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在程序运行时创建一个新对象Python、pygame

如何解决如何在程序运行时创建一个新对象Python、pygame

我目前正在制作 2048 并且在每次移动时都无法创建新块。

我做了一个列表来存储所有的块,在列表中有对象:

class Blocks:
   ~~~~~~~ code ~~~~~~~~~

block1 = Blocks()
block2 = Blocks()
block_list = [block1,block2] 

问题是在预先编写块时它可以完美运行,但是当游戏已经运行时我无法创建新块,有什么办法可以做到这一点?提前谢谢你,注意安全:)

解决方法

我不明白为什么这不可能。您应该可以简单地将一个新块附加到您的 block_list 中:

block_n = Blocks()
block_list.append(block_n)

您将其放置在您的游戏循环中,您可以在其中检测移动的时间。

你在哪里 blit 我假设你通过 block_list 并将所有块 blit 到屏幕上?还要确保始终使用 pygame.display.flip() 更新屏幕。

,
  1. 我想您需要在 Python 中进行“反射”。反射可以获取实例类型,在代码运行时创建类型实例。
  2. 您可以从问题Can you use a string to instantiate a class?或文章Classes and Class Creation
  3. 中获得一些启发

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。