Aplicatia Bouncing Ball

Construind aplicatia Bouncing Ball App vom descoperi cum functioneaza un heading de sprite in App Inventor. Vom programa o bila sprite sa isi schimbe heading-ul cand utilizatorul o azvarle sau cand bila se loveste de cei 4 pereti. Vom invata sa folosim componenta BallSprite si cateva din metodele sale (Bounce, Heading).

  • Ne conectam la site-ul App Inventor si incepem un poriect nou. Il denumim BouncingBall si setam titlul ecranului „BouncingBall“. Deschidem Blocks Editor si ne conectam la un dispozitiv sau emulator.
  • Folosim componenta designer sa cream interfata pentru BouncingBall. Cand am terminat, ar trebui sa arate cam asa:

  • Pentru a crea interfata, punem urmatoarele component in Designer tragandu-le din paleta Component in Viewer. Setam proprietatile dupa cum sunt descrise mai jos:

  • Vrem ca actiunile sa se intample dupa 2 evenimente diferite: bila loveste un zid si bila fiind azvarlita de utilizator. De fiecare data cand bila isi schimba directia eticheta de heading trebuie actualizata. Pentru a implementa toate aceste 3 feature-uri, o sa folosim event handler-ul Ball1.Flung, event handler-ul Ball1.EdgeReached si vom crea o noua procedura numita UpdateLabel1.
  • Vom defini o noua procedura care actualizeaza heading-ul din HeadingLabel. Tragem o noua procedura si o numim UpdateLabel. Construim procedura UpdateLabel. Blocurile complete ar trebui sa arate astfel:

  • Lasam spatiul arg deschis pentru ca UpdateLabel nu are nici o intrare (argument). Observam ca blocurile se potrivesc impreuna. UpdateLabel seteaza HeadingLabel.Text la valoarea heading-ului lui Ball1. Heading este un numar care reprezinta directia in grade a caii pe care o urmeaza bila. Acesta incepe la 0 grade in partea dreapta, axa X pozitiva si continua pana la 360 grade.

  • Bila ar trebui sa isi schimbe directia cand utilizatorul o azvarle. Noua ei directie va fi in aceeasi directie ca si gestul de azvarlire. Tragem un bloc Ball1.Flung. Priviti cum acest bloc furnizeaza argumente pentru x, y, xvel, yvel, heading si viteza azvarlirii. Vrem sa actualizam heading-ul bilei cu orice heading transmis de catre evenimentul Flung. Cand o azvarlire are loc, vrem de asemenea sa actualizam numarul afisat pe ecran prin apelul UpdateLabel.
  • Asamblam blocurile astfel:

  • Bila ar trebui sa isi schimbe directia cand loveste unul dintre cei 4 pereti, denumiti de asemenea limite. Sprite-urile bilei au o metoda numita Ball1.EdgeReached. Acest bloc furnizeaza un argument (o bucata de informative pasata cu metoda) care spune ce limita a fost atinsa. Ball1 are de asemenea o metoda numita Ball1.Bounce care ia un argument limita ca si intrare si care schimba de asemenea heading-ul bilei pentru a o face sa sara cum trebuie. Vom folosi amandoua aceste blocuri pentru a actualize heading-ul. De asemenea, avem nevoie sa actualizam eticheta heading-ului prin apelul lui UpdateLabel.

Asa ar trebui sa arate. Haideti sa asamblam blocurile astfel:

Programul BouncingBall integral:

Dupa ce il testam, urmeaza cateva exercitii.

Exercitii:

  • Adaugam un feature care schimba culoarea bilei in functie de valoarea heading-ului. Pentru ajutor:
  • Alegem un nou heading aleator cand utilizatorul atinge bila (utilizam metoda Ball.Touched, si nu metoda Ball.Flung)
  • Schimbam viteza cand utilizatorul atinge sau azvarle o bila
android_incepatori/laborator/laborator5.txt · Ultima modificare: 2013/08/03 02:18 de către daiana.negulici
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0