首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过一个精灵并保存背景位置

通过一个精灵并保存背景位置
EN

Stack Overflow用户
提问于 2014-10-05 17:15:24
回答 1查看 94关注 0票数 1

在我所拥有的游戏中,当玩家走向数字并按下"m“键时,跳过了精灵的一个帧。为了澄清,下面是我的代码,用于通过将帧的位置存储在变量中来跟踪框架何时应该更改:

代码语言:javascript
运行
复制
function animateStar() {
    var pos = 0;
    $(document).keyup(function(e) {  
        if (e.keyCode == 77) { 
            pos -= 32;
            $('#n1').css('background-position', pos+'px -0px');
          }
    });
}

因此,正如您所看到的,每次按下键代码77 (表示"m")时,框架都会发生变化,因为我的每个帧的高度和宽度都是32 as。

然而,我遇到的问题是,当我的球员离开这个物体,回到那个物体上,而不是从他停下来的地方继续,画面就会跳过。

这是我的代码:http://jsfiddle.net/j40s8gjt/

因为我的sprite表是由数字组成的,所以您应该能够看到代码是怎么回事。尝试将框架设置为3-5之间的数字,离开对象,然后返回到它,然后再次按m,您应该会看到它会循环所有东西。

一个可能的解决方案可能是在玩家离开时存储对象的当前位置,但我不知道如何这样做。

我希望我说得够清楚了,谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-05 18:20:50

由于每次调用animateStar()时默认为0,所以它将重新启动。

抓住当前的位置是你需要做的,而不是每次默认为0。

animateStar()中,更改这一行:

代码语言:javascript
运行
复制
var pos = 0;    

对此:

代码语言:javascript
运行
复制
var pos = $('#n1').css('background-position').split('px ')[0] || 0;

这样,它就可以在启动时获得当前位置,而不是从0重新启动并重新设置框架。

工作示例:http://jsfiddle.net/j40s8gjt/2/

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

https://stackoverflow.com/questions/26205148

复制
相关文章

相似问题

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