View more

View more

View more

Image of the Day Submit

IOTD | Top Screenshots

The latest, straight to your Inbox.

Subscribe to GameDev.net Direct to receive the latest updates and exclusive content.

Randomly generated circles in pygame.

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

13 replies to this topic

#1Crazylegs830  Members

Posted 09 November 2013 - 09:09 AM

Hello I'm back and need more help what I was planning to do was to have little circles randomly places on my screen. How would I go about doing that? Sorry if this is a stupid question still a beginner.

#2FLeBlanc  Members

Posted 09 November 2013 - 09:43 AM

pygame.draw.circle? Give it a randomized pos and radius, and boom.

#3Crazylegs830  Members

Posted 09 November 2013 - 11:43 AM

pygame.draw.circle? Give it a randomized pos and radius, and boom.

Ah, Ok sorry didn't know it was so simple.

#4Crazylegs830  Members

Posted 09 November 2013 - 12:57 PM

pygame.draw.circle? Give it a randomized pos and radius, and boom.

Ah, Ok sorry didn't know it was so simple.

Can you show me some code?

#5PeterF  Members

Posted 09 November 2013 - 08:12 PM

It would probably be a good exercise for you to figure out. Use what FLeBlanc gave you as well as http://docs.python.org/2/library/random.html#random.randint.

#6Crazylegs830  Members

Posted 10 November 2013 - 07:08 AM

Hmmm, I have this code:

And get this error:

TypeError: must be 2-item sequence, not int

#7Lactose  GDNet+

Posted 10 November 2013 - 07:33 AM

pygame.draw.circle() wants both an x and a y coordinate.

random.randint(0, 1600) gives you 1 integer (which in this case translates to 1 coordinate).

You need to generate 2 coordinates, and feed them into the draw function.

I don't know the syntax of pygame more than what a minute of googling tells me, but at a guess something like:

pygame.draw.circle(screen, WHITE, (random.randint(0, 1600), random.randint(0, 1600)), radius)

Hello to all my stalkers.

#8Crazylegs830  Members

Posted 10 November 2013 - 05:50 PM

pygame.draw.circle() wants both an x and a y coordinate.

random.randint(0, 1600) gives you 1 integer (which in this case translates to 1 coordinate).

You need to generate 2 coordinates, and feed them into the draw function.

I don't know the syntax of pygame more than what a minute of googling tells me, but at a guess something like:

pygame.draw.circle(screen, WHITE, (random.randint(0, 1600), random.randint(0, 1600)), radius)

I think it worked, but how do I make it appear over another shape?

#9PeterF  Members

Posted 11 November 2013 - 07:50 AM

The pygame draw function returns a Rect, so blit the Rect onto the screen Surface after the other shape has been blitted.

Edited by PeterF, 11 November 2013 - 07:55 AM.

#10Crazylegs830  Members

Posted 11 November 2013 - 12:19 PM

The pygame draw function returns a Rect, so blit the Rect onto the screen Surface after the other shape has been blitted.

And to blit them what do I do? I am sincerely sorry for my lack of knowledge in programming.

#11dragons  Members

Posted 13 November 2013 - 04:58 AM

http://inventwithpython.com/chapters/

and this

http://inventwithpython.com/pygame/chapters/

#12Eck  Members

Posted 13 November 2013 - 08:45 AM

It doesn't seem like you're trying on your own very much. Start googling for some tutorials and reading some documentation. The first question, I can understand if you're a beginner. You simply might not know how to make your computer roll dice. But your follow up questions are covered in nearly every pygame tutorial out there. Do a little experimentation on your own and you'll be surprised what you learn.

If you were just confused what blt meant, it's basically an old term for "draw it on the screen". Google is your buddy there as well.

This wasn't meant to be discouraging. /hugs

- Eck

EckTech Games - Games and Unity Assets I'm working on
Still Flying - My GameDev journal
The Shilwulf Dynasty - Campaign notes for my Rogue Trader RPG

#13Crazylegs830  Members

Posted 13 November 2013 - 10:05 AM

It doesn't seem like you're trying on your own very much. Start googling for some tutorials and reading some documentation. The first question, I can understand if you're a beginner. You simply might not know how to make your computer roll dice. But your follow up questions are covered in nearly every pygame tutorial out there. Do a little experimentation on your own and you'll be surprised what you learn.

If you were just confused what blt meant, it's basically an old term for "draw it on the screen". Google is your buddy there as well.

This wasn't meant to be discouraging. /hugs

- Eck

Thanks for the response. I have been looking while waiting for an answer and have been waiting pygame tutorials by thenewboston and did google quite a lot. Sorry again, but it just didn't work when I blitted it over but I will look more thanks.

#14Crazylegs830  Members

Posted 13 November 2013 - 10:09 AM

I have googled and researched and please forgive me for confusing you if I have. I am drawing the circles before the background. It will not work. When I get rid of the background the circles are there what do I do? Code:

you="C:\\Users\\user\\Desktop\\Python Programs\\Snake\\textures\\you.bmp"

import pygame, sys, random
from pygame.locals import *

pygame.init()

screen=pygame.display.set_mode((1600,1120),0,32)

#Variables for shapes

BLUE=(0,64,128)
WHITE=(255,255,255)
pos1=(0,0)
pos2=(0,1130)
pos3=(1600,0)
pos4=(1600,1130)
randpos1=random.randint(0, 1120)
randpos2=random.randint(0, 1600)

#Variables for shapes

x,y=770,560
movex, movey=0,0

#Controls

while True:

for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
if event.type==KEYDOWN:
if event.key==K_LEFT:
movex=-4
elif event.key==K_RIGHT:
movex=+4
elif event.key==K_UP:
movey=-4
elif event.key==K_DOWN:
movey=+4
if event.type==KEYUP:
if event.key==K_LEFT:
movex=0
elif event.key==K_RIGHT:
movex=0
elif event.key==K_UP:
movey=0
elif event.key==K_DOWN:
movey=0
#Controls

screen.lock()
pygame.draw.circle(screen, WHITE, (random.randint(0, 1600), random.randint(0, 1600)), radius)
screen.unlock()

x+=movex
y+=movey

#Collision
if y < 0:
y = 0
elif y > 1080:
y = 1080
if x < 0:
x = 0
elif x > 1550:
x = 1550
#Collision
#Dots

screen.blit(mouse_c,(x,y))
pygame.display.update()

Edited by Crazylegs830, 13 November 2013 - 02:11 PM.

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.