May 29

  • english

Move Bounce, Visszapattanás (2 rész) – AS3

Posted by dody Design | Comments: 3 responses

Ebben a tutorialban kibővítjük a már előzőleg elkészített alap mozgást végző osztályunkat. Az objektumorientált programozás alapvető feltételi: Encapsulation (feketedoboz, csak az érdekes mi megy be és mi jön ki), Polymorphism (Többalakúság), Inharitance (öröklődés). Ez utóbbira igen jellemző példa a mozgás – visszapattanás – gravitáció – … és még sok sorolható mozgás lenne több irányba is.

package {
import flash.display.MovieClip
import flash.events.Event
public class bound{
public function bound(targetMC:MovieClip,xStart:Number, yStart:Number){
}
}
}

Az első kódrészünk nem fog működni, mert nincsenek deklarálva a változók. Ne is tegyük ezt meg, mert nem fog kelleni. A visszapattanás egy bővítő osztály. A class(osztály) kiegészítés az extends kulcsszóval lehet elérni. Tehát egészítsük ki a mover osztályt a bound -dal.
Ez a következőképpen fog kinézni:

package {
import flash.display.MovieClip
import flash.events.Event
public class bound extends mover{
public function bound(targetMC:MovieClip,xStart:Number, yStart:Number){
super(targetMC,xStart,yStart)
}
}
}

A super kulcsszóval a “szülő” osztályt lehet meghívni. Ami jelen esetben magyarra lefordítva annyit tesz, hogy mikor példányosítani fogjuk a bound osztályunkat akkor az ugyanazt a műveletet végre fogja hajtani mint a szülő osztálya, de természetesen ki is egészíthetjük.
A következő kódsorral be is fejezzük:

package {
import flash.display.MovieClip
import flash.events.Event
public class bound extends mover{

public function bound(targetMC:MovieClip,xStart:Number, yStart:Number){
super(targetMC,xStart,yStart)
}
override protected function updatePoz(event:Event):void{
bouncertBorder()
super.updatePoz(event)
}
private function bouncertBorder():void{
if((this.targetMC.x>=this.targetMC.stage.stageWidth-this.targetMC.width)||(this.targetMC.x<=0)){
this.xMod *= -1
}
if((this.targetMC.y>=this.targetMC.stage.stageHeight-this.targetMC.height) || (this.targetMC.y<=0)){
this.yMod *= -1
}
}

}
}

Az override kulcsszó a felülírást jelentí. Azaz a szülő osztálynak van páldául egy updatePoz() függvénye akkor azt a gyerek osztályban az override -al tudjuk felülírni és újra tudjuk definiálni. Jelen esetben azért tesszük meg ezt, mert ki szeretnénk egészíteni a visszapattanás vizsgálatával.
A visszapattanást egy egyszerű if -es szerkezettel vizsgáljuk, ha eléri a határt akkor a mozgás módosító értékét megszorozzuk minusz eggyel ami a mozgás ellentétét fogja előidézni.

Az fla -ban a módosítandó így csupán az hogy a mover -t átírod bound -ra.

Fontosnak tartom itt megjegyezni, hogy mi a különbség a public, private és protected függvény és változó kulcsszavak között.

public: Az objektumot használó bármely kód számára közvetlenül hozzáférhető.
private: Csak azon objektum számára elérhetők, melyben meghatározták őket.
protected: Közvetlenül nem, de egy öröklés által, alosztályon (gyermekosztály) keresztül elérhető.

Posted in Flash, Tutorial

Comments

So far, there are 3 Comments | Post your own comment
Avatar:

Itt regisztrálhatsz a Gracatar -ra. Ha ide regisztrálsz az e-mail címed segítségével, azonnal beillesztésre kerül az avatarod minden ezt használó oldalra. (Egyszeri regisztráció, SEMMI SPAM, Hírlevél!)


  1. No GravatarÉvi said:

    szia!

    Nem tom, mi ez, de hogy legyen vmi komment, írok most!
    I don’t know what is this, but some comment would be here, so i write now.

    :-)
    Szia: Évi


  2. No Gravatardody Design said:

    Hát ez egy programozási példa. De köszönöm hogy írtál.
    This’s a programing exemple. Thx for comment.


  3. No GravatarWulpil said:

    Nagyon tanulságos példának tartom!


Post your opinion

About in Brief

Hy,
Dody vagyok, designere és HTML fejlesztője ennek a site-nak, amit most nézel. Most 27 vagyok és Budapesten (Magyarország) élek. Designer és Interaktív alkalmazásfejlesztő (Flash-Java Developer) vagyok. Jelenleg a szabadúszóként dolgozom. Szabadidőmben nyelveket tanulok és biciklizem...
[More...]