VIHOLLISPELI

Nyt meillä on liikkuva hahmo. Seuraavaksi tehdään vihollispeli.

Tehtävä 1: Vihollinen

Jos sinulla ei ole vielä piirrettynä viholliselle sopivaa kuvaa, tee se nyt. Luo koodiisi viholliset -lista heti hahmot -listan jälkeen. Viholliset -listasta tulee muuten samanlainen kuin hahmot -listasta, mutta se tulee sisältämään vihollisia. Jos et muista enää mitään hahmot -listasta, palaa katsomaan edellisen osan kontrolli -lukua.

Alusta listaan yksi elementti viholliskuvallasi. Listan tulee näyttää nyt suunnilleen seuraavalta, "vihollinen.png" tilalla oma tiedostonimesi:

viholliset = [["vihollinen.png", 200, 200]]

Tehtävä 2: Tarvittavat muutokset koodiin

Koodissasi on ehto, jonka mukaan hahmot -listan hahmot ilmestyvät näytölle vasta kun painetaan välilyöntiä. Vihollinen ei kuitenkaan nyt ilmesty samalla näytölle koska se ei kuulu hahmot -listaan. Tee nyt tarvittavat muutokset, jotta viholliset -listan vihollinen ilmestyy näytölle välilyöntiä painettaessa.

Sinun täytyy ensin muokata kontrolli -funktion määrityksessä sen parametreja. Lisää funktion parametriksi vihollislista seuraavasti:

def kontrolli(hahmot, tapahtuma, viholliset):

ja muokkaa myös funktion kutsumista seuraavaksi:

kontrolli(hahmot, tapahtuma, viholliset)

Tämän jälkeen katso koodisi ehtolauseen

if tapahtuma.key == pygame.K_SPACE:

sisältöä. Lisää sinne viholliset listan läpikäynti niin että vihollisen näyttämisen False -arvo muutetaan Trueksi.

Myös piirtaminen -funktiota täytyy muokata jotta viholliset piirretään. Muokkaa sitä samaan tapaan kuin kontrolli-funktiota, eli aseta funktio ottamaan parametrina myös viholliset -lista. Viholliset-listan sisältö piirretään samankaltaisella for-silmukalla kuin hahmot-listan sisältö.

Tehtävä 3: Pelihahmo kuolee osuessaan viholliseen

Nyt pelissämme on hahmo, joka liikkuu nuolinäppäimillä, sekä vihollinen joka on paikoillaan. Seuraavaksi koodaa seuraavilla ohjeilla toiminnallisuus, jonka mukaan hahmo kuolee osuessaan mihin tahansa viholliset-listan sisältämään viholliseen.

1. Haluamme, että hahmot-listan ensimmäinen hahmo eli päähahmomme kuolee osuessaan mihin tahansa viholliset-listan viholliseen. Koodaa siis esimerkiksi seuraavanlainen for-silmukka kontrolli-funktion alkuun:

for vihollinen in viholliset:

Silmukan sisään tee ehto, joka tarkistaa ovatko vihollisen ja hahmot-listan ensimmäisen hahmon koordinaatit samat. Mikäli ovat, poista päähahmo listasta seuraavalla komennolla:

del hahmot[0]

Tehtävä 4: Vihollinen liikkumaan

Jotta pelistä tulisi kiinnostavampi, vihollinen pitää saada liikkumaan. Koodaa seuraavanlainen liikkumiskäyttäytyminen viholliselle kontrolli-funktioon:

if vihollinen[1] > 640:
    vihollinen[1] = 0
else:
    vihollinen[1] += 10
Koodissa siis liikutetaan vihollista oikealle, ja kun vihollinen menee näytön yli oikealta, se siirretään näytön vasempaan reunaan.

Tehtävä 5: Monta vihollista

Lisää viholliset-listaan sen alustuksessa useampi vihollinen eri kohdille näyttöä ja kokeile peliä.

Tehtävä 6: Vihollinen satunnaiseen pystysijaintiin näytöllä

Muuta kontrolli-funktion vihollisten sijainnin muuttamista siten, että kun vihollinen siirretään takaisin näytön vasempaan reunaan, sen pystykoordinaatti arvotaan nollan ja näytön korkeuden (400) väliltä.