armido15
HV kasutaja

liitunud: 24.12.2010
|
23.03.2012 01:47:01
Python:Pygame kujundid ja draw funktsioon |
|
|
Ülessandeks siis paar kujundit joonistada.Kõigepealt lumememm.
Näite kood kujundite ühendamisest:
import pygame,sys
pygame.init()
ekraan = pygame.display.set_mode([640, 480])
ekraan.fill([255,255,255]) #valge
pygame.draw.circle(ekraan, [255, 0, 0], [50, 50], 25, 0)
#joonistab ringi,ekraanile,punase,asukoht,koordinaatteljestikus 50x 50y
#raadiusega 25 ja raamiga 0
kast = pygame.Rect(100, 50, 150, 150)
#defineerin kasti, mis on rect tüüpi
pygame.draw.rect(ekraan, [0, 255, 0], kast, 0)
#joonistab selle kasti(ruudu) reaalselt ekraanile
pygame.draw.circle(ekraan, [100, 100, 100], kast.center, 50, 0)
# joonistab halli ringi ruudu keskele raadiusega 50
pygame.draw.line(ekraan, [0, 0, 225], kast.midleft, ekraan.get_bounding_rect().center, 3)
#joonistab joone, ekraanile, sinise, ja ruudu alguspunkt on ruudu vasaku serva keskpunkt,
#joone lõpppunkt asub ekraani keskpunktsi ja joone paksus on 3
# pane tähele, kuna ekraan on teist tüüpi kui tavaline ristkülik,siis
# rect-i kasutamiseks peab eelnevalt ekraani rect-ga ühendama get_bounding_rect käsuga
pygame.display.flip()
# Pygame teeb ekraanipildi enne valmis ja flip() käsuga vahetab
#kogu ekraani korraga, et ei tekiks joonistamise vibratsioone
while True:#pidevalt kestev tsükkel
for i in pygame.event.get():
if i.type == pygame.QUIT:
sys.exit()#paneb mängu kinni |
10.real on defineeritud kast,et seda saaks kasutada muutujana.
Sooviks sarnast tegevust läbi viia ringiga aga jah ei saa hakkama eriti.
Keegi siis oskab soovitada,mida peale hakata?
Teine probleem on teise ülessandega.
Vaja märklaud joonistada täpselt ekraani keskele
import pygame, sys
pygame.init()
ekraan = pygame.display.set_mode([400,400])
ekraan.fill([255,255,255])
raadius=15
for i in range(1,11):
if i == 1:
pygame.draw.circle(ekraan, [255, 0, 0],[200,200],raadius, 0)
elif i %2:
pygame.draw.circle(ekraan, [0, 0, 0],[200,200],raadius, 15)
else:
pygame.draw.circle(ekraan, [84, 84, 84],[200,200],raadius,15)
raadius+=15
pygame.display.flip()
while True:#pidevalt kestev tsükkel
for i in pygame.event.get():
if i.type == pygame.QUIT:
sys.exit()#paneb mängu kinni
|
Proovisin kasutada
| pygame.draw.circle(ekraan, [84, 84, 84],ekraan.get_bounding_rect().center,raadius,15) |
Aga ei tahtnud töötada.
|
|