Piirtäminen

Takaisin pääsivulle

Seuraavaksi opettelemme piirtämään ikkunaan erilaisia kuvioita. Tätä varten on tärkeää tietää, mitä ovat koordinaatit.

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

Värit

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ä:

Viiva

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:

Laatikko

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:

Ympyrä

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:

Takaisin pääsivulle