저는 전체 객체 지향 패러다임에 대해 매우 새롭습니다.객체 지향 자바 스크립트로 모델을 작성하려고 시도합니다.
특정 게임에서 캐릭터를 모델링하려고하고 있는데, 레벨, 클래스 및 장비가 서로 다릅니다.
등 결국 내 목표는, 플레이어가 사이트를 열 수있는 몇 가지 종류의 "옷장"을 만들 일부 갖추고있다에 시도하고 그것이 비용이 얼마나 자신의 매개 변수에 영향을 미치는 방식을 볼 수있을 것,
이미 프로그래밍 된 주요 부분이 있지만 (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 포인트를 얻었으며 다시 할당 할 수 있습니다.
플레이어는 또한 스탯 강화를 제공하는 장비를 장비 할 수 있으며, 장비를 재배치 할 수는 없습니다.
내가 이전에 해왔 던 것은 각 매개 변수에 해당하는 색인을 가진 모든 배열을 만들었고, 각 배열은 다른 진영의 기본 통계 증가, 장비의 총 통계 증가 및 플레이어가 수동으로 할당 한 통계입니다. 그런 다음 각각의 인덱스를 합하여 최종 매개 변수 배열을 표시합니다. 그러면 플레이어는 다른 배열이 아닌 3 번째 배열에서만 포인트를 재 할당 할 수 있습니다.
객체 지향 프로그래밍을 사용하여 구현하려면 어떻게해야합니까?
것은 내가 기본 개념 (캡슐화, 상속, 다형성)의 일부에 읽었하지만 그들은 오히려 추상적이고 나는 그것을 내려 할 때, 난 정말 안 할 확실히 알고 :의
-
-
응답
01 내가 노력하고 내가 qternion의 대답에서 얻을 수있는 것을 볼 수 있습니다,
O 확인 : 23,516,
이 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 Defense'로 시작 - 그래서 개체 리터럴 1로 설정 ...'방어 : 0,'=>' 방어 : 1, ' –
맞음, 기다림 : – Sylin
Javascript OO 기술을 향상시키려는 정신으로이 프로토 타입 기능에 대한이 게시물을보고 싶을 수도 있습니다. http://stackoverflow.com/questions/12238103// javascript-prototype-vs-general-functions-performance-readability –