首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pixi.js绘制下降方格

Pixi.js绘制下降方格
EN

Stack Overflow用户
提问于 2015-11-12 12:46:13
回答 1查看 1.5K关注 0票数 2

我使用PIXI.js在画布上绘制了一个基于网格的系统。

我试着给这个东西动画,首先每个粒子position.y-200,然后使用Tween.js,我试图让它们下降。

我将该位置更改为正确的位置,即particle._y

正如您注意到的,您会看到,在下降后,有一些空空间和CPU过热。

http://jsbin.com/wojosopibe/1/edit?html,js,output

代码语言:javascript
复制
function animateParticles() {
    for (var k = 0; k < STAGE.children.length; k++) {

        var square = STAGE.children[k];
        new Tween(square, 'position.y', square._y, Math.floor(Math.random() * 80), true);

    }
}

我想我做错了什么。

有人能解释一下我做错了什么吗?为什么摔倒后会有空位?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-12 21:37:16

空白处的原因是你的一些动画还没有开始。原因如下:

代码语言:javascript
复制
new Tween(square, 'position.y', square._y, Math.floor(Math.random() * 80), true);

查看Tween.js的函数定义,我看到以下内容:

代码语言:javascript
复制
function Tween(object, property, value, frames, autostart)

第四个参数是帧。我假设这是完成动画所需的帧数。您的Math.floor函数有时会返回零,这意味着动画将没有框架,也不会启动!!

您可以使用math.ceil()来解决这个问题。这样,动画总是至少有一个框架:

代码语言:javascript
复制
new Tween(square, 'position.y', square._y, Math.ceil(Math.random() * 80), true);

现在,关于性能,我建议以不同的方式设置.

动画所有这些图形对象是非常密集的。我的建议是绘制一个单一的红色方块,然后使用一个RenderTexture从广场生成一个位图。然后你可以把雪碧添加到舞台上,这样在动画的时候表现得更好。

代码语言:javascript
复制
//Cretae a single graphics object
var g = new PIXI.Graphics();
g.beginFill(0xFF0000).drawRect(0, 0, 2, 2).endFill();

//Render the graphics into a Texture
var renderTexture = new PIXI.RenderTexture(RENDERER, RENDERER.width, RENDERER.height);
renderTexture.render(g);

for (var i = 0; i < CONFIG.rows; i++) {
    for (var j = 0; j < CONFIG.cols; j++) {

        var x = j * 4;
        var y = i * 4;

        //Add Sprites to the stage instead of Graphics
        var PARTICLE = new PIXI.Sprite(renderTexture);
        PARTICLE.x = x;
        PARTICLE.y = -200;

        PARTICLE._y = H - y;

        STAGE.addChild(PARTICLE);
    }
}

此链接将有更多RenderTexture:http://pixijs.github.io/examples/index.html?s=demos&f=render-texture-demo.js&title=RenderTexture的示例。

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

https://stackoverflow.com/questions/33671738

复制
相关文章

相似问题

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