免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
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. }
复制代码

论坛徽章:
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
2 [报告]
发表于 2012-10-20 23:18 |显示全部楼层
回复 3# starwing83

这个对象类我就写不好...   

论坛徽章:
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
3 [报告]
发表于 2012-10-20 23:24 |显示全部楼层
linux_c_py_php 发表于 2012-10-20 23:21
这个帖子毫无意义, 你不如提问个具体的东西, 让大家贴贴自己的代码.


这还不具体吗?

论坛徽章:
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
4 [报告]
发表于 2012-10-20 23:31 |显示全部楼层
starwing83 发表于 2012-10-20 23:11
这种东西也叫机密?我都看到过五六份了……

说技术价值什么的,还不如里面那个GameCanvas……


我真正不会的就是这个最简单的...
里面那些算法什么的我一点都没纠结过.

论坛徽章:
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
5 [报告]
发表于 2012-10-21 11:22 |显示全部楼层
本帖最后由 __BlueGuy__ 于 2012-10-21 11:23 编辑

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

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

论坛徽章:
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
6 [报告]
发表于 2012-10-21 11:53 |显示全部楼层

                        
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP