|
|
楼主 |
发表于 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绘制的二次封装阶段。
嗯。大概就这样,不保证最近还能把更新进度写在帖子里。:)
以上。
|
|