支持HW团队,就支付宝领取下面的红包吧! (打开支付宝就能领取!er1OEj73Uj), (打开支付宝收索“516503473”), 你领取消费,HW有奖励。红包使用无条件限制,有条件请注意是不是有病毒。

Login or Sign up | Validate
| Search

阿拉德竞技大会重制计划

类别:其他 状态:4,可回,会员可关联(良好) 阅读:4767 评论:0 时间:Sept. 19, 2011, 5:24 a.m.
关键字:

 

先看下这张图,就是一个横版ACT游戏的最简单的轴的概念。

一直想突破MUGEN最大的引擎限制来制作。

 

先说一下这个每个轴之间和包围盒的关系

 

首先是Z轴移动问题,Z轴移动能否固定在特定的背景包范围内...因为背景包限制,不可能让人物跑到背景之外去吧..

然后是攻击和被攻击范围
...
如果能够实现Z轴移动,那么攻击和被攻击范围如何解决?

因为MUGEN在攻击和被攻击范围都是在平面上,改变Y轴也只是攻击判定和被攻击判定的Y轴范围坐标,人物在视觉上的确移动了,但是判定还是在一个平面内...
好比人物在X100Y0 个点攻击,那么对方在这个点的角色攻击范围内可以受到攻击,反之也可以攻击角色,而后移动Y轴到X100Y100 进行攻击,对方跳跃的话,同样可以受到攻击
..
那么能否将判定固定在人物所在Y轴的几个Z轴点的上下几个坐标内呢

MUGEN1.0RC8添加了新的trigger: StageVar, 可以判断不同背景.
攻击范围, 我的想法需要在每个hitdef添加条件, 例如abs(Pos Y-Enemy,Pos Y) <10

 

下面是一段关于Z轴的代码

 

;---------------------------------------------------------------------------

; Walk

[Statedef 20]

type    = S

physics = S

sprpriority = 0

 

[State 0, VarSet]

type = VarSet

trigger1 = fvar(0) != (pos y)/1

fv = 0

value = (pos y)/1

ignorehitpause = 1

 

[State 0, Turn]

type = Turn

trigger1 = !IsHelper

trigger1 = RoundState = 2

trigger1 = command = "holdback"

 

[State 20, 1]

type = VelSet

trigger1 = Anim != [100,102]

trigger1 = !IsHelper

trigger1 = RoundState = 2

trigger1 = command = "holdfwd"

x = const(velocity.walk.fwd.x)

 

[State 20, 2]

type = VelSet

trigger1 = Anim != [100,102]

trigger1 = !IsHelper

trigger1 = RoundState = 2

trigger1 = command = "holdback"

x = const(velocity.walk.back.x)

 

[State 100, 1]

type = VelSet

trigger1 = Anim = [100,102]

trigger1 = !IsHelper

trigger1 = RoundState = 2

trigger1 = command = "holdfwd"

x = const(velocity.run.fwd.x)

 

[State 20, 2]

type = VelSet

trigger1 = !IsHelper

trigger1 = RoundState = 2

trigger1 = fvar(0) > -Enemy,fvar(4)

trigger1 = command = "holdup"

Y = -1

 

[State 20, 2]

type = VelSet

trigger1 = !IsHelper

trigger1 = RoundState = 2

trigger1 = fvar(0) < Enemy,fvar(4)

trigger1 = command = "holddown"

Y = 1

 

[State 0, VelSet]

type = VelSet

triggerall = vel y > 0.0

trigger1 = fvar(0) > Enemy,fvar(4)

trigger2 = command != "holddown"

y = 0

 

[State 0, VelSet]

type = VelSet

triggerall = vel y > 0.0

trigger1 = fvar(0) > Enemy,fvar(4)

trigger2 = command != "holddown"

y = 0

 

[State 0, PosSet]

type = PosSet

trigger1 = fvar(0) < -Enemy,fvar(4)

y = -Enemy,fvar(4)

 

[State 0, PosSet]

type = PosSet

trigger1 = fvar(0) > Enemy,fvar(4)

y = Enemy,fvar(4)

 

[State 20, 3]

type = ChangeAnim

triggerall = vel x > 0

triggerall = Anim != [100,102]

trigger1 = Anim != 20 && Anim != 5

trigger2 = Anim = 5 && AnimTime = 0

value = 20+var(0)*10000

 

[State 20, 4]

type = ChangeAnim

triggerall = vel x < 0

triggerall = Anim != [100,102]

trigger1 = Anim != 21 && Anim != 5

trigger2 = Anim = 5 && AnimTime = 0

value = 21+var(0)*10000

 

fvar4就是Z

 

稍后我提供一下相关的工具

 

 

文件名 大小 时间 会员 费用 操作
picture1.jpg(没审核) 22K481B Sept. 19, 2011, 5:33 a.m. alucardxlx 积分:0
荣誉:0
会币:0
下载
 
 
操作:

Please Login (or Sign Up) to leave a comment