私はオブジェクト指向のパラダイム全体にはかなり新しいです。オブジェクト指向のjavascriptでモデル化しようとしています
私は特定のゲームでキャラクターをモデル化しようとしていますが、レベル、クラス、そしてさまざまな機器の選択肢があります。
など最終的には私の目標は、プレイヤーがサイトを開くことができ、ある種の「ドレッサー」を作成、いくつかの装備に試してみて、それが費用どのくらい、そのパラメータにどのように影響するかを見ることであろう、
私は既にプログラムされた主要部分(here)を持っていますが、それはhtml、css、javascriptでの私の最初の作品でした。 私はこの時に適切に:)
を開始したいことは、私たちがシミュレートされた文字のオブジェクトがあるとします。
var Lord = function(){
this.Level = 1;
this.Gender = 'Male';
this.Faction = 'Knight';
this.Attack = 0;
this.Defense = 1;
this.SpellPower = 0;
this.Knowledge = 0;
this.Luck = 0;
this.Morale = 1;
this.Initiative = 0;
this.addParameter = function(Parameter, amount){
this[Parameter] += amount;
};
this.changeLevelTo = function(Level){
this.Level = Level;
};
this.changeGenderTo = function(Gender){
this.Gender = Gender;
};
this.changeFactionTo = function(Faction){
this.Faction = Faction;
//adjust default stats based on new faction
};
};
私の問題はこれです: 騎士がで始まり1防衛と1士気、異なる派閥はあなたに異なるstatブーストを与えるでしょう。これらの値は再割り当てできません。 プレイヤーは、レベリング時に異なるパラメータに費やすためにいくつかの統計ポイントを取得し、これらを再割り当てすることができます。
さらに、プレイヤーはいくつかの装備に装備を増やすことができ、再配分することはできません。
これまで私が行ったことは、それぞれのパラメータに対応するインデックスを持つすべての配列をすべて作成したことです。各配列は、異なる派閥からのデフォルトのstat boostを表しています。プレイヤーが手動で割り当てたステータス。 次に、それぞれのインデックスを合計して、最終的なパラメータの配列を表示します。プレイヤーは3番目の配列内のポイントのみを再割り当てでき、他の配列は再配置できません。
オブジェクト指向プログラミングを使用してこれを実装するにはどうすればよいですか?
私は基本的な概念(カプセル化、継承、多態性)の一部にまで読んだが、彼らはかなり抽象的であり、私がダウンしてそれを得るとき、私は本当にしかなりのか分からない。■
-
-
応答
01私が試してみて、私はqternionの答えから得ることができるか見てよ、
[OK]を:O:
このwebstieは使用することは非常に難しいです、私が持っているだろう、主オブジェクトのその後
var Faction = function(atk, def, sp, kn, luk, mor, ini){
this.Attack = atk;
this.Defense = def;
this.SpellPower = sp;
this.Knowledge = kn;
this.Luck = luk;
this.Morale = mor;
this.Initiative = ini;
}
var Knight = new Faction(0,1,0,0,0,1,0);
var Wizard = new Faction(0,0,0,1,0,1,0);
//this.Faction = 'Knight'
this.Faction = Knight
this.Defense = function(){
return this.Faction.Defense + this.someOtherClass.Defense;
}
私はhttp://javascript.crockford.com/prototypal.html
を使用してプロトタイプと上記を改善するために見ることになります皆様のお寄せいただきありがとうございます。
'騎士は1守備で始まり - ので、あなたのオブジェクトリテラルではこれを1に設定し...'防御:0、 '=> '防衛:1、 ' –
右、ハングアップ:) – Sylin
あなたのJavascriptオブジェクト指向のスキルを向上させたいという精神で、プロトタイプ関数についてこのSOの記事を見てみたいかもしれません:http://stackoverflow.com/questions/12238103// javascript-prototype-vs-general-functions-performance-readability –