gpt4 book ai didi

python - 无法使用 Python 创建超过 1 个类实例

转载 作者:行者123 更新时间:2023-12-01 06:52:03 24 4
gpt4 key购买 nike

# Creates a Dot Instance.
class Dot(object):
velx=0
vely=0
def __init__(self, xloc=0, yloc=0,color=(0,7,0)):
self.color=color
self.xloc=xloc
self.yloc=xloc

def entity(self):
for event in pygame.event.get():
pygame.draw.rect(gameDisplay, (self.color), (self.xloc,self.yloc, 50, 50))
pygame.display.update()


GameExit=False

# Main Function
def Main():
global x,y,gameDisplay
Red=Dot(50,50,color=(0,0,255))
Blue=Dot(150,150,color=(255,0,0))
Red.entity()
Blue.entity()

pygame.display.update()
while not GameExit:
if GameExit==False:
pygame.QUIT

Main()

我正在尝试创建一个将显示红点的第二类实例,但它似乎没有出现。第一个类实例起作用并在显示屏上创建一个蓝点。我到底做错了什么?

最佳答案

试试这个:

def entity(self):
pygame.draw.rect(gameDisplay, self.color, (self.xloc, self.yloc, 50, 50))
pygame.display.update()

使用 pyGame 在在线 REPL 中查看它: https://repl.it/repls/ActiveMisguidedApplescript

<小时/>

问题源于 .entity() 的实现。

在您的代码中:

for event in pygame.event.get():
...

实际上,只有当队列中有事件时,您才会绘制内容。因此,对 Red.entity() 的调用耗尽了该队列。对 Blue.entity() 的调用甚至不会进入前面提到的 for 循环,因为在该特定时刻没有任何可迭代的内容 - pygame.event.get()返回一个空列表。

<小时/>

来自pygame.event.get() docs :

This will get all the messages and remove them from the queue.

<小时/>

此外,您的事件循环看起来不正确。它应该是(在 Main 中):

while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
return

关于python - 无法使用 Python 创建超过 1 个类实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58943124/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com