typescript-closure-tools
Version:
Command-line tools to convert closure-style JSDoc annotations to typescript, and to convert typescript sources to closure externs files
1,194 lines (868 loc) • 27.1 kB
text/typescript
///<reference path="pixi.d.ts"/>
///<reference path="webgl.d.ts"/>
function PixiTests()
{
var stage = new PIXI.Stage(0xFFFFFF, true);
stage.interactive = true;
var bg = PIXI.Sprite.fromImage("BGrotate.jpg");
bg.anchor.x = 0.5;
bg.anchor.y = 0.5;
bg.position.x = 620/2;
bg.position.y = 380/2;
stage.addChild(bg);
var container = new PIXI.DisplayObjectContainer();
container.position.x = 620/2;
container.position.y = 380/2;
var bgFront = PIXI.Sprite.fromImage("SceneRotate.jpg");
bgFront.anchor.x = 0.5;
bgFront.anchor.y = 0.5;
container.addChild(bgFront);
var light2 = PIXI.Sprite.fromImage("LightRotate2.png");
light2.anchor.x = 0.5;
light2.anchor.y = 0.5;
container.addChild(light2);
var light1 = PIXI.Sprite.fromImage("LightRotate1.png");
light1.anchor.x = 0.5;
light1.anchor.y = 0.5;
container.addChild(light1);
var panda = PIXI.Sprite.fromImage("panda.png");
panda.anchor.x = 0.5;
panda.anchor.y = 0.5;
container.addChild(panda);
stage.addChild(container);
// create a renderer instance
var renderer = PIXI.autoDetectRenderer(620, 380);
renderer.view.style.position = "absolute"
renderer.view.style.marginLeft = "-310px";
renderer.view.style.marginTop = "-190px";
renderer.view.style.top = "50%";
renderer.view.style.left = "50%";
renderer.view.style.display = "block";
// add render view to DOM
document.body.appendChild(renderer.view);
// lets create moving shape
var thing = new PIXI.Graphics();
stage.addChild(thing);
thing.position.x = 620/2;
thing.position.y = 380/2;
thing.lineStyle(0);
container.mask = thing;
var count = 0;
stage.click = stage.tap = function()
{
if(!container.filter)
{
container.mask = thing;
PIXI.runList(stage);
}
else
{
container.mask = null;
}
}
/*
* Add a pixi Logo!
*/
var logo = PIXI.Sprite.fromImage("../../logo_small.png")
stage.addChild(logo);
logo.anchor.x = 1;
logo.position.x = 620
logo.scale.x = logo.scale.y = 0.5;
logo.position.y = 320
logo.interactive = true;
logo.buttonMode = true;
logo.click = logo.tap = function()
{
window.open("https://github.com/GoodBoyDigital/pixi.js", "_blank")
}
var help = new PIXI.Text("Click to turn masking on / off.", {font:"bold 12pt Arial", fill:"white"});
help.position.y = 350;
help.position.x = 10;
stage.addChild(help);
requestAnimFrame(animate);
function animate() {
bg.rotation += 0.01;
bgFront.rotation -= 0.01;
light1.rotation += 0.02;
light2.rotation += 0.01;
panda.scale.x = 1 + Math.sin(count) * 0.04;
panda.scale.y = 1 + Math.cos(count) * 0.04;
count += 0.1;
thing.clear();
thing.lineStyle(5, 0x16f1ff, 1);
thing.beginFill(0x8bc5ff, 0.4);
thing.moveTo(-120 + Math.sin(count) * 20, -100 + Math.cos(count)* 20);
thing.lineTo(120 + Math.cos(count) * 20, -100 + Math.sin(count)* 20);
thing.lineTo(120 + Math.sin(count) * 20, 100 + Math.cos(count)* 20);
thing.lineTo(-120 + Math.cos(count)* 20, 100 + Math.sin(count)* 20);
thing.lineTo(-120 + Math.sin(count) * 20, -100 + Math.cos(count)* 20);
thing.rotation = count * 0.1;
renderer.render(stage);
requestAnimFrame( animate );
}
/* 13 */
// create an new instance of a pixi stage
var stage = new PIXI.Stage(0xFFFFFF, true);
stage.setInteractive(true);
var sprite= PIXI.Sprite.fromImage("spinObj_02.png");
//stage.addChild(sprite);
// create a renderer instance
// the 5the parameter is the anti aliasing
var renderer = PIXI.autoDetectRenderer(620, 380, null, false, true);
// set the canvas width and height to fill the screen
//renderer.view.style.width = window.innerWidth + "px";
//renderer.view.style.height = window.innerHeight + "px";
renderer.view.style.display = "block";
// add render view to DOM
document.body.appendChild(renderer.view);
var graphics = new PIXI.Graphics();
// set a fill and line style
graphics.beginFill(0xFF3300);
graphics.lineStyle(10, 0xffd900, 1);
// draw a shape
graphics.moveTo(50,50);
graphics.lineTo(250, 50);
graphics.lineTo(100, 100);
graphics.lineTo(250, 220);
graphics.lineTo(50, 220);
graphics.lineTo(50, 50);
graphics.endFill();
// set a fill and line style again
graphics.lineStyle(10, 0xFF0000, 0.8);
graphics.beginFill(0xFF700B, 1);
// draw a second shape
graphics.moveTo(210,300);
graphics.lineTo(450,320);
graphics.lineTo(570,350);
graphics.lineTo(580,20);
graphics.lineTo(330,120);
graphics.lineTo(410,200);
graphics.lineTo(210,300);
graphics.endFill();
// draw a rectangel
graphics.lineStyle(2, 0x0000FF, 1);
graphics.drawRect(50, 250, 100, 100);
// draw a circle
graphics.lineStyle(0);
graphics.beginFill(0xFFFF0B, 0.5);
graphics.drawCircle(470, 200,100);
graphics.lineStyle(20, 0x33FF00);
graphics.moveTo(30,30);
graphics.lineTo(600, 300);
stage.addChild(graphics);
// lets create moving shape
var thing = new PIXI.Graphics();
stage.addChild(thing);
thing.position.x = 620/2;
thing.position.y = 380/2;
var count = 0;
stage.click = stage.tap = function()
{
graphics.lineStyle(Math.random() * 30, Math.random() * 0xFFFFFF, 1);
graphics.moveTo(Math.random() * 620,Math.random() * 380);
graphics.lineTo(Math.random() * 620,Math.random() * 380);
}
requestAnimFrame(animate);
function animate1() {
thing.clear();
count += 0.1;
thing.clear();
thing.lineStyle(30, 0xff0000, 1);
thing.beginFill(0xffFF00, 0.5);
thing.moveTo(-120 + Math.sin(count) * 20, -100 + Math.cos(count)* 20);
thing.lineTo(120 + Math.cos(count) * 20, -100 + Math.sin(count)* 20);
thing.lineTo(120 + Math.sin(count) * 20, 100 + Math.cos(count)* 20);
thing.lineTo(-120 + Math.cos(count)* 20, 100 + Math.sin(count)* 20);
thing.lineTo(-120 + Math.sin(count) * 20, -100 + Math.cos(count)* 20);
thing.rotation = count * 0.1;
renderer.render(stage);
requestAnimFrame( animate );
}
// create an new instance of a pixi stage
var stage = new PIXI.Stage(0x000000);
// create a renderer instance
var renderer = PIXI.autoDetectRenderer(800, 600);
// set the canvas width and height to fill the screen
renderer.view.style.width = window.innerWidth + "px";
renderer.view.style.height = window.innerHeight + "px";
renderer.view.style.display = "block";
// add render view to DOM
document.body.appendChild(renderer.view);
// OOH! SHINY!
// create two render textures.. these dynamic textures will be used to draw the scene into itself
var renderTexture = new PIXI.RenderTexture(800, 600);
var renderTexture2 = new PIXI.RenderTexture(800, 600);
var currentTexture = renderTexture;
// create a new sprite that uses the render texture we created above
var outputSprite = new PIXI.Sprite(currentTexture);
// align the sprite
outputSprite.position.x = 800/2;
outputSprite.position.y = 600/2;
outputSprite.anchor.x = 0.5;
outputSprite.anchor.y = 0.5;
// add to stage
stage.addChild(outputSprite);
var stuffContainer = new PIXI.DisplayObjectContainer();
stuffContainer.position.x = 800/2;
stuffContainer.position.y = 600/2
stage.addChild(stuffContainer);
// create an array of image ids..
var fruits = ["spinObj_01.png", "spinObj_02.png",
"spinObj_03.png", "spinObj_04.png",
"spinObj_05.png", "spinObj_06.png",
"spinObj_07.png", "spinObj_08.png"];
// create an array of items
var items = [];
// now create some items and randomly position them in the stuff container
for (var i=0; i < 20; i++)
{
var item = PIXI.Sprite.fromImage(fruits[i % fruits.length]);
item.position.x = Math.random() * 400 - 200;
item.position.y = Math.random() * 400 - 200;
item.anchor.x = 0.5;
item.anchor.y = 0.5;
stuffContainer.addChild(item);
console.log("_")
items.push(item);
};
// used for spinning!
var count = 0;
requestAnimFrame(animate);
function animate2() {
requestAnimFrame( animate );
for (var i=0; i < items.length; i++)
{
// rotate each item
var item = items[i];
item.rotation += 0.1;
};
count += 0.01;
// swap the buffers..
var temp = renderTexture;
renderTexture = renderTexture2;
renderTexture2 = temp;
// set the new texture
outputSprite.setTexture(renderTexture);
// twist this up!
stuffContainer.rotation -= 0.01
outputSprite.scale.x = outputSprite.scale.y = 1 + Math.sin(count) * 0.2;
// render the stage to the texture
// the true clears the texture before content is rendered
renderTexture2.render(stage, new PIXI.Point(0,0), true);
// and finally render the stage
renderer.render(stage);
}
////
function init()
{
var assetsToLoader = ["desyrel.fnt"];
// create a new loader
var loader = new PIXI.AssetLoader(assetsToLoader);
// use callback
loader.onComplete = onAssetsLoaded;
//begin load
// create an new instance of a pixi stage
var stage = new PIXI.Stage(0x66FF99);
loader.load();
function onAssetsLoaded()
{
var bitmapFontText = new PIXI.BitmapText("bitmap fonts are\n now supported!", {font: "35px Desyrel", align: "right"});
bitmapFontText.position.x = 620 - bitmapFontText.width - 20;
bitmapFontText.position.y = 20;
PIXI.runList(bitmapFontText)
stage.addChild(bitmapFontText);
}
// add a shiney background..
var background = PIXI.Sprite.fromImage("textDemoBG.jpg");
stage.addChild(background);
// create a renderer instance
var renderer = PIXI.autoDetectRenderer(620, 400);
// add the renderer view element to the DOM
document.body.appendChild(renderer.view);
requestAnimFrame(animate);
// create some white text using the Snippet webfont
var textSample = new PIXI.Text("Pixi.js can has\nmultiline text!", {font: "35px Snippet", fill: "white", align: "left"});
textSample.position.x = 20;
textSample.position.y = 20;
// create a text object with a nice stroke
var spinningText = new PIXI.Text("I'm fun!", {font: "bold 60px Podkova", fill: "#cc00ff", align: "center", stroke: "#FFFFFF", strokeThickness: 6});
// setting the anchor point to 0.5 will center align the text... great for spinning!
spinningText.anchor.x = spinningText.anchor.y = 0.5;
spinningText.position.x = 620 / 2;
spinningText.position.y = 400 / 2;
// create a text object that will be updated..
var countingText = new PIXI.Text("COUNT 4EVAR: 0", {font: "bold italic 60px Arvo", fill: "#3e1707", align: "center", stroke: "#a4410e", strokeThickness: 7});
countingText.position.x = 620 / 2;
countingText.position.y = 320;
countingText.anchor.x = 0.5;
stage.addChild(textSample);
stage.addChild(spinningText);
stage.addChild(countingText);
var count = 0;
var score = 0;
function animate() {
requestAnimFrame( animate );
count++;
if(count == 50)
{
count = 0;
score++;
// update the text...
countingText.setText("COUNT 4EVAR: " + score);
}
// just for fun, lets rotate the text
spinningText.rotation += 0.03;
// render the stage
renderer.render(stage);
}
}
/////
// create an new instance of a pixi stage
var stage = new PIXI.Stage(0x97c56e, true);
// create a renderer instance
var renderer = PIXI.autoDetectRenderer(window.innerWidth, window.innerHeight, null);
// add the renderer view element to the DOM
document.body.appendChild(renderer.view);
renderer.view.style.position = "absolute";
renderer.view.style.top = "0px";
renderer.view.style.left = "0px";
requestAnimFrame( animate );
// create a texture from an image path
var texture = PIXI.Texture.fromImage("p2.jpeg");
// create a tiling sprite..
// requires a texture, width and height
// to work in webGL the texture size must be a power of two
var tilingSprite = new PIXI.TilingSprite(texture, window.innerWidth, window.innerHeight)
var count = 0;
stage.addChild(tilingSprite);
function animate33() {
requestAnimFrame( animate );
count += 0.005
tilingSprite.tileScale.x = 2 + Math.sin(count);
tilingSprite.tileScale.y = 2 + Math.cos(count);
tilingSprite.tilePosition.x += 1;
tilingSprite.tilePosition.y += 1;
// just for fun, lets rotate mr rabbit a little
//stage.interactionManager.update();
// render the stage
renderer.render(stage);
}
/////
// create an new instance of a pixi stage
var stage = new PIXI.Stage(0x97c56e, true);
// create a renderer instance
var renderer = PIXI.autoDetectRenderer(window.innerWidth, window.innerHeight, null);
// add the renderer view element to the DOM
document.body.appendChild(renderer.view);
renderer.view.style.position = "absolute";
renderer.view.style.top = "0px";
renderer.view.style.left = "0px";
requestAnimFrame( animate );
// create a texture from an image path
var texture = PIXI.Texture.fromImage("bunny.png");
for (var i=0; i < 10; i++)
{
createBunny(Math.random() * window.innerWidth, Math.random() * window.innerHeight)
};
function createBunny(x, y)
{
// create our little bunny friend..
var bunny = new PIXI.Sprite(texture);
// bunny.width = 300;
// enable the bunny to be interactive.. this will allow it to respond to mouse and touch events
bunny.interactive = true;
// this button mode will mean the hand cursor appears when you rollover the bunny with your mouse
bunny.buttonMode = true;
// center the bunnys anchor point
bunny.anchor.x = 0.5;
bunny.anchor.y = 0.5;
// make it a bit bigger, so its easier to touch
bunny.scale.x = bunny.scale.y = 3;
// use the mousedown and touchstart
bunny.mousedown = bunny.touchstart = function(data)
{
// stop the default event...
data.originalEvent.preventDefault();
// store a refference to the data
// The reason for this is because of multitouch
// we want to track the movement of this particular touch
this.data = data;
this.alpha = 0.9;
this.dragging = true;
};
// set the events for when the mouse is released or a touch is released
bunny.mouseup = bunny.mouseupoutside = bunny.touchend = bunny.touchendoutside = function(data)
{
this.alpha = 1
this.dragging = false;
// set the interaction data to null
this.data = null;
};
// set the callbacks for when the mouse or a touch moves
bunny.mousemove = bunny.touchmove = function(data)
{
if(this.dragging)
{
// need to get parent coords..
var newPosition = this.data.getLocalPosition(this.parent);
this.position.x = newPosition.x;
this.position.y = newPosition.y;
}
}
// move the sprite to its designated position
bunny.position.x = x;
bunny.position.y = y;
// add it to the stage
stage.addChild(bunny);
}
function animate44() {
requestAnimFrame( animate );
// just for fun, lets rotate mr rabbit a little
//stage.interactionManager.update();
// render the stage
renderer.render(stage);
}
////
// create an new instance of a pixi stage
var stage = new PIXI.Stage(0x66FF99);
// create a renderer instance
var renderer = PIXI.autoDetectRenderer(400, 300, null, true);
// add the renderer view element to the DOM
document.body.appendChild(renderer.view);
renderer.view.style.position = "absolute";
renderer.view.style.top = "0px";
renderer.view.style.left = "0px";
requestAnimFrame( animate );
// create a texture from an image path
var texture = PIXI.Texture.fromImage("bunny.png");
// create a new Sprite using the texture
var bunny = new PIXI.Sprite(texture);
// center the sprites anchor point
bunny.anchor.x = 0.5;
bunny.anchor.y = 0.5;
// move the sprite t the center of the screen
bunny.position.x = 200;
bunny.position.y = 150;
stage.addChild(bunny);
function animate55() {
requestAnimFrame( animate );
// just for fun, lets rotate mr rabbit a little
bunny.rotation += 0.1;
// render the stage
renderer.render(stage);
}
///////
// create an new instance of a pixi stage
// the second parameter is interactivity...
var interactive = true;
var stage = new PIXI.Stage(0x000000, interactive);
// create a renderer instance.
var renderer = PIXI.autoDetectRenderer(620, 400);
// add the renderer view element to the DOM
document.body.appendChild(renderer.view);
requestAnimFrame( animate );
// create a background..
var background = PIXI.Sprite.fromImage("button_test_BG.jpg");
// add background to stage..
stage.addChild(background);
// create some textures from an image path
var textureButton = PIXI.Texture.fromImage("button.png");
var textureButtonDown = PIXI.Texture.fromImage("buttonDown.png");
var textureButtonOver = PIXI.Texture.fromImage("buttonOver.png");
var buttons = [];
var buttonPositions = [175,75,
600-145, 75,
600/2 - 20, 400/2 + 10,
175, 400-75,
600-115, 400-95];
for (var i=0; i < 5; i++)
{
var button = new PIXI.Sprite(textureButton);
button.buttonMode = true;
button.anchor.x = 0.5;
button.anchor.y = 0.5;
button.position.x = buttonPositions[i*2];
button.position.y = buttonPositions[i*2 + 1];
// make the button interactive..
button.interactive = true;
// set the mousedown and touchstart callback..
button.mousedown = button.touchstart = function(data){
this.isdown = true;
this.setTexture(textureButtonDown);
this.alpha = 1;
}
// set the mouseup and touchend callback..
button.mouseup = button.touchend = button.mouseupoutside = button.touchendoutside = function(data){
this.isdown = false;
if(this.isOver)
{
this.setTexture(textureButtonOver);
}
else
{
this.setTexture(textureButton);
}
}
// set the mouseover callback..
button.mouseover = function(data){
this.isOver = true;
if(this.isdown)return
this.setTexture(textureButtonOver)
}
// set the mouseout callback..
button.mouseout = function(data){
this.isOver = false;
if(this.isdown)return
this.setTexture(textureButton)
}
button.click = function(data){
// click!
console.log("CLICK!");
// alert("CLICK!")
}
button.tap = function(data){
// click!
console.log("TAP!!");
//this.alpha = 0.5;
}
// add it to the stage
stage.addChild(button);
// add button to array
buttons.push(button);
};
// set some silly values..
buttons[0].scale.x = 1.2;
buttons[1].scale.y = 1.2;
buttons[2].rotation = Math.PI/10;
buttons[3].scale.x = 0.8;
buttons[3].scale.y = 0.8;
buttons[4].scale.x = 0.8;
buttons[4].scale.y = 1.2;
buttons[4].rotation = Math.PI;
// var button1 =
function animate66() {
requestAnimFrame( animate );
// render the stage
// do a test..
renderer.render(stage);
}
// add a logo!
var pixiLogo = PIXI.Sprite.fromImage("pixi.png");
stage.addChild(pixiLogo);
pixiLogo.position.x = 620 - 56;
pixiLogo.position.y = 400- 32;
pixiLogo.setInteractive(true);
pixiLogo.click = pixiLogo.tap = function(){
var win=window.open("https://github.com/GoodBoyDigital/pixi.js", '_blank');
}
//////
var w = 1024;
var h = 768;
var n = 2000;
var d = 1;
var current = 1;
var objs = 17;
var vx = 0;
var vy = 0;
var vz = 0;
var points1 = [];
var points2 = [];
var points3 = [];
var tpoint1 = [];
var tpoint2 = [];
var tpoint3 = [];
var balls = [];
function start() {
var ballTexture = PIXI.Texture.fromImage("assets/pixel.png");
renderer = PIXI.autoDetectRenderer(w, h);
stage = new PIXI.Stage(0x000000);
document.body.appendChild(renderer.view);
makeObject(0);
for (var i = 0; i < n; i++)
{
tpoint1[i] = points1[i];
tpoint2[i] = points2[i];
tpoint3[i] = points3[i];
var tempBall = new PIXI.Sprite(ballTexture);
tempBall.anchor.x = 0.5;
tempBall.anchor.y = 0.5;
tempBall.alpha = 0.5;
balls[i] = tempBall;
stage.addChild(tempBall);
}
setTimeout(nextObject, 5000);
requestAnimFrame(update);
}
function nextObject () {
current++;
if (current > objs)
{
current = 0;
}
makeObject(current);
setTimeout(nextObject, 8000);
}
function makeObject ( t ) {
var xd;
switch (t)
{
case 0:
for (var i = 0; i < n; i++)
{
points1[i] = -50 + Math.round(Math.random() * 100);
points2[i] = 0;
points3[i] = 0;
}
break;
case 1:
for (var i = 0; i < n; i++)
{
xd = -90 + Math.round(Math.random() * 180);
points1[i] = (Math.cos(xd) * 10) * (Math.cos(t * 360 / n) * 10);
points2[i] = (Math.cos(xd) * 10) * (Math.sin(t * 360 / n) * 10);
points3[i] = Math.sin(xd) * 100;
}
break;
case 2:
for (var i = 0; i < n; i++)
{
xd = -90 + Math.round(Math.random() * 180);
points1[i] = (Math.cos(xd) * 10) * (Math.cos(t * 360 / n) * 10);
points2[i] = (Math.cos(xd) * 10) * (Math.sin(t * 360 / n) * 10);
points3[i] = Math.sin(i * 360 / n) * 100;
}
break;
case 3:
for (var i = 0; i < n; i++)
{
xd = -90 + Math.round(Math.random() * 180);
points1[i] = (Math.cos(xd) * 10) * (Math.cos(xd) * 10);
points2[i] = (Math.cos(xd) * 10) * (Math.sin(xd) * 10);
points3[i] = Math.sin(xd) * 100;
}
break;
case 4:
for (var i = 0; i < n; i++)
{
xd = -90 + Math.round(Math.random() * 180);
points1[i] = (Math.cos(xd) * 10) * (Math.cos(xd) * 10);
points2[i] = (Math.cos(xd) * 10) * (Math.sin(xd) * 10);
points3[i] = Math.sin(i * 360 / n) * 100;
}
break;
case 5:
for (var i = 0; i < n; i++)
{
xd = -90 + Math.round(Math.random() * 180);
points1[i] = (Math.cos(xd) * 10) * (Math.cos(xd) * 10);
points2[i] = (Math.cos(i * 360 / n) * 10) * (Math.sin(xd) * 10);
points3[i] = Math.sin(i * 360 / n) * 100;
}
break;
case 6:
for (var i = 0; i < n; i++)
{
xd = -90 + Math.round(Math.random() * 180);
points1[i] = (Math.cos(i * 360 / n) * 10) * (Math.cos(i * 360 / n) * 10);
points2[i] = (Math.cos(i * 360 / n) * 10) * (Math.sin(xd) * 10);
points3[i] = Math.sin(i * 360 / n) * 100;
}
break;
case 7:
for (var i = 0; i < n; i++)
{
xd = -90 + Math.round(Math.random() * 180);
points1[i] = (Math.cos(i * 360 / n) * 10) * (Math.cos(i * 360 / n) * 10);
points2[i] = (Math.cos(i * 360 / n) * 10) * (Math.sin(i * 360 / n) * 10);
points3[i] = Math.sin(i * 360 / n) * 100;
}
break;
case 8:
for (var i = 0; i < n; i++)
{
xd = -90 + Math.round(Math.random() * 180);
points1[i] = (Math.cos(xd) * 10) * (Math.cos(i * 360 / n) * 10);
points2[i] = (Math.cos(i * 360 / n) * 10) * (Math.sin(i * 360 / n) * 10);
points3[i] = Math.sin(xd) * 100;
}
break;
case 9:
for (var i = 0; i < n; i++)
{
xd = -90 + Math.round(Math.random() * 180);
points1[i] = (Math.cos(xd) * 10) * (Math.cos(i * 360 / n) * 10);
points2[i] = (Math.cos(i * 360 / n) * 10) * (Math.sin(xd) * 10);
points3[i] = Math.sin(xd) * 100;
}
break;
case 10:
for (var i = 0; i < n; i++)
{
xd = -90 + Math.round(Math.random() * 180);
points1[i] = (Math.cos(i * 360 / n) * 10) * (Math.cos(i * 360 / n) * 10);
points2[i] = (Math.cos(xd) * 10) * (Math.sin(xd) * 10);
points3[i] = Math.sin(i * 360 / n) * 100;
}
break;
case 11:
for (var i = 0; i < n; i++)
{
xd = -90 + Math.round(Math.random() * 180);
points1[i] = (Math.cos(xd) * 10) * (Math.cos(i * 360 / n) * 10);
points2[i] = (Math.sin(xd) * 10) * (Math.sin(i * 360 / n) * 10);
points3[i] = Math.sin(xd) * 100;
}
break;
case 12:
for (var i = 0; i < n; i++)
{
xd = -90 + Math.round(Math.random() * 180);
points1[i] = (Math.cos(xd) * 10) * (Math.cos(xd) * 10);
points2[i] = (Math.sin(xd) * 10) * (Math.sin(xd) * 10);
points3[i] = Math.sin(i * 360 / n) * 100;
}
break;
case 13:
for (var i = 0; i < n; i++)
{
xd = -90 + Math.round(Math.random() * 180);
points1[i] = (Math.cos(xd) * 10) * (Math.cos(i * 360 / n) * 10);
points2[i] = (Math.sin(i * 360 / n) * 10) * (Math.sin(xd) * 10);
points3[i] = Math.sin(i * 360 / n) * 100;
}
break;
case 14:
for (var i = 0; i < n; i++)
{
xd = -90 + Math.round(Math.random() * 180);
points1[i] = (Math.sin(xd) * 10) * (Math.cos(xd) * 10);
points2[i] = (Math.sin(xd) * 10) * (Math.sin(i * 360 / n) * 10);
points3[i] = Math.sin(i * 360 / n) * 100;
}
break;
case 15:
for (var i = 0; i < n; i++)
{
xd = -90 + Math.round(Math.random() * 180);
points1[i] = (Math.cos(i * 360 / n) * 10) * (Math.cos(i * 360 / n) * 10);
points2[i] = (Math.sin(i * 360 / n) * 10) * (Math.sin(xd) * 10);
points3[i] = Math.sin(i * 360 / n) * 100;
}
break;
case 16:
for (var i = 0; i < n; i++)
{
xd = -90 + Math.round(Math.random() * 180);
points1[i] = (Math.cos(xd) * 10) * (Math.cos(i * 360 / n) * 10);
points2[i] = (Math.sin(i * 360 / n) * 10) * (Math.sin(xd) * 10);
points3[i] = Math.sin(xd) * 100;
}
break;
case 17:
for (var i = 0; i < n; i++)
{
xd = -90 + Math.round(Math.random() * 180);
points1[i] = (Math.cos(xd) * 10) * (Math.cos(xd) * 10);
points2[i] = (Math.cos(i * 360 / n) * 10) * (Math.sin(i * 360 / n) * 10);
points3[i] = Math.sin(i * 360 / n) * 100;
}
break;
}
}
function update()
{
var x3d, y3d, z3d, tx, ty, tz, ox;
if (d < 250)
{
d++;
}
vx += 0.0075;
vy += 0.0075;
vz += 0.0075;
for (var i = 0; i < n; i++)
{
if (points1[i] > tpoint1[i]) { tpoint1[i] = tpoint1[i] + 1; }
if (points1[i] < tpoint1[i]) { tpoint1[i] = tpoint1[i] - 1; }
if (points2[i] > tpoint2[i]) { tpoint2[i] = tpoint2[i] + 1; }
if (points2[i] < tpoint2[i]) { tpoint2[i] = tpoint2[i] - 1; }
if (points3[i] > tpoint3[i]) { tpoint3[i] = tpoint3[i] + 1; }
if (points3[i] < tpoint3[i]) { tpoint3[i] = tpoint3[i] - 1; }
x3d = tpoint1[i];
y3d = tpoint2[i];
z3d = tpoint3[i];
ty = (y3d * Math.cos(vx)) - (z3d * Math.sin(vx));
tz = (y3d * Math.sin(vx)) + (z3d * Math.cos(vx));
tx = (x3d * Math.cos(vy)) - (tz * Math.sin(vy));
tz = (x3d * Math.sin(vy)) + (tz * Math.cos(vy));
ox = tx;
tx = (tx * Math.cos(vz)) - (ty * Math.sin(vz));
ty = (ox * Math.sin(vz)) + (ty * Math.cos(vz));
balls[i].position.x = (512 * tx) / (d - tz) + w / 2;
balls[i].position.y = (h/2) - (512 * ty) / (d - tz);
}
renderer.render(stage);
requestAnimFrame(update);
}
///////
// Globals, globals everywhere and not a drop to drink
var w = 1024;
var h = 768;
var starCount = 2500;
var sx = 1.0 + (Math.random() / 20);
var sy = 1.0 + (Math.random() / 20);
var slideX = w / 2;
var slideY = h / 2;
var stars = [];
function start2() {
var ballTexture = PIXI.Texture.fromImage("assets/bubble_32x32.png");
renderer = PIXI.autoDetectRenderer(w, h);
stage = new PIXI.Stage(0x000000);
document.body.appendChild(renderer.view);
for (var i = 0; i < starCount; i++)
{
var tempBall = new PIXI.Sprite(ballTexture);
tempBall.position.x = (Math.random() * w) - slideX;
tempBall.position.y = (Math.random() * h) - slideY;
tempBall.anchor.x = 0.5;
tempBall.anchor.y = 0.5;
stars.push({ sprite: tempBall, x: tempBall.position.x, y: tempBall.position.y });
stage.addChild(tempBall);
}
document.getElementById('rnd').onclick = newWave;
document.getElementById('sx').innerHTML = 'SX: ' + sx + '<br />SY: ' + sy;
requestAnimFrame(update);
}
function newWave () {
sx = 1.0 + (Math.random() / 20);
sy = 1.0 + (Math.random() / 20);
document.getElementById('sx').innerHTML = 'SX: ' + sx + '<br />SY: ' + sy;
}
function update22()
{
for (var i = 0; i < starCount; i++)
{
stars[i].sprite.position.x = stars[i].x + slideX;
stars[i].sprite.position.y = stars[i].y + slideY;
stars[i].x = stars[i].x * sx;
stars[i].y = stars[i].y * sy;
if (stars[i].x > w)
{
stars[i].x = stars[i].x - w;
}
else if (stars[i].x < -w)
{
stars[i].x = stars[i].x + w;
}
if (stars[i].y > h)
{
stars[i].y = stars[i].y - h;
}
else if (stars[i].y < -h)
{
stars[i].y = stars[i].y + h;
}
}
renderer.render(stage);
requestAnimFrame(update);
}
}