一个自欺欺人的代码(便于理解函数和对象基础)

  之前在对象基础里,我说对象就像游戏里的一个人物,这个人物有血条,魔条,物理攻击力等等的基本属性,也有攻击等基本方法。

  在这里,我就写一个小例子,是用来自欺欺人的。真的,随便玩玩就好,如果想认真的做一个回合制游戏,可以参考我这个代码。

不说了,直接上代码:

     function Person(o){
            this.name= o.name;   //名字
            this.profession= o.profession;//职业
            this.rank= o.rank;    //等级
            this.blood= o.blood;    //血条
            this.margic= o.margic;   //蓝条

            this.physics_attack= o.physics_attack;   //物理攻击力
            this.margic_attack= o.margic_attack;     //魔法攻击力
            this.physics_defense= o.physics_defense;  //物理防御力
            this.margic_defense= o.margic_defense;    //魔法防御力
            this.speed= o.speed;                      //速度
            this.attribute=function(){
                console.log(this.name+"基本属性:");
                console.log("职业:"+this.profession+"  等级:"+this.rank+"  血条:"+
                this.blood+"  蓝条:"+this.margic+" 物理攻击力:"+
                this.physics_attack+"  魔法攻击力:"+this.margic_attack+
                "  物理防御力:"+this.physics_defense+"  魔法防御力:"+
                this.margic_defense+"  速度:"+this.speed);}                        //基本属性显示
            this.physics_attack_two=function(two){
                var hurt=this.physics_attack-two.physics_defense>0?this.physics_attack-two.physics_defense:0;
                two.blood-=hurt;
                console.log(this.name+"的拳头攻击了"+two.name);
                console.log(this.name+"的物理攻击是"+this.physics_attack+","+two.name+"的物理防御是"+two.physics_defense);
                console.log("所以,"+two.name+"承受了"+hurt+"伤害");}  //物理攻击(谁)
            this.margic_attack_two=function(two){
                var hurt=two.margic_attack-this.margic_defense>0?two.margic_attack-this.margic_defense:0;
                two.blood-=hurt;
                console.log(this.name+"的魔法攻击了"+two.name)
                console.log(this.name+"的物理攻击是"+this.margic_attack+","+two.name+"的物理防御是"+two.margic_defense);
                console.log("所以,"+two.name+"承受了"+hurt+"伤害");}   //魔法攻击(谁)
        }

         var lizhiyang=new Person({
            name:"张三",
            profession:"神棍",
            rank:1,
            blood:50,
            margic:200,

            physics_attack:100,
            margic_attack:20,
            physics_defense:0,
            margic_defense:10,
            speed:1
        });
        var chenan=new Person({
            name:"王五",
            profession:"和平人士",
            rank:1,
            blood:5000,
            margic:200,

            physics_attack:10,
            margic_attack:20,
            physics_defense:10,
            margic_defense:10,
            speed:1
        });


        lizhiyang.attribute();
        chenan.attribute();

        lizhiyang.physics_attack_two(chenan);
        lizhiyang.margic_attack_two(chenan);

        lizhiyang.attribute();
        chenan.attribute();

如果觉得代码太乱了,可以不用看,但我建议还是看下吧,毕竟我个人认为这串代码对理解函数和对象基础很有帮助。

如果想要拓展做成一个回合制游戏的,我只能给一个建议:人物对象里可以有技能对象(技能对象里有血战八方、凤舞九天等技能对象,血战八方则有攻击力、魔法攻击力等属性)。

如果真的想做的话,请私聊我,咱们一起成长,顺便一起探讨人生。

当然想做的话,请熟悉面向对象的概念,了解内存的概念,还要了解性能高效的技巧。本章只是一个基础知识,是帮助理解的。若真的用本章的知识做成了一个回合制游戏,那么恭喜你,你会疯了的,至于原因,等你疯了就知道了,哈哈。

posted @ 2016-08-07 22:54  灬安  阅读(262)  评论(0编辑  收藏  举报