DOTA与面向对象的编程思想(3)——英雄的生命周期

  很明显,昨天的文章阅读量同比下降了25%。估计大家可能都是被我的文章名字给糊弄过来的,然而看起来并没有什么营养,因此就没多大兴趣了。我很理解,因为我本是对此的胡思乱想,加上自圆其说,正确性尚有待考究,营养更不要提了。

  上一篇的同学评论让我去看看《面向对象的游戏开发》,这带给了我一个思考,就是我写这个东西的有没有必要。考虑必要性有很多原因,针对不同的方面,我总结两个原因。1.面向读者,是否开卷有益,能否给读者带来什么启发或者一点点进步。2.对于我,能否给我带来再编程方面的进步。对于第一个,我想应该是没有多大必要了。而对于第二个,进步其实也是微乎其微,因为我并不会像完成一个项目似的去查各种资料,只是自己画地为牢,自说自话而已。如果有一点好处的话,就是能够让我在以后,更加熟悉这个思想之后,看到现在的我的幼稚,也是不错的回忆。

  可以看到,每次开笔,我都些许纠结。吾尝终日而思矣,不如须臾之所学也。想太多不好,开始吧!

  对了,我昨天总结了一个道理:当你坚持走一条路,走的足够远的时候,其中的几小段弯路,回头看看,也一样是直的。共勉!

  此篇文章的题目叫做《英雄的生命周期》,为什么这么说呢?我是参考Android开发中,活动的生命周期给强制套用的,嘿嘿。上图。

  解释一下,游戏开始之后,我们第一件做的事情是选英雄:首选,repick,random,三种方式,这三种方法都调用了两个方法onCreate(),onStart()从而建立了英雄实例。英雄建立好了,你就可以对英雄操作了,买装备,学技能。

  有了主角,游戏就开始了,在游戏中补兵、升级、杀人、拿塔、三杀、暴走、被草然后去泡温泉,这时候你死了onStop()调用了,其实你的英雄实例还在,只是地图上不可见了,也就是说你虽然死了,但是你还活着。复活时间到了,就调用了onStart()重新让英雄在地图上可见,新一轮的杀戮又开始了。直到对方的冰封王座倒下,游戏结束,然后你的英雄实例才被销毁。

  这就是一个英雄的生命周期。

  最后,谈谈我对生命周期的理解。生命周期在面向对象编程中的作用就是限定了你在合适的时机调用合适的方法,让你编程有一个时间轴可以遵循。比如你杀了一个人,调用了经验和金钱自动增加的方法,然后调用了判断经验是否足够升级的方法,够了升级,就调用攻击力增加,血量增加,蓝量增加的方法,这就是合适的时机调用合适的方法。

  这里边貌似有一种主动调用和被动调用,我不太懂,希望读到这里的各位方家,能够给一些指点,关于面向对象中的方法调用的问题以及关于生命周期的理解,希望大家分享一下观点。

时间: 2024-08-25 20:54:04

DOTA与面向对象的编程思想(3)——英雄的生命周期的相关文章

如何培养面向对象的编程思想(转)

1.什么是面向对象? 面向对象是专指在程序设计中采用封装,继承,多态和抽象的设计方法.面向对象的程序设计语言必须有描述对象及其相互之间关系的语言成分.这些程序设计语言可分为以下几类:系统中一切事物皆为对象:对象是属性及其操作的封装体:对象可按其性质分类,对象成为类的实例:实例关系和继承关系是对象之间的静态关系:消息传递是对象之间动态联系的唯一方式,也是计算的唯一形式:方法是消息的序列. 2.如何理解面向对象? 从世界观的角度可以认为:面向对象的基本哲学是认为世界是由各种各样具有自己的运动规律和内

C++面向对象的编程思想机器人

C++的面向对象的编程思想如下,一般情况为一个类中包含了这个对象的所有属性与函数,直接调用这个对象就可以对这个对象执行它可以使用的任何操作. #include <iostream> class Robot { public: Robot() :Battery(100){}//构造一个机器人的时候让机器人的电量值为满格 void speak();//发言函数 void charge();//充电函数 void function(int i);//选择功能函数 private: unsigned

如何培养面向对象的编程思想

1.什么是面向对象? 面向对象是专指在程序设计中采用封装,继承,多态和抽象的设计方法.面向对象的程序设计语言必须有描述对象及其相互之间关系的语言成分.这些程序设计语言可分为以下几类:系统中一切事物皆为对象:对象是属性及其操作的封装体:对象可按其性质分类,对象成为类的实例:实例关系和继承关系是对象之间的静态关系:消息传递是对象之间动态联系的唯一方式,也是计算的唯一形式:方法是消息的序列. 2.如何理解面向对象? 从世界观的角度可以认为:面向对象的基本哲学是认为世界是由各种各样具有自己的运动规律和内

面向对象的编程思想和Java中类的概念与设计

面向对象的编程思想学习,面向对象内容的三条主线;1.java类及类的对象2.面向对象的三大特征3.其他关键字学习内容:3.1面向对象与面向过程面向对象与面向过程在应用上的区别 Java中类的概念与设计类与类之间的关系 面向对象的思想概述程序员从执行者转化为指挥着Java类及类的成员 原文地址:https://www.cnblogs.com/KeepCalmAndNeverSayNever/p/10111419.html

什么是面向对象的编程思想?

面向对象有三大特性:封装,继承,多态. 面向对象的编程的主要思想是把构成问题的各个事物分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述一个事物在解决问题的过程中经历的步骤和行为.对象作为程序的基本单位,将程序和数据封装其中,以提高程序的重用性,灵活性和可扩展性.类是创建对象的模板,一个类可以创建多个对象.对象是类的实例化. 类是 抽象的,不占用存储空间:而对象具体的,占用存储空间. 原文地址:https://www.cnblogs.com/lmh001/p/9546001.htm

关于面向对象的编程思想。

创建一个学生类.定义学生类所具有的特征以及行为等方法或属性. 在下面的main方法中创建一个新的学生对象s1,以s1为例对学生行为的方法进行调用. 1 public class Student { 2 //静态的数据 3 private String name; 4 private int Id; 5 private String gender; 6 private int weight; 7 8 9 //动态的行为 10 public void study(){ 11 System.out.p

javascript中function和object的区别,以及javascript如何实现面向对象的编程思想.

1 <!DOCTYPE html> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 5 <title></title> 6 <script language="

淡扯javascript编程思想

一.面向对象-OOD   虽然js面向对象的编程思想已经老话常谈了,但了为了文章的完整性,我还是把它加了进来,尽量以不太一样的方式讲述(虽然也没什么卵不一样的). 1.面向对象,首先得有类的概念,没有类造不出来对象,但是javascript中又没有类 只有函数的感念,把以大写字母命名的函数看成创建对象的构造函数,把函数名看成类,那么就可以new一个对象了 //1.1 无参的 function People() { } var p = new People(); //javascript为解释性语

何为编程思想?

有一个很不错的概念叫做“Unknown Unknown”,意思是如果你不知道一个东西的话,你也不会知道你自己不知道它. 众所周知大家所熟悉的主流编程思想还是面向对象编程,然而,并不是只存在于这一种方式.我们要习惯去怀疑生活工作中的一些既定的理论和方法,没有确凿理论依据的出现,我们还是要相信有其他的情况,只是我们还没有发现它. 面向对象OOP 面向对象的编程思想最大的特色就是可以编写自己所需的数据类型,以更好的解决问题.“类”就是描述了一组有相同特性(属性)和相同行为(方法)的集合. 抽象成了其中