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
True
ksi.
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ä.