【问题标题】:changing color of squares in pygame在pygame中改变方块的颜色
【发布时间】:2022-01-22 21:59:53
【问题描述】:

我想制作一个简单的程序,您可以在其中按下屏幕上的方块,它们会改变颜色,但我在文档中找不到如何使用pygame.draw.rect 来实现。

import pygame
pygame.init()


screen = pygame.display.set_mode([501, 501])

siatka = [[[0] for i in range(10) ]for i in range(10)]

def rysowanie():
    for i,el in enumerate(siatka):
        for j,ele in enumerate(el):
            pygame.draw.rect(screen,(0,0,0),pygame.Rect(50*j +1,50*i+1,49,49))

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

    screen.fill((0, 255, 0))

    rysowanie()

    pygame.display.flip()
    
pygame.quit()

我什至不知道我想做的事情的名称是什么,所以如果这很容易,我很抱歉。

【问题讨论】:

    标签: python python-3.x pygame


    【解决方案1】:

    将您的siatka 设为一个颜色矩阵,并为每个正方形绘制相应的颜色。 单击屏幕时,更改siatka 中该鼠标位置的颜色。

    import pygame
    
    pygame.init()
    screen = pygame.display.set_mode([501, 501])
    siatka = [[(0, 0, 0) for i in range(10)] for i in range(10)]
    
    def rysowanie():
        for i, el in enumerate(siatka):
            for j, ele in enumerate(el):
                pygame.draw.rect(screen, ele, pygame.Rect(50 * j + 1, 50 * i + 1, 49, 49))
    
    running = True
    while running:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                running = False
            elif event.type == pygame.MOUSEBUTTONDOWN:
                siatka[event.pos[1] // 50][event.pos[0] // 50] = (255, 0, 0)
        screen.fill((0, 255, 0))
        rysowanie()
        pygame.display.flip()
    pygame.quit()
    

    【讨论】:

    • 感谢您的帮助!
    猜你喜欢
    • 2022-10-06
    • 2014-07-28
    • 2022-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多