如何在pixi.js中为多个成长圈子设置动画?

时间:2018-06-25 06:20:25

标签: javascript arrays pixi.js

我一直在研究代码并学习算法以及不同的方法和概念。我目前正在研究圆形包装,并试图通过第一阶段。我对javascript比较陌生,只处理过Java和最少的c ++。

我已经编写了一个名为write()的{​​{1}},并将该class初始化为一个数组,这使我可以使用如下代码在屏幕上绘制多个圆圈:

CircleShape

在以前的实验中,我设法使用以下方法使单个圆圈的尺寸增大:

class

这将在绘制圆本身之后执行,圆是分配了var renderer; var graphics; var widthOfScreen = 800; var heightOfScreen = 400; var circles = []; function initRenderer() { console.log("initializing renderer 2.."); renderer = new PIXI.Application(widthOfScreen, heightOfScreen, { antialias: true }); document.getElementById("pixidisplay-1").appendChild(renderer.view); graphics = new PIXI.Graphics(); for (var i = 0; i < 500; i++) { circles[i] = new CircleShape(Math.floor((Math.random() * widthOfScreen) + 1), Math.floor((Math.random() * heightOfScreen) + 1), Math.floor((Math.random() * 2) + 1)); } } function draw() { console.log("drawing 2.."); for (var i = 0; i < 500; i++) { circles[i].drawCircleShape(); } } function CircleShape(_x, _y, _s) { this.x = _x; this.y = _y; this.s = _s; var str = '#1C3144', num = parseInt(str.substring(1), 16); this.drawCircleShape = function drawCircleShape() { graphics.lineStyle(0); graphics.beginFill(num, 1); graphics.drawCircle(this.x, this.y,this.s); graphics.endFill(); renderer.stage.addChild(graphics); } } initRenderer(); draw(); 的变量。

最初,我拥有app.ticker.add(function(delta) { circle.scale.set(size); size = size + 0.1 * delta; }); ,并尝试通过在PIXI.Graphics()旁边进行操作来递增circle.drawCircle(0,0,this.s)变量。因为没有任何成功,所以我决定改用s。我仍然不确定哪种方法最好。不确定将ticker.add(function(delta)初始化在Circle circle.scale.set(s)之外还是在圈子内部是否更好。 (我会在类内部进行假设,但是我真的不知道使用javascript)

我的基本目标是采用类和数组方法,以随机的位置(一次或连续)将圆绘制到屏幕上,圆随着时间的推移而增长,并且能够调整圆的增长量。

最终,我将使用某种条件使圆圈停止接触另一个圆圈或画布边缘。

任何帮助将不胜感激。温斯顿

我将在稍后发布一些示例,说明我的目标。谢谢。

1 个答案:

答案 0 :(得分:0)

因此,经过几次尝试,我设法达到了目标,如果有人想看一下,这里提供了我编写的代码。仍在进行中。

relevant snippet

:)