免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2998 | 回复: 15
打印 上一主题 下一主题

[技术动态] 软件重在设计,一起来面向对象 [复制链接]

论坛徽章:
5
技术图书徽章
日期:2013-08-17 07:26:49双子座
日期:2013-09-15 16:46:29双子座
日期:2013-09-25 08:17:09技术图书徽章
日期:2013-09-25 09:11:42天秤座
日期:2013-10-01 16:25:34
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-10-20 22:52 |只看该作者 |正序浏览
本帖最后由 __BlueGuy__ 于 2012-10-20 23:09 编辑

这个设计有什么优缺点, 你会怎么设计? 怎么重写... ?


这是我从某手机游戏里 copy出来的代码? 大家评论一下,
这些都属于机密文件,很有价值的,我都是冒着商业风险拿出来讨论的...

  1. public class FSprite implements GameData
  2. {

  3.     Image[] images;
  4.     short[][] modules;
  5.     short[][] attrectdata, beattrectdata;
  6.     short[][][] frames;
  7.     byte[][][] actions,
  8.          attackdata, //攻击数据
  9.          effectdata; //特效数据
  10.     GameCanvas canvas;
  11.     boolean isdrawsprite;
  12.     byte actionstate, actionIndex, actionFrameindex, frameDelay;
  13.     byte faceto;
  14.     short spritex, spritey, spritez; //角色位置
  15.     short xspeed, axspeed, yspeed, ayspeed, zspeed, azspeed;
  16.     byte hdirection, vdirection;
  17.     byte alivestate;
  18.     byte spritePRI;
  19.     byte spriteType;
  20.     byte spriteboxindex;
  21.     byte spritename;
  22.     boolean isactionover;
  23.     byte attackindex, attacklevel, attackareaz;
  24.     byte attackstate, attacktype, attackefftype, attackhitnum, attackdebufindex, hittype;
  25.     short attackhurtpercent;
  26.     byte hitEnemyIndex;
  27.     byte hurtstate;
  28.     short appendhurt;
  29.     boolean isheavyhurt;
  30.     byte debuff;
  31.     Role user, actonrole;
  32.     byte attackdelay;
复制代码

  1. public class Role extends FSprite implements GameData
  2. {
  3.     HeadPopUp[] hpp = new HeadPopUp[5];

  4.     short[] baseshengming = new short[2],//生命
  5.     shengming = new short[2],
  6.    
  7.     basefali = new short[2],//法力
  8.     fali = new short[2],
  9.    
  10.     baseminjie = new short[2],//敏捷
  11.     minjie = new short[2],
  12.    
  13.     basefangyu = new short[2],//防御
  14.     fangyu = new short[2],
  15.    
  16.     basewugong = new short[2],//物攻
  17.     wugong = new short[2],
  18.    
  19.     basefagong = new short[2],//法攻
  20.     fagong = new short[2],
  21.    
  22.     basebaoji = new short[2],//爆击
  23.     baoji = new short[2];
  24.    
  25.     short currenthmovespeed;
  26.     byte aiType, aiLoop;
  27.     byte wuditime;
  28.     boolean aiLeft;
  29.     Vector behurtinfo;
  30.     short roleh;
  31.     short[][] aidata;
  32.     short alivetime;
  33.     short[] attackcd;
  34.     byte attackholdtime; //普通攻击按键时间
  35.     byte batistate;//是否霸体
  36.     byte walkxspeed, walkzspeed;
  37.     byte level;
  38.     boolean isFlushed;
  39. }
复制代码

  1. public class Effect extends FSprite
  2. {

  3.     byte alivetype, alivetime, xstate, ystate, zstate;
  4. }
复制代码

论坛徽章:
1
2015亚冠之卡尔希纳萨夫
日期:2015-07-14 12:20:38
16 [报告]
发表于 2012-10-21 17:24 |只看该作者

我的语言就是我的边界。

论坛徽章:
0
15 [报告]
发表于 2012-10-21 15:32 |只看该作者
__BlueGuy__ 发表于 2012-10-21 11:22
我发现问题不是出在面向对象上, 而是出在数据结构上...

程序 = 算法 + 数据结构  真是亘古不变的真理


语言是思考的方式, 算法是思考的结果, 数据结构是算法用到的符号.
语言很重要.

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
14 [报告]
发表于 2012-10-21 12:36 |只看该作者
回复 9# linux_c_py_php


    问题是有些壳儿还能做事儿,直接连着大脑,有些壳儿完全不管事,只会当传声筒把需求传递给下层的壳儿,这种东西有技术含量么= =

论坛徽章:
0
13 [报告]
发表于 2012-10-21 11:53 |只看该作者
另外补充一下,我个人尤其鄙视那种一上来就嚷嚷要做框架,做SDK的人,连使用者的需求、使用方式、编码习惯都不理解,做得好真是怪了,顶多做个自己给自己玩的玩具罢了,从基础做起绝对没有错

论坛徽章:
5
技术图书徽章
日期:2013-08-17 07:26:49双子座
日期:2013-09-15 16:46:29双子座
日期:2013-09-25 08:17:09技术图书徽章
日期:2013-09-25 09:11:42天秤座
日期:2013-10-01 16:25:34
12 [报告]
发表于 2012-10-21 11:53 |只看该作者

                        

论坛徽章:
0
11 [报告]
发表于 2012-10-21 11:48 |只看该作者
其实做开发么,一开始必然都不会接触到框架级的东西,问题在于你会不会学习

在我看来,如果能在使用过程中逐步理解类似GameCanvas这种东西是如何按照需求而设计,从而最终自己山寨出一个时,就证明你前面的东西没有白写,你Level Up了

论坛徽章:
5
技术图书徽章
日期:2013-08-17 07:26:49双子座
日期:2013-09-15 16:46:29双子座
日期:2013-09-25 08:17:09技术图书徽章
日期:2013-09-25 09:11:42天秤座
日期:2013-10-01 16:25:34
10 [报告]
发表于 2012-10-21 11:22 |只看该作者
本帖最后由 __BlueGuy__ 于 2012-10-21 11:23 编辑

我发现问题不是出在面向对象上, 而是出在数据结构上...

程序 = 算法 + 数据结构  真是亘古不变的真理

论坛徽章:
4
水瓶座
日期:2013-09-06 12:27:30摩羯座
日期:2013-09-28 14:07:46处女座
日期:2013-10-24 14:25:01酉鸡
日期:2014-04-07 11:54:15
9 [报告]
发表于 2012-10-21 10:22 |只看该作者
应该说所有语言都是壳, 人脑才是最重要的...

starwing83 发表于 2012-10-21 04:23
回复 7# __BlueGuy__

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
8 [报告]
发表于 2012-10-21 04:23 |只看该作者
回复 7# __BlueGuy__


    哦?你写个vector stroking算法我看看?我最近正在苦恼这个呢………………

Java没有技术含量的,因为真正重要的算法都被C给实现过了,Java只是用个壳儿而已……
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP