js面向对象的设计思想_详解如何使用面向对象的思想来设计LOL

本文详细介绍了如何使用面向对象思想在游戏开发中设计英雄类,包括创建Hero类、定义属性如名字、血量等,以及创建具体英雄对象,并演示了如何实现坑队友、获取护甲值和增加移动速度的方法。通过实例讲解,初学者可理解如何为英雄类添加更多功能,如超神、血量操作等。
摘要由CSDN通过智能技术生成

概述

今天讲的是开发基础,假设,我们要设计一个LOL这样的游戏,使用面向对象的思想来设计,应该怎么做?


1、设计英雄这个类

LOL有很多英雄,比如盲僧,团战可以输,提莫必须死,盖伦,琴女,所有这些英雄,都有一些共同的状态

比如,他们都有名字,hp,护甲,移动速度等等

这样我们就可以设计一种东西,叫做类,代表英雄这样一种事物

类: 英雄(Hero)

状态: 名字, 血量,护甲,移动速度

》》代码实现

public class Hero{  String name;   float hp;   //血量  float armor; //护甲  int moveSpeed; //移动速度}

2、创建具体的英雄

类就像一个模板,根据这样一个模板,可以创建一个个的具体的英雄

一个个具体的英雄,就叫一个个的对象

new Hero() 就是java中创建一个英雄对象的意思

》》代码实现

注意:类的第一个字母大写

public class Hero {  String name;   float hp;   //血量  float armor; //护甲  int moveSpeed; //移动速度  public static void main(String[] args) {Hero garen = new Hero();garen.name = "盖伦";garen.hp = 616.22f;garen.armor = 27.1f;garen.moveSpeed = 350;Hero timo = new Hero();timo.name = "提莫";timo.hp = 382f;timo.armor = 14f;timo.moveSpeed = 330;}}

3、英雄的状态

一个英雄有姓名,血量,护甲等等状态
这些状态就叫做一个类的属性

属性的类型可以是基本类型,比如int整数,float 浮点数

也可以是类类型,比如String 字符串

》》》代码实现

public class Hero {    String name; //姓名    float hp; //血量      float armor; //护甲    int moveSpeed; //移动速度}

4、英雄做什么?

在LOL中,一个英雄可以做很多事情,比如超神,超鬼,坑队友
能做什么在类里面就叫做方法。

方法是一个类的动作行为,所以一般都是以动词开头的,比如 keng ... 如果有多个单词,后面的每个单词的第一个字母使用大写 比如 addSpeed

4.1、方法

比如队友残血正在逃跑,你过去把路给别人挡住了,导致他被杀掉。 这就是坑队友
每个英雄。。。。都可以坑
所以为Hero这个类,设计一个方法: keng

5df351abea685f38757f00eb44e9a13f.png

》》代码

public class Hero {    String name; //姓名          float hp; //血量    float armor; //护甲    int moveSpeed; //移动速度     //坑队友    void keng(){        System.out.println("坑队友!");    }}

4.2、方法返回类型

getArmor方法是用来获取一个英雄有多少护甲的,返回类型是float

keng方法不需要返回值,这个时候就把返回类型设置为void,表示该方法不返回任何值

》》代码

public class Hero {    String name; //姓名          float hp; //血量          float armor; //护甲          int moveSpeed; //移动速度     //获取护甲值    float getArmor(){        return armor;    }     //坑队友    void keng(){        System.out.println("坑队友!");    } }

4.3、方法的参数

英雄在一些特定情况下,可以增加移动速度
这样我们就通过addSpeed这个方法增加移动速度

》》代码

public class Hero {    String name; //姓名          float hp; //血量          float armor; //护甲          int moveSpeed; //移动速度     //坑队友    void keng(){        System.out.println("坑队友!");    }     //获取护甲值    float getArmor(){        return armor;    }         //增加移动速度    void addSpeed(int speed){        //在原来的基础上增加移动速度        moveSpeed = moveSpeed + speed;    }         public static void main(String[] args) {         Hero garen =  new Hero();         garen.name = "盖伦";         garen.moveSpeed = 350;         garen.addSpeed(100);              }     }

最后附一个小练习:

为英雄类Hero设计几个新的方法:
1. 超神 legendary(),无参数,无返回类型
2. 获取当前的血量 getHp(), 无参数,有float类型的返回值
3. 回血 recovery(float blood), 有参数 float类型参数 blood表示本次恢复的血量,无返回类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值