当前位置: 首页 > news >正文

直接用源码做网站盗版吗小升初最好的补课机构排行榜

直接用源码做网站盗版吗,小升初最好的补课机构排行榜,东莞发现1例无症状感染者,自己做网站视频文章目录 前言一、状态机二、应用1、场景切换2、人物行为切换3、宝箱、机关切换4、AI 三、人物行为总结 前言 提到Unity状态机#xff0c;接触不久的开发者会想到Unity的动画状态机#xff0c;而对于老油条来说#xff0c;可能会回忆起自己实现的动画状态机。当然#xff… 文章目录 前言一、状态机二、应用1、场景切换2、人物行为切换3、宝箱、机关切换4、AI 三、人物行为总结 前言 提到Unity状态机接触不久的开发者会想到Unity的动画状态机而对于老油条来说可能会回忆起自己实现的动画状态机。当然常见的框架设计中都会出现属于自己的状态机接口之前一篇文章也提到了一种FSM的写法。 状态机是分为有限状态机和无限状态机而Unity开发的基本上都是有限状态机FSM无限状态机主要是在编译原理中可能用到基本上属于概念向的东西所以本篇主要介绍有限状态机FSM的使用。 一、状态机 相信大家都用过Unity的动画状态机也就是Animator。我们知道一种状态在不同的条件下可以跳转到不同的状态中去每个状态要转移到其他状态都必须满足它们之间的连线条件而且状态与状态之间不一定有连线因为两种状态之间有可能是不允许转换的。 状态机可归纳为4个要素即现态、条件、动作、次态。这样的归纳主要是出于对状态机内在因果关系的考虑。“现态”和“条件”是因“动作”和“次态”是果。详解如下。 ·现态是指当前所处的状态。 ·条件又称“事件”当一个条件被满足时将会触发一个动作或者执行一次状态的迁移。 ·动作条件满足后执行的动作。动作执行完毕后既可以迁移到新的状态也可以仍旧保持原状态。动作不是必须的在条件满足后也可以不执行任何动作直接迁移到新状态。 ·次态条件满足后要迁往的新状态。“次态”是相对于“现态”而言的“次态”一旦被激活就转变成新的“现态”。 二、应用 1、场景切换 场景是独立的一般来说只有一个场景展示在游戏或软件中。在玩游戏的时候我们都不希望有漫长的等待时间通常会进入登陆页面对应的就是登陆场景在进入游戏主场景就会销毁登陆页面的UI、模型等在主场景生成游戏内容这些操作我们需要统一在场景管理模块处理。 2、人物行为切换 人物通常只有一种状态如走、跑、跳等如果想在跑步途中吃东西、挥舞武器则需要在跑步动作中加参数根据传参的不同执行不同跑步动画。 3、宝箱、机关切换 宝箱、机关的状态可以看作独立的状态即不是开就是关对应的动画同理。 4、AI 敌人的AI根据游戏的不同会用行为树或状态机实现。游戏中守卫在巡逻过程中发现敌人就会追击并攻击此时守卫的状态切换到了攻击状态距离敌人或巡逻地点太远后会返回并退出攻击状态。 三、人物行为 人物的行为可以划分为待机、走路、攻击和受伤等状态。在状态机的处理中人物在不同状态之间进行转换具体如下 待机状态Idle人物处于静止不动的状态循环播放idle动画等待玩家输入或者外部触发事件。 走路状态Walking人物进行移动可能是根据玩家输入的方向键或者自动巡逻等行为。 攻击状态Attacking人物进行攻击行为可能是使用武器、释放技能等。 受伤状态Injured人物受到伤害处于受伤状态下不能进行攻击。 状态机的处理需要根据具体的游戏逻辑和需求来设计转移条件和动作确保人物在不同状态之间的转换符合游戏规则并且能够实现预期的游戏体验。 Class BaseState {Public virtual void OnEnter(){}Public virtual void OnExit(){}Public virtual void Update(){} }Class IdleState {Public override void OnEnter(){role.playAnimation(“idle”,loop);} }Class AttackState {Public override void OnEnter(){Role.playAnimation(“attack”,once);}Public override void Update(){If(!Role.IsPlayingAnimation(“attack”)){AttackStateFinish();}}Public override void OnExit(){GotoIdleState();} } Class HurtState {Public override void OnEnter(){role.playAnimation(“hurt”,Once);}Public override void Update(){If(!Role.IsPlayingAnimation(“hurt”)){HurtFinish();}}Public override void OnExit(){GotoIdleState();}}Class MoveState {Public override void OnEnter(){Role.playAnimation(“walk”,loop);}Public override void Update(){Move();}Public override void OnExit(){GotoIdleState();} }状态机管理类的处理如下 class RoleStateController {private IdleState idleState;private MoveState moveState;private AttackState attackState;private HurtState hurtState;private BaseState currentState;public void OnHurt(){ReduceHP();If(currentState ! hurtState){ChangeToHurtState();}}public void InputAttack(){If(currentState hurtState) return; // 受伤状态下不可攻击If(currentState attackState) return; // 攻击状态还没结束时不可重新开始攻击ChangeToAttackState();}Public void InputMove(){} }书中的代码为伪代码但我们不难理解状态机控制类存储了各个状态并且提供了输入的接口但输入的事件是状态机外部提供的可能是玩家的操作。状态机的本质就是系统行为的数学模型通过状态、转移条件和动作来控制系统在不同状态之间的转换。代码逻辑是存储状态再提供输入接口。 实际应用中大量的逻辑会在每个状态内部实现如果状态很多管理类还需要改成列表存储状态进行切换。 总结 综合而言状态机是一种数学模型用于描述系统在不同状态下的行为转换通过状态、转移条件和动作来控制系统的行为。在Unity中状态机被广泛运用于处理各种行为切换如场景切换、人物行为切换、宝箱、机关切换以及AI行为控制等。在编写特定模块时状态机被证明是非常有用和实用的工具。
http://www.hkea.cn/news/14420600/

相关文章:

  • 网站推广优化之八大方法wordpress博客评论删除
  • 岳阳建站公司wordpress微信公众
  • 做网站需要域名模板和网站可以分开吗
  • 网站建设落地页源码微信公众号服务号网站开发流程
  • 宁国市网站建设wordpress注册未发邮件
  • 最便宜 双网站建设logo设计公司介绍
  • 许昌市网站开发crm管理系统登录入口官网
  • 网站建设基础流程图引擎优化是什么工作
  • 做论坛网站怎么样备案做国外营销型网站
  • 广西新站seo注册自媒体账号平台
  • 英文网站的外部链接 建设wordpress载入慢
  • 有一个做5s壁纸的网站阿里巴巴1688
  • 平谷区网站建设中国万网陈峰欣
  • 网站主体注销英文网站设计理念
  • 中英双语营销型网站青龙建站教程
  • 公司网站首页设计模板学科网站建设管理
  • php网站开发路线东莞软件网站推广
  • 网站模版 优帮云dede网站如何换源码
  • 做企业网站找哪家地方门户网站建设要求
  • 网站查询域名ip解析js判断是手机还是电脑访问网站
  • 网站建设具体运算浙江建设信息港网站查询
  • 门户网站部署方案公司宣传册设计样本下载
  • 设计主题网站广州网站优化关键词排名
  • 三九集团如何进行网站建设wordpress变慢
  • 自己的网站怎么和百度做友链typecho对比wordpress
  • 行业门户网站运营方案网站建设中所涉及的所有链接建设
  • 武义企业网站建设wordpress 51
  • 站长工具传媒福建省城乡住房建设厅网站
  • 宜宾网站建设08keji网站建设犀牛
  • 网站开发技术合同服装网站怎么做的