3D世界中的可缩放字段视图,缩放和2D UI — Project GoldScript

正如我在上一篇博客文章中提到的那样,我9月份的引擎重点始终是战斗UI。 一段时间以来,这一直困扰着我……如何在3D世界中实现自适应的上下文2D用户界面? 这是我以前从未真正考虑过的事情,因此挑战是真实的。 我已经做了一些初步的尝试,并且在大多数情况下都进行了一些工作,但这并不是万无一失的。 我需要做得更好。

这些想法以对摄像机如何响应视口调整大小/屏幕分辨率以及缩放实现的相当重要的重构形式得以体现。 它还清除了当前上下文战斗UI组件在任何受支持的屏幕尺寸或缩放级别下正常工作的方式。

可缩放的地图视图

有时被称为“可扩展的运动场”,这是RTS类型经常使用的一种摄影技术。 基本上,这就是说,您的视野只是扩大或缩小,而不是按比例缩放整个屏幕以使其与屏幕尺寸成比例。 如果您以较高的分辨率播放,则比以较小的分辨率播放时,您会看到更多的地图。 您可以在这里查看其工作方式。

对于我的战斗界面而言,这是非常关键的一步。 在此之前,世界将始终按比例缩放以匹配屏幕的纵横比。 它起作用了,但这意味着我不得不构建一个在每个可能的大小上看起来都一致的UI。 我认为这真的不可行,老实说,我想不出一种实现自己想要的好方法。

但是,这并不意味着世界在视觉上总是相同的。 自然,您可能希望能够更近距离或远距离观察事物,以更好地计划您的行动。 为此,我实现了缩放,当前通过鼠标滚轮进行处理。

提高! ……Dehance Dehance!

缩放并不难实现,但实际上对于此类作战地图而言,它确实是必需的功能。 如果您的默认缩放级别非常接近,那么玩家自然会希望偶尔查看更多地图,并且您需要能够缩小地图。

对于有影响力的战斗动画也非常方便。 常规攻击可能不会使用它,但是某些特殊攻击将能够放大和缩小摄像机,以真正突现正在发生的事情。

内容相关的用户界面-径向操作菜单和反馈

径向动作菜单在我之前的文章中进行了讨论,但是现在它的功能比以前更好了。 从视觉角度来看,现在可以为所有受支持的缩放级别调整大小,并且如果调整屏幕大小,它将也保持在正确的位置。

战斗反馈,似乎可以使玩家对动作结果发生的反馈的文本,也已被完全重写以支持所有缩放级别。

您可以阅读有关Imgur反馈方面的更多信息。

由于极大地重构了我在引擎中处理DOM动画的方式,所有这些都成为可能。 以前,我创建了自己的DOM动画类,该类是animejs的包装,以添加Promise支持。 该库现在本地支持它们,所以我改写了我的处理方式。 现在,每个动画效果都是组件模块内自己的子模块。 这样可以使所有内容保持整洁和本地化。 这是“ 反馈”模块的目录结构现在的样子

这就是这个时间了。 十月份将是一个凉爽的月份,因为我不得不研究一种使场景的灯光可配置和可保存的方法。

社会的东西

如果您走了这么远,那么您可能对该项目很感兴趣。 为什么不跟随我在社交网络上关注我,以获取有关游戏开发JavaScript和RPG的即时更新和无聊的交谈?

  • 推特
  • 脸书
  • Tumblr
  • 伊姆古尔