首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript雪碧片的正常和视网膜屏幕使用

JavaScript雪碧片的正常和视网膜屏幕使用
EN

Stack Overflow用户
提问于 2017-07-15 15:10:53
回答 2查看 52关注 0票数 0

我在寻求一些建议。我创造了一个太空入侵者游戏,它从一个精灵单张中获取宇宙飞船和外星人。我在5k的视网膜屏幕上工作,看起来都很好。

问题是,当我进入一个非视网膜屏幕时,飞船/外星人的精灵位置看上去不对,外星人从中途开始。因此,一个外星人在屏幕上显示一半是外星人,另一半是外星人。

我把这个问题归结为视网膜问题,并研究如何解决这个问题。sprite映像是通过image()构造函数调用的,并在加载时使用。然后,我使用drawImage设置雪碧表上的位置,以选择每个外星的正确位置。所以没有使用CSS。

我需要两个精灵片,一个视网膜和一个非视网膜,或者是一些代码,JavaScript将检查什么样的屏幕是被使用的?

是否需要代码,还是这个解释足够好?

编辑

我看到我犯了一个错误,我的浏览器在非视网膜屏幕上被放大到110%,这引起了这个问题。所以问题似乎是随着浏览器的放大而出现的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-15 16:31:18

有几种方法可以解决这个问题:

  • 创建两个单独的sprite工作表,并使用媒体查询根据设备解析媒体查询应用正确的样式。这是劳动密集型的,所以我推荐一个工具来构建工作表,并像https://github.com/sprity/sprity一样自动生成CSS。
  • 使用单一的Retina精灵工作表,就像您当前正在做的那样。我怀疑您的问题是由于一些CSS,我们需要看到调试。
  • 使用SVG sprite https://css-tricks.com/svg-sprites-use-better-icon-fonts/
  • 使用内联SVG,它消除了网络请求。

很高兴提供关于上述任何一种方法的更多细节。

票数 1
EN

Stack Overflow用户

发布于 2017-07-22 06:14:19

您可以试试spritify工具https://www.npmjs.com/package/spritify

有演示应用程序,演示如何使用它https://github.com/shadiabuhilal/spritify-example

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45119694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档