Gomic游戏动漫网
首 页 | 游戏站 | 游戏新闻 | 网络游戏 | 单机游戏 | 电子竞技 | 游戏文化 | 网游与法 | 游戏硬件 |下载
 
动漫站 | 动漫资讯 | 动漫文化 | COSPLAY | 动漫联盟 | 原创动漫 | 动漫教室 | 动漫周边 |图库

动漫 游戏 下载 图片 专题 论坛

用户名 密码
精 华 推 荐
资 讯 聚 焦

哆啦A梦三十多年辉煌主角换新装
火月动漫社
撒加实力详解
纪念海外怀旧动画引进25年(1981-2006)
难产还是流产?2006年8部跳票大作面面观
呼风唤雨! 游戏史上最具影响力的人
玩家狂想曲《红警与上帝》
IGN评选十大“死不足惜”的游戏角色
涅爿动漫社
隐藏部落动漫社

 
当前位置:

首页 >> 游戏站 >> 竞技游戏 >> 竞技文化 >> 正文

从红警到星际——编程思想的大转变

作者:sleuth

来源:playsc
加入时间:08-02-06
  我最开始玩的是红色警戒,那时候一般只造一个兵营和一个机械厂,然后疯狂点兵,等着1个1个慢慢造出来(我只打电脑)。后来接触星际了,开始非常的不习惯,因为它没有一个固定的界面,可以造各种单位,而是要先选取一个建筑,然后在屏幕右下角选兵来造。

  后来又发现,星际里,都是要先选一个东西,然后右下角出现这个东西可以进行的操作,习惯了之后,觉得星际这样的设计更加合理,更加符合世界的本来面貌。

  恰好那时学了c++这门课,一直不太明白面向对象程序设计是什么意思,和面向过程有什么区别,突然我想到了星际,这不就是面向对象程序设计的经典案例吗?

  让我们来看看c++和星际的共同点。

  面向对象程序设计的核心概念就是类和对象,星际里,一种单位就是一个类,这个单位的实例就是对象,比如zealot是个类,而游戏中你造出的一个zealot就是一个对象。

  类有数据成员和成员函数,星际里的一个单位,也有属性和它的方法,还是以zealot为例,他的属性有血量、攻击力、盔甲、是否被辐射等等很多很多,他的方法有移动,攻击,hold等等,就是右下角里显示的。
  这些属性都是只读的,体现了类的封装性,你不可以直接修改zealot的血量,除非你通过方法,比如你A他,或者给他补血。

  类的另一个重要特征是继承性,星际里,很多单位都有共同属性,比如血量,盔甲,是否中绿毒等等,还有很多共同方法,如move,stop等等。将这些特征抽象出来,组成一个基类,有这些特征的单位继承这个基类,当然这个基类在游戏中是不会出现实例的。
  类还可以组合,如航母包括本体和小飞机,tank包括底座和炮台。
  类还有多态性,比如对函数重载来说,同时点右键,却可以是移动,或攻击或修理,这取决于点中的单位是什么,好比调用相同名称的函数,具体是哪一个由参数决定。
  还有运行时的多态,比如相同的方法,不同的对象执行他有不同的含义,好比同是A键,有些单位是attack,mm却是补血。

  红警是不是用面向过程语言写的我不敢肯定,但是他的操作方式无疑很符合面向过程的思想,他不是先选一个单位,然后进行操作,而是直接先选操作,然后看操作什么单位。相当于这个操作是个全局函数,参数是各个单位。

  显然,这是将操作与数据脱离了的,因为操作不属于任何一个类。

  总结:星际这款游戏体现了面向对象思想的精髓,如果你打算学习c++等面向对象语言,
  我建议你先学会打星际。
相关文章 | 热门文章
·星际与魔兽的相连关系三部曲之英雄篇
·[星际幽默漫画]小鲨鱼之双矿爆大牛
·[星际争霸2]坦克升级:Arclite变Crucio
·暴雪星际2社区经理最喜欢神族狂热者
·星际十年 记载青春快乐、迷茫和伤感
·呼风唤雨! 游戏史上最具影响力的人
·玩家狂想曲《红警与上帝》
·IGN评选十大“死不足惜”的游戏角色
·敢想敢做的竞技MM—访KK-ffxx
·Capcom解释为何PS3[鬼泣4]安装时间过长

关于本站 | 合作联系 | 版权申明 | 网站地图

渝ICP备05012128号 【 Gomic.net 】 游戏动漫群:18521893

Gomic.net 够米可游戏动漫网 —— All Rights Reserved.