在已经创建的正方形上绘制一个圆圈 - pygame

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在已经创建的正方形上绘制一个圆圈 - pygame相关的知识,希望对你有一定的参考价值。

我目前正在尝试在游戏中制作一个游戏棋盘游戏,这需要在棋盘上的正方形中获得棋子然而,当我运行时,只有棋盘会出现,但没有一块。在这个程序中,我只做了一个黑色的碎片,它只是一个普通的黑色圆圈。我想知道是否有人知道如何在已经绘制的方块上绘制圆圈。

def drawPlayer1Circle(row):
    if (row<=2):
        return True
    else:
        return False
def drawPlayer2Circle(row):
    if (row>=5) and (row%2!=0 and column%2==0) and (row%2!=0 and column%2!=0):
        return True
    else:
        return False

def drawCircle():

    pygame.draw.circle(screen,BLACK,[((MARGIN + WIDTH) * column + MARGIN)+xDistanceFromEdge,
        (MARGIN + HEIGHT) * row + MARGIN,
        WIDTH/2,
            HEIGHT/2],WIDTH/2)
def drawBoard(BLACK,WHITE):# Draw the grid
    for row in range(8):
        for column in range(8):
            if row%2==0 and column%2==0:
                color = BLACK
            if row%2!=0 and column%2==0:
                color = WHITE
                if drawPlayer1Circle(row)==True:
                    drawCircle()
            if row%2==0 and column%2!=0:
                color=WHITE
            if row%2!=0 and column%2!=0:
                color= BLACK
                if drawPlayer1Circle(row)==True:
                    drawCircle()
            pygame.draw.rect(screen,
                             color,
                             [((MARGIN + WIDTH) * column + MARGIN)+xDistanceFromEdge,
                              (MARGIN + HEIGHT) * row + MARGIN,
                              WIDTH,
                              HEIGHT]) 
答案

看起来你正在画板前画圆圈,所以电路板被画在顶部。另外,你应该将rowcolumn传递给函数drawCircle,这段代码正在不必要地重复:

        if row%2==0 and column%2==0:
            color = BLACK
        if row%2!=0 and column%2==0:
            color = WHITE
            if drawPlayer1Circle(row)==True:
                drawCircle()

以上是关于在已经创建的正方形上绘制一个圆圈 - pygame的主要内容,如果未能解决你的问题,请参考以下文章

在Pygame中绘制一个又一个的图像

SpriteKit - 用物理体绘制包含其他圆圈的圆圈

如何聚焦光线或如何仅在 pygame 中绘制窗口的某些圆形部分?

pygame:屏蔽非图像类型的表面

在 UIView 框架内绘制圆圈

Android Canvas:仅在透明背景上绘制圆圈