游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2373|回复: 5

状态机的问题

[复制链接]

19

主题

85

帖子

86

积分

注册会员

Rank: 2

积分
86
发表于 2008-9-6 06:55:00 | 显示全部楼层 |阅读模式
初学做游戏,看到网上推荐用状态机处理,但是一直想不通多种状态并存的解决办法,那就必须使用多个状态机么?

能不能举个简单的例子,就拿ARPG战斗来说嘛
main()
{
  case fight:
    fight();
..........
}
------------
function fight()
{
  case player_attack:
    ....
  case player_hurtby:
    ....
  这里该如何处理敌人的攻击状态,如果只用一个状态机,那始终就是player攻击完后enemy才攻击,就不公平了
  还有如果我有一个持续回血的魔法状态,该如何解决?
  是不是需要多个状态机并存了?那样不就是要用多线程了?
}

2

主题

429

帖子

435

积分

中级会员

Rank: 3Rank: 3

积分
435
发表于 2008-9-6 13:42:00 | 显示全部楼层

Re:状态机的问题

main()
{
  case fight:
    fight();
    DoMagic(); // 第二个状态,和第一个是并存的。至于顺序,看具体需要。
..........
}

另外,你说的这种情况,玩家,AI都应该各自有一个或多个状态机,不是整个游戏用一个。

3

主题

113

帖子

147

积分

注册会员

Rank: 2

积分
147
发表于 2008-9-6 19:08:00 | 显示全部楼层

Re:状态机的问题

持续回复伤害BUFFER等都设置一个Timer管理.

34

主题

443

帖子

478

积分

中级会员

Rank: 3Rank: 3

积分
478
发表于 2008-9-6 21:27:00 | 显示全部楼层

Re:状态机的问题

状态机最好要写个FSMmachine的类来管理方便

4

主题

220

帖子

220

积分

中级会员

Rank: 3Rank: 3

积分
220
发表于 2008-9-18 13:48:00 | 显示全部楼层

Re:状态机的问题

player和enemy的状态要分开控制撒,持续回血的状态作为全局状态

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
发表于 2008-9-19 15:18:00 | 显示全部楼层

Re:状态机的问题

害。。。用过程式语言实现函数型程序,而后者又实现了状态机。

换言之:

状态机 实现 函数 实现 状态机
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-21 07:40

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表