首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单击时的Javascript精灵旋转动画

问单击时的Javascript精灵旋转动画
EN

Stack Overflow用户
提问于 2011-05-24 04:34:21
回答 3查看 2.9K关注 0票数 3

我想知道如何在javascript中使用精灵工作表来创建旋转图像效果。我想要做的是:

两个按钮:

左键:向左旋转15帧。右按钮:向右旋转15帧。

我意识到有一些jquery插件可以让我轻松做到这一点,但我想从头开始尝试。除了一般的想法之外,我不知道从哪里开始。任何建议都将不胜感激。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-05-24 07:17:21

查看此jsFiddle to see a working example

根据你的问题,你听起来像是在学习如何制作一个精灵的动画,而不是真正地旋转一张图片。如果是这样,下面是如何设置精灵动画的。注意:这使用了一个正在奔跑的人的图像。在你的问题中,你问到了旋转图像效果。在任何一种情况下,您只需查看精灵的不同切片,然后动画就完全依赖于精灵。只要你的sprite显示一个旋转的图像,那么图像就会显示为旋转。

如果你需要一个插件来实际旋转图像,see here。

JavaScript

代码语言:javascript
复制
<script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.5.1.js" type="text/javascript"></script> 
<script type="text/javascript">
var imgWidth = 240;
var imgHeight = 296;
var ximages = 6;
var yimages = 5;
var currentRow = 0;
var currentColumn = 0;

function MoveSprite(dir) { 
    if (dir == "left") {
        currentColumn--;
        if (currentColumn < 0)
        {
            currentColumn = ximages -1;
            if (currentRow == 0) {
                currentRow = yimages - 1;
            }
            else {
                currentRow--;
            }
        }   
    }
    else {
        currentColumn++;
        if (currentColumn == ximages) {
            currentColumn = 0;
            if (currentRow == yimages - 1) {
                currentRow = 0;
            }
            else {
                currentRow++;
            }
        }
    }
    $("#txtRow").val(currentRow);
    $("#txtColumn").val(currentColumn);
    $("#spritesheet").css("backgroundPosition", -imgWidth * currentColumn + "px " + -imgHeight * currentRow + "px"); 
}
</script>

HTML

代码语言:javascript
复制
<button onclick="MoveSprite('left');return false;">Move Left</button><button onclick="MoveSprite('right');return false;">Move Right</button>
<div id="spritesheet"></div>

CSS

代码语言:javascript
复制
<style type="text/css">
#spritesheet {
    height: 296px;
    width:240px;
    background-image:url('walking_spritesheet.png');
}
</style>

雪碧图示例 (1440x1480):

​

票数 7
EN

Stack Overflow用户

发布于 2013-06-17 15:24:47

如果你熟悉flash中的MovieClip,我做了一个库,它在javascript中提供了类似的界面。https://github.com/wolthers/SpriteClip.js

票数 1
EN

Stack Overflow用户

发布于 2011-05-24 07:46:44

你可以试一试

javascript

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

https://stackoverflow.com/questions/6102715

复制
相关文章

相似问题

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