Kezdőoldal » Számítástechnika » Programozás » Javascript class funkció...

Javascript class funkció lefuttatása egy másik classon?

Figyelt kérdés

Sziasztok,

Az lenne a problémám hogy egy játékot írok, és van benne többféle Ammo osztály. Szeretném ha a különböző ammo-knak különböző hatása legyen. (lassító, sebző, stb...)


Az ammo-nak írnék egy effect metódust ami igazából azt döntené el mi is lenne ennek a hatása (pl speed = speed/2, hp = hp - this.dmg)


Addig jutottam el hogy returnolok egy () => {} funkciót (a scopet így megőrzi így a this.dmg az ammó this.dmg-jére fog vonatkozni ellenben a function () {} anonymous funkció létrehozással)


Ellenben amit nem tudok hogy lehetne ezt a függvényt alkalmazni egy másik osztály példányán?


(feltehetjük hogy annak van speed adattagja)


Nem feltétlen tudtam jól elmagyarázni, de remélhetőleg valaki megérti és tud segíteni :D



2016. dec. 11. 20:41
 1/1 anonim ***** válasza:

Szerintem én értem mire gondolsz.


Írod ugye a játékost:


function Jatekos(){

// összes tulajdonság

this.speed = ...;

this.hp = ...

this.ammo; // ez lesz a jelenlegi ammo függvénye

...


this.setAmmo(specifikusAmmo){ // ha új ammo-t veszel föl

this.ammo = specifikusAmmo;

}


var self = this; // láthatósági macera

this.hasznalAmmo = function(){ // az aktuális ammo-t használod

this.ammo(self); // a specifikus ammo-d megkapja ezt a karaktert

};


}


és akkor az ammoidra példa:


speedUpAmmo = function(self){

self.speed *= 2;

}


maxHealthAmmo = function(self){

self.hp += 10;

}



// aztán létrehozod a játékost:

var j1 = new Jatekos();

...

// időközben felvesz új ammot:

j1.setAmmo(speedUpAmmo);

// használja:

j1.hasznalAmmo();



Szóval valahogy így. Eltárolod a játékoson belül, hogy milyen ammo kezelő legyen, és közvetve ezt hívod meg a hasznalAmmo által. Az eredeti függvény meg cserélgethető.

2016. dec. 12. 17:03
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!