E-learn.ro Produse evoMAG.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
Topul celor mai bine cotate tutoriale
Topul celor mai vizualizate tutoriale
* Cele mai bine clasate si cele mai votate tutoriale sunt selectate dintre tutorialele adaugate in ultimele 30 de zile.

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: 3483 3483 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 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 kheops
kheops Rang utilizator kheops - Incepator
2777
Tutoriale scrise de adry.ro
adry.ro Rang utilizator adry.ro - Incepator
794
Tutoriale scrise de pustiu
pustiu Rang utilizator pustiu - Expert
608
Tutoriale scrise de tornaddoss
tornaddoss Rang utilizator tornaddoss - Incepator
584
Tutoriale scrise de angel140581
angel140581 Rang utilizator angel140581 - Incepator
335
* Acest top reprezinta punctajele acumulate in ultimele 30 de zile.
Elefant.ro - Premium
Vista Dreamweaver PHP Verilog Fireworks XML Powerpoint Ruby on Rails Gimp Java MySQL COREL DRAW Action Script Javascript JSON Illustrator Sony Vegas PSD CSS Outlook XHTML AJAX Swift 3D Lightroom Excel Flash Fotografie StyleSheet SWF Python Photoshop RoR Word HTML Bridge 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-2012 E-LEARN.ro. Toate drepturile rezervate. Termeni si conditii.
Conceput si realizat de Neokinetics Software
Submit Your Site SmartNetBook.ro