赞 | 6 |
VIP | 22 |
好人卡 | 15 |
积分 | 13 |
经验 | 97563 |
最后登录 | 2022-11-26 |
在线时间 | 831 小时 |
Lv3.寻梦者
- 梦石
- 0
- 星屑
- 1323
- 在线时间
- 831 小时
- 注册时间
- 2007-12-25
- 帖子
- 1558
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 九夜神尊 于 2012-9-3 16:28 编辑
前言:
很多人都在写ARPG,然后一坑又一坑,就算填平了坑,效果也不尽人意!(虽然我也有坑,坑也比较坑!)
很多人都有不同的思路。
不过我在这里说的是我个人对ARPG程序流的实现构思。以作拍砖引玉(拍?)!!!
会用到的词汇:
主角:接受玩家控制的对象
敌人:和主角对立的对象,也许以上有不对的地方,希望不要在意,什么是主角敌人大家都懂。
角色:主角,或者敌人,当前描述的对象。
行动:角色在做什么,比如说走,跑,跳,打,挨打,死了……
根据复杂的程度,角色的行动是唯一的,或者不唯一。比如说跳跃过程中攻击,可以说是跳跃+攻击,也可以说成跳起来攻击。
但是行动唯一实现起来简单的多。
攻击器:由攻击生成的一种概念化的东西,以下会详细描述。
状态:角色收到的状态,冰冻,中毒等等。
结构:
首先,ARPG第一个让人去设计的就是我方砍的动作!或者动画。于是我就从这里下手开始讲。
一起来分析砍这个动作的前前后后!
1:按下某功能键后实行攻击,于是主角开始攻击。
2:系统开始检测攻击范围内是否有对象。
3:对捕捉到的对象伤害,动画!!
以上流程,大概就是用事件也这么做的吧?
如果你打算做一个比较流畅的ARPG。那么就应该细化以上的步骤
1:不变,按下某功能键后实行攻击,于是主角开始攻击。
2:主角开始攻击,主角进入攻击行动
3:进入攻击行动后按步骤更换主角动作,以及在适当时候播放应该播放的动画。
于是我要好好讲讲这个步骤3。
就像事件一样,角色进入攻击行动以后,开始执行攻击行动里面的每个步骤,举刀,挥刀,播放刀光,攻击。
那么其实在任何行动都可以这样,让任何行动分解成一个个步骤。比如说使用技能,举杖,吟唱,播放魔法阵,挥杖,魔法落下。
无论主角在做什么,都处于一种行动当中,静止,走路,跑步
那么例举这几个行动,
静止:基础行动,主角没有别的行动的时候,回到这个行动,该行动为循环行动,循环更改角色动作,同时该行动接收任何信息。(按键,
是否按下,鼠标等等)
敌人的静止行动不太一样,敌人不接受按键信息,但是接受由AI传送来的消息。
走路:当按下移动键(可以是方向键也可以是鼠标,总之就是玩家操作移动了。)该行动为循环行动,循环更改角色的动作,同时该行动接受部分消息。(
移动键放开,跑步键按下,攻击键?(大家想想,移动中能否攻击,和这里是否接受攻击键什么关系。))
跑步:当按下跑步键(移动键+XX键??)该行动为循环行动,循环更改角色的动作,同时该行动接受部分消息。:不在熬述重复的东西。
以上几个行动如果大家都理解清楚了,别的行动我想都不在话下了吧?
每做一个行动,就编写一套动作。以及该行动所接受的按键。
4:系统开始检测范围内是否有对象。
这里我要讲一讲,什么是攻击。我一圈打过去,那么在我拳头的位置,会受到攻击。
我一刀砍过去,在刀的范围内,会受到伤害。然后我就引进了一种叫攻击器的概念。
攻击器:由攻击生成的一种概念。该事物也许可见——火球。也许不可见——出拳。凡是要对敌人或者队友造成影响(好坏?、)都需要攻击器,。
攻击器有自己的行动模式,比如说火球,火球会向同一个方向运动,同时可以飞过水面,当撞到敌人,或者墙面时产生爆炸。
比如说法宝,它会围着主角转等等。
攻击器有自己的攻击范围——用刀砍的时候,对面前一定范围内的敌人造成伤害,于是,刀砍的范围为主角面前一定范围。
激光攻击的范围为一条线,炸弹攻击的范围为一个圆……。为所有的攻击都设计一个攻击器吧!
攻击器也是为一种角色,它拥有像角色一样的能力,也可以拥有行动(静止,移动,转动,反弹等等……),也可以产生新的攻击器(分裂型,台式坦克系统,台式激光系统,火墙(玩过传奇的 懂))攻击拥有攻击时机,当攻击器行动步骤到攻击的时候,攻击器会将范围内的对象执行攻击。
攻击器会消亡——火球爆完,一刀砍完,然后什么事也没了,这就是攻击器的消亡。
攻击器也可以作为障碍系统,拦路石等。
攻击器也会播放动画,声音等等。
攻击器也可以接受按键(比如说定时炸弹)
攻击器有自己的角色图像。
总之,攻击器和一般角色一样,除了它会消亡!还会攻击。
那么,如果让主角用刀砍的话,那么在挥刀的时候就应该产生普通攻击的攻击器了。
————————————华丽的分界线——————————————————————————————————————————————————————
动画播放器:
ARPG的动画,必须脱离主角的束缚,别不懂,一刀砍上去,是在敌人身上出刀光,还是出了刀光敌人在刀光范围内哪个更真实。
即时没砍到敌人,也应该播放刀光不是??
伤害显示器:
所有的伤害由这里显示给玩家。
AI管理器:
如果是把敌人的AI放到敌人对应的事件里,那么这敌人就永远是一个敌人,不会懂得战术。
这里讲一讲AI管理器如何实现!
AI管理器存在于地图场景中的一个对象。
不断地搜索一定范围内的敌人作为控制对象(优化,要不一个地图几百个敌人!!!管理器爆了)
查看这些敌人是否已经有任务。如果没有任务,指令敌人寻找任务。
或者直接给敌人布置任务。
如果有任务,就指令执行任务(寻路,放弃任务……)
敌人AI
敌人AI听从AI管理器的指挥。
敌人AI很简单的条件执行。比如说HP多少使用什么技能,开关啊,变量啊,限制技能等等!
寻找任务,在自己可执行的范围内,随机抽选一个提交给AI管理器。
执行任务,按照任务步骤逐步执行(比如说使用火球打主角,的步骤就是朝主角移动并检测距离,若足够近,则释放火球。任务结束)
放弃任务,若改任务难以完成,当前任务会放弃,转而执行另一个任务。
。
以上是我写ARPG的时候的经验也许大家都会不过拿出来分享,以作为抛砖引玉,
以获得更多的ARPG流程构思!也希望写ARPG的童鞋们有坑不坑。 |
|