Canvi d’imatges

Autora: Ariadna Santos

El fet que el programa no deixi modificar les imatges directament des de l’àrea de disseny ens obliga a preparar les imatges que volem canviar prèviament. En aquest cas, l’aplicació consisteix en fer explotar l’ocell quan l’usuari el toqui. Serà el moment en que les imatges de l’explosió que hem preparat prèviament apareguin en una seqüència.

Components de la interfície:

Component

Palette

Nom

Propietats

Canvas Basic MyCanvas Background.jpgWidth: Fill parentHeight: 380 pixels
ImageSprite Animation bird BirdBlue.pngInterval: 500
ImageSprite Animation boom BirdExplosion0.png*BirdExplosion1.pngBirdExplosion2.pngInterval: 100

Opció Visible desactivada

Label Basic score Text: Score
Clock Basic boomClock Interval: 100*TimerEnabled: desactivat
Sound Media boomSound BirdExplosionNoise0.wav

*És important que la imatge BirdExplosion0.png estigui seleccionada com a Picture en l’animació boom. Però també hem de pujar les imatges que la segueixen per tal que també apareguin just després de la primera. Situem l’explosió en el canvas a prop o a sobre de l’ocell i la desactivem.

*Si l’interval és més alt veurem més lentament el canvi d’imatges.

Block’s Editor:

Definicions: 

- Variable: BoomCounter

Captura de pantalla 2013-05-23 a la(s) 12.21.03

 

Utilitzem el Counter per crear els noms de les imatges. Inicialment el valor del boomCounter és 1, és perquè el nom de la segona explosió és BirdExplosion1.png, no BirdExplosion2.png

- Variable: puntuació

Captura de pantalla 2013-05-23 a la(s) 12.21.10

- Procedure: MoveBird

 

Captura de pantalla 2013-05-23 a la(s) 12.21.17

bird.Touched:

  • Una vegada toquem l’ocell, a partir d’una operació boleana (fals), desactivarem el seu valor i l’ocell no es veurà. (Bird.Enabled. Bird.Visible)
  • Ordenarem que la imatge boom es col·loqui a la posició actual de l’ocell.
  • Boom.Picture. Indiquem que mostri l’explosió 0 escrivint en un text el nom exacte de la imatge.
  • A partir d’una altre operació boleana (true) activem la imatge boom. (boom.Enable- Boo.visible).
  • Com que en l’àrea de disseny hem desactivat la opció Enabled del boom.Clock ara li hem de dir, amb una operació boleana, que ens l’activi (true).
  • Finalment que canviï la posició de l’ocell.
  • Sumar la puntuació.

Captura de pantalla 2013-05-23 a la(s) 12.21.43

BoomClock.Timer:

  • ifelse (control) comprova una condició donada. Si el resultat és verdader, duu a terme les accions de la seqüència then-do, si és fals duu a terme les accions de else-do.
  • BoomCounter > 2. Aquesta ordre compara els dos números, si el primer és més gran serà veritat (true), al contrari, l’operació serà falsa.
  • L’acció del else-do serà donar un valor a la imatge boom.picture. Ho farem amb la opció join que es troba al text blocks. Afegirà el text .png al resultat del text BirdExplosion i el global boomCounter.
  • Finalment en el valor global del boomCounter li sumem 1.

Captura de pantalla 2013-05-23 a la(s) 12.21.54

Com ampliar el tutorial:

  • Incloure el botó de reset.
  • Fer que l’ocell es mogui constantment, des del principi.