zoukankan      html  css  js  c++  java
  • 一个自欺欺人的代码(便于理解函数和对象基础)

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

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

    不说了,直接上代码:

         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();

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

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

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

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

  • 相关阅读:
    android如何在代码中设置margin
    也许游戏 它P/N图分析
    【淡墨Unity3D Shader计划】四 热带雨林的文章: 排除、深度测试、Alpha测试和基本雾编译
    HDU 3060 多边形面积并
    onmouseover和onmouseout的烦恼
    LoaderManager使用具体解释(三)---实现Loaders
    [每天一个Linux小技巧] gdb 下一次运行多个命令
    VB.NET版机房收费系统—DataGridView应用
    数据结构导论第一遍
    轻松搞定面试中的二叉树题目
  • 原文地址:https://www.cnblogs.com/huoan/p/5747601.html
Copyright © 2011-2022 走看看