Seuraavaksi opettelemme piirtämään ikkunaan erilaisia kuvioita. Tätä varten on tärkeää tietää, mitä ovat koordinaatit.
Koordinaattien avulla voimme kertoa, mihin kohtaan ikkunassa haluamme piirtää jotain. Jokaisella ikkunan pisteellä on x-koordinaatti (sijainti leveyssuunnassa) ja y-koordinaatti (sijainti pystysuunnassa).
Ikkunan vasemman ylänurkan x- ja y-koordinaatti on 0. Koordinaatit kasvavat oikealle ja alaspäin liikuttaessa. Huom! y-koordinaatti kasvaa alaspäin liikuttaessa.
Esimerkiksi seuraavassa kuvassa olevan sinisen pallon x-koordinaatti on 230 ja y-koordinaatti on 70. Lyhyemmin sanoen pallo on kohdassa (230, 70).
Tavallinen tapa ilmoittaa väri ohjelmoinnissa on käyttää RGB-merkintää. RGB tulee sanoista "red-green-blue" eli "punainen-vihreä-sininen". Sekoittamalla punaista, vihreää ja sinistä saadaan kaikki värit. Jokaisen värin osan määrä annetaan lukuna väliltä 0–255.
Esimerkkejä RGB-väreistä:
Seuraava koodi näyttää ikkunan, jossa on sininen viiva:
# -*- coding: utf-8 -*- import pygame naytto = pygame.display.set_mode((640, 400)) pygame.display.set_caption("Piirtäminen") def main(): while True: tapahtuma = pygame.event.poll() if tapahtuma.type == pygame.QUIT: break naytto.fill((0, 0, 0)) pygame.draw.line(naytto, (0, 0, 255), (100, 50), (400, 370)) pygame.display.flip() main()
Huomaamme että ohjelmarunko on hyvin samanlainen kuin johdanto-osassa. Tässä olemme lisänneet pääsilmukkaan komennot naytto.fill
, pygame.draw.line
ja pygame.display.flip
. Komento naytto.fill
täyttää näytön mustalla värillä. Komento pygame.draw.line
taas piirtää viivan, ja se saa parametreina seuraavanlaisia asioita:
pygame.draw.line(naytto, (red, green, blue), (alkux, alkuy), (loppux, loppuy))
Parametrit ovat arvoja, joita komennoille voidaan antaa. Yllä olevalle pygame.draw.line
-komennolla annetaan parametrina naytto, johon viiva piirretään, piirrettävän viivan väri punaisen, sinisen ja vihreän yhdistelmänä, viivan alkupisteen x- ja y-koordinaatit, sekä viivan loppupisteen x- ja y-koordinaatit.
Näiden lisäksi tarvitaan komento pygame.display.flip
, joka näyttää juuri piirretyt asiat näytöllä.
Ohjelman suoritus näyttää seuraavalta:
Seuraava koodi näyttää ikkunan, jossa on punainen laatikko:
# -*- coding: utf-8 -*- import pygame naytto = pygame.display.set_mode((640, 400)) pygame.display.set_caption("Piirtäminen") def main(): while True: tapahtuma = pygame.event.poll() if tapahtuma.type == pygame.QUIT: break naytto.fill((0, 0, 0)) pygame.draw.rect(naytto, (255, 0, 0), (100, 50, 150, 200)) pygame.display.flip() main()
Tässä komento pygame.draw.rect
piirtää laatikon. Komennon
käyttötapa on seuraava:
pygame.draw.rect(naytto, (red, green, blue), (alkux, alkuy, leveys, korkeus))
Ohjelman suoritus näyttää seuraavalta:
Seuraava koodi näyttää ikkunan, jossa on keltainen ympyrä:
# -*- coding: utf-8 -*- import pygame naytto = pygame.display.set_mode((640, 400)) pygame.display.set_caption("Piirtäminen") def main(): while True: tapahtuma = pygame.event.poll() if tapahtuma.type == pygame.QUIT: break naytto.fill((0, 0, 0)) pygame.draw.circle(naytto, (255, 255, 0), (350, 150), 40) pygame.display.flip() main()
Tässä komento pygame.draw.circle
piirtää ympyrän. Komennon
käyttötapa on seuraava:
pygame.draw.circle(naytto, (red, green, blue), (keski-x, keski-y), säde)
Ohjelman suoritus näyttää seuraavalta: