【问题标题】:Wesbite / Browser game: Preloading ressources [closed]网站/浏览器游戏:预加载资源 [关闭]
【发布时间】:2018-08-01 20:56:17
【问题描述】:

所以我做了一些研究,但没有找到我真正想要的东西。 我找到this question 来了解如何预加载图像(我猜也可能适用于视频?)

所以问题是我们应该预加载资源(视频/图像而不是 css 或脚本)吗? 我制作了一个 gacha 系统(如手机上的 gacha 游戏),您可以在其中“拉”角色并在每次“拉”之前加载视频。 在本地,一切都又快又酷,但现在我托管并尝试了它......它太长了,因为什么都没有计算出来。

图像太多,无法在“游戏”开始时预加载所有图像 我想如何解决它,我认为我应该

  • 检查某人将获得的每个字符,提示一些加载屏幕
  • 从第 1 步预加载与字符列表关联的资源
  • 关闭加载屏幕并进行实际拉动

这看起来好吗?还有其他方法吗?我搜索了但没有找到其他人如何处理这个问题(我有点讨厌搜索东西:/)

【问题讨论】:

  • 人们是否可以对此至少发表评论而不仅仅是愤怒地投票? ;_;

标签: javascript html performance preloader


【解决方案1】:

嗯,你已经提到了。您将需要预加载所有需要“快速”显示给用户的内容。在你的游戏之前放置一个加载屏幕,列出所有关键资源并加载它们。您可以通过创建各自的对象并监听“加载”事件来加载图像和视频。加载完所有关键资源后,开始游戏。

确保您的服务器正确配置了长缓存标头,这样您的玩家在重新访问您的游戏时不必再次下载资源。

您甚至可以在游戏已经开始时继续在后台加载不太重要的资源。如果用户遇到尚未加载的图形/视频,请显示一个占位符,并可能将丢失的资源重新排队到加载列表的顶部。

您可以在此处为负载优化做很多事情。我会给出的第一个建议是:通过使用例如 kraken.io 来制作图像(不确定视频是否有类似的东西),使您的资产尽可能小。

还可以尝试在您的服务器上启用 http/2 - 这将在使用许多资源时提高加载速度。如果由于某些原因您不能使用 http/2,请尝试组合您的资产 - 例如查找 spritemaps。视频也可以合二为一,您只需在游戏的各个区域播放您想播放的部分。

【讨论】:

  • 感谢您快速而良好的回答!这肯定会帮助我现在并在将来有用,记笔记:D
  • 也许可以尝试一个现成的游戏框架,比如 Phaser 或 Playground.js - 它们带有内置的资产加载器!
猜你喜欢
  • 2022-01-04
  • 2016-10-14
  • 2015-03-18
  • 1970-01-01
  • 2023-03-31
  • 1970-01-01
  • 2017-06-02
  • 2014-08-13
  • 2014-10-15
相关资源
最近更新 更多