为什么python跳过这些代码行?

用户名

我正在尝试绘制一些pygame圆圈并显示它们,并且当用户按下按键时,它将更新这些计数器的位置。当用户按下按键时,它将在屏幕上的新位置绘制一个圆圈,但不会显示第一张图像。因此,它应该显示一个圆圈,当他们按下一个键时,它会更改圆圈的位置。它没有画出启动圈。

第一个圈子(这些不会出现):

#Draw counters using pygame draw line function. These are the default counters on the start position. These don't move.
    countY = 750
    count1 = pygame.draw.circle(window, (black),(150, countY), 25, 0)
    count2 = pygame.draw.circle(window, (black),(250, countY), 25, 0)
    count3 = pygame.draw.circle(window, (255, 255, 255),(450, countY), 25, 0)
    count4 = pygame.draw.circle(window, (255, 255, 255),(550, countY), 25, 0)
    print("Should draw start counters")
    pygame.display.update()

输入密钥后绘制的圆圈:

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

        #Counter 1 movement
        if event.type == pygame.KEYDOWN and event.key == pygame.K_a:
            diceRoll = random.randint(1, 4)

            window.fill(grey)
            grid()

            count1 = pygame.draw.circle(window, (black),(150, countY - 72 * diceRoll), 25, 0)
懒惰

当按下一个键时,用灰色填充背景表面:

if event.type == pygame.KEYDOWN and event.key == pygame.K_a:
    diceRoll = random.randint(1, 4)

    window.fill(grey) # <--- fills the entire surface with a solid color!

而且您不会再画圆了。

一个简单的解决方法是保留所有圆的列表,并在每一帧绘制它们(有更有效的方法,但为方便起见,让我们保持简单)。

circles = []
countY = 750
circles.append((pygame.color.Color('black'), (150, countY), 25, 0))
circles.append((pygame.color.Color('black'), (250, countY), 25, 0))
circles.append((pygame.color.Color('white'), (450, countY), 25, 0))
circles.append((pygame.color.Color('white'), (550, countY), 25, 0))

while game:
    window.fill(grey)
    for event in pygame.event.get():
        # pygame.event.get() don't call pygame.event.get() twice

        if event.type == pygame.KEYDOWN and event.key == pygame.K_a:
            diceRoll = random.randint(1, 4)
            circles.append((pygame.color.Color('black'), (150, countY - 72 * diceRoll), 25, 0))

    for (color, pos, rad, w) in circles:
        pygame.draw.circle(window, color, pos, rad, w)
    pygame.display.flip()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python了解为什么跳过行

来自分类Dev

为什么这些代码行不返回任何结果?

来自分类Dev

我的代码行被跳过,我不确定为什么

来自分类Dev

这些代码行做什么?

来自分类Dev

为什么python跳过txt文件的第一行

来自分类Dev

为什么还要编译这些代码?

来自分类Dev

为什么这些代码不执行?

来自分类Dev

为什么还要编译这些代码?

来自分类Dev

为什么这些代码块的行为不同?

来自分类Dev

为什么代码会跳过for循环

来自分类Dev

为什么Xcode跳过循环代码?

来自分类Dev

为什么我的代码跳过了if语句?

来自分类Dev

为什么我不能在这些代码行上应用pandas.cut()?

来自分类Dev

这些代码行中的%是什么

来自分类Dev

这些代码行的目的是什么?

来自分类Dev

为什么这些看似相同的代码片段的行为不同?(Python 3)

来自分类Dev

为什么这些看似相同的代码片段的行为不同?(Python 3)

来自分类Dev

为什么Python跳过代码?Openpyxl,二维词典和异常

来自分类Dev

为什么我的python函数被跳过了?

来自分类Dev

为什么这些代码块没有给出相同的结果?

来自分类Dev

这些筛网优化为什么会破坏我的代码?

来自分类Dev

为什么这些完全相似的代码不起作用?

来自分类Dev

为什么这些代码块没有给出相同的结果?

来自分类Dev

为什么我的代码没有附加这些结果?

来自分类Dev

为什么我的代码会跳过某些节点?

来自分类Dev

为什么这段代码(Python)只返回一行?

来自分类Dev

为什么这些RxJS.Observable序列中的第二项被跳过?

来自分类Dev

Java跳过代码行

来自分类Dev

为什么这些行不在其svg元素内?

Related 相关文章

热门标签

归档