E-learn.ro
Panou utilizatori
Utilizator Parola
Creeaza cont nou    Recupereaza parola
Login
Newsletter
Introdu adresa ta de email
Inscrie-te
Inchide panoul de utilizatori
Add to Google

Tutoriale Adobe Flash

Descarca toolbar

Toolbar E-learn.ro Facebook Twitter

GRAFICA 2D  /  Adobe Flash  /  ActionScript (14)

Bila cu efect de respingere si particule

05.01.2009
Bila cu efect de respingere si particule

In acest tutorial vei invata cum sa creezi un efect de respingere pentru o bila, folosind actiuni asociate mouse-ului si tastelor sageti.

Total vizualizari: 5896 5896 afisari   |   Comentarii  3   |   Rating   |   (11 voturi)   |   Timp necesar: 25 min 25 min   |   Nivel de cunostiinte necesar: Mediu  Mediu

Sursa:  www.actionscript.org  
Autor:  Alejandro Quarto
Download
Adauga la tutoriale favorit Adauga la tutoriale favorite
Pagina:
« 1 2
comenteaza printeaza

Codul principal

In continuare, trebuie sa incarci bila din librarie pe scena, astfel incat sa ii poti aplica anumite forte. Arunca o privire pe codul de mai jos:

function init() {
      leftLimit = 0;
      rightLimit = Stage.width;
     bottomLimit = Stage.height;
      topLimit = 0;
}
function createBall() {
      this.attachMovie("circle","myCircle",_root.getNextHighestDepth(),{_x:(rightLimit-leftLimit)/2, _y:(bottomLimit-topLimit)/2});
}
init();
createBall();
this.onEnterFrame = function() {
      //Wind
      angle = Math.atan2(_ymouse-myCircle._y, _xmouse-myCircle._x);
      distance = Math.sqrt(Math.pow(_xmouse-myCircle._x, 2)+Math.pow(_ymouse-myCircle._y, 2))/10;
      myCircle.accelerate(-Math.cos(angle)/distance,-Math.sin(angle)/distance);
      //Keyboard detection
      if (Key.isDown(Key.RIGHT)) {
         myCircle.accelerate(0.4,0);
      }
      if (Key.isDown(Key.LEFT)) {
          myCircle.accelerate(-0.4,0);
      }
      if (Key.isDown(Key.UP)) {
         myCircle.accelerate(0,-0.4);
      }
      if (Key.isDown(Key.DOWN)) {
          myCircle.accelerate(0,0.4);
      }
};

In init() au fost definite limitele pentru deplasarea bilei la stanga (leftLimit), dreapta (rightLimit), sus (topLimit) si jos (bottomLimit). Ca valori au fost folosite dimensiunile scenei.

Functia createBall() preia din librarie simbolul ce contine bila si il adauga pe scena, in mijlocul acesteia, cu numele „myCircle”.

Dupa apelul celor doua functii de mai sus, urmeaza definitia unei functii onEnterFrame, ce va controla efectul de „vant” generat de deplasarea mouse-ului.
Pentru aceasta, sunt calculate unghiul fata de orizontala al dreptei definite de pozitia bilei si cursor (angle), si distanta dintre cele doua (distance). Apoi, este apelata functia accelerate(), avand ca parametrii proiectiile vectorului definit de unghi si modul, in coordonate polare. In plus, functia onEnterFrame verifica daca exista input de la tastatura, cu alte cuvinte daca a fost apasata una dintre tastele sageata, si apeleaza accelerate() cu valorile corespunzatoare.

Codul pentru particule

Codul este foarte simplu:

this.onEnterFrame = function() {
    distance=Math.sqrt((Math.pow(_alpha-0,2))+(Math.pow(_alpha-0,2)))/5;
      _alpha-=distance
      _xscale-=distance/4
      _yscale-=distance/4
      if(_alpha<1){
           this.removeMovieClip()
      }
}

Pentru fiecare frame este calculata distanta dintre valoarea _alpha a particulei si 0. Folosind proprietatea _alpha ca distanta, poti calcula un factor de scalare si de reducere a opacitatii particulei. Daca valoarea _alpha este apropiata de 0, particula este stearsa. Daca inlocuiesti valorile „5” (/5) si „4” (distance/4) cu alte numere, vei observa ca timpul de viata al particulei se modifica. In plus, poti modifica movie clip-ul cu particula, adauga-i alte efecte.

In final, vei obtine un efect care, desi nu este foarte realist, reprezinta o abordare facila pentru o simulare cu doar cateva linii de cod.

Pagina:
« 1 2
comenteaza printeaza
Alte tutoriale Adobe Flash:
Noteaza acest tutorial
Rating tutorial
 
(11 voturi)
Pentru a nota acest tutorial, trebuie sa fii logat!
COMENTARII (3) spune-ti parerea
mtzdesign , Sambata, 27 Martie 2010, ora 09:18
#3

Ma,daca tutorialul acesta ii pt cei cu nivel mediu, din parerea ta, atunci un tutorial de nivel avansat cum arata?Oricum..foarte tare tutorialul..si eu m-am jucat ceva cu bila:))

Raporteaza acest comentariu ca injurios!
Pustiu' , Marti, 13 Ianuarie 2009
#2

Nu esti singurul :))...pe mine m-a fascinat de la inceput.

Raporteaza acest comentariu ca injurios!
Odcar , Marti, 06 Ianuarie 2009
#1

pufff... ce m-am mai jucat cu bila... :)

Raporteaza acest comentariu ca injurios!
Posteaza un comentariu
Pentru a posta un comentariu, trebuie sa fii logat!
0 TOP UTILIZATORI* 0 0
Tutoriale scrise de claibornelara
claibornelara Rang utilizator claibornelara - Incepator
4665
Tutoriale scrise de mcuemica
mcuemica Rang utilizator mcuemica - Incepator
4585
Tutoriale scrise de ellarichards
ellarichards Rang utilizator ellarichards - Incepator
4505
Tutoriale scrise de emonclercheap
emonclercheap Rang utilizator emonclercheap - Incepator
4405
Tutoriale scrise de beacherrosa
beacherrosa Rang utilizator beacherrosa - Incepator
4285
* Acest top reprezinta punctajele acumulate in ultimele 30 de zile.
Swift 3D Excel MySQL XHTML Powerpoint Dreamweaver PSD Flash Python Javascript COREL DRAW Word PHP Ruby on Rails JSON Illustrator SWF Vista Outlook StyleSheet Gimp Fireworks Action Script Lightroom Fotografie Sony Vegas Photoshop Bridge Verilog RoR AJAX Java HTML XML CSS SEO
Promovare:
Daca faci parte din comunitatea E-learn.ro si doresti promovarea acesteia, poti accesa pagina de promovare.
Arhiva newsletter:
Daca ai ratat un numar mai vechi, sau vrei sa revezi care au fost noutatile E-learn.ro la un moment dat, poti accesa arhiva de newslettere.
  Copyright © 2008-2013 E-LEARN.ro. Toate drepturile rezervate. Termeni si conditii.
Conceput si realizat de Neokinetics Software