我相信我的问题会相对简单的回答,但作为一个初学者,我真的在挣扎。
因此,我已经从各种来源学到了Javascript的基础知识(至少我认为我已经学到了),但是我确实在与对象、类和语法做斗争。我完全理解这个概念,多年来我一直在基本层次上玩弄各种编程语言,然而,我正在努力实现我在JS中学到的东西。
基本上,我试图开发,作为一个练习,以证明我的学习,一个简单的框架,使视觉新颖的游戏。因此,我的整个框架可以简化为两个基本对象,一个场景和一个字符。因此,我试图充实我的角色对象如下:
function character (race,gender,age)
{
this.race = race;
this.gender = gender;
this.age = age;
}
//lets make an elf race based on the character prototype
var elfRace = new character("elf","m",100);基本上,我的目标是完成以下层次
字符 第一场比赛第二场比赛3 ActualChar ActualChar
因此,我的最后一个角色将来自定义的种族,这将从字符对象派生。
现在我的问题是,我不知道如何将种族从角色中派生出来。我是否宣布人物为种族的原动力?还是我
var newrace = new Character();我如何在比赛中增加额外的“技能”或“参数”?因此,精灵种族应该有文本:+5和恶魔种族强度:+5,但是这些参数只能在种族对象级别添加。
我试着把它保持在重点上,尽量简短,但是如果你想知道我想做什么的更多细节,我也写了一篇关于它的博客文章,如果需要更多的细节在:http://www.endangeredpixel.com/
希望我能在这个问题上得到一些帮助,我试着对对象、层次结构和原型进行了更多的研究,但我要么得到了过于简单的解释和教程,要么得到了超出我技能水平的咆哮、闲谈和非常高级的教程。我在中间阶段很难找到解释。
发布于 2013-07-05 07:13:37
你可以这样做..。尽管您可以根据自己的喜好来创建更少甚至更多的构造函数。现在我用的是角色,种族和玩家(实际角色)。您可以使用不同的种族构造函数,如ElfRace,DemonRace,但对于一些简单的东西,如两个种族,你可以使用一个,就像我做的那样。这是一般的想法,你可以修改它,以适应你的具体需要。
function Character(gender, age) {
this.gender = gender;
this.age = age;
}
function Race(gender, age, race) {
Character.call(this, gender, age); //inherit from Character
this.race = race;
if (race == 'elf') {
this.dexterity = 5;
} else if (race == 'demon') {
this.strength = 5;
}; // you could check for more races here.
}
function Player(name, age, gender, race) {
Race.call(this, gender, age, race); //inherit from Race
this.name = name;
}
var player1 = new Player("Legolas", 100, "m", "elf");
alert(player1.name); //Legolas
alert(player1.age); //100 years old
alert(player1.gender); //m
alert(player1.race); //elf
alert(player1.dexterity); //5
alert(player1.strength); // undefined because elf's have dexterity not strength在这个例子中,我创建了一个名为Legolas,100岁,男性和精灵种族的player1。这里也有一个小提琴
如果您想要添加更多的种族,那么您必须更新Race构造函数中的If语句,以便为要添加的特定种族分配技能。
https://stackoverflow.com/questions/17482649
复制相似问题