如何在PyGame中画圆?

问题描述 投票:0回答:5

嗨,我在画圆时遇到问题

ERROR: module object has no attribute 'circle'
。我做错了什么?

还有如何将数字放入圆圈中?

例如:(第一次点击是0的圆圈,第二次是1的圆圈,依此类推)

import pygame

WHITE =     (255, 255, 255)
BLUE =      (  0,   0, 255)
GREEN =     (  0, 255,   0)
RED =       (255,   0,   0)
TEXTCOLOR = (  0,   0,  0)
(width, height) = (200, 300)

running = True

def main():
    global running, screen
    
    pygame.init()
    screen = pygame.display.set_mode((width, height))
    pygame.display.set_caption("TUFF")
    screen.fill(background_color)
    pygame.display.update()
    
    while running:
        ev = pygame.event.get()

        for event in ev:

            if event.type == pygame.MOUSEBUTTONUP:
                drawCircle()
                pygame.display.update()

            if event.type == pygame.QUIT:
                running = False

def getPos():
    pos = pygame.mouse.get_pos()
    return (pos)

def drawCircle():
    pos=getPos()
    pygame.draw.circl(screen, BLUE, pos, 20)


if __name__ == '__main__':
    main()
python pygame draw
5个回答
17
投票

您输错了函数名称。正确的名称是 pygame.draw.circle.

def drawCircle():
    pos=getPos()
    pygame.draw.circle(screen, BLUE, pos, 20) # Here <<<

4
投票

这是如何在 pygame 中画圆;

import pygame
pygame.init()
screen = pygame.display.set_mode((x, y)) #x and y are height and width

pygame.draw.circle(screen, (r,g,b), (x, y), R, w) #(r, g, b) is color, (x, y) is center, R is radius and w is the thickness of the circle border.

4
投票

以下是正确画圆的方法

import pygame

window = pygame.display.set_mode((500,500))
red = (200,0,0)

circleX = 100
circleY = 100
radius = 10

active = True

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

   pygame.draw.circle(window,red,(circleX,circleY),radius) # DRAW CIRCLE

   pygame.display.update()

2
投票

维护一个计数器来记录你画了多少个圆,并以与圆心相同的坐标写下这个数字。 该命令也是 pygame.draw.circle 而不是 pygame.draw.circl


2
投票

如果你想要一个椭圆,你可以使用函数:pygame.draw.ellipse(surface, color,bounding_rectangle, width=0)。这将绘制一个由指定矩形外接的椭圆!

© www.soinside.com 2019 - 2024. All rights reserved.