2021-09-29

斜体样式## 教新人写一款文字回合游戏(二)
文字游戏效果图
接上篇说,人物对象构造后,那么我们可以写几个对象方法,也就是类的方法,关于那些状态数据结构,技能数据结构,以后慢慢再讲,现在我们先写几个人物类的方法吧。
攻击输出方法,我们最先要写的是普功输出方法,假设我构造人物的类是RenWu,普功输出函数为Pugo();而里面的基本数据结构为data。
代码可以这样写。
int RenWu::Pugo()

if(data.高攻大于data.低攻)
return rand()%(data.高攻-data.低攻) +data.低攻;
else return data.低攻;

这是一个随机输出在高低攻之间的一个普功函数,在游戏战斗中是非常常用的。然后再结合一个人物状态的灵活运用。
Pugo()普功伤害百分比。
这样可以配合很多武器特性的应用,比如你要写一把武器有普功增加30%的伤害,那么只需要在人物类中的普功伤害成员中加0.3即可,因为在人物类中的普功伤害百分比成员初始化时为1.0,所以装备上武器时,直接累加上去就可以了。
Pugo()普功百分比伤害1.3;
这样看起来是不是十分简单?是不是感觉自己学的代码终于可是实现心中的想法了,其实我也是个新手,但我喜欢想这是能用代码实现的事情。
普功输出写好后,我们再来写个防御函数吧,也是先从最简单的写起。当人物对象要受到伤害时,肯定要接受一个伤害值的参数,所以函数可以这样写。
int FanYu(int sh);
这个防御函数是先接收一个伤害值,然后通过内部的防御后,再返回一个受伤的伤害值,然后再根据这个值可以扣人物对象的生命值了。
int RenWu::FanYu(int sh)
{
int f;
if(data.高防小于data.低防) f=data.低防;
else f= rand()%(data.高防-data.低防)+data.低防;
return f;
}
这个防御函数和攻击输出函数差不多,也是简单又灵活,如果你的装备有伤害减免,你可以这样用。
FanYu(sh
伤害减免百分比);
如果你的装备有伤害减免20%,不能直接相乘,不然得到的是80%的伤害减免,你可以这样用。
FanYu(sh
(1.0-0.2));
只有这样用才能达到你预想的效果,不然这种罢够你是很难找出来的,有时花上一天也未必能找的出来,一般的游戏代码都是上千上万行的。
这两个方法写完后,我们也不会急着写其他的方法,我的思路是从简单的写起,最后再搞复杂的,不这样做,你的逻辑会容易混乱,这时候的你再写代码非常容易出罢够。
接下来,我再来介绍人物对象中的技能数据结构吧,这个数据结构设计可能有点复杂,但只要设计好后,以后在处理各种角色的技能就容易多了。
技能数据结构

技能名称;可用char数组。
技能编号;也就是ID
技能伤害百分比;用float就行了,比如1.5倍伤害,2.0倍伤害等。
技能冷却时间;给个整型就好。
技能冷却计时;
技能效果标识;
状态参数1;
状态参数2;
状态参数3;
状态参数4;这四个参数是备用的,你可以设两个int和两个float,方便以后处理各种流血,中毒,减防,加攻,等等。

至少我是这么设计的,当然你看到后,如果觉得不行,可以自己改造,但是我告诉你,在设计自己心中的游戏时,往往做到后面时,会有很多意外的事情与逻辑要处理,所以在最初设计数据结构时,你可以

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值