css - 为 HTML5 canvas 解析 Sprite

标签 css image html canvas sprite

这个问题困扰了我好久。比如说,我需要在页面中引入布娃娃 Angular 色动画。显然,这样一个 Angular 色的每个 body 部位都是一个图像,这些图像的数量可能会很大,具体取决于 Angular 色的复杂程度和 Angular 色的数量。如果这些字符是静态的(事实上,DOM 动画仍然是可能的,但可能会慢很多),我可以使用 CSS 背景 Sprite ,但当归结为使用 Canvas 时,似乎你必须求助于加载所有一张一张的图片,这可能会影响页面加载时间。

此外,我想使用一些允许在 Canvas 上创建持久对象的框架,例如 paper.jsfabric.js ,并处理重绘周期。

虽然我认为编写解析器来读取字符的 XML/JSON 描述并根据坐标创建对象是一项微不足道(但耗时)的任务,但我想知道是否已经有任何此类工具创建和使用,我可能不知道。

我想使用的是这样的结构:

character : {
  image : 'characters.png',
  body : {
    head : {
      width : 40,
      height : 50,
      xOff : 50,
      yOff : 125
    }
    // Other parts follow
  }
}

是否有任何框架或游戏引擎允许从这种结构创建对象?将多个图像加载到 Canvas 中的最佳方式是什么?

感谢您的任何建议。

更新。添加了一些细节。

最佳答案

drawImage 有一个重载版本:

drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight)
// where image: valid image
//          sx: source slice x position
//          sy: source slice y position
//          sWidth:  source slice width
//          sHeight: source slice height
//       same for dx etc.

因此您可以简单地使用与 CSS 背景 Sprite 相同的方法。

引用资料:

关于css - 为 HTML5 canvas 解析 Sprite ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13854389/

相关文章:

jquery - 使用 jQuery 将 CSS 自定义添加到 Firefox

javascript - 展开内容设置为 nowrap 的容器 div

php - 调整图像设置最小宽度和最大高度

javascript - 从页面上的图像中检索二进制数据/EXIF

java - 在java中逐像素绘制图像

javascript - php中的搜索框

css - DIV、SPAN 元素一半可见

javascript - 使用javascript验证表单中的特定电子邮件地址

jquery - 如何在一组元素周围显示 Angular 边框?

javascript - 将工具提示 (div) 与文本 (span) 对齐。可能的?