|  | 
 
 楼主|
发表于 2016-5-23 21:56:10
|
显示全部楼层 
| 2016-5-23 21:32:42 嗯,是这样,遇到了个小问题,所以想在这里问一下。
 
 先说一下超久不在这里更新的状况什么的,其实就是懒。前几个月吧,感觉人生没有目标的激情的那种感觉。然后就不更了,超没责任心。所以假设大家对这个项目抱有很大信心然后感到失望的话,有啥想说的想骂的请便吧,我应当受着。这里呢,除了道歉以外,能做的只有继续奋力肝代码了。
 
 ————————
 
 为啥说“继续”奋力肝呢?因为最近学业任务比较松,项目重新又动起来了。
 进入正题。
 
 代码相关:
 假设有这样一个情景,玩家选了红美铃作主角,她的主动躲弹方式为飞扑(翻滚,Dodge),在她的类里边有一个从Player类继承来的Dodge()方法。
 这个继承来的Dodge()方法同样可以被其他角色类继承,所以不同的角色类内部有不同的实现方法。
 然后美玲捡到一道具——隙间折伞。
 这个道具的其中一个效果是把角色的主动躲弹方式改为短距离隙间。这个两个Dodge()方法写起来差异巨大,比如改变角色中弹判定的时间, 贴图也得改,其他还有好多东西。
 这TM就尴尬了,我怎么在程序运行的时候决定Dodge到底是哪种躲弹行为呢?
 
 
 目前想到的可能方法有这么几种:
 1.写一个Dodge方法合集类,里边把每种躲弹的方法都写好,然后在角色的Dodge()方法里边用if-else,缺点:太累,没法简化if-else
 2.写好方法,然后角色类里边的Dodge方法变成委托,这个思路类似于函数指针?求问C#怎么实现,求伪代码。
 3.听说有个叫接口的东西不知道有没有用武之地。
 4.还有其他我想不出来求大神指教的方法。
 
 
 大概就是这个问题了。求各位出出点子啥的。
 项目现在用C#重制,用了32推荐的DxLib,还有有诸多需要适应的地方。
 目前还在对2D绘制的二次封装阶段。
 
 
 嗯。大概就这样,不保证最近还能把更新进度写在帖子里。:)
 
 
 以上。
 
 | 
 |