当尝试用html5 canvas动画一个精灵图像时,奇怪的行为
Weird behavior when trying to Animate a sprite image with html5 canvas
这是我的jsfiddle: http://jsfiddle.net/Au6br/2/
你可以看到,动画是奇怪的,这是由于我使用的精灵图像。有人知道任何工作周围修复动画吗?
if (keydown.right) {
character.x += character.sp;
character.Pos = 3;
character.Row++;
if (character.Row == 4)
character.Row = 0;
}
if (character.x > (cw-character.w)) {
character.x = cw - character.w;
}
你的问题是你显然取错了精灵表的部分。
我快速看了一下,你的运行精灵是垂直间隔的,高度为19像素,但你似乎在代码中使用了23。此外,我认为你在使用角色宽度来计算精灵表中图像源的y坐标时出现了错别字,而不是角色的高度。所以把它改成:
ctx.drawImage(charImg, this.Pos * this.w, this.h * this.Row, this.w, this.h, this.x, this.y, this.w, this.h);
并将角色的高度设置为19(即上面的this.h
),您可以到达这里:
相关文章:
- 如何使用Pixijs获取在加载的精灵表资产中定义的图像
- ExtJS:“图像”类型的精灵:如何更改像素
- 如何在JS中缩放精灵图像
- 当使用HTTP/2时,缩小和连接JS/CSS文件,以及使用精灵进行图像处理仍然可以提供性能优势
- 是否可以更改我的 css 精灵用 javascript 显示的子图像
- 精灵图像的背景位置在 IE 中不起作用,用于倒计时时钟
- 画布绘制按分区背景精灵绘制的图像
- 图像精灵作为网页的背景
- 使用单击图像映射更改设置为背景的精灵图像的位置
- kineticJS 为精灵创建 ImageHitRegion,而不是图像
- 是否可以显示/隐藏画布图像的一部分,例如图像精灵
- 画架精灵使用多个图像进行动画
- 如何在保留现有过渡的同时切换到精灵图像
- 在SVG中显示CSS图像精灵,而不使用外来对象
- 分步骤使用jQuery动画制作图像精灵
- 在相位器上显示带有间隔的精灵图像
- 用另一种颜色替换图像/精灵中的特定颜色
- 格式化图像精灵的多维数组
- 整合图像-精灵与Base64
- 如何使用画布绘制图像精灵