BBC Micro:Bit -viikko

11 thoughts
last posted Jan. 18, 2016, 11:05 p.m.

3 earlier thoughts

0

Project 2 - Pomppiva Pallo

Seuraavassa projektissani halusin saada pallon pomppimaan Micro:Bitin 5x5 LED-ruudulla.

Aloitin luomalla pallon, jolle annoin x- ja y-koordinatit sekä nopeuden kummallakin akselilla. Jokaisella pelikierroksella pallo liikkuu nopeuden verran kumpaakin suuntaan. Jos pallo osui reunaan, sen nopeus kerrotaan luvulla -1 jotta sen suunta vaihtuu.

Huomasin että jos pallon nopeus oli muuta kuin 1 niin se päätyi helposti näytön ulkopuolelle aiheuttaen ohjelman kaatumisen. Korjasin tämän (ei ehkä niin realistisella tavalla) tarkistamalla ennen pallon piirtämistä että olisiko se ruudun ulkopuolella, ja jos olisi, niin vaihtamalla koordinaatin minimi tai maksimi arvoon (riippuen mistä reunasta pallo olisi mennyt yli).

Kirjoittaessani ohjelmaa löysin muutaman tärkeän asian jotka tuli ottaa huomioon. Ensinnäkin minun tuli muistaa sammuttaa pallon edellinen koordinaatti ennen kuin sytytin uuden. Toiseksi pallon piti odottaa hetki piirtämisten välillä tai se näytti liikkuvan aivan liian nopeasti.

Koska 5x5 näyttö on kovin pieni ja pallon liike laskettu yksinkertaisella tavalla, pallo jäi helposti toistamaan yhtä ja samaa liikerataa. Korjatakseni tämän lisäsin ohjelmaan mahdollisuuden muuttaa x- tai y-koordinaattia nappia painamalla, jolloin pallon sai siirrettyä liikkumaan uudella radalla.

Lisäsin myös toiminnon jolla näytölle voi lisätä pallon painamalla molempia nappuloita yhtäaikaa. Huomasin kuitenkin että pallot hidastuivat sitä mukaa mitä useamman pallon lisäsin. Korjasin sitä vähentämällä odotusaikaa piirtojen välissä aina kun mukaan tuli uusi pallo. Rajoitin myös pallojen määrän neljään jottei näyttö puuroutuisi pallojen määrästä. Peli päättyy jos palloja yrittää lisätä useamman kuin 4.

Valitettavasti en heti ottanut videota tästä ohjelmasta ja Mei-Xiu kärähti ennen kuin ehdin kuvata esimerkin. Ohjelman lähdekoodi löytyy kuitenkin täältä joten voit itse kokeilla!

Lisäys

Nyt kun Marja on täällä sain viimein kuvattua esimerkin ohjelmasta.

7 later thoughts