Mud*_*kip 10 html javascript jquery animation pixi.js
几天前,我开始开发一个用HTML和javascript编写的动画里程表,我打算在我正在开发的RPG游戏中使用它.此外,我一直在使用Pixi.js来帮助我制作动画.以下2张图片是该计划的主要组成部分:
里程表
一排数字:
这是我迄今为止所取得的成就的印刷品:
基本上,前两个按钮立即(没有动画)更新里程表图像上的数字,基于实际HP和PP文本框中包含的实际HP和PP值.如果按下"设置新值",它将计算实际值和新值之间的差值,将其转换为像素,然后在里程表上执行所需的更改.所有更改都通过controller()方法执行.在此方法中,当HP和PP差值均为零时,会有一个while循环中断.
我已设法controller()正确编程方法,因此里程表中的所有数字都按预期更新.但是,我目前在实现动画方面遇到了一些困难.自从我使用以来Pixi.js,我已经在HTML代码中添加了以下方法,以便创建动画的动作:
function update() {
renderer.render(container);
window.requestAnimationFrame(update);
}
window.requestAnimationFrame(update); //called after the method definition
Run Code Online (Sandbox Code Playgroud)
容器的定义如下所示(我也在Odometer和HPPP的构造类中使用了PIXI.extras.TilingSprite.call()):
function init() {
container = new PIXI.Container();
renderer = PIXI.autoDetectRenderer(224, 219, {view:document.getElementById("odometer-canvas")});
odometer = new Odometer();
container.addChild(odometer);
hph = new HPPP(96, 85, 0, 0); //HP - Hundred digit (left)
container.addChild(hph);
hpt = new HPPP(128, 85, 0, 0);//HP - Ten digit (middle)
container.addChild(hpt);
hpu = new HPPP(160, 85, 0, 0); //HP - Unit digit (right)
container.addChild(hpu);
pph = new HPPP(96, 140, 0, 0);//PP - Hundred digit (left)
container.addChild(pph);
ppt = new HPPP(128, 140, 0, 0); //PP - Ten digit (middle)
container.addChild(ppt);
ppu = new HPPP(160, 140, 0, 0); //PP - Unit digit (right)
container.addChild(ppu);
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,我经历了两个场景:第一个场景(其中onClick=controller(),对于"设置新值"按钮),如果代码执行没有修改,程序将运行,里程表数字将立即更新,这意味着没有动画.
但是,如果在controller()方法的开头添加update()方法,则数字将非常快速地生成动画,但不会遵循由差异值定义的限制(这意味着它将无限制地从000到999动画).
我仍然非常关注HTML和javascript开发,我甚至不知道Pixi.js是否是最佳选择.无论如何,是否可以为这个里程表执行平滑和受控制的动画?
由于我没有从我的代码发布许多细节,我将在这里提供我的项目的源代码(注意:它可以使用node.js提示执行):http: //www.mediafire.com/download/gfvpajsk7ft1gcd/parallax_odometer .rar程序
几天前我已经设法找到了这个问题的解决方案。基本上,我搞乱了控制方法中的一些变量(对于 windows.requestAnimationFrame(update) 上的每次迭代,变量值都是相同的),并且我还使用 while 循环进行计算,这冻结了窗口选项卡。
不管怎样,我会在清理和组织之后上传带有正确解决方案的源代码。
| 归档时间: |
|
| 查看次数: |
592 次 |
| 最近记录: |