开发超简单js框架作为对象练习时遇到的问题

Problems in developing a super simple js framework as an exercise with objects

本文关键字:练习 遇到 问题 对象 简单 js 框架 开发      更新时间:2023-09-26

我相信我的问题回答起来相对简单,但作为一个初学者,我真的很挣扎。

因此,我从各种来源学到了(至少我认为我已经学到了)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);

基本上,我的目标是完成以下层次

字符

比赛1比赛2比赛3

ActualChar ActualChar

所以我的最后一个角色将从定义的种族派生,种族将从角色对象派生。

现在我的问题是,我不知道如何将种族设置为从角色派生。我是否声明角色是种族的原型?还是

var newrace = new Character();

以及如何添加额外的";技能;或";参数";参加比赛?所以精灵种族应该有文字:+5和恶魔种族强度:+5,但这些参数只能在种族对象级别添加。

我尽量简明扼要,但如果你想了解我想做什么的更多细节,我也会写一篇关于它的博客文章,如果需要更多细节,请访问:http://www.endangeredpixel.com/

希望我能在这个问题上得到一些帮助,我尝试过更多地研究对象、层次结构和原型,但我要么得到过于简单的解释和教程,要么得到超出我技能水平的咆哮、漫谈和极其高级的教程。在中间阶段,我很难在这里找到解释:(.

你可以这样做。。尽管您可以根据自己的喜好制作更少甚至更多的构造函数。现在我使用角色、种族和玩家(实际角色)。你可以使用不同的种族构建器,比如ElfRace、DemonRace,但对于像2场比赛这样简单的比赛,你可以像我一样只使用一场。这是一般的想法,您可以根据自己的具体需求对其进行修改。

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的游戏机1,年龄100岁,是一名男性,是一个精灵种族。这里还有一个jsfiddle

如果你想添加更多种族,那么你必须更新种族构造函数中的If语句,为你想要添加的特定种族分配技能。