Tuff
Tuff

Reputation: 167

How to draw a circle in PyGame?

Hi I am having a problem with drawing a circle ERROR: module object has no attribute 'circle'. what am I doing wrong?

And also how can I put numbers in circles?

For example: (first click is circle with 0 second is circle with 1 and so on)

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()

Upvotes: 14

Views: 106182

Answers (5)

CureShip
CureShip

Reputation: 49

If you want an ellipse instead, you can use the function:

pygame.draw.ellipse(
  surface,
  color,
  bounding_rectangle,
  width=0
)

This will draw an ellipse circumscribed by the specified rectangle!

Upvotes: 3

Kasun Kalhara
Kasun Kalhara

Reputation: 49

Here is how you can draw a circle properly

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()

Upvotes: 4

Irfan wani
Irfan wani

Reputation: 5104

Here is how you can draw a circle in 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.

Upvotes: 4

Arijit Sur
Arijit Sur

Reputation: 39

Mainter a counter for the number of circles you have drawn and write the number with the co-ordinates same as the centre of the circle. Also the command is pygame.draw.circle and not pygame.draw.circl

Upvotes: 2

Ericson Willians
Ericson Willians

Reputation: 7855

You've mistyped the name of the function. The correct name is pygame.draw.circle.

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

Upvotes: 18

Related Questions