繁体   English   中英

Javascript 精灵旋转 animation 点击

[英]Javascript sprite rotation animation on click

我试图弄清楚如何使用 javascript 中的精灵表创建旋转图像效果。 我正在尝试做的事情:

两个按钮:

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

我意识到有 jquery 插件可以让我轻松做到这一点,但我想从头开始尝试。 除了一般的想法,我不知道从哪里开始。 任何提示将非常感谢。

查看这个jsFiddle 以查看一个工作示例


根据您的问题,听起来您正在尝试学习如何为精灵设置动画而不是实际旋转单个图像。 如果是这样,这是您将如何为精灵设置动画。 注意:这使用了一个男人跑步的图像。 在您的问题中,您询问了旋转图像效果。 在任何一种情况下,您都只是查看精灵的不同切片,然后 animation 完全依赖于精灵。 只要您的精灵显示旋转图像,图像就会出现旋转。

如果您需要插件来实际旋转图像,请参见此处

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

<button onclick="MoveSprite('left');return false;">Move Left</button><button onclick="MoveSprite('right');return false;">Move Right</button>
<div id="spritesheet"></div>

CSS

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

样本精灵(1440x1480):在此处输入图像描述

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM