From a3827935759c90e781b51237c0d714e638bf3a05 Mon Sep 17 00:00:00 2001 From: Zyie Date: Tue, 22 Aug 2023 14:32:58 +0000 Subject: [PATCH] Deploy website - based on 3342e165c066899a66879a950534e72cce16d5dc --- 404.html | 8 ++++---- assets/js/0ce74438.38fe4f3c.js | 1 + assets/js/0ce74438.40f4b204.js | 1 - .../js/{17896441.d7ce243b.js => 17896441.41b21a9b.js} | 2 +- assets/js/2124.16d86de7.js | 1 - assets/js/277.67e22d9d.js | 1 + .../js/{6875c492.dc367cda.js => 6875c492.5c8176a7.js} | 2 +- .../js/{a6aa9e1f.c753054f.js => a6aa9e1f.7f87772a.js} | 2 +- assets/js/a8389ef7.ad6d416c.js | 1 - assets/js/a8389ef7.c1303339.js | 1 + .../js/{ccc49370.09b3b5af.js => ccc49370.d5fcae07.js} | 2 +- assets/js/main.07f67458.js | 2 ++ ...37a.js.LICENSE.txt => main.07f67458.js.LICENSE.txt} | 0 assets/js/main.c8a3337a.js | 2 -- assets/js/runtime~main.9af5afa6.js | 1 - assets/js/runtime~main.c73a1c27.js | 1 + blog.html | 8 ++++---- blog/archive.html | 8 ++++---- blog/pixi-universe.html | 8 ++++---- blog/tags.html | 8 ++++---- blog/tags/pixi-js-universe.html | 8 ++++---- blog/tags/pixi-js.html | 8 ++++---- examples.html | 8 ++++---- examples/advanced/collision-detection.html | 8 ++++---- examples/advanced/mouse-trail.html | 8 ++++---- examples/advanced/scratch-card.html | 8 ++++---- examples/advanced/screen-shot.html | 8 ++++---- examples/advanced/slots.html | 8 ++++---- examples/advanced/spinners.html | 8 ++++---- examples/advanced/star-warp.html | 8 ++++---- examples/assets/async.html | 8 ++++---- examples/assets/background.html | 8 ++++---- examples/assets/bundle.html | 8 ++++---- examples/assets/multiple.html | 8 ++++---- examples/assets/promise.html | 8 ++++---- examples/basic/blend-modes.html | 8 ++++---- examples/basic/cache-as-bitmap.html | 8 ++++---- examples/basic/container.html | 8 ++++---- examples/basic/particle-container.html | 8 ++++---- examples/basic/simple-plane.html | 8 ++++---- examples/basic/tinting.html | 8 ++++---- examples/basic/transparent-background.html | 8 ++++---- examples/events/click.html | 8 ++++---- examples/events/custom-hitarea.html | 8 ++++---- examples/events/custom-mouse-icon.html | 8 ++++---- examples/events/dragging.html | 8 ++++---- examples/events/interactivity.html | 8 ++++---- examples/events/logger.html | 8 ++++---- examples/events/nested-boundary-with-projection.html | 8 ++++---- examples/events/pointer-tracker.html | 8 ++++---- examples/events/slider.html | 8 ++++---- examples/filters-advanced/custom.html | 8 ++++---- examples/filters-advanced/mouse-blending.html | 8 ++++---- .../shader-toy-filter-render-texture.html | 8 ++++---- examples/filters-basic/blur.html | 8 ++++---- examples/filters-basic/color-matrix.html | 8 ++++---- examples/filters-basic/displacement-map-crawlies.html | 8 ++++---- examples/filters-basic/displacement-map-flag.html | 8 ++++---- examples/graphics/advanced.html | 8 ++++---- examples/graphics/dynamic.html | 8 ++++---- examples/graphics/simple.html | 8 ++++---- examples/masks/filter.html | 8 ++++---- examples/masks/graphics.html | 8 ++++---- examples/masks/sprite.html | 8 ++++---- examples/mesh-and-shaders/instanced-geometry.html | 8 ++++---- examples/mesh-and-shaders/interleaving-geometry.html | 8 ++++---- examples/mesh-and-shaders/merging-geometry.html | 8 ++++---- .../multi-pass-shader-generated-mesh.html | 8 ++++---- examples/mesh-and-shaders/shader-toy-mesh.html | 8 ++++---- examples/mesh-and-shaders/shared-shader.html | 8 ++++---- examples/mesh-and-shaders/sharing-geometry.html | 8 ++++---- examples/mesh-and-shaders/textured-mesh-advanced.html | 8 ++++---- examples/mesh-and-shaders/textured-mesh-basic.html | 8 ++++---- examples/mesh-and-shaders/triangle-color.html | 8 ++++---- examples/mesh-and-shaders/triangle-textured.html | 8 ++++---- examples/mesh-and-shaders/triangle.html | 8 ++++---- examples/mesh-and-shaders/uniforms.html | 8 ++++---- examples/offscreen-canvas/basic.html | 8 ++++---- examples/sprite/animated-sprite-animation-speed.html | 8 ++++---- examples/sprite/animated-sprite-explosion.html | 8 ++++---- examples/sprite/animated-sprite-jet.html | 8 ++++---- examples/sprite/basic.html | 8 ++++---- examples/sprite/texture-swap.html | 8 ++++---- examples/sprite/tiling-sprite.html | 8 ++++---- examples/sprite/video.html | 8 ++++---- examples/text/bitmap-text.html | 8 ++++---- examples/text/from-font.html | 8 ++++---- examples/text/pixi-text.html | 8 ++++---- examples/text/web-font.html | 8 ++++---- examples/textures/gradient-basic.html | 8 ++++---- examples/textures/gradient-resource.html | 8 ++++---- examples/textures/render-texture-advanced.html | 8 ++++---- examples/textures/render-texture-basic.html | 8 ++++---- examples/textures/texture-rotate.html | 8 ++++---- faq.html | 8 ++++---- guides.html | 8 ++++---- guides/basics/architecture-overview.html | 8 ++++---- guides/basics/getting-started.html | 8 ++++---- guides/basics/render-loop.html | 8 ++++---- guides/basics/scene-graph.html | 8 ++++---- guides/basics/what-pixijs-is-not.html | 8 ++++---- guides/basics/what-pixijs-is.html | 8 ++++---- guides/components/assets.html | 8 ++++---- guides/components/containers.html | 8 ++++---- guides/components/display-object.html | 8 ++++---- guides/components/graphics.html | 8 ++++---- guides/components/interaction.html | 8 ++++---- guides/components/sprite-sheets.html | 8 ++++---- guides/components/sprites.html | 8 ++++---- guides/components/text.html | 8 ++++---- guides/components/textures.html | 8 ++++---- guides/migrations/upgrading.html | 8 ++++---- guides/migrations/v5.html | 8 ++++---- guides/migrations/v6.html | 8 ++++---- guides/migrations/v7.html | 8 ++++---- guides/production/performance-tips.html | 8 ++++---- index.html | 8 ++++---- playground.html | 10 +++++----- search-index-blog.json | 2 +- search-index-examples.json | 2 +- search-index-guides.json | 2 +- search-index.json | 2 +- search.html | 8 ++++---- team.html | 8 ++++---- tutorial.html | 8 ++++---- versions.html | 8 ++++---- 126 files changed, 443 insertions(+), 443 deletions(-) create mode 100644 assets/js/0ce74438.38fe4f3c.js delete mode 100644 assets/js/0ce74438.40f4b204.js rename assets/js/{17896441.d7ce243b.js => 17896441.41b21a9b.js} (87%) delete mode 100644 assets/js/2124.16d86de7.js create mode 100644 assets/js/277.67e22d9d.js rename assets/js/{6875c492.dc367cda.js => 6875c492.5c8176a7.js} (61%) rename assets/js/{a6aa9e1f.c753054f.js => a6aa9e1f.7f87772a.js} (57%) delete mode 100644 assets/js/a8389ef7.ad6d416c.js create mode 100644 assets/js/a8389ef7.c1303339.js rename assets/js/{ccc49370.09b3b5af.js => ccc49370.d5fcae07.js} (83%) create mode 100644 assets/js/main.07f67458.js rename assets/js/{main.c8a3337a.js.LICENSE.txt => main.07f67458.js.LICENSE.txt} (100%) delete mode 100644 assets/js/main.c8a3337a.js delete mode 100644 assets/js/runtime~main.9af5afa6.js create mode 100644 assets/js/runtime~main.c73a1c27.js diff --git a/404.html b/404.html index 08598f34e..d547f7ab1 100644 --- a/404.html +++ b/404.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

- - + + \ No newline at end of file diff --git a/assets/js/0ce74438.38fe4f3c.js b/assets/js/0ce74438.38fe4f3c.js new file mode 100644 index 000000000..88604bbaf --- /dev/null +++ b/assets/js/0ce74438.38fe4f3c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkpixi_docusaurus=self.webpackChunkpixi_docusaurus||[]).push([[6342],{7754:(n,e,t)=>{t.d(e,{Z:()=>g});var i=t(2949),a=t(7294),o=t(4184),r=t.n(o),s=t(2695);var d=t(2215),p=t(9604),c=t(5893);function l(n){let{code:e,onChange:t}=n;const o=(0,a.useRef)(null),r=(0,a.useCallback)((n=>{o.current=n}),[]);(0,a.useEffect)((()=>{const n=()=>{null!==o.current&&o.current.layout({})};return window.addEventListener("resize",n),()=>{window.removeEventListener("resize",n)}}),[]);const{colorMode:s}=(0,i.I)();return(0,c.jsx)(p.ZP,{defaultLanguage:"javascript",value:e,defaultPath:"inmemory://model//src/index.ts",onChange:t,options:{lineNumbers:"off",padding:{top:24},minimap:{enabled:!1},fontSize:14,scrollBeyondLastLine:!1,scrollbar:{alwaysConsumeMouseWheel:!1}},onMount:r,theme:"dark"===s?"vs-dark":"light"})}const h=n=>{let{code:e,isPixiWebWorkerVersion:t,isPixiDevVersion:i,pixiVersion:o}=n;const r=(n=>(0,a.useMemo)((()=>({".babelrc":{code:JSON.stringify({presets:[["@babel/preset-env",{useBuiltIns:"entry",corejs:"3.29",targets:"last 2 chrome versions"}]]},null,2)},"src/styles.css":"body { margin: 0; overflow: hidden; }","src/index.js":n,"index.html":'\n\n \n \n PixiJS Playground\n \n \n\n\n - - + +
Skip to main content
- - + + \ No newline at end of file diff --git a/blog/archive.html b/blog/archive.html index 268e48d4d..83f43dd2c 100644 --- a/blog/archive.html +++ b/blog/archive.html @@ -9,13 +9,13 @@ - - + +
Skip to main content
- - + + \ No newline at end of file diff --git a/blog/pixi-universe.html b/blog/pixi-universe.html index 29ceca67b..6db59f564 100644 --- a/blog/pixi-universe.html +++ b/blog/pixi-universe.html @@ -9,15 +9,15 @@ - - + +
Skip to main content

Introducing the PixiJS Universe!

Β· 11 min read
Zyie

We are excited to announce the launch of the PixiJS Universe, an initiative to further enhance the capabilities of PixiJS and make it even easier for developers to create amazing games and apps.

For years, PixiJS has been the most popular 2D renderer for the web, but it was always "just a rendering engine." The community has created many great tools to help developers build games and applications with PixiJS, but we lacked the manpower to maintain and improve these tools, causing fragmentation in the community. To address this, Playco has assembled a dedicated team of developers who will work on PixiJS full-time. Over the next 12 months, we have more than ten projects planned, and in this announcement, we would like to introduce some of them.

Phase 1​​

We have several new projects in the works, and we are releasing them in four phases over the year. We are currently nearing the end of phase 1, which has seen the release of several exciting new tools and libraries for PixiJS:

PixiJS Website​​

First up we are excited to announce that we will be releasing a beta version of our new website for PixiJS.

The current documentation has suffered from long-term organic growth over the years with little structure and as such much of the PixiJS documentation is fragmented across multiple sites. This new website will put everything you need in one place and be easily searchable.

We are also planning on improving the documentation and adding more guides and examples, as well as considering translating the documentation into other languages.

If you have any ideas on how to improve the site please let us know!

PixiJS React​​

Next up is PixiJS React. A library that provides a way to use PixiJS in React applications. PixiJS React is a continuation of the react-pixi library created by Patrick Brouwer, which has been widely used by the PixiJS community in React projects. PixiJS has taken over maintenance of the library and is dedicated to improving the library's performance, documentation, and support for new features.

The library provides an easy-to-use interface that makes it easy for developers to create React applications with PixiJS. The library integrates all the core features of PixiJS and allows you to create custom components for 3rd party libraries.

PixiJS Open Games​​

We have now released a new repository called "PixiJS Open Games". This is a collection of open-source games that showcases how to use PixiJS to create games and is released under the MIT license. The purpose of these games is to provide professional examples of how to use PixiJS for game development.

The first two games released are a match-3 game and a bubble shooter game. These games not only demonstrate how to use PixiJS for game development but also how to use other libraries such as PixiJS UI and AssetPack. We also have more games planned for release, which will demonstrate how to use PixiJS with other libraries such as PixiJS Layout and PixiJS React.

PixiJS Open Games will hopefully be a valuable resource for game developers who want to learn how to use PixiJS for game development and will also be a great source of inspiration for developers looking to create their own games using PixiJS. The project is available on GitHub for anyone who wants to explore the code or contribute to the project.

PixiJS UI & PixiJS Layout​​

PixiJS UI is a new library for developers who want to create beautiful and functional user interfaces with PixiJS. The library includes a range of components such as buttons, checkboxes, sliders, text inputs, scroll views, lists, radio buttons, and progress bars, which can be easily integrated into your game. These components are highly customizable, allowing you to tweak the appearance and behaviour of each element to fit your game's specific needs.

PixiJS UI has been used in all of the open-source games, so feel free to check these out for real-world examples.

PixiJS Layout is another library that can make your life as a developer easier. This library enables you to create responsive layouts using PixiJS, which means you can design interfaces that adapt to different screen sizes and aspect ratios. PixiJS Layout works well with PixiJS UI, allowing you to combine both libraries to create complex, dynamic interfaces that respond to user input and screen changes.

With PixiJS Layout, you have the flexibility to create resizable layouts that can be adjusted to fit any screen size or device. This means that your game's interface can look great on everything from small mobile devices to large desktop displays.

PixiJS Layout is still under development but will be ready in the next few weeks

AssetPack​​

Finally, for phase 1 we are announcing AssetPack.

Asset management is an important part of developing applications, and the new AssetPack library aims to make this process easier. AssetPack is a framework-agnostic library that can be used with any framework, including PixiJS, ThreeJS, and Phaser. It provides a range of features that help developers manage their assets efficiently. The key feature of AssetPack is the ability to automatically generate new assets on the fly. For example, you can provide it with a folder of individual images and it will generate sprite sheets, which can significantly improve the performance of your application. It also provides plugins to generate mipmaps, convert fonts to different formats, convert audio to different formats, compress images, and minify JSON. These features help developers optimize their assets for faster loading times, better performance, and improved user experience.

We will soon be releasing a new blog post that provides more details on how to use it. With its many useful features and framework-agnostic design. However, if you want to get stuck in today then check out the GitHub repo

Phase 2​​

Phase 2 will begin shortly and aims to make it easier to work with PixiJS applications.

PixiJS JumpStart​​

Jumpstart is a new CLI tool being developed by the PixiJS team to simplify the process of creating new PixiJS applications. With this tool, developers will no longer need to set up complicated tooling or worry about setting up different bundlers and frameworks. The tool will handle all the setup for you, allowing you to focus on building your application.

Jumpstart will be similar to other CLI tools such as Create-React-App or Create-Vue, which have become popular in the front-end development community. The tool will provide templates for different bundlers and frameworks, including webpack, parcel, rollup, and more. This will make it easy for developers to get started with PixiJS regardless of their preferred tools and workflows. With Jumpstart, you'll be able to create a new PixiJS application in just a few minutes and start building right away.

PixiJS Dev Tools​​

PixiJS dev tools will be a browser extension that is planned to be released soon to help developers debug their PixiJS applications. This tool aims to make it easier for developers to understand the inner workings of PixiJS, optimize their code, and follow best practices. It is designed to help developers diagnose performance issues and visualize the resources that their applications are consuming.

One of the key features of the PixiJS Dev Tools is its ability to help developers understand the complex process of batching in PixiJS. Batching is a technique used to optimize the rendering of multiple objects in the same draw call. This process can be complicated to understand, especially for new developers. PixiJS Dev Tools aims to make it easier to debug and optimize the rendering of objects.

Overall, PixiJS Dev Tools will be a powerful tool that will make it easier for developers to build high-performance, visually stunning applications with PixiJS. By providing developers with a deeper understanding of the inner workings of PixiJS, this toolset will help developers optimize their code and create more efficient and engaging applications.

Phase 3​​

Phase 3 is where our long-term projects start to be revealed. These are major changes to the PixiJS ecosystem that we are incredibly excited about

Comet​​

Comet will be a new editor that aims to make it easier than ever to design and create games and applications with PixiJS. With its intuitive and user-friendly interface, the editor is designed to appeal to both designers and developers, allowing both groups to collaborate and work more efficiently.

One of the standout features of Comet is the visual interface it provides for creating and editing scenes, sprites, animations, and more. This means that designers can create and edit complex scenes without ever having to write a single line of code. The editor provides a range of tools and options for creating sprites, animations, and other game elements, making it easy to get started with creating a game or application.

In addition, developers will appreciate the runtime player feature, which allows them to easily recreate scenes in their own applications. This makes it easy to test and iterate on designs, ensuring that the final product is both functional and visually appealing. And with multi-user, real-time collaboration, Comet makes it easy for teams to work together, sharing assets and ideas and creating high-quality games and applications in record time.

PixiJS v8​​

PixiJS v8 will be the next major release that represents a complete rewrite of PixiJS from the ground up. The development team has leveraged their extensive experience over many years to make improvements and optimizations to the core PixiJS engine. The new version of PixiJS is designed to be faster and more efficient, providing a significant improvement in rendering performance compared to v7 (currently sitting at x2)

One of the most exciting features of PixiJS v8 is the inclusion of first-class support for WebGPU, which is a new graphics API that is being developed by major browser vendors. This will enable developers to take advantage of advanced GPU capabilities, which can significantly improve the performance of graphics-intensive applications. In addition to WebGPU support, the PixiJS team has also made a significant effort to optimize the engine for the canvas renderer, which will be available as a first-class option for developers looking to reduce bundle size.

Overall, PixiJS v8 represents a major leap forward for us, developers can expect a much faster and more efficient engine that is better suited for building complex, graphics-intensive applications.

Phase 4​​

Phase 4 represents a leap into new territory for PixiJS as we look to delve deeper into areas outside of strictly 2D rendering.

PixiJS 3D​​

For years, Goodboy (now Playco) has had an internal 3D engine called Odie that was built on top of PixiJS. We are now planning to open-source it, which is exciting for those of you who want to seamlessly mix 2D and 3D content in your games or applications. With PixiJS 3D, you will no longer need to switch between engines or frameworks to incorporate 3D elements in your project.

Although this is a long-term project, the team is making progress and plans to share more information later in the year. This release will greatly expand PixiJS's capabilities and give developers even more flexibility when building their applications.

PixiJS Game Engine​​

Finally, we are thrilled to announce that we will be working on a new library called PixiJS Game Engine. This game engine aims to provide everything you would expect from a 2D/3D game engine and will offer many features and tools to make game development easier and more efficient.

Some of the features of PixiJS Game Engine will include support for physics engines, audio, input handling, asset loading and management, state management, animation and tweening, and more.

Conclusion​

We've shared a lot of exciting news about new projects and updates coming to the PixiJS community. There's a lot to look forward to in the upcoming months.

We want to extend our sincere thanks to the PixiJS community, its contributors, and Playco for making all of this possible. We're excited to see what you'll create with these new tools and resources, and we look forward to continuing to support and grow the PixiJS ecosystem. Be sure to check out the GitHub links mentioned above and stay tuned for more updates on the PixiJS Universe!

- - + + \ No newline at end of file diff --git a/blog/tags.html b/blog/tags.html index 35437554a..d78dab4a7 100644 --- a/blog/tags.html +++ b/blog/tags.html @@ -9,13 +9,13 @@ - - + +
Skip to main content
- - + + \ No newline at end of file diff --git a/blog/tags/pixi-js-universe.html b/blog/tags/pixi-js-universe.html index 6784cae92..9d6d6a767 100644 --- a/blog/tags/pixi-js-universe.html +++ b/blog/tags/pixi-js-universe.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

One post tagged with "PixiJS Universe"

View All Tags
- - + + \ No newline at end of file diff --git a/blog/tags/pixi-js.html b/blog/tags/pixi-js.html index 08aa6cdb2..fe18d6e91 100644 --- a/blog/tags/pixi-js.html +++ b/blog/tags/pixi-js.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

One post tagged with "PixiJS"

View All Tags
- - + + \ No newline at end of file diff --git a/examples.html b/examples.html index 8328fd8f8..f5024b598 100644 --- a/examples.html +++ b/examples.html @@ -9,13 +9,13 @@ - - + +
Skip to main content
- - + + \ No newline at end of file diff --git a/examples/advanced/collision-detection.html b/examples/advanced/collision-detection.html index 106ac3ef2..188738d54 100644 --- a/examples/advanced/collision-detection.html +++ b/examples/advanced/collision-detection.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Collision Detection

import * as PIXI from 'pixi.js';

// Based somewhat on this article by Spicy Yoghurt
// URL for further reading: https://spicyyoghurt.com/tutorials/html5-javascript-game-development/collision-detection-physics
const app = new PIXI.Application({ background: '#111', resizeTo: window });

document.body.appendChild(app.view);

// Options for how objects interact
// How fast the red square moves
const movementSpeed = 0.05;

// Strength of the impulse push between two objects
const impulsePower = 5;

// Test For Hit
// A basic AABB check between two different squares
function testForAABB(object1, object2)
{
const bounds1 = object1.getBounds();
const bounds2 = object2.getBounds();

return bounds1.x < bounds2.x + bounds2.width
&& bounds1.x + bounds1.width > bounds2.x
&& bounds1.y < bounds2.y + bounds2.height
&& bounds1.y + bounds1.height > bounds2.y;
}

// Calculates the results of a collision, allowing us to give an impulse that
// shoves objects apart
function collisionResponse(object1, object2)
{
if (!object1 || !object2)
{
return new PIXI.Point(0);
}

const vCollision = new PIXI.Point(
object2.x - object1.x,
object2.y - object1.y,
);

const distance = Math.sqrt(
(object2.x - object1.x) * (object2.x - object1.x)
+ (object2.y - object1.y) * (object2.y - object1.y),
);

const vCollisionNorm = new PIXI.Point(
vCollision.x / distance,
vCollision.y / distance,
);

const vRelativeVelocity = new PIXI.Point(
object1.acceleration.x - object2.acceleration.x,
object1.acceleration.y - object2.acceleration.y,
);

const speed = vRelativeVelocity.x * vCollisionNorm.x
+ vRelativeVelocity.y * vCollisionNorm.y;

const impulse = impulsePower * speed / (object1.mass + object2.mass);

return new PIXI.Point(
impulse * vCollisionNorm.x,
impulse * vCollisionNorm.y,
);
}

// Calculate the distance between two given points
function distanceBetweenTwoPoints(p1, p2)
{
const a = p1.x - p2.x;
const b = p1.y - p2.y;

return Math.hypot(a, b);
}

// The green square we will knock about
const greenSquare = new PIXI.Sprite(PIXI.Texture.WHITE);

greenSquare.position.set((app.screen.width - 100) / 2, (app.screen.height - 100) / 2);
greenSquare.width = 100;
greenSquare.height = 100;
greenSquare.tint = 0x00FF00;
greenSquare.acceleration = new PIXI.Point(0);
greenSquare.mass = 3;

// The square you move around
const redSquare = new PIXI.Sprite(PIXI.Texture.WHITE);

redSquare.position.set(0, 0);
redSquare.width = 100;
redSquare.height = 100;
redSquare.tint = 0xFF0000;
redSquare.acceleration = new PIXI.Point(0);
redSquare.mass = 1;

const mouseCoords = { x: 0, y: 0 };

app.stage.eventMode = 'static';
app.stage.hitArea = app.screen;
app.stage.on('mousemove', (event) =>
{
mouseCoords.x = event.global.x;
mouseCoords.y = event.global.y;
});

// Listen for animate update
app.ticker.add((delta) =>
{
// Applied deacceleration for both squares, done by reducing the
// acceleration by 0.01% of the acceleration every loop
redSquare.acceleration.set(redSquare.acceleration.x * 0.99, redSquare.acceleration.y * 0.99);
greenSquare.acceleration.set(greenSquare.acceleration.x * 0.99, greenSquare.acceleration.y * 0.99);

// Check whether the green square ever moves off the screen
// If so, reverse acceleration in that direction
if (greenSquare.x < 0 || greenSquare.x > (app.screen.width - 100))
{
greenSquare.acceleration.x = -greenSquare.acceleration.x;
}

if (greenSquare.y < 0 || greenSquare.y > (app.screen.height - 100))
{
greenSquare.acceleration.y = -greenSquare.acceleration.y;
}

// If the green square pops out of the cordon, it pops back into the
// middle
if ((greenSquare.x < -30 || greenSquare.x > (app.screen.width + 30))
|| greenSquare.y < -30 || greenSquare.y > (app.screen.height + 30))
{
greenSquare.position.set((app.screen.width - 100) / 2, (app.screen.height - 100) / 2);
}

// If the mouse is off screen, then don't update any further
if (app.screen.width > mouseCoords.x || mouseCoords.x > 0
|| app.screen.height > mouseCoords.y || mouseCoords.y > 0)
{
// Get the red square's center point
const redSquareCenterPosition = new PIXI.Point(
redSquare.x + (redSquare.width * 0.5),
redSquare.y + (redSquare.height * 0.5),
);

// Calculate the direction vector between the mouse pointer and
// the red square
const toMouseDirection = new PIXI.Point(
mouseCoords.x - redSquareCenterPosition.x,
mouseCoords.y - redSquareCenterPosition.y,
);

// Use the above to figure out the angle that direction has
const angleToMouse = Math.atan2(
toMouseDirection.y,
toMouseDirection.x,
);

// Figure out the speed the square should be travelling by, as a
// function of how far away from the mouse pointer the red square is
const distMouseRedSquare = distanceBetweenTwoPoints(
mouseCoords,
redSquareCenterPosition,
);
const redSpeed = distMouseRedSquare * movementSpeed;

// Calculate the acceleration of the red square
redSquare.acceleration.set(
Math.cos(angleToMouse) * redSpeed,
Math.sin(angleToMouse) * redSpeed,
);
}

// If the two squares are colliding
if (testForAABB(greenSquare, redSquare))
{
// Calculate the changes in acceleration that should be made between
// each square as a result of the collision
const collisionPush = collisionResponse(greenSquare, redSquare);
// Set the changes in acceleration for both squares

redSquare.acceleration.set(
(collisionPush.x * greenSquare.mass),
(collisionPush.y * greenSquare.mass),
);
greenSquare.acceleration.set(
-(collisionPush.x * redSquare.mass),
-(collisionPush.y * redSquare.mass),
);
}

greenSquare.x += greenSquare.acceleration.x * delta;
greenSquare.y += greenSquare.acceleration.y * delta;

redSquare.x += redSquare.acceleration.x * delta;
redSquare.y += redSquare.acceleration.y * delta;
});

// Add to stage
app.stage.addChild(redSquare, greenSquare);
- - + + \ No newline at end of file diff --git a/examples/advanced/mouse-trail.html b/examples/advanced/mouse-trail.html index 01bb1aa73..03429aead 100644 --- a/examples/advanced/mouse-trail.html +++ b/examples/advanced/mouse-trail.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Mouse Trail

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ background: '#1099bb', resizeTo: window });

document.body.appendChild(app.view);

// Get the texture for rope.
const trailTexture = PIXI.Texture.from('https://pixijs.com/assets/trail.png');
const historyX = [];
const historyY = [];
// historySize determines how long the trail will be.
const historySize = 20;
// ropeSize determines how smooth the trail will be.
const ropeSize = 100;
const points = [];

// Create history array.
for (let i = 0; i < historySize; i++)
{
historyX.push(0);
historyY.push(0);
}
// Create rope points.
for (let i = 0; i < ropeSize; i++)
{
points.push(new PIXI.Point(0, 0));
}

// Create the rope
const rope = new PIXI.SimpleRope(trailTexture, points);

// Set the blendmode
rope.blendmode = PIXI.BLEND_MODES.ADD;

app.stage.addChild(rope);

let mouseposition = null;

app.stage.eventMode = 'static';
app.stage.hitArea = app.screen;
app.stage.on('mousemove', (event) =>
{
mouseposition = mouseposition || { x: 0, y: 0 };
mouseposition.x = event.global.x;
mouseposition.y = event.global.y;
});

// Listen for animate update
app.ticker.add(() =>
{
if (!mouseposition) return;

// Update the mouse values to history
historyX.pop();
historyX.unshift(mouseposition.x);
historyY.pop();
historyY.unshift(mouseposition.y);
// Update the points to correspond with history.
for (let i = 0; i < ropeSize; i++)
{
const p = points[i];

// Smooth the curve with cubic interpolation to prevent sharp edges.
const ix = cubicInterpolation(historyX, i / ropeSize * historySize);
const iy = cubicInterpolation(historyY, i / ropeSize * historySize);

p.x = ix;
p.y = iy;
}
});

/**
* Cubic interpolation based on https://github.com/osuushi/Smooth.js
*/
function clipInput(k, arr)
{
if (k < 0) k = 0;
if (k > arr.length - 1) k = arr.length - 1;

return arr[k];
}

function getTangent(k, factor, array)
{
return factor * (clipInput(k + 1, array) - clipInput(k - 1, array)) / 2;
}

function cubicInterpolation(array, t, tangentFactor)
{
if (tangentFactor === null) tangentFactor = 1;

const k = Math.floor(t);
const m = [getTangent(k, tangentFactor, array), getTangent(k + 1, tangentFactor, array)];
const p = [clipInput(k, array), clipInput(k + 1, array)];

t -= k;
const t2 = t * t;
const t3 = t * t2;

return (2 * t3 - 3 * t2 + 1) * p[0] + (t3 - 2 * t2 + t) * m[0] + (-2 * t3 + 3 * t2) * p[1] + (t3 - t2) * m[1];
}
- - + + \ No newline at end of file diff --git a/examples/advanced/scratch-card.html b/examples/advanced/scratch-card.html index da22620e4..e18b99061 100644 --- a/examples/advanced/scratch-card.html +++ b/examples/advanced/scratch-card.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Scratch Card

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ resizeTo: window });

document.body.appendChild(app.view);

// prepare circle texture, that will be our brush
const brush = new PIXI.Graphics()
.beginFill(0xffffff)
.drawCircle(0, 0, 50);

// Create a line that will interpolate the drawn points
const line = new PIXI.Graphics();

PIXI.Assets.add('t1', 'https://pixijs.com/assets/bg_grass.jpg');
PIXI.Assets.add('t2', 'https://pixijs.com/assets/bg_rotate.jpg');
PIXI.Assets.load(['t1', 't2']).then(setup);

function setup()
{
const { width, height } = app.screen;
const stageSize = { width, height };

const background = Object.assign(PIXI.Sprite.from('t1'), stageSize);
const imageToReveal = Object.assign(PIXI.Sprite.from('t2'), stageSize);
const renderTexture = PIXI.RenderTexture.create(stageSize);
const renderTextureSprite = new PIXI.Sprite(renderTexture);

imageToReveal.mask = renderTextureSprite;

app.stage.addChild(
background,
imageToReveal,
renderTextureSprite,
);

app.stage.eventMode = 'static';
app.stage.hitArea = app.screen;
app.stage
.on('pointerdown', pointerDown)
.on('pointerup', pointerUp)
.on('pointerupoutside', pointerUp)
.on('pointermove', pointerMove);

let dragging = false;
let lastDrawnPoint = null;

function pointerMove({ global: { x, y } })
{
if (dragging)
{
brush.position.set(x, y);
app.renderer.render(brush, {
renderTexture,
clear: false,
skipUpdateTransform: false,
});
// Smooth out the drawing a little bit to make it look nicer
// this connects the previous drawn point to the current one
// using a line
if (lastDrawnPoint)
{
line
.clear()
.lineStyle({ width: 100, color: 0xffffff })
.moveTo(lastDrawnPoint.x, lastDrawnPoint.y)
.lineTo(x, y);
app.renderer.render(line, {
renderTexture,
clear: false,
skipUpdateTransform: false,
});
}
lastDrawnPoint = lastDrawnPoint || new PIXI.Point();
lastDrawnPoint.set(x, y);
}
}

function pointerDown(event)
{
dragging = true;
pointerMove(event);
}

function pointerUp(event)
{
dragging = false;
lastDrawnPoint = null;
}
}
- - + + \ No newline at end of file diff --git a/examples/advanced/screen-shot.html b/examples/advanced/screen-shot.html index 7def46638..e13b68853 100644 --- a/examples/advanced/screen-shot.html +++ b/examples/advanced/screen-shot.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Screen Shot

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ backgroundColor: '#111', resizeTo: window });

document.body.appendChild(app.view);

const texture = PIXI.Texture.from('https://pixijs.com/assets/bunny.png');
const bunnyContainer = new PIXI.Container();

async function takeScreenshot()
{
app.stop();
const url = await app.renderer.extract.base64(bunnyContainer);
const a = document.createElement('a');

document.body.append(a);
a.download = 'screenshot';
a.href = url;
a.click();
a.remove();
app.start();
}

app.stage.eventMode = 'static';
app.stage.hitArea = app.screen;
app.stage.on('pointerdown', takeScreenshot);

for (let i = 0; i < 25; i++)
{
const bunny = new PIXI.Sprite(texture);

bunny.anchor.set(0.5);
bunny.x = (i % 5) * 40;
bunny.y = Math.floor(i / 5) * 40;
bunnyContainer.addChild(bunny);
}

bunnyContainer.x = 400;
bunnyContainer.y = 300;
bunnyContainer.pivot.x = bunnyContainer.width / 2;
bunnyContainer.pivot.y = bunnyContainer.height / 2;

app.ticker.add((delta) =>
{
bunnyContainer.rotation += 0.01 * delta;
});

const style = new PIXI.TextStyle({
fontFamily: 'Roboto',
fill: '#999',
});

const screenshotText = new PIXI.Text('Click To Take Screenshot', style);

screenshotText.x = Math.round((app.screen.width - screenshotText.width) / 2);
screenshotText.y = Math.round(screenshotText.height / 2);

app.stage.addChild(screenshotText, bunnyContainer);
- - + + \ No newline at end of file diff --git a/examples/advanced/slots.html b/examples/advanced/slots.html index f6ac09185..93ecad7c4 100644 --- a/examples/advanced/slots.html +++ b/examples/advanced/slots.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Slots

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ background: '#1099bb', resizeTo: window });

document.body.appendChild(app.view);

PIXI.Assets.load([
'https://pixijs.com/assets/eggHead.png',
'https://pixijs.com/assets/flowerTop.png',
'https://pixijs.com/assets/helmlok.png',
'https://pixijs.com/assets/skully.png',
]).then(onAssetsLoaded);

const REEL_WIDTH = 160;
const SYMBOL_SIZE = 150;

// onAssetsLoaded handler builds the example.
function onAssetsLoaded()
{
// Create different slot symbols.
const slotTextures = [
PIXI.Texture.from('https://pixijs.com/assets/eggHead.png'),
PIXI.Texture.from('https://pixijs.com/assets/flowerTop.png'),
PIXI.Texture.from('https://pixijs.com/assets/helmlok.png'),
PIXI.Texture.from('https://pixijs.com/assets/skully.png'),
];

// Build the reels
const reels = [];
const reelContainer = new PIXI.Container();

for (let i = 0; i < 5; i++)
{
const rc = new PIXI.Container();

rc.x = i * REEL_WIDTH;
reelContainer.addChild(rc);

const reel = {
container: rc,
symbols: [],
position: 0,
previousPosition: 0,
blur: new PIXI.filters.BlurFilter(),
};

reel.blur.blurX = 0;
reel.blur.blurY = 0;
rc.filters = [reel.blur];

// Build the symbols
for (let j = 0; j < 4; j++)
{
const symbol = new PIXI.Sprite(slotTextures[Math.floor(Math.random() * slotTextures.length)]);
// Scale the symbol to fit symbol area.

symbol.y = j * SYMBOL_SIZE;
symbol.scale.x = symbol.scale.y = Math.min(SYMBOL_SIZE / symbol.width, SYMBOL_SIZE / symbol.height);
symbol.x = Math.round((SYMBOL_SIZE - symbol.width) / 2);
reel.symbols.push(symbol);
rc.addChild(symbol);
}
reels.push(reel);
}
app.stage.addChild(reelContainer);

// Build top & bottom covers and position reelContainer
const margin = (app.screen.height - SYMBOL_SIZE * 3) / 2;

reelContainer.y = margin;
reelContainer.x = Math.round(app.screen.width - REEL_WIDTH * 5);
const top = new PIXI.Graphics();

top.beginFill(0, 1);
top.drawRect(0, 0, app.screen.width, margin);
const bottom = new PIXI.Graphics();

bottom.beginFill(0, 1);
bottom.drawRect(0, SYMBOL_SIZE * 3 + margin, app.screen.width, margin);

// Add play text
const style = new PIXI.TextStyle({
fontFamily: 'Arial',
fontSize: 36,
fontStyle: 'italic',
fontWeight: 'bold',
fill: ['#ffffff', '#00ff99'], // gradient
stroke: '#4a1850',
strokeThickness: 5,
dropShadow: true,
dropShadowColor: '#000000',
dropShadowBlur: 4,
dropShadowAngle: Math.PI / 6,
dropShadowDistance: 6,
wordWrap: true,
wordWrapWidth: 440,
});

const playText = new PIXI.Text('Spin the wheels!', style);

playText.x = Math.round((bottom.width - playText.width) / 2);
playText.y = app.screen.height - margin + Math.round((margin - playText.height) / 2);
bottom.addChild(playText);

// Add header text
const headerText = new PIXI.Text('PIXI MONSTER SLOTS!', style);

headerText.x = Math.round((top.width - headerText.width) / 2);
headerText.y = Math.round((margin - headerText.height) / 2);
top.addChild(headerText);

app.stage.addChild(top);
app.stage.addChild(bottom);

// Set the interactivity.
bottom.eventMode = 'static';
bottom.cursor = 'pointer';
bottom.addListener('pointerdown', () =>
{
startPlay();
});

let running = false;

// Function to start playing.
function startPlay()
{
if (running) return;
running = true;

for (let i = 0; i < reels.length; i++)
{
const r = reels[i];
const extra = Math.floor(Math.random() * 3);
const target = r.position + 10 + i * 5 + extra;
const time = 2500 + i * 600 + extra * 600;

tweenTo(r, 'position', target, time, backout(0.5), null, i === reels.length - 1 ? reelsComplete : null);
}
}

// Reels done handler.
function reelsComplete()
{
running = false;
}

// Listen for animate update.
app.ticker.add((delta) =>
{
// Update the slots.
for (let i = 0; i < reels.length; i++)
{
const r = reels[i];
// Update blur filter y amount based on speed.
// This would be better if calculated with time in mind also. Now blur depends on frame rate.

r.blur.blurY = (r.position - r.previousPosition) * 8;
r.previousPosition = r.position;

// Update symbol positions on reel.
for (let j = 0; j < r.symbols.length; j++)
{
const s = r.symbols[j];
const prevy = s.y;

s.y = ((r.position + j) % r.symbols.length) * SYMBOL_SIZE - SYMBOL_SIZE;
if (s.y < 0 && prevy > SYMBOL_SIZE)
{
// Detect going over and swap a texture.
// This should in proper product be determined from some logical reel.
s.texture = slotTextures[Math.floor(Math.random() * slotTextures.length)];
s.scale.x = s.scale.y = Math.min(SYMBOL_SIZE / s.texture.width, SYMBOL_SIZE / s.texture.height);
s.x = Math.round((SYMBOL_SIZE - s.width) / 2);
}
}
}
});
}

// Very simple tweening utility function. This should be replaced with a proper tweening library in a real product.
const tweening = [];

function tweenTo(object, property, target, time, easing, onchange, oncomplete)
{
const tween = {
object,
property,
propertyBeginValue: object[property],
target,
easing,
time,
change: onchange,
complete: oncomplete,
start: Date.now(),
};

tweening.push(tween);

return tween;
}
// Listen for animate update.
app.ticker.add((delta) =>
{
const now = Date.now();
const remove = [];

for (let i = 0; i < tweening.length; i++)
{
const t = tweening[i];
const phase = Math.min(1, (now - t.start) / t.time);

t.object[t.property] = lerp(t.propertyBeginValue, t.target, t.easing(phase));
if (t.change) t.change(t);
if (phase === 1)
{
t.object[t.property] = t.target;
if (t.complete) t.complete(t);
remove.push(t);
}
}
for (let i = 0; i < remove.length; i++)
{
tweening.splice(tweening.indexOf(remove[i]), 1);
}
});

// Basic lerp funtion.
function lerp(a1, a2, t)
{
return a1 * (1 - t) + a2 * t;
}

// Backout function from tweenjs.
// https://github.com/CreateJS/TweenJS/blob/master/src/tweenjs/Ease.js
function backout(amount)
{
return (t) => (--t * t * ((amount + 1) * t + amount) + 1);
}
- - + + \ No newline at end of file diff --git a/examples/advanced/spinners.html b/examples/advanced/spinners.html index e0f0f1d6a..c85ad3563 100644 --- a/examples/advanced/spinners.html +++ b/examples/advanced/spinners.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Spinners

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ background: '#1099bb', resizeTo: window });

document.body.appendChild(app.view);

/* ---------------------------------------
Spinner 1. Square with radial completion.
-------------------------------------- */
const generateSpinner1 = (position) =>
{
const container = new PIXI.Container();

container.position = position;
app.stage.addChild(container);

const base = PIXI.Sprite.from('https://pixijs.com/assets/bg_scene_rotate.jpg');
const size = 100;

base.width = size;
base.height = size;

const bottom = PIXI.Sprite.from('https://pixijs.com/assets/bg_rotate.jpg');

bottom.width = size;
bottom.height = size;

const mask = new PIXI.Graphics();

mask.position.set(size / 2, size / 2);
base.mask = mask;
window.mask = mask;

container.addChild(bottom);
container.addChild(base);
container.addChild(mask);

let phase = 0;

return (delta) =>
{
// Update phase
phase += delta / 60;
phase %= (Math.PI * 2);

// Calculate target point.
const x = Math.cos(phase - Math.PI / 2) * size;
const y = Math.sin(phase - Math.PI / 2) * size;

const segments = [
[-size / 2, -size / 2, size / 2, -size / 2], // top segment
[size / 2, -size / 2, size / 2, size / 2], // right
[-size / 2, size / 2, size / 2, size / 2], // bottom
[-size / 2, -size / 2, -size / 2, size / 2], // left
];

// Find the intersecting segment.
let intersection = null;
let winding = 0;

for (let i = 0; i < segments.length; i++)
{
const segment = segments[i];
const hit = intersect(0, 0, x, y, segment[0], segment[1], segment[2], segment[3]);

if (hit)
{
intersection = hit;
if (i === 0) winding = hit.x > 0 ? 0 : 4;
else winding = i;
break;
}
}

const corners = [
size / 2, -size / 2, // Top right
size / 2, size / 2, // Bottom right
-size / 2, size / 2, // Bottom left
-size / 2, -size / 2, // Top left,
0, -size / 2, // End point
];

// Redraw mask
mask.clear();
mask.lineStyle(2, 0xff0000, 1);
mask.beginFill(0xff0000, 1);
mask.moveTo(0, -size / 2);
mask.lineTo(0, 0);

mask.lineTo(intersection.x, intersection.y);

// fill the corners
for (let i = winding; i < corners.length / 2; i++)
{
mask.lineTo(corners[i * 2], corners[i * 2 + 1]);
}
mask.endFill();
};
};

/* -----------------------
Spinner 2. Scaling balls.
---------------------- */
const generateSpinner2 = (position) =>
{
const container = new PIXI.Container();

container.position = position;
app.stage.addChild(container);

const size = 100;
const ballAmount = 7;
const balls = [];

for (let i = 0; i < ballAmount; i++)
{
const ball = PIXI.Sprite.from('https://pixijs.com/assets/circle.png');

ball.anchor.set(0.5);
container.addChild(ball);
ball.position.set(
size / 2 + Math.cos(i / ballAmount * Math.PI * 2) * size / 3,
size / 2 + Math.sin(i / ballAmount * Math.PI * 2) * size / 3,
);
balls.push(ball);
}

let phase = 0;

return (delta) =>
{
// Update phase
phase += delta / 60;
phase %= (Math.PI * 2);

// Update ball scales
balls.forEach((b, i) =>
{
const sin = Math.sin(i / ballAmount * Math.PI - phase);
// Multiply sin with itself to get more steeper edge.

b.scale.set(Math.abs(sin * sin * sin * 0.5) + 0.5);
});
};
};

/* ---------------------
Spinner 3. Radial mask.
-------------------- */
const generateSpinner3 = (position) =>
{
const container = new PIXI.Container();

container.position = position;
app.stage.addChild(container);

const base = PIXI.Sprite.from('https://pixijs.com/assets/bg_scene_rotate.jpg');
const size = 100;

base.width = size;
base.height = size;

const mask = new PIXI.Graphics();

mask.position.set(size / 2, size / 2);
base.mask = mask;
window.mask = mask;

container.addChild(base);
container.addChild(mask);

let phase = 0;

return (delta) =>
{
// Update phase
phase += delta / 60;
phase %= (Math.PI * 2);

const angleStart = 0 - Math.PI / 2;
const angle = phase + angleStart;
const radius = 50;

const x1 = Math.cos(angleStart) * radius;
const y1 = Math.sin(angleStart) * radius;

// Redraw mask
mask.clear();
mask.lineStyle(2, 0xff0000, 1);
mask.beginFill(0xff0000, 1);
mask.moveTo(0, 0);
mask.lineTo(x1, y1);
mask.arc(0, 0, radius, angleStart, angle, false);
mask.lineTo(0, 0);
mask.endFill();
};
};

/* ---------------------------------
Spinner 4. Rounded rectangle edges.
------------------------------- */
const generateSpinner4 = (position) =>
{
const container = new PIXI.Container();

container.position = position;
app.stage.addChild(container);

const size = 100;
const arcRadius = 15;

const base = PIXI.Sprite.from('https://pixijs.com/assets/bg_scene_rotate.jpg');

base.width = size;
base.height = size;

// For better performance having assets prerounded would be better than masking.
const roundingMask = new PIXI.Graphics();

roundingMask.beginFill(0, 1);
roundingMask.lineStyle(1, 0xff0000, 1);
roundingMask.drawRoundedRect(0, 0, size, size, arcRadius);
roundingMask.endFill();
base.mask = roundingMask;

// The edge could be replaced with image as well.
const lineSize = 5;
const edge = new PIXI.Graphics();

edge.lineStyle(lineSize, 0xff0000, 1);
edge.drawRoundedRect(0, 0, size, size, arcRadius);
edge.endFill();

// Mask in this example works basically the same way as in example 1.
// Except it is reversed and calculates the mask in straight lines in edges.
const mask = new PIXI.Graphics();

mask.position.set(size / 2, size / 2);
edge.mask = mask;

container.addChild(base);
container.addChild(roundingMask);
container.addChild(edge);
container.addChild(mask);

let phase = 0;

return (delta) =>
{
// Update phase
phase += delta / 160;
phase %= (Math.PI * 2);

// Calculate target point.
const x = Math.cos(phase - Math.PI / 2) * size;
const y = Math.sin(phase - Math.PI / 2) * size;
// Line segments
const segments = [
[-size / 2 + lineSize, -size / 2 + lineSize, size / 2 - lineSize, -size / 2 + lineSize], // top segment
[size / 2 - lineSize, -size / 2 + lineSize, size / 2 - lineSize, size / 2 - lineSize], // right
[-size / 2 + lineSize, size / 2 - lineSize, size / 2 - lineSize, size / 2 - lineSize], // bottom
[-size / 2 + lineSize, -size / 2 + lineSize, -size / 2 + lineSize, size / 2 - lineSize], // left
];
// To which dir should mask continue at each segment
let outDir = [
[0, -1],
[1, 0],
[0, 1],
[-1, 0],
];

// Find the intersecting segment.
let intersection = null;
let winding = 0;
// What direction should the line continue after hit has been found before hitting the line size

for (let i = 0; i < segments.length; i++)
{
const segment = segments[i];
const hit = intersect(0, 0, x, y, segment[0], segment[1], segment[2], segment[3]);

if (hit)
{
intersection = hit;
if (i === 0) winding = hit.x < 0 ? 0 : 4;
else winding = 4 - i;
outDir = outDir[i];
break;
}
}

const corners = [
-size / 2 - lineSize, -size / 2 - lineSize, // Top left,
-size / 2 - lineSize, size / 2 + lineSize, // Bottom left
size / 2 + lineSize, size / 2 + lineSize, // Bottom right
size / 2 + lineSize, -size / 2 - lineSize, // Top right
];

// Redraw mask
mask.clear();
mask.lineStyle(2, 0x00ff00, 1);
mask.beginFill(0xff0000, 1);

mask.moveTo(0, 0);
mask.moveTo(0, -size / 2 - lineSize);

// fill the corners
for (let i = 0; i < winding; i++)
{
mask.lineTo(corners[i * 2], corners[i * 2 + 1]);
}

mask.lineTo(intersection.x + outDir[0] * lineSize * 2, intersection.y + outDir[1] * lineSize * 2);
mask.lineTo(intersection.x, intersection.y);
mask.lineTo(0, 0);

mask.endFill();
};
};

/* ---------------------
Spinner 5. Rounded rectangle fixed length spinner by jonlepage
-------------------- */
const generateSpinner5 = (position) =>
{
const container = new PIXI.Container();

container.position = position;
app.stage.addChild(container);

const halfCircle = new PIXI.Graphics();

halfCircle.beginFill(0xff0000);
halfCircle.lineStyle(2, 0xffffff);
halfCircle.arc(0, 0, 100, 0, Math.PI);
halfCircle.endFill();
halfCircle.position.set(50, 50);

const rectangle = new PIXI.Graphics();

rectangle.lineStyle(2, 0xffffff, 1);
rectangle.drawRoundedRect(0, 0, 100, 100, 16);
rectangle.endFill();
rectangle.mask = halfCircle;

container.addChild(rectangle);
container.addChild(halfCircle);

let phase = 0;

return (delta) =>
{
// Update phase
phase += delta / 6;
phase %= (Math.PI * 2);

halfCircle.rotation = phase;
};
};

const onTick = [
generateSpinner1(new PIXI.Point(50, 50)),
generateSpinner2(new PIXI.Point(160, 50)),
generateSpinner3(new PIXI.Point(270, 50)),
generateSpinner4(new PIXI.Point(380, 50)),
generateSpinner5(new PIXI.Point(490, 50)),
];

// Listen for animate update
app.ticker.add((delta) =>
{
// Call tick handling for each spinner.
onTick.forEach((cb) =>
{
cb(delta);
});
});

/**
* Helper functions

line intercept math by Paul Bourke http://paulbourke.net/geometry/pointlineplane/
Determine the intersection point of two line segments
Return FALSE if the lines don't intersect

Code modified from original to match pixi examples linting rules.
*/
function intersect(x1, y1, x2, y2, x3, y3, x4, y4)
{
// Check if none of the lines are of length 0
if ((x1 === x2 && y1 === y2) || (x3 === x4 && y3 === y4))
{
return false;
}

const denominator = ((y4 - y3) * (x2 - x1) - (x4 - x3) * (y2 - y1));

// Lines are parallel
if (denominator === 0)
{
return false;
}

const ua = ((x4 - x3) * (y1 - y3) - (y4 - y3) * (x1 - x3)) / denominator;
const ub = ((x2 - x1) * (y1 - y3) - (y2 - y1) * (x1 - x3)) / denominator;

// is the intersection along the segments
if (ua < 0 || ua > 1 || ub < 0 || ub > 1)
{
return false;
}

// Return a object with the x and y coordinates of the intersection
const x = x1 + ua * (x2 - x1);
const y = y1 + ua * (y2 - y1);

return { x, y };
}
- - + + \ No newline at end of file diff --git a/examples/advanced/star-warp.html b/examples/advanced/star-warp.html index 636f2d4c4..514c778ea 100644 --- a/examples/advanced/star-warp.html +++ b/examples/advanced/star-warp.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Star Warp

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ resizeTo: window });

document.body.appendChild(app.view);

// Get the texture for star.
const starTexture = PIXI.Texture.from('https://pixijs.com/assets/star.png');

const starAmount = 1000;
let cameraZ = 0;
const fov = 20;
const baseSpeed = 0.025;
let speed = 0;
let warpSpeed = 0;
const starStretch = 5;
const starBaseSize = 0.05;

// Create the stars
const stars = [];

for (let i = 0; i < starAmount; i++)
{
const star = {
sprite: new PIXI.Sprite(starTexture),
z: 0,
x: 0,
y: 0,
};

star.sprite.anchor.x = 0.5;
star.sprite.anchor.y = 0.7;
randomizeStar(star, true);
app.stage.addChild(star.sprite);
stars.push(star);
}

function randomizeStar(star, initial)
{
star.z = initial ? Math.random() * 2000 : cameraZ + Math.random() * 1000 + 2000;

// Calculate star positions with radial random coordinate so no star hits the camera.
const deg = Math.random() * Math.PI * 2;
const distance = Math.random() * 50 + 1;

star.x = Math.cos(deg) * distance;
star.y = Math.sin(deg) * distance;
}

// Change flight speed every 5 seconds
setInterval(() =>
{
warpSpeed = warpSpeed > 0 ? 0 : 1;
}, 5000);

// Listen for animate update
app.ticker.add((delta) =>
{
// Simple easing. This should be changed to proper easing function when used for real.
speed += (warpSpeed - speed) / 20;
cameraZ += delta * 10 * (speed + baseSpeed);
for (let i = 0; i < starAmount; i++)
{
const star = stars[i];

if (star.z < cameraZ) randomizeStar(star);

// Map star 3d position to 2d with really simple projection
const z = star.z - cameraZ;

star.sprite.x = star.x * (fov / z) * app.renderer.screen.width + app.renderer.screen.width / 2;
star.sprite.y = star.y * (fov / z) * app.renderer.screen.width + app.renderer.screen.height / 2;

// Calculate star scale & rotation.
const dxCenter = star.sprite.x - app.renderer.screen.width / 2;
const dyCenter = star.sprite.y - app.renderer.screen.height / 2;
const distanceCenter = Math.sqrt(dxCenter * dxCenter + dyCenter * dyCenter);
const distanceScale = Math.max(0, (2000 - z) / 2000);

star.sprite.scale.x = distanceScale * starBaseSize;
// Star is looking towards center so that y axis is towards center.
// Scale the star depending on how fast we are moving, what the stretchfactor is
// and depending on how far away it is from the center.
star.sprite.scale.y = distanceScale * starBaseSize
+ distanceScale * speed * starStretch * distanceCenter / app.renderer.screen.width;
star.sprite.rotation = Math.atan2(dyCenter, dxCenter) + Math.PI / 2;
}
});
- - + + \ No newline at end of file diff --git a/examples/assets/async.html b/examples/assets/async.html index 9e4822707..727f088b4 100644 --- a/examples/assets/async.html +++ b/examples/assets/async.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Async

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ background: '#1099bb', resizeTo: window });

document.body.appendChild(app.view);

// await can only be used inside an async function
async function init()
{
const texture = await PIXI.Assets.load('https://pixijs.com/assets/bunny.png');

// create a new Sprite from the awaited loaded Texture
const bunny = PIXI.Sprite.from(texture);

// center the sprite's anchor point
bunny.anchor.set(0.5);

// move the sprite to the center of the screen
bunny.x = app.screen.width / 2;
bunny.y = app.screen.height / 2;

app.stage.addChild(bunny);
}

// Call that async function
init();
- - + + \ No newline at end of file diff --git a/examples/assets/background.html b/examples/assets/background.html index c484f9a7a..3a0208e47 100644 --- a/examples/assets/background.html +++ b/examples/assets/background.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Background

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ background: '#1099bb', resizeTo: window });

document.body.appendChild(app.view);

// Add the assets to load
PIXI.Assets.add('flowerTop', 'https://pixijs.com/assets/flowerTop.png');
PIXI.Assets.add('eggHead', 'https://pixijs.com/assets/eggHead.png');

// Allow the assets to load in the background
PIXI.Assets.backgroundLoad(['flowerTop', 'eggHead']);

// If the background load hasn't loaded this asset yet, calling load forces this asset to load now.
PIXI.Assets.load('eggHead').then((texture) =>
{
// auxiliar flag for toggling the texture
let isEggHead = true;

// create a new Sprite from the resolved loaded texture
const character = new PIXI.Sprite(texture);

character.anchor.set(0.5);
character.x = app.screen.width / 2;
character.y = app.screen.height / 2;
character.eventMode = 'static';
character.cursor = 'pointer';

app.stage.addChild(character);

character.on('pointertap', async () =>
{
isEggHead = !isEggHead;
// These promise are already resolved in the cache.
character.texture = await PIXI.Assets.load(isEggHead ? 'eggHead' : 'flowerTop');
});
});
- - + + \ No newline at end of file diff --git a/examples/assets/bundle.html b/examples/assets/bundle.html index 5f0c367cd..9c5db289b 100644 --- a/examples/assets/bundle.html +++ b/examples/assets/bundle.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Bundle

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ background: '#1099bb', resizeTo: window });

document.body.appendChild(app.view);

async function init()
{
// manifest example
const manifestExample = {
bundles: [{
name: 'load-screen',
assets: [
{
name: 'flowerTop',
srcs: 'https://pixijs.com/assets/flowerTop.png',
},
],
},
{
name: 'game-screen',
assets: [
{
name: 'eggHead',
srcs: 'https://pixijs.com/assets/eggHead.png',
},
],
}],
};

await PIXI.Assets.init({ manifest: manifestExample });

// bundles can be loaded in the background too!
PIXI.Assets.backgroundLoadBundle(['load-screen', 'game-screen']);

makeLoadScreen();
}

async function makeLoadScreen()
{
// get the assets from the load screen bundle.
// If the bundle was already downloaded the promise resolves instantly!
const loadScreenAssets = await PIXI.Assets.loadBundle('load-screen');

// create a new Sprite from the resolved loaded texture
const goNext = new PIXI.Sprite(loadScreenAssets.flowerTop);

goNext.anchor.set(0.5);
goNext.x = app.screen.width / 2;
goNext.y = app.screen.height / 2;
app.stage.addChild(goNext);

goNext.eventMode = 'static';
goNext.cursor = 'pointer';

goNext.on('pointertap', async () =>
{
goNext.destroy();
makeGameScreen();
});
}

async function makeGameScreen()
{
// Wait here until you get the assets
// If the user spends enough time in the load screen by the time they reach the game screen
// the assets are completely loaded and the promise resolves instantly!
const loadScreenAssets = await PIXI.Assets.loadBundle('game-screen');

// create a new Sprite from the resolved loaded texture
const goBack = new PIXI.Sprite(loadScreenAssets.eggHead);

goBack.anchor.set(0.5);
goBack.x = app.screen.width / 2;
goBack.y = app.screen.height / 2;
app.stage.addChild(goBack);

goBack.eventMode = 'static';
goBack.cursor = 'pointer';

goBack.on('pointertap', async () =>
{
goBack.destroy();
// The user can go back and the files are already downloaded
makeLoadScreen();
});
}

init();
- - + + \ No newline at end of file diff --git a/examples/assets/multiple.html b/examples/assets/multiple.html index ef5ae748b..10b1b84e7 100644 --- a/examples/assets/multiple.html +++ b/examples/assets/multiple.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Multiple

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ background: '#1099bb', resizeTo: window });

document.body.appendChild(app.view);

// Add the assets to load
PIXI.Assets.add('flowerTop', 'https://pixijs.com/assets/flowerTop.png');
PIXI.Assets.add('eggHead', 'https://pixijs.com/assets/eggHead.png');

// Load the assets and get a resolved promise once both are loaded
const texturesPromise = PIXI.Assets.load(['flowerTop', 'eggHead']); // => Promise<{flowerTop: Texture, eggHead: Texture}>

// When the promise resolves, we have the texture!
texturesPromise.then((textures) =>
{
// create a new Sprite from the resolved loaded Textures

const flower = PIXI.Sprite.from(textures.flowerTop);

flower.anchor.set(0.5);
flower.x = app.screen.width * 0.25;
flower.y = app.screen.height / 2;
app.stage.addChild(flower);

const egg = PIXI.Sprite.from(textures.eggHead);

egg.anchor.set(0.5);
egg.x = app.screen.width * 0.75;
egg.y = app.screen.height / 2;
app.stage.addChild(egg);
});
- - + + \ No newline at end of file diff --git a/examples/assets/promise.html b/examples/assets/promise.html index 6e59dd0ce..d1deeed89 100644 --- a/examples/assets/promise.html +++ b/examples/assets/promise.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Promise

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ background: '#1099bb', resizeTo: window });

document.body.appendChild(app.view);

// Start loading right away and create a promise
const texturePromise = PIXI.Assets.load('https://pixijs.com/assets/bunny.png');

// When the promise resolves, we have the texture!
texturePromise.then((resolvedTexture) =>
{
// create a new Sprite from the resolved loaded Texture
const bunny = PIXI.Sprite.from(resolvedTexture);

// center the sprite's anchor point
bunny.anchor.set(0.5);

// move the sprite to the center of the screen
bunny.x = app.screen.width / 2;
bunny.y = app.screen.height / 2;

app.stage.addChild(bunny);
});
- - + + \ No newline at end of file diff --git a/examples/basic/blend-modes.html b/examples/basic/blend-modes.html index a65572619..8318cd711 100644 --- a/examples/basic/blend-modes.html +++ b/examples/basic/blend-modes.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Blend Modes

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ resizeTo: window });

document.body.appendChild(app.view);

// create a new background sprite
const background = PIXI.Sprite.from('https://pixijs.com/assets/bg_rotate.jpg');

background.width = app.screen.width;
background.height = app.screen.height;
app.stage.addChild(background);

// create an array to store a reference to the dudes
const dudeArray = [];

const totaldudes = 20;

for (let i = 0; i < totaldudes; i++)
{
// create a new Sprite that uses the image name that we just generated as its source
const dude = PIXI.Sprite.from('https://pixijs.com/assets/flowerTop.png');

dude.anchor.set(0.5);

// set a random scale for the dude
dude.scale.set(0.8 + Math.random() * 0.3);

// finally let's set the dude to be at a random position...
dude.x = Math.floor(Math.random() * app.screen.width);
dude.y = Math.floor(Math.random() * app.screen.height);

// The important bit of this example, this is how you change the default blend mode of the sprite
dude.blendMode = PIXI.BLEND_MODES.ADD;

// create some extra properties that will control movement
dude.direction = Math.random() * Math.PI * 2;

// this number will be used to modify the direction of the dude over time
dude.turningSpeed = Math.random() - 0.8;

// create a random speed for the dude between 0 - 2
dude.speed = 2 + Math.random() * 2;

// finally we push the dude into the dudeArray so it it can be easily accessed later
dudeArray.push(dude);

app.stage.addChild(dude);
}

// create a bounding box for the little dudes
const dudeBoundsPadding = 100;

const dudeBounds = new PIXI.Rectangle(
-dudeBoundsPadding,
-dudeBoundsPadding,
app.screen.width + dudeBoundsPadding * 2,
app.screen.height + dudeBoundsPadding * 2,
);

app.ticker.add(() =>
{
// iterate through the dudes and update the positions
for (let i = 0; i < dudeArray.length; i++)
{
const dude = dudeArray[i];

dude.direction += dude.turningSpeed * 0.01;
dude.x += Math.sin(dude.direction) * dude.speed;
dude.y += Math.cos(dude.direction) * dude.speed;
dude.rotation = -dude.direction - Math.PI / 2;

// wrap the dudes by testing their bounds...
if (dude.x < dudeBounds.x)
{
dude.x += dudeBounds.width;
}
else if (dude.x > dudeBounds.x + dudeBounds.width)
{
dude.x -= dudeBounds.width;
}

if (dude.y < dudeBounds.y)
{
dude.y += dudeBounds.height;
}
else if (dude.y > dudeBounds.y + dudeBounds.height)
{
dude.y -= dudeBounds.height;
}
}
});
- - + + \ No newline at end of file diff --git a/examples/basic/cache-as-bitmap.html b/examples/basic/cache-as-bitmap.html index c058cd1e0..715ffa981 100644 --- a/examples/basic/cache-as-bitmap.html +++ b/examples/basic/cache-as-bitmap.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Cache As Bitmap

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ resizeTo: window });

document.body.appendChild(app.view);

app.stop();

// load resources
PIXI.Assets.load('https://pixijs.com/assets/spritesheet/monsters.json')
.then(onAssetsLoaded);

// holder to store aliens
const aliens = [];
const alienFrames = [
'eggHead.png',
'flowerTop.png',
'helmlok.png',
'skully.png',
];

let count = 0;

// create an empty container
const alienContainer = new PIXI.Container();

alienContainer.x = 400;
alienContainer.y = 300;

// make the stage interactive
app.stage.eventMode = 'static';
app.stage.addChild(alienContainer);

function onAssetsLoaded()
{
// add a bunch of aliens with textures from image paths
for (let i = 0; i < 100; i++)
{
const frameName = alienFrames[i % 4];

// create an alien using the frame name..
const alien = PIXI.Sprite.from(frameName);

alien.tint = Math.random() * 0xFFFFFF;

alien.x = Math.random() * 800 - 400;
alien.y = Math.random() * 600 - 300;
alien.anchor.x = 0.5;
alien.anchor.y = 0.5;
aliens.push(alien);
alienContainer.addChild(alien);
}
app.start();
}

// Combines both mouse click + touch tap
app.stage.on('pointertap', onClick);

function onClick()
{
alienContainer.cacheAsBitmap = !alienContainer.cacheAsBitmap;
}

app.ticker.add(() =>
{
// let's rotate the aliens a little bit
for (let i = 0; i < 100; i++)
{
const alien = aliens[i];

alien.rotation += 0.1;
}

count += 0.01;

alienContainer.scale.x = Math.sin(count);
alienContainer.scale.y = Math.sin(count);
alienContainer.rotation += 0.01;
});
- - + + \ No newline at end of file diff --git a/examples/basic/container.html b/examples/basic/container.html index 6525a2a13..676353709 100644 --- a/examples/basic/container.html +++ b/examples/basic/container.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Container

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ background: '#1099bb', resizeTo: window });

document.body.appendChild(app.view);

const container = new PIXI.Container();

app.stage.addChild(container);

// Create a new texture
const texture = PIXI.Texture.from('https://pixijs.com/assets/bunny.png');

// Create a 5x5 grid of bunnies
for (let i = 0; i < 25; i++)
{
const bunny = new PIXI.Sprite(texture);

bunny.anchor.set(0.5);
bunny.x = (i % 5) * 40;
bunny.y = Math.floor(i / 5) * 40;
container.addChild(bunny);
}

// Move container to the center
container.x = app.screen.width / 2;
container.y = app.screen.height / 2;

// Center bunny sprite in local container coordinates
container.pivot.x = container.width / 2;
container.pivot.y = container.height / 2;

// Listen for animate update
app.ticker.add((delta) =>
{
// rotate the container!
// use delta to create frame-independent transform
container.rotation -= 0.01 * delta;
});
- - + + \ No newline at end of file diff --git a/examples/basic/particle-container.html b/examples/basic/particle-container.html index 1b55e4e3d..bee875a58 100644 --- a/examples/basic/particle-container.html +++ b/examples/basic/particle-container.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Particle Container

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ resizeTo: window });

document.body.appendChild(app.view);

const sprites = new PIXI.ParticleContainer(10000, {
scale: true,
position: true,
rotation: true,
uvs: true,
alpha: true,
});

app.stage.addChild(sprites);

// create an array to store all the sprites
const maggots = [];

const totalSprites = app.renderer instanceof PIXI.Renderer ? 10000 : 100;

for (let i = 0; i < totalSprites; i++)
{
// create a new Sprite
const dude = PIXI.Sprite.from('https://pixijs.com/assets/maggot_tiny.png');

// set the anchor point so the texture is centerd on the sprite
dude.anchor.set(0.5);

// different maggots, different sizes
dude.scale.set(0.8 + Math.random() * 0.3);

// scatter them all
dude.x = Math.random() * app.screen.width;
dude.y = Math.random() * app.screen.height;

dude.tint = Math.random() * 0x808080;

// create a random direction in radians
dude.direction = Math.random() * Math.PI * 2;

// this number will be used to modify the direction of the sprite over time
dude.turningSpeed = Math.random() - 0.8;

// create a random speed between 0 - 2, and these maggots are slooww
dude.speed = (2 + Math.random() * 2) * 0.2;

dude.offset = Math.random() * 100;

// finally we push the dude into the maggots array so it it can be easily accessed later
maggots.push(dude);

sprites.addChild(dude);
}

// create a bounding box box for the little maggots
const dudeBoundsPadding = 100;
const dudeBounds = new PIXI.Rectangle(
-dudeBoundsPadding,
-dudeBoundsPadding,
app.screen.width + dudeBoundsPadding * 2,
app.screen.height + dudeBoundsPadding * 2,
);

let tick = 0;

app.ticker.add(() =>
{
// iterate through the sprites and update their position
for (let i = 0; i < maggots.length; i++)
{
const dude = maggots[i];

dude.scale.y = 0.95 + Math.sin(tick + dude.offset) * 0.05;
dude.direction += dude.turningSpeed * 0.01;
dude.x += Math.sin(dude.direction) * (dude.speed * dude.scale.y);
dude.y += Math.cos(dude.direction) * (dude.speed * dude.scale.y);
dude.rotation = -dude.direction + Math.PI;

// wrap the maggots
if (dude.x < dudeBounds.x)
{
dude.x += dudeBounds.width;
}
else if (dude.x > dudeBounds.x + dudeBounds.width)
{
dude.x -= dudeBounds.width;
}

if (dude.y < dudeBounds.y)
{
dude.y += dudeBounds.height;
}
else if (dude.y > dudeBounds.y + dudeBounds.height)
{
dude.y -= dudeBounds.height;
}
}

// increment the ticker
tick += 0.1;
});
- - + + \ No newline at end of file diff --git a/examples/basic/simple-plane.html b/examples/basic/simple-plane.html index a5152758b..5550643d9 100644 --- a/examples/basic/simple-plane.html +++ b/examples/basic/simple-plane.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Simple Plane

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ background: '#1099bb', resizeTo: window });

document.body.appendChild(app.view);

PIXI.Assets.load('https://pixijs.com/assets/bg_grass.jpg').then((texture) =>
{
const plane = new PIXI.SimplePlane(texture, 10, 10);

plane.x = 100;
plane.y = 100;

app.stage.addChild(plane);

// Get the buffer for vertice positions.
const buffer = plane.geometry.getBuffer('aVertexPosition');

// Listen for animate update
let timer = 0;

app.ticker.add(() =>
{
// Randomize the vertice positions a bit to create movement.
for (let i = 0; i < buffer.data.length; i++)
{
buffer.data[i] += Math.sin((timer / 10) + i) * 0.5;
}
buffer.update();
timer++;
});
});
- - + + \ No newline at end of file diff --git a/examples/basic/tinting.html b/examples/basic/tinting.html index 4e472e12d..ad09bec31 100644 --- a/examples/basic/tinting.html +++ b/examples/basic/tinting.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Tinting

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ resizeTo: window });

document.body.appendChild(app.view);

// holder to store the aliens
const aliens = [];

const totalDudes = 20;

for (let i = 0; i < totalDudes; i++)
{
// create a new Sprite that uses the image name that we just generated as its source
const dude = PIXI.Sprite.from('https://pixijs.com/assets/eggHead.png');

// set the anchor point so the texture is centered on the sprite
dude.anchor.set(0.5);

// set a random scale for the dude - no point them all being the same size!
dude.scale.set(0.8 + Math.random() * 0.3);

// finally lets set the dude to be at a random position..
dude.x = Math.random() * app.screen.width;
dude.y = Math.random() * app.screen.height;

dude.tint = Math.random() * 0xFFFFFF;

// create some extra properties that will control movement :
// create a random direction in radians. This is a number between 0 and PI*2 which is the equivalent of 0 - 360 degrees
dude.direction = Math.random() * Math.PI * 2;

// this number will be used to modify the direction of the dude over time
dude.turningSpeed = Math.random() - 0.8;

// create a random speed for the dude between 2 - 4
dude.speed = 2 + Math.random() * 2;

// finally we push the dude into the aliens array so it it can be easily accessed later
aliens.push(dude);

app.stage.addChild(dude);
}

// create a bounding box for the little dudes
const dudeBoundsPadding = 100;
const dudeBounds = new PIXI.Rectangle(-dudeBoundsPadding,
-dudeBoundsPadding,
app.screen.width + dudeBoundsPadding * 2,
app.screen.height + dudeBoundsPadding * 2);

app.ticker.add(() =>
{
// iterate through the dudes and update their position
for (let i = 0; i < aliens.length; i++)
{
const dude = aliens[i];

dude.direction += dude.turningSpeed * 0.01;
dude.x += Math.sin(dude.direction) * dude.speed;
dude.y += Math.cos(dude.direction) * dude.speed;
dude.rotation = -dude.direction - Math.PI / 2;

// wrap the dudes by testing their bounds...
if (dude.x < dudeBounds.x)
{
dude.x += dudeBounds.width;
}
else if (dude.x > dudeBounds.x + dudeBounds.width)
{
dude.x -= dudeBounds.width;
}

if (dude.y < dudeBounds.y)
{
dude.y += dudeBounds.height;
}
else if (dude.y > dudeBounds.y + dudeBounds.height)
{
dude.y -= dudeBounds.height;
}
}
});
- - + + \ No newline at end of file diff --git a/examples/basic/transparent-background.html b/examples/basic/transparent-background.html index acbca3d44..cdf7af31d 100644 --- a/examples/basic/transparent-background.html +++ b/examples/basic/transparent-background.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Transparent Background

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ backgroundAlpha: 0, resizeTo: window });

document.body.appendChild(app.view);

// create a new Sprite from an image path.
const bunny = PIXI.Sprite.from('https://pixijs.com/assets/bunny.png');

// center the sprite's anchor point
bunny.anchor.set(0.5);

// move the sprite to the center of the screen
bunny.x = app.screen.width / 2;
bunny.y = app.screen.height / 2;

app.stage.addChild(bunny);

app.ticker.add(() =>
{
// just for fun, let's rotate mr rabbit a little
bunny.rotation += 0.1;
});
- - + + \ No newline at end of file diff --git a/examples/events/click.html b/examples/events/click.html index a522733a6..1839ebb0a 100644 --- a/examples/events/click.html +++ b/examples/events/click.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Click

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ background: '#1099bb', resizeTo: window });

document.body.appendChild(app.view);

// Scale mode for all textures, will retain pixelation
PIXI.settings.SCALE_MODE = PIXI.SCALE_MODES.NEAREST;

const sprite = PIXI.Sprite.from('https://pixijs.com/assets/bunny.png');

// Set the initial position
sprite.anchor.set(0.5);
sprite.x = app.screen.width / 2;
sprite.y = app.screen.height / 2;

// Opt-in to interactivity
sprite.eventMode = 'static';

// Shows hand cursor
sprite.cursor = 'pointer';

// Pointers normalize touch and mouse (good for mobile and desktop)
sprite.on('pointerdown', onClick);

// Alternatively, use the mouse & touch events:
// sprite.on('click', onClick); // mouse-only
// sprite.on('tap', onClick); // touch-only

app.stage.addChild(sprite);

function onClick()
{
sprite.scale.x *= 1.25;
sprite.scale.y *= 1.25;
}
- - + + \ No newline at end of file diff --git a/examples/events/custom-hitarea.html b/examples/events/custom-hitarea.html index 9f3315d8d..a560393d3 100644 --- a/examples/events/custom-hitarea.html +++ b/examples/events/custom-hitarea.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Custom Hitarea

import * as PIXI from 'pixi.js';

const app = new PIXI.Application(800, 600, { background: '#1099bb' });

document.body.appendChild(app.view);

const yellowStar = PIXI.Texture.from('https://pixijs.com/assets/yellowstar.png');

// Standard Sprite Button
const starButton1 = new PIXI.Sprite(yellowStar);

starButton1.position.set(50, 200);
starButton1.cursor = 'pointer';
starButton1.eventMode = 'static';

starButton1
.on('pointerdown', onClick, starButton1)
.on('pointerover', onPointerOver, starButton1)
.on('pointerout', onPointerOut, starButton1);

// Custom Hitarea Button
const starButton2 = new PIXI.Sprite(yellowStar);

starButton2.position.set(250, 200);

// Create a hitarea that matches the sprite, which will be used for point
// intersection
starButton2.hitArea = new PIXI.Polygon([
80, 0,
100, 50,
160, 55,
115, 95,
130, 150,
80, 120,
30, 150,
45, 95,
0, 55,
60, 50,
]);
starButton2.cursor = 'pointer';
starButton2.eventMode = 'static';

starButton2
.on('pointerdown', onClick, starButton2)
.on('pointerover', onPointerOver, starButton2)
.on('pointerout', onPointerOut, starButton2);

// With Mask, No Hit Area
const starButton3 = new PIXI.Sprite(yellowStar);

starButton3.position.set(450, 200);
starButton3.cursor = 'pointer';
starButton3.eventMode = 'static';

const squareMask = new PIXI.Graphics()
.beginFill(0xFFFFFF)
.drawRect(starButton3.x, starButton3.y, 75, 200)
.endFill();

starButton3.mask = squareMask;

starButton3
.on('pointerdown', onClick, starButton3)
.on('pointerover', onPointerOver, starButton3)
.on('pointerout', onPointerOut, starButton3);

// With a Mask and Hit Area
// Hitareas ignore masks. You can still click on a button made in this way,
// even from areas covered by a mask
const starButton4 = new PIXI.Sprite(yellowStar);

starButton4.position.set(600, 200);

const squareMask2 = new PIXI.Graphics()
.beginFill(0xFFFFFF)
.drawRect(starButton4.x, starButton4.y, 75, 200)
.endFill();

starButton4.mask = squareMask2;

// Again, hitarea for intersection checks
starButton4.hitArea = new PIXI.Polygon([
80, 0,
100, 50,
160, 55,
115, 95,
130, 150,
80, 120,
30, 150,
45, 95,
0, 55,
60, 50,
]);
starButton4.cursor = 'pointer';
starButton4.eventMode = 'static';

starButton4
.on('pointerdown', onClick, starButton4)
.on('pointerover', onPointerOver, starButton4)
.on('pointerout', onPointerOut, starButton4);

const style = new PIXI.TextStyle({ fill: '#ffffff' });

const text1 = new PIXI.Text('Standard', style);

text1.x = starButton1.x + 25;
text1.y = starButton1.y + 170;

const text2 = new PIXI.Text('Hit Area', style);

text2.x = starButton2.x + 35;
text2.y = starButton2.y + 170;

const text3 = new PIXI.Text('Mask', style);

text3.x = starButton3.x + 10;
text3.y = starButton3.y + 170;

const text4 = new PIXI.Text('Mask + Hit Area', style);

text4.x = starButton4.x - 10;
text4.y = starButton4.y + 170;

// Add to stage
app.stage.addChild(
starButton2,
starButton1,
starButton3,
starButton4,
squareMask,
squareMask2,
text1,
text2,
text3,
text4,
);

function onClick()
{
this.tint = 0x333333;
}

function onPointerOver()
{
this.tint = 0x666666;
}

function onPointerOut()
{
this.tint = 0xFFFFFF;
}
- - + + \ No newline at end of file diff --git a/examples/events/custom-mouse-icon.html b/examples/events/custom-mouse-icon.html index a4ab7c9ca..ffb172e53 100644 --- a/examples/events/custom-mouse-icon.html +++ b/examples/events/custom-mouse-icon.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Custom Mouse Icon

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ background: '#1099bb', resizeTo: window });

document.body.appendChild(app.view);

// Css style for icons
const defaultIcon = 'url(\'https://pixijs.com/assets/bunny.png\'),auto';
const hoverIcon = 'url(\'https://pixijs.com/assets/bunny_saturated.png\'),auto';

// Add custom cursor styles
app.renderer.events.cursorStyles.default = defaultIcon;
app.renderer.events.cursorStyles.hover = hoverIcon;

// create a background...
const background = PIXI.Sprite.from('https://pixijs.com/assets/bg_button.jpg');

background.width = app.screen.width;
background.height = app.screen.height;
// add background to stage...
app.stage.addChild(background);

// create some textures from an image path
const textureButton = PIXI.Texture.from('https://pixijs.com/assets/button.png');
const textureButtonDown = PIXI.Texture.from('https://pixijs.com/assets/button_down.png');
const textureButtonOver = PIXI.Texture.from('https://pixijs.com/assets/button_over.png');

const buttons = [];

const buttonPositions = [
175, 75,
655, 75,
410, 325,
150, 465,
685, 445,
];

for (let i = 0; i < 5; i++)
{
const button = new PIXI.Sprite(textureButton);

button.cursor = 'hover';

button.anchor.set(0.5);
button.x = buttonPositions[i * 2];
button.y = buttonPositions[i * 2 + 1];

// make the button interactive...
button.eventMode = 'static';

button
.on('pointerdown', onButtonDown)
.on('pointerup', onButtonUp)
.on('pointerupoutside', onButtonUp)
.on('pointerover', onButtonOver)
.on('pointerout', onButtonOut);

// add it to the stage
app.stage.addChild(button);

// add button to array
buttons.push(button);
}

// set some silly values...
buttons[0].scale.set(1.2);
buttons[2].rotation = Math.PI / 10;
buttons[3].scale.set(0.8);
buttons[4].scale.set(0.8, 1.2);
buttons[4].rotation = Math.PI;

function onButtonDown()
{
this.isdown = true;
this.texture = textureButtonDown;
this.alpha = 1;
}

function onButtonUp()
{
this.isdown = false;
if (this.isOver)
{
this.texture = textureButtonOver;
}
else
{
this.texture = textureButton;
}
}

function onButtonOver()
{
this.isOver = true;
if (this.isdown)
{
return;
}
this.texture = textureButtonOver;
}

function onButtonOut()
{
this.isOver = false;
if (this.isdown)
{
return;
}
this.texture = textureButton;
}
- - + + \ No newline at end of file diff --git a/examples/events/dragging.html b/examples/events/dragging.html index fe9b42761..72962714b 100644 --- a/examples/events/dragging.html +++ b/examples/events/dragging.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Dragging

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ background: '#1099bb', resizeTo: window });

document.body.appendChild(app.view);

// create a texture from an image path
const texture = PIXI.Texture.from('https://pixijs.com/assets/bunny.png');

// Scale mode for pixelation
texture.baseTexture.scaleMode = PIXI.SCALE_MODES.NEAREST;

for (let i = 0; i < 10; i++)
{
createBunny(
Math.floor(Math.random() * app.screen.width),
Math.floor(Math.random() * app.screen.height),
);
}

function createBunny(x, y)
{
// create our little bunny friend..
const bunny = new PIXI.Sprite(texture);

// enable the bunny to be interactive... this will allow it to respond to mouse and touch events
bunny.eventMode = 'static';

// this button mode will mean the hand cursor appears when you roll over the bunny with your mouse
bunny.cursor = 'pointer';

// center the bunny's anchor point
bunny.anchor.set(0.5);

// make it a bit bigger, so it's easier to grab
bunny.scale.set(3);

// setup events for mouse + touch using
// the pointer events
bunny.on('pointerdown', onDragStart, bunny);

// move the sprite to its designated position
bunny.x = x;
bunny.y = y;

// add it to the stage
app.stage.addChild(bunny);
}

let dragTarget = null;

app.stage.eventMode = 'static';
app.stage.hitArea = app.screen;
app.stage.on('pointerup', onDragEnd);
app.stage.on('pointerupoutside', onDragEnd);

function onDragMove(event)
{
if (dragTarget)
{
dragTarget.parent.toLocal(event.global, null, dragTarget.position);
}
}

function onDragStart()
{
// store a reference to the data
// the reason for this is because of multitouch
// we want to track the movement of this particular touch
// this.data = event.data;
this.alpha = 0.5;
dragTarget = this;
app.stage.on('pointermove', onDragMove);
}

function onDragEnd()
{
if (dragTarget)
{
app.stage.off('pointermove', onDragMove);
dragTarget.alpha = 1;
dragTarget = null;
}
}
- - + + \ No newline at end of file diff --git a/examples/events/interactivity.html b/examples/events/interactivity.html index 39102a528..d8e613272 100644 --- a/examples/events/interactivity.html +++ b/examples/events/interactivity.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Interactivity

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ resizeTo: window });

document.body.appendChild(app.view);

// create a background...
const background = PIXI.Sprite.from('https://pixijs.com/assets/bg_button.jpg');

background.width = app.screen.width;
background.height = app.screen.height;

// add background to stage...
app.stage.addChild(background);

// create some textures from an image path
const textureButton = PIXI.Texture.from('https://pixijs.com/assets/button.png');
const textureButtonDown = PIXI.Texture.from('https://pixijs.com/assets/button_down.png');
const textureButtonOver = PIXI.Texture.from('https://pixijs.com/assets/button_over.png');

const buttons = [];

const buttonPositions = [
175, 75,
655, 75,
410, 325,
150, 465,
685, 445,
];

for (let i = 0; i < 5; i++)
{
const button = new PIXI.Sprite(textureButton);

button.anchor.set(0.5);
button.x = buttonPositions[i * 2];
button.y = buttonPositions[i * 2 + 1];

// make the button interactive...
button.eventMode = 'static';
button.cursor = 'pointer';

button
// Mouse & touch events are normalized into
// the pointer* events for handling different
// button events.
.on('pointerdown', onButtonDown)
.on('pointerup', onButtonUp)
.on('pointerupoutside', onButtonUp)
.on('pointerover', onButtonOver)
.on('pointerout', onButtonOut);

// Use mouse-only events
// .on('mousedown', onButtonDown)
// .on('mouseup', onButtonUp)
// .on('mouseupoutside', onButtonUp)
// .on('mouseover', onButtonOver)
// .on('mouseout', onButtonOut)

// Use touch-only events
// .on('touchstart', onButtonDown)
// .on('touchend', onButtonUp)
// .on('touchendoutside', onButtonUp)

// add it to the stage
app.stage.addChild(button);

// add button to array
buttons.push(button);
}

// set some silly values...
buttons[0].scale.set(1.2);
buttons[2].rotation = Math.PI / 10;
buttons[3].scale.set(0.8);
buttons[4].scale.set(0.8, 1.2);
buttons[4].rotation = Math.PI;

function onButtonDown()
{
this.isdown = true;
this.texture = textureButtonDown;
this.alpha = 1;
}

function onButtonUp()
{
this.isdown = false;
if (this.isOver)
{
this.texture = textureButtonOver;
}
else
{
this.texture = textureButton;
}
}

function onButtonOver()
{
this.isOver = true;
if (this.isdown)
{
return;
}
this.texture = textureButtonOver;
}

function onButtonOut()
{
this.isOver = false;
if (this.isdown)
{
return;
}
this.texture = textureButton;
}
- - + + \ No newline at end of file diff --git a/examples/events/logger.html b/examples/events/logger.html index a4b0e8f22..0eb18c212 100644 --- a/examples/events/logger.html +++ b/examples/events/logger.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Logger

import * as PIXI from 'pixi.js';

// This example logs the order of events hover-related events in the scene.
const app = new PIXI.Application({
antialias: true,
background: '#1099bb',
});

document.body.appendChild(app.view);

const title = app.stage.addChild(new PIXI.Text(
`Move your mouse slowly over the boxes to
see the order of pointerenter, pointerleave,
pointerover, pointerout events on each target!`, {
fontSize: 16,
},
));

title.x = 2;

const logs = [];
const logText = app.stage.addChild(new PIXI.Text('', {
fontSize: 14,
}));

logText.y = 80;
logText.x = 2;

app.stage.name = 'stage';

// Mount outer black box
const blackBox = app.stage.addChild(new PIXI.Graphics()
.beginFill(0)
.drawRect(0, 0, 400, 400)
.endFill());

blackBox.name = 'black box';
blackBox.x = 400;

// Mount white box inside the white one
const whiteBox = blackBox.addChild(new PIXI.Graphics()
.beginFill(0xffffff)
.drawRect(100, 100, 200, 200)
.endFill());

whiteBox.name = 'white box';

// Enable interactivity everywhere!
app.stage.eventMode = 'static';
app.stage.hitArea = app.screen;
whiteBox.eventMode = 'static';
blackBox.eventMode = 'static';

function onEvent(e)
{
const type = e.type;
const targetName = e.target.name;
const currentTargetName = e.currentTarget.name;

// Add event to top of logs
logs.push(`${currentTargetName} received ${type} event (target is ${targetName})`);

if (currentTargetName === 'stage'
|| type === 'pointerenter'
|| type === 'pointerleave')
{
logs.push('-----------------------------------------', '');
}

// Prevent logs from growing too long
if (logs.length > 30)
{
while (logs.length > 30)
{
logs.shift();
}
}

// Update logText
logText.text = logs.join('\n');
}

[app.stage, whiteBox, blackBox].forEach((object) =>
{
object.addEventListener('pointerenter', onEvent);
object.addEventListener('pointerleave', onEvent);
object.addEventListener('pointerover', onEvent);
object.addEventListener('pointerout', onEvent);
});
- - + + \ No newline at end of file diff --git a/examples/events/nested-boundary-with-projection.html b/examples/events/nested-boundary-with-projection.html index cf52bc3b5..d1140e79f 100644 --- a/examples/events/nested-boundary-with-projection.html +++ b/examples/events/nested-boundary-with-projection.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Nested Boundary With Projection

import * as PIXI from 'pixi.js';
import '@pixi/graphics-extras';

// This example shows how you can setup a nested boundary to propagate events
// into a disjoint scene graph. Here, a camera is used to project an different
// world onto the canvas.

const app = new PIXI.Application({
antialias: true,
background: '#1099bb',
});

document.body.appendChild(app.view);

// A projector renders it's content using projection. The transforms in
// the contents scene graph don't change if you move the camera. To achieve
// this, the content is not added as a "child" to the projector; however, this
// means events won't propagate into the content by default.
//
// To solve this, we nest our own EventBoundary, and connect it using
// addEventListener!
class Projector extends PIXI.DisplayObject
{
constructor()
{
super();

// The content root to be rendered by this camera.
this.content = new PIXI.Container();

// Temporary matrix to store the original projection transform.
this.originalTransform = new PIXI.Matrix();

// The event boundary that'll map events downstream into the content
// scene.
this.boundary = new PIXI.EventBoundary(this.content);

// Override copyMouseData to apply inverse worldTransform on
// global coords
this.boundary.copyMouseData = (from, to) =>
{
// Apply default implementation first
PIXI.EventBoundary.prototype.copyMouseData.call(this.boundary, from, to);

// Then bring global coords into content's world
this.worldTransform.applyInverse(to.global, to.global);
// TODO: Remove after https://github.com/pixijs/pixi.js/pull/7381
// is merged!
to.target = this.boundary.hitTest(to.global.x, to.global.y);
};

// Propagate these events down into the content's scene graph!
[
'pointerdown',
'pointerup',
'pointermove',
'pointerover',
'pointerout',
'wheel',
].forEach((event) =>
{
this.addEventListener(event, (e) => this.boundary.mapEvent(e));
});

this.eventMode = 'static';
}

// Pass through cursor
get cursor()
{
return this.boundary.cursor;
}

// eslint-disable-next-line class-methods-use-this
set cursor(value)
{
throw new Error('The camera\'s cursor is derived from its content!');
}

// Pass through calculateBounds
calculateBounds()
{
const contentBounds = this.content.getBounds();

this._bounds.addFrameMatrix(
this.worldTransform,
contentBounds.x,
contentBounds.y,
contentBounds.width,
contentBounds.height,
);
}

// Pass through containsPoint
containsPoint(point)
{
return !!this.boundary.hitTest(point.x, point.y);
}

// Render content with projection
render(renderer)
{
renderer.batch.flush();

const projectionSystem = renderer.projection;
const renderTextureSystem = renderer.renderTexture;

projectionSystem.transform = projectionSystem.transform
|| new PIXI.Matrix();
projectionSystem.transform.copyTo(this.originalTransform);
projectionSystem.transform.append(this.worldTransform);
projectionSystem.update(null, null, 1, !renderTextureSystem.current);

this.content.render(renderer);

renderer.batch.flush();

projectionSystem.transform.copyFrom(this.originalTransform);
projectionSystem.update(null, null, 1, !renderTextureSystem.current);
}

// updateTransform also updates content's transform
updateTransform()
{
super.updateTransform();

this.content.enableTempParent();
this.content.updateTransform();
this.content.disableTempParent(null);
}
}

// The projector
const projector = app.stage.addChild(new Projector());

// Add coordinate axes!
projector.content.addChild(
new PIXI.Graphics()
.lineStyle({ color: 0, alpha: 0.2, width: 2 })
.moveTo(0, -300)
.lineTo(0, 600)
.moveTo(-100, 0)
.lineTo(700, 0),
);

// Construct the star Graphics
const stars = [1, 2, 3].map((i) => new PIXI.Graphics()
.beginFill(0xffffff, 0.75)
.drawStar(0, 0, 18 / i, 100 * i / 2));

// Place the stars
stars[0].x = 0;
stars[1].x = 200;
stars[2].x = 500;

// Add stars to the projector
projector.content.addChild(...stars);

// Make projection x+100, y+300
projector.x = 100;
projector.y = 300;
projector.content.hitArea = new PIXI.Rectangle(-100, -300, app.screen.width, app.screen.height);
// Make hit-area cover the whole screen so we can capture
// pointermove everywhere!
projector.hitArea = projector.content.hitArea;
projector.content.eventMode = 'static';

// Make stars interactive & add wheel handlers
stars.forEach((star) =>
{
// Make star interactive
star.eventMode = 'static';

// Set initial cursor
star.cursor = 'zoom-in';

// Add wheel rotation feedback
star.addEventListener('wheel', (e) =>
{
const scroll = Math.sign(e.deltaY) * Math.min(15, Math.abs(e.deltaY));

star.rotation += scroll / 100;
});

// Add click zoom-in/zoom-out handler
star.addEventListener('click', (e) =>
{
if (star.scale.x === 1)
{
star.scale.set(1.33);
star.cursor = 'zoom-out';
}
else
{
star.scale.set(1);
star.cursor = 'zoom-in';
}
});
});

PIXI.BitmapFont.from('coordinates', {
fontFamily: 'Roboto',
fontSize: 16,
fill: '#272d37',
}, { chars: ['Global:() Screen-.,', ['0', '9']] });

const coordinates = new PIXI.BitmapText('Global: (0, 0)\nScreen: (0, 0)', {
fontName: 'coordinates',
});

coordinates.x = 110;
coordinates.y = 550;

app.stage.addChild(coordinates);

projector.content.addEventListener('pointermove', (e) =>
{
const global = `(${e.global.x | 0}, ${e.global.y | 0})`;
const screen = `(${e.screen.x | 0}, ${e.screen.y | 0})`;

coordinates.text = `Global: ${global}\nScreen: ${screen}`;
});

const description = new PIXI.Text(
'The (0, 0) world coordinates for the content is located at the center of the first star!'
+ '\n * Mouse wheel over stars to rotate them'
+ '\n * Click to zoom in or out', {
fontSize: 16,
fontFamily: 'Roboto',
fill: '#272d37',
},
);

description.position.set(110, 12);

app.stage.addChild(description);
- - + + \ No newline at end of file diff --git a/examples/events/pointer-tracker.html b/examples/events/pointer-tracker.html index dd84d99c7..039e09093 100644 --- a/examples/events/pointer-tracker.html +++ b/examples/events/pointer-tracker.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Pointer Tracker

import * as PIXI from 'pixi.js';

// In this a example, a circle will follow the pointer wherever it
// moves over the canvas.

const app = new PIXI.Application({
antialias: true,
background: '#1099bb',
});

document.body.appendChild(app.view);

// Create the circle
const circle = app.stage.addChild(new PIXI.Graphics()
.beginFill(0xffffff)
.lineStyle({ color: 0x111111, alpha: 0.87, width: 1 })
.drawCircle(0, 0, 8)
.endFill());

circle.position.set(app.screen.width / 2, app.screen.height / 2);

// Enable interactivity!
app.stage.eventMode = 'static';

// Make sure the whole canvas area is interactive, not just the circle.
app.stage.hitArea = app.screen;

// Follow the pointer
app.stage.addEventListener('pointermove', (e) =>
{
circle.position.copyFrom(e.global);
});
- - + + \ No newline at end of file diff --git a/examples/events/slider.html b/examples/events/slider.html index 2cc4b0edd..32cca36dd 100644 --- a/examples/events/slider.html +++ b/examples/events/slider.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Slider

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({
antialias: true,
background: '#1099bb',
});

document.body.appendChild(app.view);

const stageHeight = app.screen.height;
const stageWidth = app.screen.width;

// Make sure stage covers the whole scene
app.stage.hitArea = app.screen;

// Make the slider
const sliderWidth = 320;
const slider = new PIXI.Graphics()
.beginFill(0x272d37)
.drawRect(0, 0, sliderWidth, 4);

slider.x = (stageWidth - sliderWidth) / 2;
slider.y = stageHeight * 0.75;

// Draw the handle
const handle = new PIXI.Graphics()
.beginFill(0xffffff)
.drawCircle(0, 0, 8);

handle.y = slider.height / 2;
handle.x = sliderWidth / 2;
handle.eventMode = 'static';
handle.cursor = 'pointer';

handle
.on('pointerdown', onDragStart)
.on('pointerup', onDragEnd)
.on('pointerupoutside', onDragEnd);

app.stage.addChild(slider);
slider.addChild(handle);

// Add bunny whose scale can be changed by user using slider
const bunny = app.stage.addChild(PIXI.Sprite.from('https://pixijs.com/assets/bunny.png'));

bunny.texture.baseTexture.scaleMode = PIXI.SCALE_MODES.NEAREST;
bunny.scale.set(3);
bunny.anchor.set(0.5);
bunny.x = stageWidth / 2;
bunny.y = stageHeight / 2;

// Add title
const title = new PIXI.Text('Drag the handle to change the scale of bunny.', {
fill: '#272d37',
fontFamily: 'Roboto',
fontSize: 20,
align: 'center',
});

title.roundPixels = true;
title.x = stageWidth / 2;
title.y = 40;
title.anchor.set(0.5, 0);
app.stage.addChild(title);

// Listen to pointermove on stage once handle is pressed.
function onDragStart()
{
app.stage.eventMode = 'static';
app.stage.addEventListener('pointermove', onDrag);
}

// Stop dragging feedback once the handle is released.
function onDragEnd(e)
{
app.stage.eventMode = 'auto';
app.stage.removeEventListener('pointermove', onDrag);
}

// Update the handle's position & bunny's scale when the handle is moved.
function onDrag(e)
{
const halfHandleWidth = handle.width / 2;
// Set handle y-position to match pointer, clamped to (4, screen.height - 4).

handle.x = Math.max(halfHandleWidth, Math.min(
slider.toLocal(e.global).x,
sliderWidth - halfHandleWidth,
));
// Normalize handle position between -1 and 1.
const t = 2 * ((handle.x / sliderWidth) - 0.5);

bunny.scale.set(3 * (1.1 + t));
}
- - + + \ No newline at end of file diff --git a/examples/filters-advanced/custom.html b/examples/filters-advanced/custom.html index 42702812d..87446ceb6 100644 --- a/examples/filters-advanced/custom.html +++ b/examples/filters-advanced/custom.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Custom

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ resizeTo: window });

document.body.appendChild(app.view);

// Create background image
const background = PIXI.Sprite.from('https://pixijs.com/assets/bg_grass.jpg');

background.width = app.screen.width;
background.height = app.screen.height;
app.stage.addChild(background);

// Stop application wait for load to finish
app.stop();

fetch('https://pixijs.com/assets/pixi-filters/shader.frag')
.then((res) => res.text())
.then(onLoaded);

let filter;

// Handle the load completed
function onLoaded(data)
{
// Create the new filter, arguments: (vertexShader, framentSource)
filter = new PIXI.Filter(null, data, {
customUniform: 0.0,
});

// === WARNING ===
// specify uniforms in filter constructor
// or set them BEFORE first use
// filter.uniforms.customUniform = 0.0

// Add the filter
background.filters = [filter];

// Resume application update
app.start();
}

// Animate the filter
app.ticker.add((delta) =>
{
filter.uniforms.customUniform += 0.04 * delta;
});
- - + + \ No newline at end of file diff --git a/examples/filters-advanced/mouse-blending.html b/examples/filters-advanced/mouse-blending.html index efd63ce21..deec7e3fb 100644 --- a/examples/filters-advanced/mouse-blending.html +++ b/examples/filters-advanced/mouse-blending.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Mouse Blending

import * as PIXI from 'pixi.js';

/**
* https://github.com/pixijs/pixi.js/wiki/v5-Creating-Filters
*/

const app = new PIXI.Application({ resizeTo: window });

document.body.appendChild(app.view);

// Create background image
const background = PIXI.Sprite.from('https://pixijs.com/assets/bg_grass.jpg');

background.width = app.screen.width;
background.height = app.screen.height;
app.stage.addChild(background);

// NOTE: this shader wont work on old devices where mediump precision is forced in fragment shader
// because v5 default vertex shader uses `inputSize` in it. Same uniform in fragment and vertex shader
// cant have different precision :(

const shaderFrag = `
precision highp float;

varying vec2 vTextureCoord;

uniform vec2 mouse;
uniform vec4 inputSize;
uniform vec4 outputFrame;
uniform float time;

void main() {
vec2 screenPos = vTextureCoord * inputSize.xy + outputFrame.xy;
if (length(mouse - screenPos) < 25.0) {
gl_FragColor = vec4(1.0, 1.0, 0.0, 1.0) * 0.7; //yellow circle, alpha=0.7
} else {
// blend with underlying image, alpha=0.5
gl_FragColor = vec4( sin(time), (mouse.xy - outputFrame.xy) / outputFrame.zw, 1.0) * 0.5;
}
}
`;

const container = new PIXI.Container();

container.filterArea = new PIXI.Rectangle(100, 100, app.screen.width - 200, app.screen.height - 200);
app.stage.addChild(container);
const filter = new PIXI.Filter(null, shaderFrag, {
mouse: new PIXI.Point(),
});

container.filters = [filter];

app.stage.hitArea = app.screen;
app.stage.eventMode = 'static';
app.stage.on('pointermove', (event) =>
{
filter.uniforms.mouse.copyFrom(event.global);
});
- - + + \ No newline at end of file diff --git a/examples/filters-advanced/shader-toy-filter-render-texture.html b/examples/filters-advanced/shader-toy-filter-render-texture.html index e86a8f555..41e459aef 100644 --- a/examples/filters-advanced/shader-toy-filter-render-texture.html +++ b/examples/filters-advanced/shader-toy-filter-render-texture.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Shader Toy Filter Render Texture

import * as PIXI from 'pixi.js';

/**
* Please note that this is not the most optimal way of doing pure shader generated rendering and should be used when the
* scene is wanted as input texture. Check the mesh version of example for more performant version if you need only shader
* generated content.
**/
const app = new PIXI.Application({ background: '#1099bb', resizeTo: window });

document.body.appendChild(app.view);

PIXI.Assets.load('https://pixijs.com/assets/perlin.jpg').then(onAssetsLoaded);

let filter = null;

const text = new PIXI.Text('PixiJS', { fill: 0xFFFFFF, fontSize: 80 });

text.anchor.set(0.5, 0.5);
text.position.set(app.renderer.screen.width / 2, app.renderer.screen.height / 2);

app.stage.addChild(text);

let totalTime = 0;

// Fragment shader, in real use this would be much cleaner when loaded from a file
// or embedded into the application as data resource.
const fragment = `//Based on this: https://www.shadertoy.com/view/wtlSWX

varying vec2 vTextureCoord;
uniform sampler2D uSampler;
uniform sampler2D noise;
uniform float time;
// Distance function. Just calculates the height (z) from x,y plane with really simple length check.
// Its not exact as there could be shorter distances.
vec2 dist(vec3 p)
{
float id = floor(p.x)+floor(p.y);
id = mod(id, 2.);
float h = texture2D(noise, vec2(p.x, p.y)*0.04).r*5.1;
float h2 = texture2D(uSampler, vTextureCoord).r;
return vec2(h+h2-p.z,id);
}
//Light calculation.
vec3 calclight(vec3 p, vec3 rd)
{
vec2 eps = vec2( 0., 0.001);
vec3 n = normalize( vec3(
dist(p+eps.yxx).x - dist(p-eps.yxx).x,
dist(p+eps.xyx).x - dist(p-eps.xyx).x,
dist(p+eps.xxy).x - dist(p-eps.xxy).x
));

vec3 d = vec3( max( 0., dot( -rd ,n)));

return d;
}

void main()
{
vec2 uv = vec2(vTextureCoord.x, 1.-vTextureCoord.y);
uv *=2.;
uv-=1.;

vec3 cam = vec3(0.,time -2., -3.);
vec3 target = vec3(sin(time)*0.1, time+cos(time)+2., 0. );
float fov = 2.2;
vec3 forward = normalize( target - cam);
vec3 up = normalize(cross( forward, vec3(0., 1.,0.)));
vec3 right = normalize( cross( up, forward));
vec3 raydir = normalize(vec3( uv.x *up + uv.y * right + fov*forward));

//Do the raymarch
vec3 col = vec3(0.);
float t = 0.;
for( int i = 0; i < 100; i++)
{
vec3 p = t * raydir + cam;
vec2 d = dist(p);
t+=d.x*0.5;//Jump only half of the distance as height function used is not really the best for heightmaps.
if(d.x < 0.001)
{
vec3 bc = d.y < 0.5 ? vec3(1.0, .8, 0.) :
vec3(0.8,0.0, 1.0);
col = vec3( 1.) * calclight(p, raydir) * (1. - t/150.) *bc;
break;
}
if(t > 1000.)
{
break;
}
}
gl_FragColor = vec4(col, 1.);
}
`;

function onAssetsLoaded(perlin)
{
// Add perlin noise for filter, make sure it's wrapping and does not have mipmap.
perlin.baseTexture.wrapMode = PIXI.WRAP_MODES.REPEAT;
perlin.baseTexture.mipmap = false;

// Build the filter
filter = new PIXI.Filter(null, fragment, {
time: 0.0,
noise: perlin,
});
app.stage.filterArea = app.renderer.screen;
app.stage.filters = [filter];

// Listen for animate update.
app.ticker.add((delta) =>
{
filter.uniforms.time = totalTime;
totalTime += delta / 60;
});
}
- - + + \ No newline at end of file diff --git a/examples/filters-basic/blur.html b/examples/filters-basic/blur.html index 56607e130..2879b2cd5 100644 --- a/examples/filters-basic/blur.html +++ b/examples/filters-basic/blur.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Blur

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ resizeTo: window });

document.body.appendChild(app.view);

const bg = PIXI.Sprite.from('https://pixijs.com/assets/pixi-filters/bg_depth_blur.jpg');

bg.width = app.screen.width;
bg.height = app.screen.height;
app.stage.addChild(bg);

const littleDudes = PIXI.Sprite.from('https://pixijs.com/assets/pixi-filters/depth_blur_dudes.jpg');

littleDudes.x = (app.screen.width / 2) - 315;
littleDudes.y = 200;
app.stage.addChild(littleDudes);

const littleRobot = PIXI.Sprite.from('https://pixijs.com/assets/pixi-filters/depth_blur_moby.jpg');

littleRobot.x = (app.screen.width / 2) - 200;
littleRobot.y = 100;
app.stage.addChild(littleRobot);

const blurFilter1 = new PIXI.filters.BlurFilter();
const blurFilter2 = new PIXI.filters.BlurFilter();

littleDudes.filters = [blurFilter1];
littleRobot.filters = [blurFilter2];

let count = 0;

app.ticker.add(() =>
{
count += 0.005;

const blurAmount = Math.cos(count);
const blurAmount2 = Math.sin(count);

blurFilter1.blur = 20 * (blurAmount);
blurFilter2.blur = 20 * (blurAmount2);
});
- - + + \ No newline at end of file diff --git a/examples/filters-basic/color-matrix.html b/examples/filters-basic/color-matrix.html index d03b273b9..48c135169 100644 --- a/examples/filters-basic/color-matrix.html +++ b/examples/filters-basic/color-matrix.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Color Matrix

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ resizeTo: window });

document.body.appendChild(app.view);

app.stage.eventMode = 'static';

const bg = PIXI.Sprite.from('https://pixijs.com/assets/bg_rotate.jpg');

bg.anchor.set(0.5);

bg.x = app.screen.width / 2;
bg.y = app.screen.height / 2;

const filter = new PIXI.filters.ColorMatrixFilter();

const container = new PIXI.Container();

container.x = app.screen.width / 2;
container.y = app.screen.height / 2;

const bgFront = PIXI.Sprite.from('https://pixijs.com/assets/bg_scene_rotate.jpg');

bgFront.anchor.set(0.5);

container.addChild(bgFront);

const light2 = PIXI.Sprite.from('https://pixijs.com/assets/light_rotate_2.png');

light2.anchor.set(0.5);
container.addChild(light2);

const light1 = PIXI.Sprite.from('https://pixijs.com/assets/light_rotate_1.png');

light1.anchor.set(0.5);
container.addChild(light1);

const panda = PIXI.Sprite.from('https://pixijs.com/assets/panda.png');

panda.anchor.set(0.5);

container.addChild(panda);

app.stage.addChild(container);

app.stage.filters = [filter];

let count = 0;
let enabled = true;

app.stage.on('pointertap', () =>
{
enabled = !enabled;
app.stage.filters = enabled ? [filter] : null;
});

const help = new PIXI.Text('Click or tap to turn filters on / off.', {
fontFamily: 'Arial',
fontSize: 12,
fontWeight: 'bold',
fill: 'white',
});

help.y = app.screen.height - 25;
help.x = 10;

app.stage.addChild(help);

app.ticker.add((delta) =>
{
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;

const { matrix } = filter;

matrix[1] = Math.sin(count) * 3;
matrix[2] = Math.cos(count);
matrix[3] = Math.cos(count) * 1.5;
matrix[4] = Math.sin(count / 3) * 2;
matrix[5] = Math.sin(count / 2);
matrix[6] = Math.sin(count / 4);
});
- - + + \ No newline at end of file diff --git a/examples/filters-basic/displacement-map-crawlies.html b/examples/filters-basic/displacement-map-crawlies.html index 390e38d10..ce379d4af 100644 --- a/examples/filters-basic/displacement-map-crawlies.html +++ b/examples/filters-basic/displacement-map-crawlies.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Displacement Map Crawlies

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ resizeTo: window });

document.body.appendChild(app.view);

app.stage.eventMode = 'static';

const container = new PIXI.Container();

app.stage.addChild(container);

const padding = 100;
const bounds = new PIXI.Rectangle(
-padding,
-padding,
app.screen.width + padding * 2,
app.screen.height + padding * 2,
);
const maggots = [];

for (let i = 0; i < 20; i++)
{
const maggot = PIXI.Sprite.from('https://pixijs.com/assets/maggot.png');

maggot.anchor.set(0.5);
container.addChild(maggot);

maggot.direction = Math.random() * Math.PI * 2;
maggot.speed = 1;
maggot.turnSpeed = Math.random() - 0.8;

maggot.x = Math.random() * bounds.width;
maggot.y = Math.random() * bounds.height;

maggot.scale.set(1 + Math.random() * 0.3);
maggot.original = new PIXI.Point();
maggot.original.copyFrom(maggot.scale);
maggots.push(maggot);
}

const displacementSprite = PIXI.Sprite.from('https://pixijs.com/assets/pixi-filters/displace.png');
const displacementFilter = new PIXI.filters.DisplacementFilter(displacementSprite);

app.stage.addChild(displacementSprite);

container.filters = [displacementFilter];

displacementFilter.scale.x = 110;
displacementFilter.scale.y = 110;
displacementSprite.anchor.set(0.5);

const ring = PIXI.Sprite.from('https://pixijs.com/assets/pixi-filters/ring.png');

ring.anchor.set(0.5);

ring.visible = false;

app.stage.addChild(ring);

const bg = PIXI.Sprite.from('https://pixijs.com/assets/bg_grass.jpg');

bg.width = app.screen.width;
bg.height = app.screen.height;

bg.alpha = 0.4;

container.addChild(bg);

app.stage
.on('mousemove', onPointerMove)
.on('touchmove', onPointerMove);

function onPointerMove(eventData)
{
ring.visible = true;

displacementSprite.position.set(eventData.data.global.x - 25, eventData.data.global.y);
ring.position.copyFrom(displacementSprite.position);
}

let count = 0;

app.ticker.add(() =>
{
count += 0.05;

for (let i = 0; i < maggots.length; i++)
{
const maggot = maggots[i];

maggot.direction += maggot.turnSpeed * 0.01;
maggot.x += Math.sin(maggot.direction) * maggot.speed;
maggot.y += Math.cos(maggot.direction) * maggot.speed;

maggot.rotation = -maggot.direction - Math.PI / 2;
maggot.scale.x = maggot.original.x + Math.sin(count) * 0.2;

// wrap the maggots around as the crawl
if (maggot.x < bounds.x)
{
maggot.x += bounds.width;
}
else if (maggot.x > bounds.x + bounds.width)
{
maggot.x -= bounds.width;
}

if (maggot.y < bounds.y)
{
maggot.y += bounds.height;
}
else if (maggot.y > bounds.y + bounds.height)
{
maggot.y -= bounds.height;
}
}
});
- - + + \ No newline at end of file diff --git a/examples/filters-basic/displacement-map-flag.html b/examples/filters-basic/displacement-map-flag.html index 7f07f4592..f4d752e69 100644 --- a/examples/filters-basic/displacement-map-flag.html +++ b/examples/filters-basic/displacement-map-flag.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Displacement Map Flag

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ resizeTo: window });

document.body.appendChild(app.view);

app.stage.eventMode = 'static';

const container = new PIXI.Container();

app.stage.addChild(container);

const flag = PIXI.Sprite.from('https://pixijs.com/assets/pixi-filters/flag.png');

container.addChild(flag);
flag.x = 100;
flag.y = 100;

const displacementSprite = PIXI.Sprite.from('https://pixijs.com/assets/pixi-filters/displacement_map_repeat.jpg');
// Make sure the sprite is wrapping.

displacementSprite.texture.baseTexture.wrapMode = PIXI.WRAP_MODES.REPEAT;
const displacementFilter = new PIXI.filters.DisplacementFilter(displacementSprite);

displacementFilter.padding = 10;

displacementSprite.position = flag.position;

app.stage.addChild(displacementSprite);

flag.filters = [displacementFilter];

displacementFilter.scale.x = 30;
displacementFilter.scale.y = 60;

app.ticker.add(() =>
{
// Offset the sprite position to make vFilterCoord update to larger value.
// Repeat wrapping makes sure there's still pixels on the coordinates.
displacementSprite.x++;
// Reset x to 0 when it's over width to keep values from going to very huge numbers.
if (displacementSprite.x > displacementSprite.width) { displacementSprite.x = 0; }
});
- - + + \ No newline at end of file diff --git a/examples/graphics/advanced.html b/examples/graphics/advanced.html index 2965b0ea0..c87521adc 100644 --- a/examples/graphics/advanced.html +++ b/examples/graphics/advanced.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Advanced

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ antialias: true, resizeTo: window });

document.body.appendChild(app.view);

const sprite = PIXI.Sprite.from('https://pixijs.com/assets/bg_rotate.jpg');

// // BEZIER CURVE ////
// information: https://en.wikipedia.org/wiki/BΓ©zier_curve

const realPath = new PIXI.Graphics();

realPath.lineStyle(2, 0xFFFFFF, 1);
realPath.moveTo(0, 0);
realPath.lineTo(100, 200);
realPath.lineTo(200, 200);
realPath.lineTo(240, 100);

realPath.position.x = 50;
realPath.position.y = 50;

app.stage.addChild(realPath);

const bezier = new PIXI.Graphics();

bezier.lineStyle(5, 0xAA0000, 1);
bezier.bezierCurveTo(100, 200, 200, 200, 240, 100);

bezier.position.x = 50;
bezier.position.y = 50;

app.stage.addChild(bezier);

// // BEZIER CURVE 2 ////
const realPath2 = new PIXI.Graphics();

realPath2.lineStyle(2, 0xFFFFFF, 1);
realPath2.moveTo(0, 0);
realPath2.lineTo(0, -100);
realPath2.lineTo(150, 150);
realPath2.lineTo(240, 100);

realPath2.position.x = 320;
realPath2.position.y = 150;

app.stage.addChild(realPath2);

const bezier2 = new PIXI.Graphics();

bezier2.lineTextureStyle({ width: 10, texture: sprite.texture });
bezier2.bezierCurveTo(0, -100, 150, 150, 240, 100);

bezier2.position.x = 320;
bezier2.position.y = 150;

app.stage.addChild(bezier2);

// // ARC ////
const arc = new PIXI.Graphics();

arc.lineStyle(5, 0xAA00BB, 1);
arc.arc(600, 100, 50, Math.PI, 2 * Math.PI);

app.stage.addChild(arc);

// // ARC 2 ////
const arc2 = new PIXI.Graphics();

arc2.lineStyle(6, 0x3333DD, 1);
arc2.arc(650, 270, 60, 2 * Math.PI, 3 * Math.PI / 2);

app.stage.addChild(arc2);

// // ARC 3 ////
const arc3 = new PIXI.Graphics();

arc3.lineTextureStyle({ width: 20, texture: sprite.texture });
arc3.arc(650, 420, 60, 2 * Math.PI, 2.5 * Math.PI / 2);

app.stage.addChild(arc3);

// / Hole ////
const rectAndHole = new PIXI.Graphics();

rectAndHole.beginFill(0x00FF00);
rectAndHole.drawRect(350, 350, 150, 150);
rectAndHole.beginHole();
rectAndHole.drawCircle(375, 375, 25);
rectAndHole.drawCircle(425, 425, 25);
rectAndHole.drawCircle(475, 475, 25);
rectAndHole.endHole();
rectAndHole.endFill();

app.stage.addChild(rectAndHole);

// // Line Texture Style ////
const beatifulRect = new PIXI.Graphics();

beatifulRect.lineTextureStyle({ width: 20, texture: sprite.texture });
beatifulRect.beginFill(0xFF0000);
beatifulRect.drawRect(80, 350, 150, 150);
beatifulRect.endFill();

app.stage.addChild(beatifulRect);
- - + + \ No newline at end of file diff --git a/examples/graphics/dynamic.html b/examples/graphics/dynamic.html index 161c25378..3ed9bfc33 100644 --- a/examples/graphics/dynamic.html +++ b/examples/graphics/dynamic.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Dynamic

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ antialias: true, resizeTo: window });

document.body.appendChild(app.view);

app.stage.eventMode = 'static';
app.stage.hitArea = app.screen;

const 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.closePath();
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.quadraticCurveTo(600, 0, 480, 100);
graphics.lineTo(330, 120);
graphics.lineTo(410, 200);
graphics.lineTo(210, 300);
graphics.closePath();
graphics.endFill();

// draw a rectangle
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.endFill();

graphics.lineStyle(20, 0x33FF00);
graphics.moveTo(30, 30);
graphics.lineTo(600, 300);

app.stage.addChild(graphics);

// let's create a moving shape
const thing = new PIXI.Graphics();

app.stage.addChild(thing);
thing.x = 800 / 2;
thing.y = 600 / 2;

let count = 0;

// Just click on the stage to draw random lines
window.app = app;
app.stage.on('pointerdown', () =>
{
graphics.lineStyle(Math.random() * 30, Math.random() * 0xFFFFFF, 1);
graphics.moveTo(Math.random() * 800, Math.random() * 600);
graphics.bezierCurveTo(
Math.random() * 800, Math.random() * 600,
Math.random() * 800, Math.random() * 600,
Math.random() * 800, Math.random() * 600,
);
});

app.ticker.add(() =>
{
count += 0.1;

thing.clear();
thing.lineStyle(10, 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.closePath();

thing.rotation = count * 0.1;
});
- - + + \ No newline at end of file diff --git a/examples/graphics/simple.html b/examples/graphics/simple.html index f76051dcc..78fa1ba24 100644 --- a/examples/graphics/simple.html +++ b/examples/graphics/simple.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Simple

import * as PIXI from 'pixi.js';
import '@pixi/graphics-extras';

const app = new PIXI.Application({ antialias: true, resizeTo: window });

document.body.appendChild(app.view);

const graphics = new PIXI.Graphics();

// Rectangle
graphics.beginFill(0xDE3249);
graphics.drawRect(50, 50, 100, 100);
graphics.endFill();

// Rectangle + line style 1
graphics.lineStyle(2, 0xFEEB77, 1);
graphics.beginFill(0x650A5A);
graphics.drawRect(200, 50, 100, 100);
graphics.endFill();

// Rectangle + line style 2
graphics.lineStyle(10, 0xFFBD01, 1);
graphics.beginFill(0xC34288);
graphics.drawRect(350, 50, 100, 100);
graphics.endFill();

// Rectangle 2
graphics.lineStyle(2, 0xFFFFFF, 1);
graphics.beginFill(0xAA4F08);
graphics.drawRect(530, 50, 140, 100);
graphics.endFill();

// Circle
graphics.lineStyle(0); // draw a circle, set the lineStyle to zero so the circle doesn't have an outline
graphics.beginFill(0xDE3249, 1);
graphics.drawCircle(100, 250, 50);
graphics.endFill();

// Circle + line style 1
graphics.lineStyle(2, 0xFEEB77, 1);
graphics.beginFill(0x650A5A, 1);
graphics.drawCircle(250, 250, 50);
graphics.endFill();

// Circle + line style 2
graphics.lineStyle(10, 0xFFBD01, 1);
graphics.beginFill(0xC34288, 1);
graphics.drawCircle(400, 250, 50);
graphics.endFill();

// Ellipse + line style 2
graphics.lineStyle(2, 0xFFFFFF, 1);
graphics.beginFill(0xAA4F08, 1);
graphics.drawEllipse(600, 250, 80, 50);
graphics.endFill();

// draw a shape
graphics.beginFill(0xFF3300);
graphics.lineStyle(4, 0xffd900, 1);
graphics.moveTo(50, 350);
graphics.lineTo(250, 350);
graphics.lineTo(100, 400);
graphics.lineTo(50, 350);
graphics.closePath();
graphics.endFill();

// draw a rounded rectangle
graphics.lineStyle(2, 0xFF00FF, 1);
graphics.beginFill(0x650A5A, 0.25);
graphics.drawRoundedRect(50, 440, 100, 100, 16);
graphics.endFill();

// draw star
graphics.lineStyle(2, 0xFFFFFF);
graphics.beginFill(0x35CC5A, 1);
graphics.drawStar(360, 370, 5, 50);
graphics.endFill();

// draw star 2
graphics.lineStyle(2, 0xFFFFFF);
graphics.beginFill(0xFFCC5A, 1);
graphics.drawStar(280, 510, 7, 50);
graphics.endFill();

// draw star 3
graphics.lineStyle(4, 0xFFFFFF);
graphics.beginFill(0x55335A, 1);
graphics.drawStar(470, 450, 4, 50);
graphics.endFill();

// draw polygon
const path = [600, 370, 700, 460, 780, 420, 730, 570, 590, 520];

graphics.lineStyle(0);
graphics.beginFill(0x3500FA, 1);
graphics.drawPolygon(path);
graphics.endFill();

app.stage.addChild(graphics);
- - + + \ No newline at end of file diff --git a/examples/masks/filter.html b/examples/masks/filter.html index bba1b7114..1193cd7e3 100644 --- a/examples/masks/filter.html +++ b/examples/masks/filter.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Filter

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ resizeTo: window });

document.body.appendChild(app.view);

// Inner radius of the circle
const radius = 100;

// The blur amount
const blurSize = 32;

PIXI.Assets.load('https://pixijs.com/assets/bg_grass.jpg').then((grassTexture) =>
{
const background = new PIXI.Sprite(grassTexture);

app.stage.addChild(background);
background.width = app.screen.width;
background.height = app.screen.height;

const circle = new PIXI.Graphics()
.beginFill(0xFF0000)
.drawCircle(radius + blurSize, radius + blurSize, radius)
.endFill();

circle.filters = [new PIXI.filters.BlurFilter(blurSize)];

const bounds = new PIXI.Rectangle(0, 0, (radius + blurSize) * 2, (radius + blurSize) * 2);
const texture = app.renderer.generateTexture(circle, PIXI.SCALE_MODES.NEAREST, 1, bounds);
const focus = new PIXI.Sprite(texture);

app.stage.addChild(focus);
background.mask = focus;

app.stage.eventMode = 'static';
app.stage.hitArea = app.screen;
app.stage.on('pointermove', (event) =>
{
focus.position.x = event.global.x - focus.width / 2;
focus.position.y = event.global.y - focus.height / 2;
});
});
- - + + \ No newline at end of file diff --git a/examples/masks/graphics.html b/examples/masks/graphics.html index df4c7f717..64ef35f3c 100644 --- a/examples/masks/graphics.html +++ b/examples/masks/graphics.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Graphics

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ antialias: true, resizeTo: window });

document.body.appendChild(app.view);

app.stage.eventMode = 'static';

const bg = PIXI.Sprite.from('https://pixijs.com/assets/bg_rotate.jpg');

bg.anchor.set(0.5);

bg.x = app.screen.width / 2;
bg.y = app.screen.height / 2;

app.stage.addChild(bg);

const container = new PIXI.Container();

container.x = app.screen.width / 2;
container.y = app.screen.height / 2;

// add a bunch of sprites
const bgFront = PIXI.Sprite.from('https://pixijs.com/assets/bg_scene_rotate.jpg');

bgFront.anchor.set(0.5);

const light2 = PIXI.Sprite.from('https://pixijs.com/assets/light_rotate_2.png');

light2.anchor.set(0.5);

const light1 = PIXI.Sprite.from('https://pixijs.com/assets/light_rotate_1.png');

light1.anchor.set(0.5);

const panda = PIXI.Sprite.from('https://pixijs.com/assets/panda.png');

panda.anchor.set(0.5);

container.addChild(bgFront, light2, light1, panda);

app.stage.addChild(container);

// let's create a moving shape
const thing = new PIXI.Graphics();

app.stage.addChild(thing);
thing.x = app.screen.width / 2;
thing.y = app.screen.height / 2;
thing.lineStyle(0);

container.mask = thing;

let count = 0;

app.stage.on('pointertap', () =>
{
if (!container.mask)
{
container.mask = thing;
}
else
{
container.mask = null;
}
});

const help = new PIXI.Text('Click or tap to turn masking on / off.', {
fontFamily: 'Arial',
fontSize: 12,
fontWeight: 'bold',
fill: 'white',
});

help.y = app.screen.height - 26;
help.x = 10;
app.stage.addChild(help);

app.ticker.add(() =>
{
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.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.rotation = count * 0.1;
});
- - + + \ No newline at end of file diff --git a/examples/masks/sprite.html b/examples/masks/sprite.html index 0716a007b..e4a981876 100644 --- a/examples/masks/sprite.html +++ b/examples/masks/sprite.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Sprite

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ resizeTo: window });

document.body.appendChild(app.view);

app.stage.eventMode = 'static';

const bg = PIXI.Sprite.from('https://pixijs.com/assets/bg_plane.jpg');

app.stage.addChild(bg);

const cells = PIXI.Sprite.from('https://pixijs.com/assets/cells.png');

cells.scale.set(1.5);

const mask = PIXI.Sprite.from('https://pixijs.com/assets/flowerTop.png');

mask.anchor.set(0.5);
mask.x = 310;
mask.y = 190;

cells.mask = mask;

app.stage.addChild(mask, cells);

const target = new PIXI.Point();

reset();

function reset()
{
target.x = Math.floor(Math.random() * 550);
target.y = Math.floor(Math.random() * 300);
}

app.ticker.add(() =>
{
mask.x += (target.x - mask.x) * 0.1;
mask.y += (target.y - mask.y) * 0.1;

if (Math.abs(mask.x - target.x) < 1)
{
reset();
}
});
- - + + \ No newline at end of file diff --git a/examples/mesh-and-shaders/instanced-geometry.html b/examples/mesh-and-shaders/instanced-geometry.html index 9616c1105..1929ed7a4 100644 --- a/examples/mesh-and-shaders/instanced-geometry.html +++ b/examples/mesh-and-shaders/instanced-geometry.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Instanced Geometry

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ resizeTo: window });

document.body.appendChild(app.view);

const geometry = new PIXI.Geometry()
.addAttribute('aVPos', [-100, 0, 100, 0, 0, -150]);

geometry.instanced = true;
geometry.instanceCount = 5;

const positionSize = 2;
const colorSize = 3;
const buffer = new PIXI.Buffer(new Float32Array(geometry.instanceCount * (positionSize + colorSize)));

geometry.addAttribute(
'aIPos',
buffer,
positionSize,
false,
PIXI.TYPES.FLOAT,
4 * (positionSize + colorSize),
0,
true
);
geometry.addAttribute(
'aICol',
buffer,
colorSize,
false,
PIXI.TYPES.FLOAT,
4 * (positionSize + colorSize),
4 * positionSize, true
);

for (let i = 0; i < geometry.instanceCount; i++)
{
const instanceOffset = i * (positionSize + colorSize);

buffer.data[instanceOffset + 0] = i * 80;
buffer.data[instanceOffset + 2] = Math.random();
buffer.data[instanceOffset + 3] = Math.random();
buffer.data[instanceOffset + 4] = Math.random();
}

const shader = PIXI.Shader.from(`
precision mediump float;
attribute vec2 aVPos;
attribute vec2 aIPos;
attribute vec3 aICol;

uniform mat3 translationMatrix;
uniform mat3 projectionMatrix;

varying vec3 vCol;

void main() {
vCol = aICol;

gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVPos + aIPos, 1.0)).xy, 0.0, 1.0);
}`,

`precision mediump float;

varying vec3 vCol;

void main() {
gl_FragColor = vec4(vCol, 1.0);
}

`);

const triangles = new PIXI.Mesh(geometry, shader);

triangles.position.set(400, 300);

app.stage.addChild(triangles);

app.ticker.add((delta) =>
{
triangles.rotation += 0.01;
});
- - + + \ No newline at end of file diff --git a/examples/mesh-and-shaders/interleaving-geometry.html b/examples/mesh-and-shaders/interleaving-geometry.html index b54261ad5..fa0a62e3c 100644 --- a/examples/mesh-and-shaders/interleaving-geometry.html +++ b/examples/mesh-and-shaders/interleaving-geometry.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Interleaving Geometry

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ resizeTo: window });

document.body.appendChild(app.view);

const geometry = new PIXI.Geometry()
.addAttribute('aVertexPosition', // the attribute name
[-100, -100, // x, y
100, -100, // x, y
100, 100,
-100, 100], // x, y
2) // the size of the attribute
.addAttribute('aUvs', // the attribute name
[0, 0, // u, v
1, 0, // u, v
1, 1,
0, 1], // u, v
2) // the size of the attribute
.addIndex([0, 1, 2, 0, 2, 3])
.interleave();

const shader = PIXI.Shader.from(`

precision mediump float;

attribute vec2 aVertexPosition;
attribute vec2 aUvs;

uniform mat3 translationMatrix;
uniform mat3 projectionMatrix;

varying vec2 vUvs;

void main() {

vUvs = aUvs;
gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);

}`,

`precision mediump float;

varying vec2 vUvs;

uniform sampler2D uSampler2;

void main() {

gl_FragColor = texture2D(uSampler2, vUvs );
}

`,
{
uSampler2: PIXI.Texture.from('https://pixijs.com/assets/bg_scene_rotate.jpg'),
});

const quad = new PIXI.Mesh(geometry, shader);

quad.position.set(400, 300);
quad.scale.set(2);

app.stage.addChild(quad);

app.ticker.add((delta) =>
{
quad.rotation += 0.01;
});
- - + + \ No newline at end of file diff --git a/examples/mesh-and-shaders/merging-geometry.html b/examples/mesh-and-shaders/merging-geometry.html index b178ead74..114ccf3bf 100644 --- a/examples/mesh-and-shaders/merging-geometry.html +++ b/examples/mesh-and-shaders/merging-geometry.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Merging Geometry

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ resizeTo: window });

document.body.appendChild(app.view);

const geometry = new PIXI.Geometry()
.addAttribute('aVertexPosition', // the attribute name
[-100, -100, // x, y
100, -100, // x, y
100, 100,
-100, 100], // x, y
2) // the size of the attribute
.addAttribute('aUvs', // the attribute name
[0, 0, // u, v
1, 0, // u, v
1, 1,
0, 1], // u, v
2) // the size of the attribute
.addIndex([0, 1, 2, 0, 2, 3]);

const geometry2 = new PIXI.Geometry()
.addAttribute('aVertexPosition', // the attribute name
[-100 + 100, -100, // x, y
100 + 100, -100, // x, y
100 + 100, 100], // x, y
2) // the size of the attribute
.addAttribute('aUvs', // the attribute name
[0, 0, // u, v
1, 0, // u, v
1, 1], // u, v
2) // the size of the attribute
.addIndex([0, 1, 2]);

const geometry3 = PIXI.Geometry.merge([geometry, geometry2]);

const shader = PIXI.Shader.from(`

precision mediump float;

attribute vec2 aVertexPosition;
attribute vec2 aUvs;

uniform mat3 translationMatrix;
uniform mat3 projectionMatrix;

varying vec2 vUvs;

void main() {

vUvs = aUvs;
gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);

}`,

`precision mediump float;

varying vec2 vUvs;

uniform sampler2D uSampler2;

void main() {

gl_FragColor = texture2D(uSampler2, vUvs );
}

`,
{
uSampler2: PIXI.Texture.from('https://pixijs.com/assets/bg_scene_rotate.jpg'),
});

const quad = new PIXI.Mesh(geometry3, shader);

quad.position.set(400, 300);
quad.scale.set(2);

app.stage.addChild(quad);

app.ticker.add((delta) =>
{
quad.rotation += 0.01;
});
- - + + \ No newline at end of file diff --git a/examples/mesh-and-shaders/multi-pass-shader-generated-mesh.html b/examples/mesh-and-shaders/multi-pass-shader-generated-mesh.html index d4fa001e8..fb9e54562 100644 --- a/examples/mesh-and-shaders/multi-pass-shader-generated-mesh.html +++ b/examples/mesh-and-shaders/multi-pass-shader-generated-mesh.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Multi Pass Shader Generated Mesh

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ height: 640, resizeTo: window });

document.body.appendChild(app.view);

// Build geometry.
const geometry = new PIXI.Geometry()
.addAttribute('aVertexPosition', // the attribute name
[0, 0, // x, y
200, 0, // x, y
200, 200,
0, 200], // x, y
2) // the size of the attribute
.addAttribute('aUvs', // the attribute name
[0, 0, // u, v
1, 0, // u, v
1, 1,
0, 1], // u, v
2) // the size of the attribute
.addIndex([0, 1, 2, 0, 2, 3]);

// Vertex shader. Use same shader for all passes.
const vertexSrc = `

precision mediump float;

attribute vec2 aVertexPosition;
attribute vec2 aUvs;

uniform mat3 translationMatrix;
uniform mat3 projectionMatrix;

varying vec2 vUvs;

void main() {

vUvs = aUvs;
gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);

}`;

// Load a perlinnoise texture for one of the shaders.
const perlinTexture = PIXI.Texture.from('https://pixijs.com/assets/perlin.jpg');

// First pass, generates a grid.
const fragmentGridSrc = `
precision mediump float;
varying vec2 vUvs;
uniform float zoom;

void main()
{
//Generate a simple grid.
//Offset uv so that center is 0,0 and edges are -1,1
vec2 uv = (vUvs-vec2(0.5))*2.0;
vec2 gUv = floor(uv*zoom);
vec4 color1 = vec4(0.8, 0.8, 0.8, 1.0);
vec4 color2 = vec4(0.4, 0.4, 0.4, 1.0);
vec4 outColor = mod(gUv.x + gUv.y, 2.) < 0.5 ? color1 : color2;
gl_FragColor = outColor;

}`;

const gridUniforms = {
zoom: 10,
};
const gridShader = PIXI.Shader.from(vertexSrc, fragmentGridSrc, gridUniforms);
// Sharing textures and meshes is possible.
// But for simplicity each pass has its own output texture and mesh in this example.
const gridTexture = PIXI.RenderTexture.create({ width: 200, height: 200 });
const gridQuad = new PIXI.Mesh(geometry, gridShader);
const gridContainer = new PIXI.Container();

gridContainer.addChild(gridQuad);

// Second pass. Takes grid as input and makes it ripple.
const fragmentRippleSrc = `
precision mediump float;
varying vec2 vUvs;
uniform float amount;
uniform float phase;
uniform sampler2D texIn;

void main()
{
//Generate a simple grid.
vec2 uv = vUvs;
//Calculate distance from center
float distance = length( uv - vec2(0.5));
vec4 color = texture2D(texIn, uv);
color.rgb *= sin(distance*25.0+phase) * amount+1.;
gl_FragColor = color;
}`;
const rippleUniforms = {
amount: 0.5,
phase: 0,
texIn: gridTexture,
};
const rippleShader = PIXI.Shader.from(vertexSrc, fragmentRippleSrc, rippleUniforms);
const rippleTexture = PIXI.RenderTexture.create({ width: 200, height: 200 });
const rippleQuad = new PIXI.Mesh(geometry, rippleShader);
const rippleContainer = new PIXI.Container();

rippleContainer.addChild(rippleQuad);

// Second effect. Generates a filtered noise.
const fragmentNoiseSrc = `
precision mediump float;
varying vec2 vUvs;
uniform float limit;
uniform sampler2D noise;

void main()
{
float color = texture2D(noise, vUvs).r;
color = step(limit, color);
gl_FragColor = vec4(color);
}`;
const noiseUniforms = {
limit: 0.5,
noise: perlinTexture,
};
const noiseShader = PIXI.Shader.from(vertexSrc, fragmentNoiseSrc, noiseUniforms);
const noiseTexture = PIXI.RenderTexture.create({ width: 200, height: 200 });
const noiseQuad = new PIXI.Mesh(geometry, noiseShader);
const noiseContainer = new PIXI.Container();

noiseContainer.addChild(noiseQuad);

// Third effect
const fragmentWaveSrc = `
precision mediump float;
varying vec2 vUvs;
uniform float amplitude;
uniform float time;

void main()
{
//Offset uv so that center is 0,0 and edges are -1,1
vec2 uv = (vUvs-vec2(0.5))*2.0;

vec3 outColor = vec3(0.);

//Simple wavefunctions inversed and with small offsets.
outColor += 5./length(uv.y*200. - 50.0*sin( uv.x*0.25+ time*0.25)*amplitude);
outColor += 4./length(uv.y*300. - 100.0*sin(uv.x*0.5+time*0.5)*amplitude*1.2);
outColor += 3./length(uv.y*400. - 150.0*sin(uv.x*0.75+time*0.75)*amplitude*1.4);
outColor += 2./length(uv.y*500. - 200.0*sin(uv.x+time)*amplitude*1.6);

gl_FragColor = vec4(outColor,1.0);
}`;
const waveUniforms = {
amplitude: 0.75,
time: 0,
};
const waveShader = PIXI.Shader.from(vertexSrc, fragmentWaveSrc, waveUniforms);
const waveTexture = PIXI.RenderTexture.create({ width: 200, height: 200 });
const waveQuad = new PIXI.Mesh(geometry, waveShader);
const waveContainer = new PIXI.Container();

waveContainer.addChild(waveQuad);

// Final combination pass
const fragmentCombineSrc = `
precision mediump float;
varying vec2 vUvs;

uniform sampler2D texRipple;
uniform sampler2D texNoise;
uniform sampler2D texWave;

void main()
{
//Read color from all
vec4 ripple = texture2D(texRipple, vUvs);
vec4 noise = texture2D(texNoise, vUvs);
vec4 wave = texture2D(texWave, vUvs);

gl_FragColor = mix(ripple, wave,noise.r);
}`;
const combineUniforms = {
texRipple: rippleTexture,
texNoise: noiseTexture,
texWave: waveTexture,
};
const combineShader = PIXI.Shader.from(vertexSrc, fragmentCombineSrc, combineUniforms);
const combineQuad = new PIXI.Mesh(geometry, combineShader);

gridContainer.position.set(10, 10);
rippleContainer.position.set(220, 10);
noiseContainer.position.set(10, 220);
waveContainer.position.set(10, 430);
combineQuad.position.set(430, 220);

// Add all phases to stage so all the phases can be seen separately.
app.stage.addChild(gridContainer);
app.stage.addChild(rippleContainer);
app.stage.addChild(noiseContainer);
app.stage.addChild(waveContainer);
app.stage.addChild(combineQuad);

// start the animation..
let time = 0;

app.ticker.add((delta) =>
{
time += 1 / 60;
// gridQuad.shader.uniforms.zoom = Math.sin(time)*5+10;
rippleQuad.shader.uniforms.phase = -time;
waveQuad.shader.uniforms.time = time;
noiseQuad.shader.uniforms.limit = Math.sin(time * 0.5) * 0.35 + 0.5;

// Render the passes to get textures.
app.renderer.render(gridQuad, { renderTexture: gridTexture });
app.renderer.render(rippleQuad, { renderTexture: rippleTexture });
app.renderer.render(noiseQuad, { renderTexture: noiseTexture });
app.renderer.render(waveQuad, { renderTexture: waveTexture });
});
- - + + \ No newline at end of file diff --git a/examples/mesh-and-shaders/shader-toy-mesh.html b/examples/mesh-and-shaders/shader-toy-mesh.html index 19758ddee..2baa2fe7b 100644 --- a/examples/mesh-and-shaders/shader-toy-mesh.html +++ b/examples/mesh-and-shaders/shader-toy-mesh.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Shader Toy Mesh

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ resizeTo: window });

document.body.appendChild(app.view);

// Build geometry.
const geometry = new PIXI.Geometry()
.addAttribute('aVertexPosition', // the attribute name
[-100, -100, // x, y
100, -100, // x, y
100, 100,
-100, 100], // x, y
2) // the size of the attribute
.addAttribute('aUvs', // the attribute name
[0, 0, // u, v
1, 0, // u, v
1, 1,
0, 1], // u, v
2) // the size of the attribute
.addIndex([0, 1, 2, 0, 2, 3]);

const vertexSrc = `

precision mediump float;

attribute vec2 aVertexPosition;
attribute vec2 aUvs;

uniform mat3 translationMatrix;
uniform mat3 projectionMatrix;

varying vec2 vUvs;

void main() {

vUvs = aUvs;
gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);

}`;

const fragmentSrc = `
//Based on this: https://www.shadertoy.com/view/wtlSWX
precision mediump float;

varying vec2 vUvs;

uniform sampler2D noise;
uniform float time;

// Distance function. Just calculates the height (z) from x,y plane with really simple length check.
// Its not exact as there could be shorter distances.
vec2 dist(vec3 p)
{
float id = floor(p.x)+floor(p.y);
id = mod(id, 2.);
float h = texture2D(noise, vec2(p.x, p.y)*0.04).r*5.1;
return vec2(h-p.z,id);
}

//Light calculation.
vec3 calclight(vec3 p, vec3 rd)
{
vec2 eps = vec2( 0., 0.001);
vec3 n = normalize( vec3(
dist(p+eps.yxx).x - dist(p-eps.yxx).x,
dist(p+eps.xyx).x - dist(p-eps.xyx).x,
dist(p+eps.xxy).x - dist(p-eps.xxy).x
));

vec3 d = vec3( max( 0., dot( -rd ,n)));

return d;
}

void main()
{
vec2 uv = vec2(vUvs.x,1.-vUvs.y);
uv *=2.;
uv-=1.;

vec3 cam = vec3(0.,time -2., -3.);
vec3 target = vec3(sin(time)*0.1, time+cos(time)+2., 0. );
float fov = 2.2;
vec3 forward = normalize( target - cam);
vec3 up = normalize(cross( forward, vec3(0., 1.,0.)));
vec3 right = normalize( cross( up, forward));
vec3 raydir = normalize(vec3( uv.x *up + uv.y * right + fov*forward));

//Do the raymarch
vec3 col = vec3(0.);
float t = 0.;
for( int i = 0; i < 100; i++)
{
vec3 p = t * raydir + cam;
vec2 d = dist(p);
t+=d.x*0.5;//Jump only half of the distance as height function used is not really the best for heightmaps.
if(d.x < 0.001)
{
vec3 bc = d.y < 0.5 ? vec3(1.0, .8, 0.) :
vec3(0.8,0.0, 1.0);
col = vec3( 1.) * calclight(p, raydir) * (1. - t/150.) *bc;
break;
}
if(t > 1000.)
{
break;
}
}
gl_FragColor = vec4(col, 1.);
}`;

const uniforms = {
noise: PIXI.Texture.from('https://pixijs.com/assets/perlin.jpg'),
time: 0,
};
// Make sure repeat wrap is used and no mipmapping.

uniforms.noise.baseTexture.wrapMode = PIXI.WRAP_MODES.REPEAT;
uniforms.noise.baseTexture.mipmap = false;

// Build the shader and the quad.
const shader = PIXI.Shader.from(vertexSrc, fragmentSrc, uniforms);
const quad = new PIXI.Mesh(geometry, shader);

quad.position.set(400, 300);
quad.scale.set(2);

app.stage.addChild(quad);

// start the animation..
let time = 0;

app.ticker.add((delta) =>
{
time += 1 / 60;
quad.shader.uniforms.time = time;
quad.scale.set(Number(Math.cos(time)) + 2, Number(Math.sin(time * 0.7)) + 2);
});
- - + + \ No newline at end of file diff --git a/examples/mesh-and-shaders/shared-shader.html b/examples/mesh-and-shaders/shared-shader.html index 415c5a0c0..cf4f4abf9 100644 --- a/examples/mesh-and-shaders/shared-shader.html +++ b/examples/mesh-and-shaders/shared-shader.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Shared Shader

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ resizeTo: window });

document.body.appendChild(app.view);

const geometry = new PIXI.Geometry()
.addAttribute('aVertexPosition', // the attribute name
[-100, -100, // x, y
100, -100, // x, y
100, 100]) // x, y

.addAttribute('aUvs', // the attribute name
[0, 0, // u, v
1, 0, // u, v
1, 1]); // u, v

const shader = PIXI.Shader.from(`

precision mediump float;

attribute vec2 aVertexPosition;
attribute vec2 aUvs;

uniform mat3 translationMatrix;
uniform mat3 projectionMatrix;

varying vec2 vUvs;

void main() {

vUvs = aUvs;
gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);

}`,

`precision mediump float;

varying vec2 vUvs;

uniform sampler2D uSampler2;

void main() {

gl_FragColor = texture2D(uSampler2, vUvs);
}

`,
{
uSampler2: PIXI.Texture.from('https://pixijs.com/assets/bg_scene_rotate.jpg'),
});

const shader2 = PIXI.Shader.from(`

precision mediump float;

attribute vec2 aVertexPosition;
attribute vec2 aUvs;

uniform mat3 translationMatrix;
uniform mat3 projectionMatrix;

varying vec2 vUvs;

void main() {

vUvs = aUvs;
gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);

}`,

`precision mediump float;

varying vec2 vUvs;

uniform sampler2D uSampler2;

void main() {

gl_FragColor = texture2D(uSampler2, vUvs);
gl_FragColor.r += (abs(sin(gl_FragCoord.x * 0.06)) * 0.5) * 2.;
gl_FragColor.g += (abs(cos(gl_FragCoord.y * 0.06)) * 0.5) * 2.;
}

`,
{
uSampler2: PIXI.Texture.from('https://pixijs.com/assets/bg_scene_rotate.jpg'),
});

const triangle = new PIXI.Mesh(geometry, shader);

const triangle2 = new PIXI.Mesh(geometry, shader2);

triangle.position.set(400, 300);
triangle.scale.set(2);

triangle2.position.set(500, 400);
triangle2.scale.set(3);

app.stage.addChild(triangle2, triangle);

app.ticker.add((delta) =>
{
triangle.rotation += 0.01;
triangle2.rotation -= 0.005;
});
- - + + \ No newline at end of file diff --git a/examples/mesh-and-shaders/sharing-geometry.html b/examples/mesh-and-shaders/sharing-geometry.html index 4402a52b3..3f1406f7f 100644 --- a/examples/mesh-and-shaders/sharing-geometry.html +++ b/examples/mesh-and-shaders/sharing-geometry.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Sharing Geometry

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ resizeTo: window });

document.body.appendChild(app.view);

const geometry = new PIXI.Geometry()
.addAttribute('aVertexPosition', // the attribute name
[-100, -100, // x, y
100, -100, // x, y
100, 100], // x, y
2) // the size of the attribute

.addAttribute('aUvs', // the attribute name
[0, 0, // u, v
1, 0, // u, v
1, 1], // u, v
2); // the size of the attribute

const program = PIXI.Program.from(`

precision mediump float;

attribute vec2 aVertexPosition;
attribute vec2 aUvs;

uniform mat3 translationMatrix;
uniform mat3 projectionMatrix;

varying vec2 vUvs;

void main() {

vUvs = aUvs;
gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);

}`,

`precision mediump float;

varying vec2 vUvs;

uniform sampler2D uSamplerTexture;

void main() {

gl_FragColor = texture2D(uSamplerTexture, vUvs);
}

`);

const triangle = new PIXI.Mesh(geometry, new PIXI.Shader(program, {
uSamplerTexture: PIXI.Texture.from('https://pixijs.com/assets/bg_scene_rotate.jpg'),
}));

const triangle2 = new PIXI.Mesh(geometry, new PIXI.Shader(program, {
uSamplerTexture: PIXI.Texture.from('https://pixijs.com/assets/bg_rotate.jpg'),
}));

const triangle3 = new PIXI.Mesh(geometry, new PIXI.Shader(program, {
uSamplerTexture: PIXI.Texture.from('https://pixijs.com/assets/bg_displacement.jpg'),
}));

triangle.position.set(400, 300);
triangle.scale.set(2);

triangle2.position.set(200, 100);

triangle3.position.set(500, 400);
triangle3.scale.set(3);

app.stage.addChild(triangle3, triangle2, triangle);

app.ticker.add((delta) =>
{
triangle.rotation += 0.01;
triangle2.rotation -= 0.01;
triangle3.rotation -= 0.005;
});
- - + + \ No newline at end of file diff --git a/examples/mesh-and-shaders/textured-mesh-advanced.html b/examples/mesh-and-shaders/textured-mesh-advanced.html index 16c2e5387..68bfff8cd 100644 --- a/examples/mesh-and-shaders/textured-mesh-advanced.html +++ b/examples/mesh-and-shaders/textured-mesh-advanced.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Textured Mesh Advanced

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ resizeTo: window });

document.body.appendChild(app.view);

let count = 0;

// build a rope!
const ropeLength = 45;

const points = [];

for (let i = 0; i < 25; i++)
{
points.push(new PIXI.Point(i * ropeLength, 0));
}

const strip = new PIXI.SimpleRope(PIXI.Texture.from('https://pixijs.com/assets/snake.png'), points);

strip.x = -40;
strip.y = 300;

app.stage.addChild(strip);

const g = new PIXI.Graphics();

g.x = strip.x;
g.y = strip.y;
app.stage.addChild(g);

// start animating
app.ticker.add(() =>
{
count += 0.1;

// make the snake
for (let i = 0; i < points.length; i++)
{
points[i].y = Math.sin((i * 0.5) + count) * 30;
points[i].x = i * ropeLength + Math.cos((i * 0.3) + count) * 20;
}
renderPoints();
});

function renderPoints()
{
g.clear();

g.lineStyle(2, 0xffc2c2);
g.moveTo(points[0].x, points[0].y);

for (let i = 1; i < points.length; i++)
{
g.lineTo(points[i].x, points[i].y);
}

for (let i = 1; i < points.length; i++)
{
g.beginFill(0xff0022);
g.drawCircle(points[i].x, points[i].y, 10);
g.endFill();
}
}
- - + + \ No newline at end of file diff --git a/examples/mesh-and-shaders/textured-mesh-basic.html b/examples/mesh-and-shaders/textured-mesh-basic.html index 66821c617..c329d347c 100644 --- a/examples/mesh-and-shaders/textured-mesh-basic.html +++ b/examples/mesh-and-shaders/textured-mesh-basic.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Textured Mesh Basic

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ resizeTo: window });

document.body.appendChild(app.view);

let count = 0;

// build a rope!
const ropeLength = 918 / 20;

const points = [];

for (let i = 0; i < 20; i++)
{
points.push(new PIXI.Point(i * ropeLength, 0));
}

const strip = new PIXI.SimpleRope(PIXI.Texture.from('https://pixijs.com/assets/snake.png'), points);

strip.x = -459;

const snakeContainer = new PIXI.Container();

snakeContainer.x = 400;
snakeContainer.y = 300;

snakeContainer.scale.set(800 / 1100);
app.stage.addChild(snakeContainer);

snakeContainer.addChild(strip);

app.ticker.add(() =>
{
count += 0.1;

// make the snake
for (let i = 0; i < points.length; i++)
{
points[i].y = Math.sin((i * 0.5) + count) * 30;
points[i].x = i * ropeLength + Math.cos((i * 0.3) + count) * 20;
}
});
- - + + \ No newline at end of file diff --git a/examples/mesh-and-shaders/triangle-color.html b/examples/mesh-and-shaders/triangle-color.html index 377f35003..52af3de68 100644 --- a/examples/mesh-and-shaders/triangle-color.html +++ b/examples/mesh-and-shaders/triangle-color.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Triangle Color

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ resizeTo: window });

document.body.appendChild(app.view);

const geometry = new PIXI.Geometry()
.addAttribute('aVertexPosition', // the attribute name
[-100, -50, // x, y
100, -50, // x, y
0.0, 100.0], // x, y
2) // the size of the attribute

.addAttribute('aColor', // the attribute name
[1, 0, 0, // r, g, b
0, 1, 0, // r, g, b
0, 0, 1], // r, g, b
3); // the size of the attribute

const shader = PIXI.Shader.from(`

precision mediump float;
attribute vec2 aVertexPosition;
attribute vec3 aColor;

uniform mat3 translationMatrix;
uniform mat3 projectionMatrix;

varying vec3 vColor;

void main() {

vColor = aColor;
gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);

}`,

`precision mediump float;

varying vec3 vColor;

void main() {
gl_FragColor = vec4(vColor, 1.0);
}

`);

const triangle = new PIXI.Mesh(geometry, shader);

triangle.position.set(400, 300);
triangle.scale.set(2);

app.stage.addChild(triangle);

app.ticker.add((delta) =>
{
triangle.rotation += 0.01;
});
- - + + \ No newline at end of file diff --git a/examples/mesh-and-shaders/triangle-textured.html b/examples/mesh-and-shaders/triangle-textured.html index e1bea05bf..c2e316c05 100644 --- a/examples/mesh-and-shaders/triangle-textured.html +++ b/examples/mesh-and-shaders/triangle-textured.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Triangle Textured

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ resizeTo: window });

document.body.appendChild(app.view);

const geometry = new PIXI.Geometry()
.addAttribute('aVertexPosition', // the attribute name
[-100, -100, // x, y
100, -100, // x, y
100, 100], // x, y
2) // the size of the attribute

.addAttribute('aColor', // the attribute name
[1, 0, 0, // r, g, b
0, 1, 0, // r, g, b
0, 0, 1], // r, g, b
3) // the size of the attribute

.addAttribute('aUvs', // the attribute name
[0, 0, // u, v
1, 0, // u, v
1, 1], // u, v
2); // the size of the attribute

const vertexSrc = `

precision mediump float;

attribute vec2 aVertexPosition;
attribute vec3 aColor;
attribute vec2 aUvs;

uniform mat3 translationMatrix;
uniform mat3 projectionMatrix;

varying vec2 vUvs;
varying vec3 vColor;

void main() {

vUvs = aUvs;
vColor = aColor;
gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);

}`;

const fragmentSrc = `

precision mediump float;

varying vec3 vColor;
varying vec2 vUvs;

uniform sampler2D uSampler2;

void main() {

gl_FragColor = texture2D(uSampler2, vUvs) * vec4(vColor, 1.0);
}`;

const uniforms = { uSampler2: PIXI.Texture.from('https://pixijs.com/assets/bg_scene_rotate.jpg') };

const shader = PIXI.Shader.from(vertexSrc, fragmentSrc, uniforms);

const triangle = new PIXI.Mesh(geometry, shader);

triangle.position.set(400, 300);
triangle.scale.set(2);

app.stage.addChild(triangle);

app.ticker.add((delta) =>
{
triangle.rotation += 0.01;
});
- - + + \ No newline at end of file diff --git a/examples/mesh-and-shaders/triangle.html b/examples/mesh-and-shaders/triangle.html index ba07d7a3d..4cc2666a4 100644 --- a/examples/mesh-and-shaders/triangle.html +++ b/examples/mesh-and-shaders/triangle.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Triangle

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ resizeTo: window });

document.body.appendChild(app.view);

const geometry = new PIXI.Geometry()
.addAttribute('aVertexPosition', [-100, -50, 100, -50, 0, 100]);

const shader = PIXI.Shader.from(`

precision mediump float;
attribute vec2 aVertexPosition;

uniform mat3 translationMatrix;
uniform mat3 projectionMatrix;

void main() {
gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);
}`,

`precision mediump float;

void main() {
gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
}

`);

const triangle = new PIXI.Mesh(geometry, shader);

triangle.position.set(400, 300);

app.stage.addChild(triangle);

app.ticker.add((delta) =>
{
triangle.rotation += 0.01;
});
- - + + \ No newline at end of file diff --git a/examples/mesh-and-shaders/uniforms.html b/examples/mesh-and-shaders/uniforms.html index 725b2d2cd..a8e278a6c 100644 --- a/examples/mesh-and-shaders/uniforms.html +++ b/examples/mesh-and-shaders/uniforms.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Uniforms

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ resizeTo: window });

document.body.appendChild(app.view);

const geometry = new PIXI.Geometry()
.addAttribute('aVertexPosition', // the attribute name
[-100, -100, // x, y
100, -100, // x, y
100, 100,
-100, 100], // x, y
2) // the size of the attribute
.addAttribute('aUvs', // the attribute name
[0, 0, // u, v
1, 0, // u, v
1, 1,
0, 1], // u, v
2) // the size of the attribute
.addIndex([0, 1, 2, 0, 2, 3]);

const vertexSrc = `

precision mediump float;

attribute vec2 aVertexPosition;
attribute vec2 aUvs;

uniform mat3 translationMatrix;
uniform mat3 projectionMatrix;

varying vec2 vUvs;

void main() {

vUvs = aUvs;
gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);

}`;

const fragmentSrc = `

precision mediump float;

varying vec2 vUvs;

uniform sampler2D uSampler2;
uniform float time;

void main() {

gl_FragColor = texture2D(uSampler2, vUvs + sin( (time + (vUvs.x) * 14.) ) * 0.1 );
}`;

const uniforms = {
uSampler2: PIXI.Texture.from('https://pixijs.com/assets/bg_scene_rotate.jpg'),
time: 0,
};

const shader = PIXI.Shader.from(vertexSrc, fragmentSrc, uniforms);

const quad = new PIXI.Mesh(geometry, shader);

quad.position.set(400, 300);
quad.scale.set(2);

app.stage.addChild(quad);

// start the animation..
// requestAnimationFrame(animate);

app.ticker.add((delta) =>
{
quad.rotation += 0.01;
quad.shader.uniforms.time += 0.1;
});
- - + + \ No newline at end of file diff --git a/examples/offscreen-canvas/basic.html b/examples/offscreen-canvas/basic.html index 4023c1bc9..601192050 100644 --- a/examples/offscreen-canvas/basic.html +++ b/examples/offscreen-canvas/basic.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Basic

import * as PIXI from 'pixi.js';

// This example is the based on basic/container, but using OffscreenCanvas.

const canvas = document.createElement('canvas');
const view = canvas.transferControlToOffscreen();

const app = new PIXI.Application({ view, background: 0x1099bb, resizeTo: window });

document.body.appendChild(canvas);

const container = new PIXI.Container();

app.stage.addChild(container);

// Create a new texture
const texture = PIXI.Texture.from('https://pixijs.com/assets/bunny.png');

// Create a 5x5 grid of bunnies
for (let i = 0; i < 25; i++)
{
const bunny = new PIXI.Sprite(texture);

bunny.anchor.set(0.5);
bunny.x = (i % 5) * 40;
bunny.y = Math.floor(i / 5) * 40;
container.addChild(bunny);
}

// Move container to the center
container.x = app.screen.width / 2;
container.y = app.screen.height / 2;

// Center bunny sprite in local container coordinates
container.pivot.x = container.width / 2;
container.pivot.y = container.height / 2;

// Listen for animate update
app.ticker.add((delta) =>
{
// rotate the container!
// use delta to create frame-independent transform
container.rotation -= 0.01 * delta;
});
- - + + \ No newline at end of file diff --git a/examples/sprite/animated-sprite-animation-speed.html b/examples/sprite/animated-sprite-animation-speed.html index 17c71e53d..9b3867255 100644 --- a/examples/sprite/animated-sprite-animation-speed.html +++ b/examples/sprite/animated-sprite-animation-speed.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Animated Sprite Animation Speed

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ autoStart: false, resizeTo: window });

document.body.appendChild(app.view);

PIXI.Assets.load('https://pixijs.com/assets/spritesheet/0123456789.json').then((spritesheet) =>
{
// create an array to store the textures
const textures = [];
let i;

for (i = 0; i < 10; i++)
{
const framekey = `0123456789 ${i}.ase`;
const texture = PIXI.Texture.from(framekey);
const time = spritesheet.data.frames[framekey].duration;

textures.push({ texture, time });
}

const scaling = 4;

// create a slow AnimatedSprite
const slow = new PIXI.AnimatedSprite(textures);

slow.anchor.set(0.5);
slow.scale.set(scaling);
slow.animationSpeed = 0.5;
slow.x = (app.screen.width - slow.width) / 2;
slow.y = app.screen.height / 2;
slow.play();
app.stage.addChild(slow);

// create a fast AnimatedSprite
const fast = new PIXI.AnimatedSprite(textures);

fast.anchor.set(0.5);
fast.scale.set(scaling);
fast.x = (app.screen.width + fast.width) / 2;
fast.y = app.screen.height / 2;
fast.play();
app.stage.addChild(fast);

// start animating
app.start();
});
- - + + \ No newline at end of file diff --git a/examples/sprite/animated-sprite-explosion.html b/examples/sprite/animated-sprite-explosion.html index 1a7dd7b68..5183058fc 100644 --- a/examples/sprite/animated-sprite-explosion.html +++ b/examples/sprite/animated-sprite-explosion.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Animated Sprite Explosion

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ autoStart: false, resizeTo: window });

document.body.appendChild(app.view);

PIXI.Assets.load('https://pixijs.com/assets/spritesheet/mc.json').then(() =>
{
// create an array to store the textures
const explosionTextures = [];
let i;

for (i = 0; i < 26; i++)
{
const texture = PIXI.Texture.from(`Explosion_Sequence_A ${i + 1}.png`);

explosionTextures.push(texture);
}

for (i = 0; i < 50; i++)
{
// create an explosion AnimatedSprite
const explosion = new PIXI.AnimatedSprite(explosionTextures);

explosion.x = Math.random() * app.screen.width;
explosion.y = Math.random() * app.screen.height;
explosion.anchor.set(0.5);
explosion.rotation = Math.random() * Math.PI;
explosion.scale.set(0.75 + Math.random() * 0.5);
explosion.gotoAndPlay(Math.random() * 26 | 0);
app.stage.addChild(explosion);
}

// start animating
app.start();
});
- - + + \ No newline at end of file diff --git a/examples/sprite/animated-sprite-jet.html b/examples/sprite/animated-sprite-jet.html index d039e0aa9..ca241e730 100644 --- a/examples/sprite/animated-sprite-jet.html +++ b/examples/sprite/animated-sprite-jet.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Animated Sprite Jet

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ background: '#1099bb', resizeTo: window });

document.body.appendChild(app.view);

PIXI.Assets.load('https://pixijs.com/assets/spritesheet/fighter.json').then(() =>
{
// create an array of textures from an image path
const frames = [];

for (let i = 0; i < 30; i++)
{
const val = i < 10 ? `0${i}` : i;

// magically works since the spritesheet was loaded with the pixi loader
frames.push(PIXI.Texture.from(`rollSequence00${val}.png`));
}

// create an AnimatedSprite (brings back memories from the days of Flash, right ?)
const anim = new PIXI.AnimatedSprite(frames);

/*
* An AnimatedSprite inherits all the properties of a PIXI sprite
* so you can change its position, its anchor, mask it, etc
*/
anim.x = app.screen.width / 2;
anim.y = app.screen.height / 2;
anim.anchor.set(0.5);
anim.animationSpeed = 0.5;
anim.play();

app.stage.addChild(anim);

// Animate the rotation
app.ticker.add(() =>
{
anim.rotation += 0.01;
});
});
- - + + \ No newline at end of file diff --git a/examples/sprite/basic.html b/examples/sprite/basic.html index d4f153dc0..d8feea896 100644 --- a/examples/sprite/basic.html +++ b/examples/sprite/basic.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Basic

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ background: '#1099bb', resizeTo: window });

document.body.appendChild(app.view);

// create a new Sprite from an image path
const bunny = PIXI.Sprite.from('https://pixijs.com/assets/bunny.png');

// center the sprite's anchor point
bunny.anchor.set(0.5);

// move the sprite to the center of the screen
bunny.x = app.screen.width / 2;
bunny.y = app.screen.height / 2;

app.stage.addChild(bunny);

// Listen for animate update
app.ticker.add((delta) =>
{
// just for fun, let's rotate mr rabbit a little
// delta is 1 if running at 100% performance
// creates frame-independent transformation
bunny.rotation += 0.1 * delta;
});
- - + + \ No newline at end of file diff --git a/examples/sprite/texture-swap.html b/examples/sprite/texture-swap.html index a728f55fd..7e724c8d8 100644 --- a/examples/sprite/texture-swap.html +++ b/examples/sprite/texture-swap.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Texture Swap

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ background: '#1099bb', resizeTo: window });

document.body.appendChild(app.view);

let isFlower = true;

const texture = PIXI.Texture.from('https://pixijs.com/assets/flowerTop.png');
const secondTexture = PIXI.Texture.from('https://pixijs.com/assets/eggHead.png');

// create a new Sprite using the texture
const character = new PIXI.Sprite(texture);

// center the sprites anchor point
character.anchor.set(0.5);

// move the sprite to the center of the screen
character.x = app.screen.width / 2;
character.y = app.screen.height / 2;

app.stage.addChild(character);

// make the sprite interactive
character.eventMode = 'static';
character.cursor = 'pointer';

character.on('pointertap', () =>
{
isFlower = !isFlower;
// Dynamically swap the texture
character.texture = isFlower ? texture : secondTexture;
});

app.ticker.add(() =>
{
character.rotation += 0.02;
});
- - + + \ No newline at end of file diff --git a/examples/sprite/tiling-sprite.html b/examples/sprite/tiling-sprite.html index 38da0f904..9ddf4d8ab 100644 --- a/examples/sprite/tiling-sprite.html +++ b/examples/sprite/tiling-sprite.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Tiling Sprite

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ resizeTo: window });

document.body.appendChild(app.view);

// create a texture from an image path
const texture = PIXI.Texture.from('https://pixijs.com/assets/p2.jpeg');

/* create a tiling sprite ...
* requires a texture, a width and a height
* in WebGL the image size should preferably be a power of two
*/
const tilingSprite = new PIXI.TilingSprite(
texture,
app.screen.width,
app.screen.height,
);

app.stage.addChild(tilingSprite);

let count = 0;

app.ticker.add(() =>
{
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;
});
- - + + \ No newline at end of file diff --git a/examples/sprite/video.html b/examples/sprite/video.html index 430661e1f..cffb60908 100644 --- a/examples/sprite/video.html +++ b/examples/sprite/video.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Video

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ backgroundAlpha: 0, resizeTo: window });

document.body.appendChild(app.view);

// Create play button that can be used to trigger the video
const button = new PIXI.Graphics()
.beginFill(0x0, 0.5)
.drawRoundedRect(0, 0, 100, 100, 10)
.endFill()
.beginFill(0xffffff)
.moveTo(36, 30)
.lineTo(36, 70)
.lineTo(70, 50);

// Position the button
button.x = (app.screen.width - button.width) / 2;
button.y = (app.screen.height - button.height) / 2;

// Enable interactivity on the button
button.eventMode = 'static';
button.cursor = 'pointer';

// Add to the stage
app.stage.addChild(button);

// Listen for a click/tap event to start playing the video
// this is useful for some mobile platforms. For example:
// ios9 and under cannot render videos in PIXI without a
// polyfill - https://github.com/bfred-it/iphone-inline-video
// ios10 and above require a click/tap event to render videos
// that contain audio in PIXI. Videos with no audio track do
// not have this requirement
button.on('pointertap', onPlayVideo);

function onPlayVideo()
{
// Don't need the button anymore
button.destroy();

// create a video texture from a path
const texture = PIXI.Texture.from('https://pixijs.com/assets/video.mp4');

// create a new Sprite using the video texture (yes it's that easy)
const videoSprite = new PIXI.Sprite(texture);

// Stetch the fullscreen
videoSprite.width = app.screen.width;
videoSprite.height = app.screen.height;

app.stage.addChild(videoSprite);
}
- - + + \ No newline at end of file diff --git a/examples/text/bitmap-text.html b/examples/text/bitmap-text.html index a4d3e7154..5a129df0b 100644 --- a/examples/text/bitmap-text.html +++ b/examples/text/bitmap-text.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Bitmap Text

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ background: '#1099bb', resizeTo: window });

document.body.appendChild(app.view);

PIXI.Assets.load('https://pixijs.com/assets/bitmap-font/desyrel.xml').then(() =>
{
const bitmapFontText = new PIXI.BitmapText(
'bitmap fonts are supported!\nWoo yay!', {
fontName: 'Desyrel',
fontSize: 55,
align: 'left',
},
);

bitmapFontText.x = 50;
bitmapFontText.y = 200;

app.stage.addChild(bitmapFontText);
});
- - + + \ No newline at end of file diff --git a/examples/text/from-font.html b/examples/text/from-font.html index 7cfe1462c..74305cfa1 100644 --- a/examples/text/from-font.html +++ b/examples/text/from-font.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

From Font

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ background: '#1099bb', resizeTo: window });

document.body.appendChild(app.view);

// Load from any font file!
PIXI.Assets.addBundle('fonts', {
ChaChicle: 'https://pixijs.com/assets/webfont-loader/ChaChicle.ttf',
Lineal: 'https://pixijs.com/assets/webfont-loader/Lineal.otf',
'Dotrice Regular': 'https://pixijs.com/assets/webfont-loader/Dotrice-Regular.woff',
Crosterian: 'https://pixijs.com/assets/webfont-loader/Crosterian.woff2',
});
PIXI.Assets.loadBundle('fonts').then(() =>
{
const text1 = new PIXI.Text('ChaChicle.ttf', new PIXI.TextStyle({ fontFamily: 'ChaChicle', fontSize: 50 }));
const text2 = new PIXI.Text('Lineal.otf', new PIXI.TextStyle({ fontFamily: 'Lineal', fontSize: 50 }));
const text3 = new PIXI.Text('Dotrice Regular.woff', new PIXI.TextStyle({ fontFamily: 'Dotrice Regular', fontSize: 50 }));
const text4 = new PIXI.Text('Crosterian.woff2', new PIXI.TextStyle({ fontFamily: 'Crosterian', fontSize: 50 }));

text2.y = 150;
text3.y = 300;
text4.y = 450;

app.stage.addChild(text1);
app.stage.addChild(text2);
app.stage.addChild(text3);
app.stage.addChild(text4);
});
- - + + \ No newline at end of file diff --git a/examples/text/pixi-text.html b/examples/text/pixi-text.html index 0cdca3d23..181abcdb9 100644 --- a/examples/text/pixi-text.html +++ b/examples/text/pixi-text.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Pixi Text

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ background: '#1099bb', resizeTo: window });

document.body.appendChild(app.view);

const basicText = new PIXI.Text('Basic text in pixi');

basicText.x = 50;
basicText.y = 100;

app.stage.addChild(basicText);

const style = new PIXI.TextStyle({
fontFamily: 'Arial',
fontSize: 36,
fontStyle: 'italic',
fontWeight: 'bold',
fill: ['#ffffff', '#00ff99'], // gradient
stroke: '#4a1850',
strokeThickness: 5,
dropShadow: true,
dropShadowColor: '#000000',
dropShadowBlur: 4,
dropShadowAngle: Math.PI / 6,
dropShadowDistance: 6,
wordWrap: true,
wordWrapWidth: 440,
lineJoin: 'round',
});

const richText = new PIXI.Text('Rich text with a lot of options and across multiple lines', style);

richText.x = 50;
richText.y = 220;

app.stage.addChild(richText);

const skewStyle = new PIXI.TextStyle({
fontFamily: 'Arial',
dropShadow: true,
dropShadowAlpha: 0.8,
dropShadowAngle: 2.1,
dropShadowBlur: 4,
dropShadowColor: '0x111111',
dropShadowDistance: 10,
fill: ['#ffffff'],
stroke: '#004620',
fontSize: 60,
fontWeight: 'lighter',
lineJoin: 'round',
strokeThickness: 12,
});

const skewText = new PIXI.Text('SKEW IS COOL', skewStyle);

skewText.skew.set(0.65, -0.3);
skewText.anchor.set(0.5, 0.5);
skewText.x = 300;
skewText.y = 480;

app.stage.addChild(skewText);
- - + + \ No newline at end of file diff --git a/examples/text/web-font.html b/examples/text/web-font.html index d8c168a4d..e624334cb 100644 --- a/examples/text/web-font.html +++ b/examples/text/web-font.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Web Font

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ background: '#1099bb', resizeTo: window });

document.body.appendChild(app.view);

// Load them google fonts before starting...
window.WebFontConfig = {
google: {
families: ['Snippet'],
},
active()
{
init();
},
};

/* eslint-disable */
// include the web-font loader script
(function() {
const wf = document.createElement('script');
wf.src = `${document.location.protocol === 'https:' ? 'https' : 'http'
}://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js`;
wf.type = 'text/javascript';
wf.async = 'true';
const s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(wf, s);
}());
/* eslint-enabled */

function init() {
// create some white text using the Snippet webfont
const textSample = new PIXI.Text(
'PixiJS text using the\ncustom "Snippet" Webfont', {
fontFamily: 'Snippet',
fontSize: 50,
fill: 'white',
align: 'left',
}
);
textSample.position.set(50, 200);
app.stage.addChild(textSample);
}
- - + + \ No newline at end of file diff --git a/examples/textures/gradient-basic.html b/examples/textures/gradient-basic.html index de989957a..c1b3b8f6c 100644 --- a/examples/textures/gradient-basic.html +++ b/examples/textures/gradient-basic.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Gradient Basic

import * as PIXI from 'pixi.js';

// This demo uses canvas2d gradient API
// https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/createLinearGradient

const app = new PIXI.Application({ antialias: true, resizeTo: window });

document.body.appendChild(app.view);

function createGradTexture()
{
// adjust it if somehow you need better quality for very very big images
const quality = 256;
const canvas = document.createElement('canvas');

canvas.width = quality;
canvas.height = 1;

const ctx = canvas.getContext('2d');

// use canvas2d API to create gradient
const grd = ctx.createLinearGradient(0, 0, quality, 0);

grd.addColorStop(0, 'rgba(255, 255, 255, 0.0)');
grd.addColorStop(0.3, 'cyan');
grd.addColorStop(0.7, 'red');
grd.addColorStop(1, 'green');

ctx.fillStyle = grd;
ctx.fillRect(0, 0, quality, 1);

return PIXI.Texture.from(canvas);
}

const gradTexture = createGradTexture();

const sprite = new PIXI.Sprite(gradTexture);

sprite.position.set(100, 100);
sprite.rotation = Math.PI / 8;
sprite.width = 500;
sprite.height = 50;
app.stage.addChild(sprite);
- - + + \ No newline at end of file diff --git a/examples/textures/gradient-resource.html b/examples/textures/gradient-resource.html index 0f47f097e..d3ce789c5 100644 --- a/examples/textures/gradient-resource.html +++ b/examples/textures/gradient-resource.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Gradient Resource

import * as PIXI from 'pixi.js';

// PixiJS V5 Texture-Resource API + canvas2d gradient API + WebGL texImage2D
// Look here for advanced upload function:
// https://github.com/pixijs/pixi.js/blob/dev/packages/core/src/textures/resources/BaseImageResource.js#L54

class GradientResource extends PIXI.Resource
{
constructor()
{
// pass width and height. (0,0) if we dont know yet
// gradient needs only 1 pixel height
super(256, 1);
}

upload(renderer, baseTexture, glTexture)
{
const { width } = this; // default size or from baseTexture?
const { height } = this; // your choice.

// temporary canvas, we dont need it after texture is uploaded to GPU
const canvas = document.createElement('canvas');

canvas.width = width;
canvas.height = height;

const ctx = canvas.getContext('2d');

const grd = ctx.createLinearGradient(0, 0, width, 0);

grd.addColorStop(0, 'rgba(255, 255, 255, 0.0)');
grd.addColorStop(0.3, 'cyan');
grd.addColorStop(0.7, 'red');
grd.addColorStop(1, 'green');

ctx.fillStyle = grd;
ctx.fillRect(0, 0, width, height);

// This info ios usseful if upload happens second time
// Some people use that to track used memory
glTexture.width = width;
glTexture.height = height;

// PURE WEBGL CALLS - that's what its all about.
// PixiJS cant wrap all that API, we give you acceess to it!
const { gl } = renderer;

gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, baseTexture.premultiplyAlpha);
gl.texImage2D(baseTexture.target, 0, baseTexture.format, baseTexture.format, baseTexture.type, canvas);

return true;
}
}

const app = new PIXI.Application({ antialias: true, resizeTo: window });

document.body.appendChild(app.view);

const gradBaseTexture = new PIXI.BaseTexture(new GradientResource());
// Here you can fake baseTexture size to avoid resizing all sprites
// There can be multiple baseTextures per gradient, but be careful:
// resource will spawn more glTextures!

gradBaseTexture.setSize(500, 50);

const gradTexture = new PIXI.Texture(gradBaseTexture);

const sprite = new PIXI.Sprite(gradTexture);

sprite.position.set(100, 100);
sprite.rotation = Math.PI / 8;
app.stage.addChild(sprite);
- - + + \ No newline at end of file diff --git a/examples/textures/render-texture-advanced.html b/examples/textures/render-texture-advanced.html index 952e13598..b73c61e26 100644 --- a/examples/textures/render-texture-advanced.html +++ b/examples/textures/render-texture-advanced.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Render Texture Advanced

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ resizeTo: window });

document.body.appendChild(app.view);

const stageSize = {
width: app.screen.width,
height: app.screen.height,
};

// create two render textures... these dynamic textures will be used to draw the scene into itself
let renderTexture = PIXI.RenderTexture.create(stageSize);
let renderTexture2 = PIXI.RenderTexture.create(stageSize);
const currentTexture = renderTexture;

// create a new sprite that uses the render texture we created above
const outputSprite = new PIXI.Sprite(currentTexture);

// align the sprite
outputSprite.x = 400;
outputSprite.y = 300;
outputSprite.anchor.set(0.5);

// add to stage
app.stage.addChild(outputSprite);

const stuffContainer = new PIXI.Container();

stuffContainer.x = 400;
stuffContainer.y = 300;

app.stage.addChild(stuffContainer);

// create an array of image ids..
const fruits = [
'https://pixijs.com/assets/rt_object_01.png',
'https://pixijs.com/assets/rt_object_02.png',
'https://pixijs.com/assets/rt_object_03.png',
'https://pixijs.com/assets/rt_object_04.png',
'https://pixijs.com/assets/rt_object_05.png',
'https://pixijs.com/assets/rt_object_06.png',
'https://pixijs.com/assets/rt_object_07.png',
'https://pixijs.com/assets/rt_object_08.png',
];

// create an array of items
const items = [];

// now create some items and randomly position them in the stuff container
for (let i = 0; i < 20; i++)
{
const item = PIXI.Sprite.from(fruits[i % fruits.length]);

item.x = Math.random() * 400 - 200;
item.y = Math.random() * 400 - 200;
item.anchor.set(0.5);
stuffContainer.addChild(item);
items.push(item);
}

// used for spinning!
let count = 0;

app.ticker.add(() =>
{
for (let i = 0; i < items.length; i++)
{
// rotate each item
const item = items[i];

item.rotation += 0.1;
}

count += 0.01;

// swap the buffers ...
const temp = renderTexture;

renderTexture = renderTexture2;
renderTexture2 = temp;

// set the new texture
outputSprite.texture = renderTexture;

// twist this up!
stuffContainer.rotation -= 0.01;
outputSprite.scale.set(1 + Math.sin(count) * 0.2);

// render the stage to the texture
// the 'true' clears the texture before the content is rendered
app.renderer.render(app.stage, {
renderTexture: renderTexture2,
clear: false,
});
});
- - + + \ No newline at end of file diff --git a/examples/textures/render-texture-basic.html b/examples/textures/render-texture-basic.html index 876cc4500..b1f93b36a 100644 --- a/examples/textures/render-texture-basic.html +++ b/examples/textures/render-texture-basic.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Render Texture Basic

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ background: '#1099bb', resizeTo: window });

document.body.appendChild(app.view);

const container = new PIXI.Container();

app.stage.addChild(container);

const texture = PIXI.Texture.from('https://pixijs.com/assets/bunny.png');

for (let i = 0; i < 25; i++)
{
const bunny = new PIXI.Sprite(texture);

bunny.x = (i % 5) * 30;
bunny.y = Math.floor(i / 5) * 30;
bunny.rotation = Math.random() * (Math.PI * 2);
container.addChild(bunny);
}

const brt = new PIXI.BaseRenderTexture(300, 300, PIXI.SCALE_MODES.LINEAR, 1);
const rt = new PIXI.RenderTexture(brt);

const sprite = new PIXI.Sprite(rt);

sprite.x = 450;
sprite.y = 60;
app.stage.addChild(sprite);

/*
* All the bunnies are added to the container with the addChild method
* when you do this, all the bunnies become children of the container, and when a container moves,
* so do all its children.
* This gives you a lot of flexibility and makes it easier to position elements on the screen
*/
container.x = 100;
container.y = 60;

app.ticker.add(() =>
{
app.renderer.render(container, rt);
});
- - + + \ No newline at end of file diff --git a/examples/textures/texture-rotate.html b/examples/textures/texture-rotate.html index 9ba195f5d..8d2a6353e 100644 --- a/examples/textures/texture-rotate.html +++ b/examples/textures/texture-rotate.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Texture Rotate

import * as PIXI from 'pixi.js';

const app = new PIXI.Application({ resizeTo: window });

document.body.appendChild(app.view);

PIXI.Assets.load('https://pixijs.com/assets/flowerTop.png').then((texture) =>
{
// create rotated textures
const textures = [texture];
const D8 = PIXI.groupD8;

for (let rotate = 1; rotate < 16; rotate++)
{
const h = D8.isVertical(rotate) ? texture.frame.width : texture.frame.height;
const w = D8.isVertical(rotate) ? texture.frame.height : texture.frame.width;

const { frame } = texture;
const crop = new PIXI.Rectangle(texture.frame.x, texture.frame.y, w, h);
const trim = crop;
let rotatedTexture;

if (rotate % 2 === 0)
{
rotatedTexture = new PIXI.Texture(texture.baseTexture, frame, crop, trim, rotate);
}
else
{
// HACK to avoid exception
// PIXI doesnt like diamond-shaped UVs, because they are different in canvas and webgl
rotatedTexture = new PIXI.Texture(texture.baseTexture, frame, crop, trim, rotate - 1);
rotatedTexture.rotate++;
}
textures.push(rotatedTexture);
}

const offsetX = app.screen.width / 16 | 0;
const offsetY = app.screen.height / 8 | 0;
const gridW = app.screen.width / 4 | 0;
const gridH = app.screen.height / 5 | 0;

// normal rotations and mirrors
for (let i = 0; i < 16; i++)
{
// create a new Sprite using rotated texture
const dude = new PIXI.Sprite(textures[i < 8 ? i * 2 : (i - 8) * 2 + 1]);

dude.scale.x = 0.5;
dude.scale.y = 0.5;
// show it in grid
dude.x = offsetX + gridW * (i % 4);
dude.y = offsetY + gridH * (i / 4 | 0);
app.stage.addChild(dude);
const text = new PIXI.Text(`rotate = ${dude.texture.rotate}`, {
fontFamily: 'Courier New', fontSize: '12px', fill: 'white', align: 'left',
});

text.x = dude.x;
text.y = dude.y - 20;
app.stage.addChild(text);
}
});
- - + + \ No newline at end of file diff --git a/faq.html b/faq.html index 15060a095..53adcc6f6 100644 --- a/faq.html +++ b/faq.html @@ -9,8 +9,8 @@ - - + +
@@ -22,7 +22,7 @@ are what make it possible to push PixiJS further, faster. Contributions allow us to commission the PixiJS developer community to accelerate feature development and create more in-depth documentation. Support Us by making a contribution via Open Collective. Go on! It will be a massive help AND make you feel good about yourself, win win ;)

Where do I get it?​

Visit our GitHub page to download the very latest version of PixiJS. This is the most up-to-date resource for PixiJS and should always be your first port of call to make sure you are using the latest version. Just click the 'Download' link in the navigation.

How do I get started?​

Right here! Take a look through the Resources section for a wealth of information including documentation, forums, tutorials and the Goodboy blog.

Why should I use PixiJS?​

Because you care about speed. PixiJS' #1 mantra has always been speed. We really do feel the need! We do everything we can to make PixiJS as streamlined, efficient and fast as possible, whilst balancing it with offering as many crucial and valuable features as we can.

Is PixiJS a game engine?​

No. PixiJS is what we've come to think of as a "creation engine". Whilst it is extremely good for making games, the core essence of PixiJS is simply moving things around on screens as quickly and efficiently as possible. It does of course happen that it is absolutely brilliant for making games though!

Who makes PixiJS?​

Outside of the highly active PixiJS community, it is primarily maintained by Mat Groves, Technical Partner of our creative agency Goodboy Digital. One of the huge advantages of creating PixiJS within the framework of a working agency is that it means its features are always driven by genuine industry demands and critically are always trialled "in anger" in our cutting-edge games, sites and apps.

I found a bug. What should I do?​

Two things - lets us know via the PixiJS GitHub community and even better yet, if you know how, post a fix! Our Community is stronger in numbers so we're always keen to welcome new contributors into the team to help us shape what PixiJS becomes next.

- - + + \ No newline at end of file diff --git a/guides.html b/guides.html index 497bac2e0..9c1d1cc8a 100644 --- a/guides.html +++ b/guides.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Welcome

PixiJS is an open source, web-based rendering system that provides blazing fast performance for games, data visualization, and other graphics intensive projects. These guides are designed to be a companion to the API documentation, providing a structured introduction to using the API to solve problems and build projects.

About The Guides​

If you're new to PixiJS, we suggest you start with the Basics and read through them in order (a good place to start is Getting Started). While PixiJS has a mature API and solid documentation, the guides go over many common issues and questions that developers new to the system encounter.

Other Resources​

As you explore the guides, you may find these resources valuable:

- - + + \ No newline at end of file diff --git a/guides/basics/architecture-overview.html b/guides/basics/architecture-overview.html index f5efd4717..f8bec1a48 100644 --- a/guides/basics/architecture-overview.html +++ b/guides/basics/architecture-overview.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Architecture Overview

OK, now that you've gotten a feel for how easy it is to build a PixiJS application, let's get into the specifics. For the rest of the Basics section, we're going to work from the high level down to the details. We'll start with an overview of how PixiJS is put together.

The Code​

Before we get into how the code is layed out, let's talk about where it lives. PixiJS is an open source product hosted on GitHub. Like any GitHub repo, you can browse and download the raw source files for each PixiJS class, as well as search existing issues & bugs, and even submit your own. PixiJS is written in a JavaScript variant called TypeScript, which enables type-checking in JavaScript via a pre-compile step.

The Components​

PixiJS is a modular rendering engine. Each task required for generating, updating and displaying content is broken out into its own component. Not only does this make the code cleaner, it allows for greater extensibility. Additionally, with the use of the PixiJS Customize tool, it's possible to build a custom PixiJS file containing only the subset of features your project needs, saving download size.

Here's a list of the major components that make up PixiJS. Note that this list isn't exhaustive. Additionally, don't worry too much about how each component works. The goal here is to give you a feel for what's under the hood as we start exploring the engine.

Major Components​

ComponentDescription
Renderer @pixi/coreThe core of the PixiJS system is the renderer, which displays the scene graph and draws it to the screen. The default renderer for PixiJS is based on WebGL under the hood.
Container @pixi/displayMain display object which creates a scene graph: the tree of renderable objects to be displayed, such as sprites, graphics and text. See Scene Graph for more details.
Loader @pixi/loaderThe loader system provides tools for asynchronously loading resources such as images and audio files.
Ticker @pixi/tickerTickers provide periodic callbacks based on a clock. Your game update logic will generally be run in response to a tick once per frame. You can have multiple tickers in use at one time.
Application @pixi/appThe Application is a simple helper that wraps a Loader, Ticker and Renderer into a single, convenient easy-to-use object. Great for getting started quickly, prototyping and building simple projects.
Interaction @pixi/interactionPixiJS supports both touch and mouse-based interaction - making objects clickable, firing hover events, etc.
Accessibility @pixi/accessibilityWoven through our display system is a rich set of tools for enabling keyboard and screen-reader accessibility.
- - + + \ No newline at end of file diff --git a/guides/basics/getting-started.html b/guides/basics/getting-started.html index 37560eacc..c5bacb169 100644 --- a/guides/basics/getting-started.html +++ b/guides/basics/getting-started.html @@ -9,8 +9,8 @@ - - + +
@@ -18,7 +18,7 @@ experience developing JavaScript-based applications. If you are a coding veteran, you may find that the level of detail here is not helpful. If that's the case, you may want to skim this guide, then jump into how to work with PixiJS and packers like webpack and npm.

A Note About JavaScript​

One final note. The JavaScript universe is currently in transition from old-school JavaScript (ES5) to the newer ES6 flavor:

// ES5
var x = 5;
setTimeout(function() { alert(x); }, 1000);
// ES6
const x = 5;
setTimeout(() => alert(x), 1000);

ES6 brings a number of major advantages in terms of clearer syntax, better variable scoping, native class support, etc. By now, all major browsers support it. Given this, our examples in these guides will use ES6. This doesn't mean you can't use PixiJS with ES5 programs! Just mentally substitute "var" for "let/const", expand the shorter function-passing syntax, and everything will run just fine.

Components of a PixiJS Application​

OK! With those notes out of the way, let's get started. There are only a few steps required to write a PixiJS application:

Let's walk through them together.

The HTML File​

PixiJS is a JavaScript library that runs in a web page. So the first thing we're going to need is some HTML in a file. In a real PixiJS application, you might want to embed your display within a complex existing page, or you might want your display area to fill the whole page. For this demo, we'll build an empty page to start:

<!doctype html>
<html>
<head>
</head>
<body>
<h1>Hello PixiJS</h1>
</body>
</html>

Create a new folder named pixi-test, then copy and paste this HTML into a new file in the pixi-test folder named index.html.

Serving the File​

You will need to run a web server to develop locally with PixiJS. Web browsers prevent loading local files (such as images and audio files) on locally loaded web pages. If you just double-click your new HTML file, you'll get an error when you try to add a sprite to the PixiJS stage.

Running a web server sounds complex and difficult, but it turns out there are a number of simple web servers that will serve this purpose. For this guide, we're going to be working with Mongoose, but you could just as easily use XAMPP or the http-server Node.js package to serve your files.

To start serving your page with Mongoose, go to the Mongoose download page and download the free server for your operating system. Mongoose defaults to serving the files in the folder it's run in, so copy the downloaded executable into the folder you created in the prior step (pixi-test). Double-click the executable, tell your operating system that you trust the file to run, and you'll have a running web server, serving your new folder.

Test that everything is working by opening your browser of choice and entering http://127.0.0.1:8080 in the location bar. (Mongoose by default serves files on port 8080.) You should see "Hello PixiJS" and nothing else. If you get an error at this step, it means you didn't name your file index.html or you mis-configured your web server.

Loading PixiJS​

OK, so we have a web page, and we're serving it. But it's empty. The next step is to actually load the PixiJS library. If we were building a real application, we'd want to download a target version of PixiJS from the Pixi Github repo so that our version wouldn't change on us. But for this sample application, we'll just use the CDN version of PixiJS. Add this line to the <head> section of your index.html file:

<script src="https://pixijs.download/release/pixi.js"></script>

This will include a non-minified version of the latest version of PixiJS when your page loads, ready to be used. We use the non-minified version because we're in development. In production, you'd want to use pixi.min.js instead, which is compressed for faster download and excludes assertions and deprecation warnings that can help when building your project, but take longer to download and run.

Creating an Application​

Loading the library doesn't do much good if we don't use it, so the next step is to start up PixiJS. Start by replacing the line <h1>Hello PixiJS</h1> with a script tag like so:

<script>
let app = new PIXI.Application({ width: 640, height: 360 });
</script>

What we're doing here is adding a JavaScript code block, and in that block creating a new PIXI.Application instance. Application is a helper class that simplifies working with PixiJS. It creates the renderer, creates the stage, and starts a ticker for updating. In production, you'll almost certainly want to do these steps yourself for added customization and control - we'll cover doing so in a later guide. For now, the Application class is a perfect way to start playing with PixiJS without worrying about the details.

Adding the View to the DOM​

When the PIXI.Application class creates the renderer, it builds a Canvas element that it will render to. In order to see what we draw with PixiJS, we need to add this Canvas element to the web page's DOM. Append the following line to your page's script block:

  document.body.appendChild(app.view);

This takes the view created by the application (the Canvas element) and adds it to the body of your page.

Creating a Sprite​

So far all we've been doing is prep work. We haven't actually told PixiJS to draw anything. Let's fix that by adding an image to be displayed.

There are a number of ways to draw images in PixiJS, but the simplest is by using a Sprite. We'll get into the details of how the scene graph works in a later guide, but for now all you need to know is that PixiJS renders a hierarchy of DisplayObjects. A Sprite is a type of DisplayObject that wraps a loaded image resource to allow drawing it, scaling it, rotating it, and so forth.

Before PixiJS can render an image, it needs to be loaded. Just like in any web page, image loading happens asynchronously. We'll talk a lot more about resource loading in later guides. For now, we can use a helper method on the PIXI.Sprite class to handle the image loading for us:

  // Magically load the PNG asynchronously
let sprite = PIXI.Sprite.from('sample.png');

Download the sample PNG here, and save it into your pixi-test directory next to your index.html.

Adding the Sprite to the Stage​

Finally, we need to add our new sprite to the stage. The stage is simply a Container that is the root of the scene graph. Every child of the stage container will be rendered every frame. By adding our sprite to the stage, we tell PixiJS's renderer we want to draw it.

  app.stage.addChild(sprite);

Writing an Update Loop​

While you can use PixiJS for static content, for most projects you'll want to add animation. Our sample app is actually cranking away, rendering the same sprite in the same place multiple times a second. All we have to do to make the image move is to update its attributes once per frame. To do this, we want to hook into the application's ticker. A ticker is a PixiJS object that runs one or more callbacks each frame. Doing so is surprisingly easy. Add the following to the end of your script block:

  // Add a variable to count up the seconds our demo has been running
let elapsed = 0.0;
// Tell our application's ticker to run a new callback every frame, passing
// in the amount of time that has passed since the last tick
app.ticker.add((delta) => {
// Add the time to our total elapsed time
elapsed += delta;
// Update the sprite's X position based on the cosine of our elapsed time. We divide
// by 50 to slow the animation down a bit...
sprite.x = 100.0 + Math.cos(elapsed/50.0) * 100.0;
});

All you need to do is to call app.ticker.add(...), pass it a callback function, and then update your scene in that function. It will get called every frame, and you can move, rotate etc. whatever you'd like to drive your project's animations.

Putting It All Together​

That's it! The simplest PixiJS project!

Here's the whole thing in one place. Check your file and make sure it matches if you're getting errors.

<!doctype html>
<html>
<head>
<script src="https://pixijs.download/release/pixi.min.js"></script>
</head>
<body>
<script>
// Create the application helper and add its render target to the page
let app = new PIXI.Application({ width: 640, height: 360 });
document.body.appendChild(app.view);

// Create the sprite and add it to the stage
let sprite = PIXI.Sprite.from('sample.png');
app.stage.addChild(sprite);

// Add a ticker callback to move the sprite back and forth
let elapsed = 0.0;
app.ticker.add((delta) => {
elapsed += delta;
sprite.x = 100.0 + Math.cos(elapsed/50.0) * 100.0;
});
</script>
</body>
</html>

Once you have things working, the next thing to do is to read through the rest of the Basics guides to dig into how all this works in much greater depth.

- - + + \ No newline at end of file diff --git a/guides/basics/render-loop.html b/guides/basics/render-loop.html index c80fcee6d..2d863511d 100644 --- a/guides/basics/render-loop.html +++ b/guides/basics/render-loop.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Render Loop

Now that you understand the major parts of the system, let's look at how these parts work together to get your project onto the screen. Unlike a web page, PixiJS is constantly updating and re-drawing itself, over and over. You update your objects, then PixiJS renders them to the screen, then the process repeats. We call this cycle the render loop.

The majority of any PixiJS project is contained in this update + render cycle. You code the updates, PixiJS handles the rendering.

Let's walk through what happens each frame of the render loop. There are three main steps.

Running Ticker Callbacks​

The first step is to calculate how much time has elapsed since the last frame, and then call the Application object's ticker callbacks with that time delta. This allows your project's code to animate and update the sprites, etc. on the stage in preparation for rendering.

Updating the Scene Graph​

We'll talk a lot more about what a scene graph is and what it's made of in the next guide, but for now, all you need to know is that it contains the things you're drawing - sprites, text, etc. - and that these objects are in a tree-like hierarchy. After you've updated your game objects by moving, rotating and so forth, PixiJS needs to calculate the new positions and state of every object in the scene, before it can start drawing.

Rendering the Scene Graph​

Now that our game's state has been updated, it's time to draw it to the screen. The rendering system starts with the root of the scene graph (app.stage), and starts rendering each object and its children, until all objects have been drawn. No culling or other cleverness is built into this process. If you have lots of objects outside of the visible portion of the stage, you'll want to investigate disabling them as an optimization.

Frame Rates​

A note about frame rates. The render loop can't be run infinitely fast - drawing things to the screen takes time. In addition, it's not generally useful to have a frame updated more than once per screen update (commonly 60fps, but newer monitors can support 144fps and up). Finally, PixiJS runs in the context of a web browser like Chrome or Firefox. The browser itself has to balance the needs of various internal operations with servicing any open tabs. All this to say, determining when to draw a frame is a complex issue.

In cases where you want to adjust that behavior, you can set the minFPS and maxFPS attributes on a Ticker to give PixiJS hints as to the range of tick speeds you want to support. Just be aware that due to the complex environment, your project cannot guarantee a given FPS. Use the passed delta value in your ticker callbacks to scale any animations to ensure smooth playback.

Custom Render Loops​

What we've just covered is the default render loop provided out of the box by the Application helper class. There are many other ways of creating a render loop that may be helpful for advanced users looking to solve a given problem. While you're prototyping and learning PixiJS, sticking with the Application's provided system is the recommended approach.

- - + + \ No newline at end of file diff --git a/guides/basics/scene-graph.html b/guides/basics/scene-graph.html index 6685a20fd..b7622ae98 100644 --- a/guides/basics/scene-graph.html +++ b/guides/basics/scene-graph.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Scene Graph

Every frame, PixiJS is updating and then rendering the scene graph. Let's talk about what's in the scene graph, and how it impacts how you develop your project. If you've built games before, this should all sound very familiar, but if you're coming from HTML and the DOM, it's worth understanding before we get into specific types of objects you can render.

The Scene Graph Is a Tree​

The scene graph's root node is a container maintained by the application, and referenced with app.stage. When you add a sprite or other renderable object as a child to the stage, it's added to the scene graph and will be rendered and interactable. Most PixiJS objects can also have children, and so as you build more complex scenes, you will end up with a tree of parent-child relationships, rooted at the app's stage.

(A helpful tool for exploring your project is the Pixi.js devtools plugin for Chrome, which allows you to view and manipulate the scene graph in real time as it's running!)

Parents and Children​

When a parent moves, its children move as well. When a parent is rotated, its children are rotated too. Hide a parent, and the children will also be hidden. If you have a game object that's made up of multiple sprites, you can collect them under a container to treat them as a single object in the world, moving and rotating as one.

Each frame, PixiJS runs through the scene graph from the root down through all the children to the leaves to calculate each object's final position, rotation, visibility, transparency, etc. If a parent's alpha is set to 0.5 (making it 50% transparent), all its children will start at 50% transparent as well. If a child is then set to 0.5 alpha, it won't be 50% transparent, it will be 0.5 x 0.5 = 0.25 alpha, or 75% transparent. Similarly, an object's position is relative to its parent, so if a parent is set to an x position of 50 pixels, and the child is set to an x position of 100 pixels, it will be drawn at a screen offset of 150 pixels, or 50 + 100.

Here's an example. We'll create three sprites, each a child of the last, and animate their position, rotation, scale and alpha. Even though each sprite's properties are set to the same values, the parent-child chain amplifies each change:

// Create the application helper and add its render target to the page
const app = new PIXI.Application({ width: 640, height: 360 });
document.body.appendChild(app.view);

// Add a container to center our sprite stack on the page
const container = new PIXI.Container();
container.x = app.screen.width / 2;
container.y = app.screen.height / 2;
app.stage.addChild(container);

// Create the 3 sprites, each a child of the last
const sprites = [];
let parent = container;
for (let i = 0; i < 3; i++) {
let sprite = PIXI.Sprite.from('assets/images/sample.png');
sprite.anchor.set(0.5);
parent.addChild(sprite);
sprites.push(sprite);
parent = sprite;
}

// Set all sprite's properties to the same value, animated over time
let elapsed = 0.0;
app.ticker.add((delta) => {
elapsed += delta / 60;
const amount = Math.sin(elapsed);
const scale = 1.0 + 0.25 * amount;
const alpha = 0.75 + 0.25 * amount;
const angle = 40 * amount;
const x = 75 * amount;
for (let i = 0; i < sprites.length; i++) {
const sprite = sprites[i];
sprite.scale.set(scale);
sprite.alpha = alpha;
sprite.angle = angle;
sprite.x = x;
}
});

The cumulative translation, rotation, scale and skew of any given node in the scene graph is stored in the object's worldTransform property. Similarly, the cumulative alpha value is stored in the worldAlpha property.

Render Order​

So we have a tree of things to draw. Who gets drawn first?

PixiJS renders the tree from the root down. At each level, the current object is rendered, then each child is rendered in order of insertion. So the second child is rendered on top of the first child, and the third over the second.

Check out this example, with two parent objects A & D, and two children B & C under A:

// Create the application helper and add its render target to the page
const app = new PIXI.Application({ width: 640, height: 360 });
document.body.appendChild(app.view);

// Label showing scene graph hierarchy
const label = new PIXI.Text('Scene Graph:\n\napp.stage\n β”— A\n β”— B\n β”— C\n β”— D', {fill: '#ffffff'});
label.position = {x: 300, y: 100};
app.stage.addChild(label);

// Helper function to create a block of color with a letter
const letters = [];
function addLetter(letter, parent, color, pos) {
const bg = new PIXI.Sprite(PIXI.Texture.WHITE);
bg.width = 100;
bg.height = 100;
bg.tint = color;

const text = new PIXI.Text(letter, {fill: "#ffffff"});
text.anchor.set(0.5);
text.position = {x: 50, y: 50};

const container = new PIXI.Container();
container.position = pos;
container.visible = false;
container.addChild(bg, text);
parent.addChild(container);

letters.push(container);
return container;
}

// Define 4 letters
let a = addLetter('A', app.stage, 0xff0000, {x: 100, y: 100});
let b = addLetter('B', a, 0x00ff00, {x: 20, y: 20});
let c = addLetter('C', a, 0x0000ff, {x: 20, y: 40});
let d = addLetter('D', app.stage, 0xff8800, {x: 140, y: 100});

// Display them over time, in order
let elapsed = 0.0;
app.ticker.add((delta) => {
elapsed += delta / 60.0;
if (elapsed >= letters.length) { elapsed = 0.0; }
for (let i = 0; i < letters.length; i ++) {
letters[i].visible = elapsed >= i;
}
});

If you'd like to re-order a child object, you can use setChildIndex(). To add a child at a given point in a parent's list, use addChildAt(). Finally, you can enable automatic sorting of an object's children using the sortableChildren option combined with setting the zIndex property on each child.

Culling​

If you're building a project where a large proportion of your DisplayObject's are off-screen (say, a side-scrolling game), you will want to cull those objects. Culling is the process of evaluating if an object (or its children!) is on the screen, and if not, turning off rendering for it. If you don't cull off-screen objects, the renderer will still draw them, even though none of their pixels end up on the screen.

PixiJS doesn't provide built-in support for viewport culling, but you can find 3rd party plugins that might fit your needs. Alternately, if you'd like to build your own culling system, simply run your objects during each tick and set renderable to false on any object that doesn't need to be drawn.

Local vs Global Coordinates​

If you add a sprite to the stage, by default it will show up in the top left corner of the screen. That's the origin of the global coordinate space used by PixiJS. If all your objects were children of the stage, that's the only coordinates you'd need to worry about. But once you introduce containers and children, things get more complicated. A child object at [50, 100] is 50 pixels right and 100 pixels down from its parent.

We call these two coordinate systems "global" and "local" coordinates. When you use position.set(x, y) on an object, you're always working in local coordinates, relative to the object's parent.

The problem is, there are many times when you want to know the global position of an object. For example, if you want to cull offscreen objects to save render time, you need to know if a given child is outside the view rectangle.

To convert from local to global coordinates, you use the toGlobal() function. Here's a sample usage:

// Get the global position of an object, relative to the top-left of the screen
let globalPos = obj.toGlobal(new PIXI.Point(0,0));

This snippet will set globalPos to be the global coordinates for the child object, relative to [0, 0] in the global coordinate system.

Global vs Screen Coordinates​

When your project is working with the host operating system or browser, there is a third coordinate system that comes into play - "screen" coordinates (aka "viewport" coordinates). Screen coordinates represent position relative to the top-left of the canvas element that PixiJS is rendering into. Things like the DOM and native mouse click events work in screen space.

Now, in many cases, screen space is equivalent to world space. This is the case if the size of the canvas is the same as the size of the render view specified when you create you PIXI.Application. By default, this will be the case - you'll create for example an 800x600 application window and add it to your HTML page, and it will stay that size. 100 pixels in world coordinates will equal 100 pixels in screen space. BUT! It is common to stretch the rendered view to have it fill the screen, or to render at a lower resolution and up-scale for speed. In that case, the screen size of the canvas element will change (e.g. via CSS), but the underlying render view will not, resulting in a mis-match between world coordinates and screen coordinates.

- - + + \ No newline at end of file diff --git a/guides/basics/what-pixijs-is-not.html b/guides/basics/what-pixijs-is-not.html index 7e9d5fdc2..3af0321e6 100644 --- a/guides/basics/what-pixijs-is-not.html +++ b/guides/basics/what-pixijs-is-not.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

What PixiJS Is Not

While PixiJS can do many things, there are things it can't do, or that require additional tools to accomplish. Newcomers to PixiJS often struggle to identify which tasks PixiJS can solve, and which require outside solutions. If you're about to start a project, it can be helpful to know if PixiJS is a good fit for your needs. The following list is obviously incomplete - PixiJS is also not, for example, a duck - but it includes many common tasks or features that you might expect us to support.

PixiJS Is Not ... A Framework​

PixiJS is a rendering engine, and it supports additional features such as interaction management that are commonly needed when using a render engine. But it is not a framework like Unity or Phaser. Frameworks are designed to do all the things you'd need to do when building a game - user settings management, music playback, object scripting, art pipeline management... the list goes on. PixiJS is designed to do one thing really well - render graphical content. This lets us focus on keeping up with new technology, and makes downloading PixiJS blazingly fast.

... A 3D Renderer​

PixiJS is built for 2D. Platformers, adventure games, interactive ads, custom data visualization... all good. But if you want to render 3D models, you might want to check out babylon.js or three.js.

... A Mobile App​

If you're looking to build mobile games, you can do it with PixiJS, but you'll need to use a deployment system like Apache Cordova if you want access to native bindings. We don't provide access to the camera, location services, notifications, etc.

... A UI Library​

Building a truly generic UI system is a huge challenge, as anyone who has worked with Unity's UI tools can attest. We've chosen to avoid the complexity to stay true to our core focus on speed. While you can certainly build your own UI using PixiJS's scene graph and interaction manager, we don't ship with a UI library out of the box.

... A Data Store​

There are many techniques and technologies that you can use to store settings, scores, and other data. Cookies, Web Storage, server-based storage... there are many solutions, each with advantages and disadvantages. You can use any of them with PixiJS, but we don't provide tools to do so.

... An Audio Library​

At least, not out of the box. Again, web audio technology is a constantly evolving challenge, with constantly changing rules and requirements across many browsers. There are a number of dedicated web audio libraries (such as Howler.js that can be used with PixiJS to play sound effects and music. Alternatively, the PixiJS Sound plugin is designed to work well with PixiJS.

... A Development Environment​

There are a number of tools that are useful for building 2D art and games that you might expect to be a part of PixiJS, but we're a rendering engine, not a development environment. Packing sprite sheets, processing images, building mipmaps or Retina-ready sprites - there are great standalone tools for this type of tooling. Where appropriate throughout the guides, we'll point you to tools that may be useful.

So Is PixiJS Right For Me?​

Only you know! If you're looking for a tightly focused, fast and efficient rendering engine for your next web-based project, PixiJS is likely a great fit.

If you need a full game development framework, with native bindings and a rich UI library, you may want to explore other options.

Or you may not. It can be faster and easier to build just the subset of a full framework that your project needs than it can be to digest a monolithic API with bells and whistles you don't need. There are hundreds of complex, rich games and visual projects that use PixiJS for rendering, with plugins or custom code to add the UI and sound effects. There are benefits to both approaches. Regardless, we hope you have a better feel for what PixiJS can (and cannot!) offer your project.

- - + + \ No newline at end of file diff --git a/guides/basics/what-pixijs-is.html b/guides/basics/what-pixijs-is.html index 3bfd2437c..d4724c15b 100644 --- a/guides/basics/what-pixijs-is.html +++ b/guides/basics/what-pixijs-is.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

What PixiJS Is

So what exactly is PixiJS? At its heart, PixiJS is a rendering system that uses WebGL (or optionally Canvas) to display images and other 2D visual content. It provides a full scene graph (a hierarchy of objects to render), and provides interaction support to enable handling click and touch events. It is a natural replacement for Flash in the modern HTML5 world, but provides better performance and pixel-level effects that go beyond what Flash could achieve. It is perfect for online games, educational content, interactive ads, data visualization... any web-based application where complex graphics are important. And coupled with technology such as Cordova and Electron, PixiJS apps can be distributed beyond the browser as mobile and desktop applications.

Here's what else you get with PixiJS:

PixiJS Is ... Fast​

One of the major features that distinguishes PixiJS from other web-based rendering solutions is speed. From the ground up, the render pipeline has been built to get the most performance possible out of your users' browsers. Automatic sprite and geometry batching, careful use of WebGL resources, a tight scene graph - no matter your application, speed is valuable, and PixiJS has it to spare.

... More Than Just Sprites​

Drawing images on a page can be handled with HTML5 and the DOM, so why use PixiJS? Beyond performance, the answer is that PixiJS goes well beyond simple images. Draw trails and tracks with SimpleRope. Draw polygons, lines, circles and other primitives with Graphics. Text provides full text rendering support that's just as performant as sprites. And even when drawing simple images, PixiJS natively supports spritesheets for efficient loading and ease of development.

... WebGL Native​

WebGL is the JavaScript API for accessing users' GPUs for fast rendering and advanced effects. PixiJS leverages WebGL to display thousands of moving sprites efficiently even on mobile devices. But using WebGL offers more than just speed. By using the Filter class, you can write shader programs (or use pre-built ones!) to achieve displacement maps, blurring, and other advanced visual effects that cannot be accomplished with just the DOM or Canvas APIs.

... Open Source​

Want to understand how the engine works? Trying to track down a bug? Been burned by closed-source projects going dark? With PixiJS, you get a mature project with full source code access. We're MIT licensed for compatibility, and hosted on GitHub for issue tracking and ease of access.

... Extensible​

Open source helps. So does being based on JavaScript. But the real reason PixiJS is easy to extend is the clean internal API that underlies every part of the system. After years of development and 5 major releases, PixiJS is ready to make your project a success, no matter what your needs.

... Easy to Deploy​

Flash required the player. Unity requires an installer or app store. PixiJS requires... a browser. Deploying PixiJS on the web is exactly like deploying a web site. That's all it is - JavaScript + images + audio, like you've done a hundred times. Your users simply visit a URL, and your game or other content is ready to run. But it doesn't stop at the web. If you want to deploy a mobile app, wrap your PixiJS code in Cordova. Want to deploy a standalone desktop program? Build an Electron wrapper, and you're ready to rock.

- - + + \ No newline at end of file diff --git a/guides/components/assets.html b/guides/components/assets.html index 1c0b49b6a..c9b7f95a0 100644 --- a/guides/components/assets.html +++ b/guides/components/assets.html @@ -9,8 +9,8 @@ - - + +
@@ -23,7 +23,7 @@ See the following example:

However, if you want to take full advantage of @pixi/Assets you should use bundles. Bundles are just a way to group assets together and can be added manually by calling PIXI.Assets.addBundle(...)/PIXI.Assets.loadBundle(...).

  PIXI.Assets.addBundle('animals', {
bunny: 'bunny.png',
chicken: 'chicken.png',
thumper: 'thumper.png',
});

const assets = await PIXI.Assets.loadBundle('animals');

However, the best way to handle bundles is to use a manifest and call PIXI.Assets.init({manifest}) with said manifest (or even better, an URL pointing to it). Splitting our assets into bundles that correspond to screens or stages of our app will come in handy for loading in the background while the user is using the app instead of locking them in a single monolithic loading screen.

{
"bundles":[
{
"name":"load-screen",
"assets":[
{
"name":"background",
"srcs":"sunset.png"
},
{
"name":"bar",
"srcs":"load-bar.{png,webp}"
}
]
},
{
"name":"game-screen",
"assets":[
{
"name":"character",
"srcs":"robot.png"
},
{
"name":"enemy",
"srcs":"bad-guy.png"
}
]
}
]
}
PIXI.Assets.init({manifest: "path/manifest.json"});

Beware that you can only call init once.

Remember there is no downside in repeating URLs since they will all be cached, so if you need the same asset in two bundles you can duplicate the request without any extra cost!

Background loading​

The old approach to loading was to use PIXI.Loader to load all your assets at the beginning of your app, but users are less patient now and want content to be instantly available so the practices are moving towards loading the bare minimum needed to show the user some content and, while they are interacting with that, we keep loading the following content in the background.

Luckily, @pixi/assets has us covered with a system that allows us to load everything in the background and in case we need some assets right now, bump them to the top of the queue so we can minimize loading times.

To achieve this, we have the methods PIXI.Assets.backgroundLoad(...) and PIXI.Assets.backgroundLoadBundle(...) that will passively begin to load these assets in the background. So when you finally come to loading them you will get a promise that resolves to the loaded assets immediately.

When you finally need the assets to show, you call the usual PIXI.Assets.load(...) or PIXI.Assets.loadBundle(...) and you will get the corresponding promise.

The best way to do this is using bundles, see the following example:

We create one bundle for each screen our game will have and set them all to start downloading at the beginning of our app. If the user progresses slowly enough in our app then they should never get to see a loading screen after the first one!

- - + + \ No newline at end of file diff --git a/guides/components/containers.html b/guides/components/containers.html index 2940e641b..7a2653326 100644 --- a/guides/components/containers.html +++ b/guides/components/containers.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Containers

The Container class provides a simple display object that does what its name implies - collect a set of child objects together. But beyond grouping objects, containers have a few uses that you should be aware of.

Containers as Groups​

Almost every type of display object is also derived from Container - even Sprites! This means that in many cases you can create a parent-child hierarchy with the objects you want to render.

However, it's a good idea not to do this. Standalone Container objects are very cheap to render, and having a proper hierarchy of Container objects, each containing one or more renderable objects, provides flexibility in rendering order. It also future-proofs your code, as when you need to add an additional object to a branch of the tree, your animation logic doesn't need to change - just drop the new object into the proper Container, and your logic moves the Container with no changes to your code.

So that's the primary use for Containers - as groups of renderable objects in a hierarchy.

Check out the container example code.

Masking​

Another common use for Container objects is as hosts for masked content. "Masking" is a technique where parts of your scene graph are only visible within a given area.

Think of a pop-up window. It has a frame made of one or more Sprites, then has a scrollable content area that hides content outside the frame. A Container plus a mask makes that scrollable area easy to implement. Add the Container, set its mask property to a Graphics object with a rect, and add the text, image, etc. content you want to display as children of that masked Container. Any content that extends beyond the rectangular mask will simply not be drawn. Move the contents of the Container to scroll as desired.

// Create the application helper and add its render target to the page
let app = new PIXI.Application({ width: 640, height: 360 });
document.body.appendChild(app.view);

// Create window frame
let frame = new PIXI.Graphics();
frame.beginFill(0x666666);
frame.lineStyle({ color: 0xffffff, width: 4, alignment: 0 });
frame.drawRect(0, 0, 208, 208);
frame.position.set(320 - 104, 180 - 104);
app.stage.addChild(frame);

// Create a graphics object to define our mask
let mask = new PIXI.Graphics();
// Add the rectangular area to show
mask.beginFill(0xffffff);
mask.drawRect(0,0,200,200);
mask.endFill();

// Add container that will hold our masked content
let maskContainer = new PIXI.Container();
// Set the mask to use our graphics object from above
maskContainer.mask = mask;
// Add the mask as a child, so that the mask is positioned relative to its parent
maskContainer.addChild(mask);
// Offset by the window's frame width
maskContainer.position.set(4,4);
// And add the container to the window!
frame.addChild(maskContainer);

// Create contents for the masked container
let text = new PIXI.Text(
'This text will scroll up and be masked, so you can see how masking works. Lorem ipsum and all that.\n\n' +
'You can put anything in the container and it will be masked!',
{
fontSize: 24,
fill: 0x1010ff,
wordWrap: true,
wordWrapWidth: 180
}
);
text.x = 10;
maskContainer.addChild(text);

// Add a ticker callback to scroll the text up and down
let elapsed = 0.0;
app.ticker.add((delta) => {
// Update the text's y coordinate to scroll it
elapsed += delta;
text.y = 10 + -100.0 + Math.cos(elapsed/50.0) * 100.0;
});

There are two types of masks supported by PixiJS:

Use a Graphics object to create a mask with an arbitrary shape - powerful, but doesn't support anti-aliasing

Sprite: Use the alpha channel from a Sprite as your mask, providing anti-aliased edging - not supported on the Canvas renderer

Filtering​

Another common use for Container objects is as hosts for filtered content. Filters are an advanced, WebGL-only feature that allows PixiJS to perform per-pixel effects like blurring and displacements. By setting a filter on a Container, the area of the screen the Container encompasses will be processed by the filter after the Container's contents have been rendered.

Below are list of filters available by default in PixiJS. There is, however, a community repository with many more filters.

FilterDescription
AlphaFilter: @pixi/filter-alphaSimilar to setting alpha property, but flattens the Container instead of applying to children individually.
BlurFilter: @pixi/filter-blurApply a blur effect
ColorMatrixFilter: @pixi/filter-color-matrixA color matrix is a flexible way to apply more complex tints or color transforms (e.g., sepia tone).
DisplacementFilter: @pixi/filter-displacementDisplacement maps create visual offset pixels, for instance creating a wavy water effect.
FXAAFilter: @pixi/filter-fxaaBasic FXAA (Fast Approximate Anti-Aliasing) to create smoothing effect.
NoiseFilter: @pixi/filter-noiseCreate random noise (e.g., grain effect).

Important: Filters should be use somewhat sparingly. They can slow performance and increase memory if used too often in a scene.

- - + + \ No newline at end of file diff --git a/guides/components/display-object.html b/guides/components/display-object.html index c00e37a88..c2f25ee1e 100644 --- a/guides/components/display-object.html +++ b/guides/components/display-object.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Display Objects

DisplayObject is the core class for anything that can be rendered by the engine. It's the base class for sprites, text, complex graphics, containers, etc., and provides much of the common functionality for those objects. As you're learning PixiJS, it's important to [read through the documentation for this class][DisplayObject](https://pixijs.download/release/docs/PIXI.DisplayObject.html) to understand how to move, scale, rotate and compose the visual elements of your project.

Be aware that you won't use DisplayObject directly - you'll use its functions and attributes in derived classes.

Commonly Used Attributes​

The most common attributes you'll use when laying out and animating content in PixiJS are provided by the DisplayObject class:

PropertyDescription
positionX- and Y-position are given in pixels and change the position of the object relative to its parent, also available directly as object.x / object.y
rotationRotation is specified in radians, and turns an object clockwise (0.0 - 2 * Math.PI)
angleAngle is an alias for rotation that is specified in degrees instead of radians (0.0 - 360.0)
pivotPoint the object rotates around, in pixels - also sets origin for child objects
alphaOpacity from 0.0 (fully transparent) to 1.0 (fully opaque), inherited by children
scaleScale is specified as a percent with 1.0 being 100% or actual-size, and can be set independently for the x and y axis
skewSkew transforms the object in x and y similar to the CSS skew() function, and is specified in radians
visibleWhether the object is visible or not, as a boolean value - prevents updating and rendering object and children
renderableWhether the object should be rendered - when false, object will still be updated, but won't be rendered, doesn't affect children
- - + + \ No newline at end of file diff --git a/guides/components/graphics.html b/guides/components/graphics.html index 7edf38e4c..3686c89d4 100644 --- a/guides/components/graphics.html +++ b/guides/components/graphics.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Graphics

Graphics is a complex and much misunderstood tool in the PixiJS toolbox. At first glance, it looks like a tool for drawing shapes. And it is! But it can also be used to generate masks. How does that work?

In this guide, we're going to de-mystify the Graphics object, starting with how to think about what it does.

Check out the graphics example code.

Graphics Is About Building - Not Drawing​

First-time users of the PIXI.Graphics class often struggle with how it works. Let's look at an example snippet that creates a Graphics object and draws a rectangle:

// Create a Graphics object, set a fill color, draw a rectangle
let obj = new PIXI.Graphics();
obj.beginFill(0xff0000);
obj.drawRect(0, 0, 200, 100);

// Add it to the stage to render
app.stage.addChild(obj);

That code will work - you'll end up with a red rectangle on the screen. But it's pretty confusing when you start to think about it. Why am I drawing a rectangle when constructing the object? Isn't drawing something a one-time action? How does the rectangle get drawn the second frame? And it gets even weirder when you create a Graphics object with a bunch of drawThis and drawThat calls, and then you use it as a mask. What???

The problem is that the function names are centered around drawing, which is an action that puts pixels on the screen. But in spite of that, the Graphics object is really about building.

Let's look a bit deeper at that drawRect() call. When you call drawRect(), PixiJS doesn't actually draw anything. Instead, it stores the rectangle you "drew" into a list of geometry for later use. If you then add the Graphics object to the scene, the renderer will come along, and ask the Graphics object to render itself. At that point, your rectangle actually gets drawn - along with any other shapes, lines, etc. that you've added to the geometry list.

Once you understand what's going on, things start to make a lot more sense. When you use a Graphics object as a mask, for example, the masking system uses that list of graphics primitives in the geometry list to constrain which pixels make it to the screen. There's no drawing involved.

That's why it helps to think of the Graphics class not as a drawing tool, but as a geometry building tool.

Types of Primitives​

There are a lot of functions in the PIXI.Graphics class, but as a quick orientation, here's the list of basic primitives you can add:

  • Line
  • Rect
  • RoundRect
  • Circle
  • Ellipse
  • Arc
  • Bezier and Quadratic Curve

In addition, the Graphics Extras package (@pixi/graphics-extras) optionally includes the following complex primitives:

  • Torus
  • Chamfer Rect
  • Fillet Rect
  • Regular Polygon
  • Star
  • Rounded Polygon

The Geometry List​

Inside every Graphics object is a GraphicsGeometry object. The GraphicsGeometry class manages the list of geometry primitives created by the Graphics parent object. For the most part, you will not work directly with this object. The owning Graphics object creates and manages it. However, there are two related cases where you do work with the list.

First, you can re-use geometry from one Graphics object in another. No matter whether you're re-drawing the same shape over and over, or re-using it as a mask over and over, it's more efficient to share identical GraphicsGeometry. You can do this like so:

// Create a master graphics object
let template = new PIXI.Graphics();
// Add a circle
template.drawCircle(100, 100, 50);

// Create 5 duplicate objects
for (let i = 0; i < 5; i++) {
// Initialize the duplicate using our template's pre-built geometry
let duplicate = new PIXI.Graphics(template.geometry);
}

This leads to the second time you need to be aware of the underlying GraphicsGeometry object - avoiding memory leaks. Because Graphics objects can share geometry, you must call destroy() when you no longer need them. Failure to do so will prevent the GraphicsGeometry object it owns from being properly de-referenced, and will lead to memory leaks.

Graphics For Display​

OK, so now that we've covered how the PIXI.Graphics class works, let's look at how you use it. The most obvious use of a Graphics object is to draw dynamically generated shapes to the screen.

Doing so is simple. Create the object, call the various builder functions to add your custom primitives, then add the object to the scene graph. Each frame, the renderer will come along, ask the Graphics object to render itself, and each primitive, with associated line and fill styles, will be drawn to the screen.

Graphics as a Mask​

You can also use a Graphics object as a complex mask. To do so, build your object and primitives as usual. Next create a PIXI.Container object that will contain the masked content, and set its mask property to your Graphics object. The children of the container will now be clipped to only show through inside the geometry you've created. This technique works for both WebGL and Canvas-based rendering.

Check out the masking example code.

Caveats and Gotchas​

The Graphics class is a complex beast, and so there are a number of things to be aware of when using it.

Memory Leaks: The first has already been mentioned - call destroy() on any Graphics object you no longer need to avoid memory leaks.

Holes: Holes you create have to be completely contained in the shape or else it may not be able to triangulate correctly.

Changing Geometry: If you want to change the shape of a Graphics object, you don't need to delete and recreate it. Instead you can use the clear() function to reset the contents of the geometry list, then add new primitives as desired. Be careful of performance when doing this every frame.

Performance: Graphics objects are generally quite performant. However, if you build highly complex geometry, you may pass the threshold that permits batching during rendering, which can negatively impact performance. It's better for batching to use many Graphics objects instead of a single Graphics with many shapes.

Transparency: Because the Graphics object renders its primitives sequentially, be careful when using blend modes or partial transparency with overlapping geometry. Blend modes like ADD and MULTIPLY will work on each primitive, not on the final composite image. Similarly, partially transparent Graphics objects will show primitives overlapping. To apply transparency or blend modes to a single flattened surface, consider using AlphaFilter or RenderTexture.

- - + + \ No newline at end of file diff --git a/guides/components/interaction.html b/guides/components/interaction.html index 753869ac1..c74d86463 100644 --- a/guides/components/interaction.html +++ b/guides/components/interaction.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Interaction

PixiJS is primarily a rendering system, but it also includes support for interactivity. Adding support for mouse and touch events to your project is simple and consistent.

Event Modes​

The new event-based system that replaced InteractionManager from v6 has expanded the definition of what a DisplayObject means to be interactive. With this we have introduced eventMode which allows you to control how an object responds to interaction events. This is similar to the interactive property in v6 but with more options.

eventModeDescription
noneIgnores all interaction events, similar to CSS's pointer-events: none, good optimization for non-interactive children
passiveDoes not emit events and ignores hit testing on itself but does allow for events and hit testing only its interactive children. If you want to be compatible with v6, set this as your default eventMode (see options in Renderer, Application, etc)
autoDoes not emit events and but is hit tested if parent is interactive. Same as interactive = false in v7
staticEmit events and is hit tested. Same as interaction = true in v7, useful for objects like buttons that do not move.
dynamicEmits events and is hit tested but will also receive mock interaction events fired from a ticker to allow for interaction when the mouse isn't moving. This is useful for elements that independently moving or animating.

Event Types​

PixiJS supports the following event types:

Event TypeDescription
pointercancelFired when a pointer device button is released outside the display object that initially registered a pointerdown.
pointerdownFired when a pointer device button is pressed on the display object.
pointerenterFired when a pointer device enters the display object.
pointerleaveFired when a pointer device leaves the display object.
pointermoveFired when a pointer device is moved while over the display object.
globalpointermoveFired when a pointer device is moved, regardless of hit-testing the current object.
pointeroutFired when a pointer device is moved off the display object.
pointeroverFired when a pointer device is moved onto the display object.
pointertapFired when a pointer device is tapped twice on the display object.
pointerupFired when a pointer device button is released over the display object.
pointerupoutsideFired when a pointer device button is released outside the display object that initially registered a pointerdown.
mousedown Fired when a mouse button is pressed on the display object.
mouseenterFired when the mouse cursor enters the display object.
mouseleaveFired when the mouse cursor leaves the display object.
mousemove Fired when the mouse cursor is moved while over the display object.
globalmousemoveFired when a mouse is moved, regardless of hit-testing the current object.
mouseout Fired when the mouse cursor is moved off the display object.
mouseover Fired when the mouse cursor is moved onto the display object.
mouseup Fired when a mouse button is released over the display object.
mouseupoutside Fired when a mouse button is released outside the display object that initially registered a mousedown.
click Fired when a mouse button is clicked (pressed and released) over the display object.
touchcancel Fired when a touch point is removed outside of the display object that initially registered a touchstart.
touchend Fired when a touch point is removed from the display object.
touchendoutside Fired when a touch point is removed outside of the display object that initially registered a touchstart.
touchmove Fired when a touch point is moved along the display object.
globaltouchmoveFired when a touch point is moved, regardless of hit-testing the current object.
touchstart Fired when a touch point is placed on the display object.
tap Fired when a touch point is tapped twice on the display object.
wheel Fired when a mouse wheel is spun over the display object.
rightclick Fired when a right mouse button is clicked (pressed and released) over the display object.
rightdown Fired when a right mouse button is pressed on the display object.
rightup Fired when a right mouse button is released over the display object.
rightupoutside Fired when a right mouse button is released outside the display object that initially registered a rightdown.

Enabling Interaction​

Any DisplayObject-derived object (Sprite, Container, etc.) can become interactive simply by setting its eventMode property to any of the eventModes listed above. Doing so will cause the object to emit interaction events that can be responded to in order to drive your project's behavior.

Check out the interaction example code.

To respond to clicks and taps, bind to the events fired on the object, like so:

let sprite = PIXI.Sprite.from('/some/texture.png');
sprite.on('pointerdown', (event) => { alert('clicked!'); });
sprite.eventMode = 'static';

Check out the DisplayObject for the list of interaction events supported.

Checking if Object is Interactive​

You can check if an object is interactive by calling the isInteractive property. This will return true if eventMode is set to static or dynamic.

if (sprite.isInteractive()) {
// sprite is interactive
}

Use Pointer Events​

PixiJS supports three types of interaction events - mouse, touch and pointer. Mouse events are fired by mouse movement, clicks etc. Touch events are fired for touch-capable devices. And pointer events are fired for both.

What this means is that, in many cases, you can write your project to use pointer events and it will just work when used with either mouse or touch input. Given that, the only reason to use non-pointer events is to support different modes of operation based on input type or to support multi-touch interaction. In all other cases, prefer pointer events.

Optimization​

Hit testing requires walking the full object tree, which in complex projects can become an optimization bottleneck. To mitigate this issue, PixiJS Container-derived objects have a property named interactiveChildren. If you have Containers or other objects with complex child trees that you know will never be interactive, you can set this property to false and the hit testing algorithm will skip those children when checking for hover and click events. As an example, if you were building a side-scrolling game, you would probably want to set background.interactiveChildren = false for your background layer with rocks, clouds, flowers, etc. Doing so would speed up hit testing substantially due to the number of unclickable child objects the background layer would contain.

The EventSystem can also be customised to be more performant:

const app = new PIXI.Application({
/**
* by default we use `auto` for backwards compatibility.
* However `passive` is more performant and will be used by default in the future,
*/
eventMode: 'passive',
eventFeatures: {
move: true,
/** disables the global move events which can be very expensive in large scenes */
globalMove: false,
click: true,
wheel: true,
}
});
- - + + \ No newline at end of file diff --git a/guides/components/sprite-sheets.html b/guides/components/sprite-sheets.html index a9e550b56..e7a98a5d9 100644 --- a/guides/components/sprite-sheets.html +++ b/guides/components/sprite-sheets.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Spritesheets

Now that you understand basic sprites, it's time to talk about a better way to create them - the Spritesheet class.

A Spritesheet is a media format for more efficiently downloading and rendering Sprites. While somewhat more complex to create and use, they are a key tool in optimizing your project.

Anatomy of a Spritesheet​

The basic idea of a spritesheet is to pack a series of images together into a single image, track where each source image ends up, and use that combined image as a shared BaseTexture for the resulting Sprites.

The first step is to collect the images you want to combine. The sprite packer then collects the images, and creates a new combined image.

As this image is being created, the tool building it keeps track of the location of the rectangle where each source image is stored. It then writes out a JSON file with that information.

These two files, in combination, can be passed into a SpriteSheet constructor. The SpriteSheet object then parses the JSON, and creates a series of Texture objects, one for each source image, setting the source rectangle for each based on the JSON data. Each texture uses the same shared BaseTexture as its source.

Doubly Efficient​

SpriteSheets help your project in two ways.

First, by speeding up the loading process. While downloading a SpriteSheet's texture requires moving the same (or even slightly more!) number of bytes, they're grouped into a single file. This means that the user's browser can request and download far fewer files for the same number of Sprites. The number of files itself is a key driver of download speed, because each request requires a round-trip to the webserver, and browsers are limited to how many files they can download simultaneously. Converting a project from individual source images to shared sprite sheets can cut your download time in half, at no cost in quality.

Second, by improving batch rendering. WebGL rendering speed scales roughly with the number of draw calls made. Batching multiple Sprites, etc. into a single draw call is the main secret to how PixiJS can run so blazingly fast. Maximizing batching is a complex topic, but when multiple Sprites all share a common BaseTexture, it makes it more likely that they can be batched together and rendered in a single call.

Creating SpriteSheets​

You can use a 3rd party tool to assemble your sprite sheet files. Here are two that may fit your needs:

ShoeBox: ShoeBox is a free, Adobe AIR-based sprite packing utility that is great for small projects or learning how SpriteSheets work.

TexturePacker: TexturePacker is a more polished tool that supports advanced features and workflows. A free version is available which has all the necessary features for packing spritesheets for PixiJS. It's a good fit for larger projects and professional game development, or projects that need more complex tile mapping features.

Spritesheet data can also be created manually or programmatically, and supplied to a new AnimatedSprite. This may be an easier option if your sprites are already contained in a single image.

// Create object to store sprite sheet data
const atlasData = {
frames: {
enemy1: {
frame: { x: 0, y:0, w:32, h:32 },
sourceSize: { w: 32, h: 32 },
spriteSourceSize: { x: 0, y: 0, w: 32, h: 32 }
},
enemy2: {
frame: { x: 32, y:0, w:32, h:32 },
sourceSize: { w: 32, h: 32 },
spriteSourceSize: { x: 0, y: 0, w: 32, h: 32 }
},
},
meta: {
image: 'images/spritesheet.png',
format: 'RGBA8888',
size: { w: 128, h: 32 },
scale: 1
},
animations: {
enemy: ['enemy1','enemy2'] //array of frames by name
}
}


// Create the SpriteSheet from data and image
const spritesheet = new PIXI.Spritesheet(
PIXI.BaseTexture.from(atlasData.meta.image),
atlasData
);

// Generate all the Textures asynchronously
await spritesheet.parse();

// spritesheet is ready to use!
const anim = new PIXI.AnimatedSprite(spritesheet.animations.enemy);

// set the animation speed
anim.animationSpeed = 0.1666;
// play the animation on a loop
anim.play();
// add it to the stage to render
app.stage.addChild(anim);
- - + + \ No newline at end of file diff --git a/guides/components/sprites.html b/guides/components/sprites.html index 08110362a..c9dba168a 100644 --- a/guides/components/sprites.html +++ b/guides/components/sprites.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Sprites

Sprites are the simplest and most common renderable object in PixiJS. They represent a single image to be displayed on the screen. Each Sprite contains a Texture to be drawn, along with all the transformation and display state required to function in the scene graph.

Creating Sprites​

To create a Sprite, all you need is a Texture (check out the Texture guide). Load a PNG's URL using the PIXI.Loader class, then call PIXI.Sprite.from(url) and you're all set. As a convenience during prototyping, you can pass a non-loaded URL to from() and PixiJS will handle it, but your sprite will "pop in" after it loads if you don't pre-load your textures.

Check out the sprite example code.

Using Sprites​

In our DisplayObject guide, we learned about the DisplayObject class and the various properties it defines. Since Sprite objects are also display objects, you can move a sprite, rotate it, and update any other display property.

Alpha, Tint and Blend Modes​

Alpha is a standard display object property. You can use it to fade sprites into the scene by animating each sprite's alpha from 0.0 to 1.0 over a period of time.

Tinting allows you multiply the color value of every pixel by a single color. For example, if you had a dungeon game, you might show a character's poison status by setting obj.tint = 0x00FF00, which would give a green tint to the character.

Blend modes change how pixel colors are added to the screen when rendering. The three main modes are add, which adds each pixel's RGB channels to whatever is under your sprite (useful for glows and lighting), multiply which works like tint, but on a per-pixel basis, and screen, which overlays the pixels, brightening whatever is underneath them.

Scale vs Width & Height​

One common area of confusion when working with sprites lies in scaling and dimensions. The PIXI.DisplayObject class allows you to set the x and y scale for any object. Sprites, being DisplayObjects, also support scaling. In addition, however, Sprites support explicit width and height attributes that can be used to achieve the same effect, but are in pixels instead of a percentage. This works because a Sprite object owns a Texture, which has an explicit width and height. When you set a Sprite's width, internally PixiJS converts that width into a percentage of the underlying texture's width and updates the object's x-scale. So width and height are really just convenience methods for changing scale, based on pixel dimensions rather than percentages.

Pivot vs Anchor​

If you add a sprite to your stage and rotate it, it will by default rotate around the top-left corner of the image. In some cases, this is what you want. In many cases, however, what you want is for the sprite to rotate around the center of the image it contains, or around an arbitrary point.

There are two ways to achieve this: pivots and anchors

An object's pivot is an offset, expressed in pixels, from the top-left corner of the Sprite. It defaults to (0, 0). If you have a Sprite whose texture is 100px x 50px, and want to set the pivot point to the center of the image, you'd set your pivot to (50, 25) - half the width, and half the height. Note that pivots can be set outside of the image, meaning the pivot may be less than zero or greater than the width/height. This can be useful in setting up complex animation hierarchies, for example. Every DisplayObject has a pivot.

An anchor, in contrast, is only available for Sprites. Anchors are specified in percentages, from 0.0 to 1.0, in each dimension. To rotate around the center point of a texture using anchors, you'd set your Sprite's anchor to (0.5, 0.5) - 50% in width and height. While less common, anchors can also be outside the standard 0.0 - 1.0 range.

The nice thing about anchors is that they are resolution and dimension agnostic. If you set your Sprite to be anchored in the middle then later change the size of the texture, your object will still rotate correctly. If you had instead set a pivot using pixel-based calculations, changing the texture size would require changing your pivot point.

So, generally speaking, you'll want to use anchors when working with Sprites.

One final note: unlike CSS, where setting the transform-origin of the image doesn't move it, in PixiJS setting an anchor or pivot will move your object on the screen. In other words, setting an anchor or pivot affects not just the rotation origin, but also the position of the sprite relative to its parent.

- - + + \ No newline at end of file diff --git a/guides/components/text.html b/guides/components/text.html index 1f201142b..05d4f54c5 100644 --- a/guides/components/text.html +++ b/guides/components/text.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Text

Whether it's a high score or a diagram label, text is often the best way to convey information in your projects. Surprisingly, drawing text to the screen with WebGL is a very complex process - there's no built in support for it at all. One of the values PixiJS provides is in hiding this complexity to allow you to draw text in diverse styles, fonts and colors with a few lines of code. In addition, these bits of text are just as much scene objects as sprites - you can tint text, rotate it, alpha-blend it, and otherwise treat it like any other graphical object.

Let's dig into how this works.

There Are Two Kinds of Text​

Because of the challenges of working with text in WebGL, PixiJS provides two very different solutions. In this guide, we're going to go over both methods in some detail to help you make the right choice for your project's needs. Selecting the wrong text type can have a large negative impact on your project's performance and appearance.

The Text Object​

In order to draw text to the screen, you use a Text object. Under the hood, this class draws text to an off-screen buffer using the browser's normal text rendering, then uses that offscreen buffer as the source for drawing the text object. Effectively what this means is that whenever you create or change text, PixiJS creates a new rasterized image of that text, and then treats it like a sprite. This approach allows truly rich text display while keeping rendering speed high.

So when working with PIXI.Text objects, there are two sets of options - standard display object options like position, rotation, etc that work after the text is rasterized internally, and text style options that are used while rasterizing. Because text once rendered is basically just a sprite, there's no need to review the standard options. Instead, let's focus on how text is styled.

Check out the text example code.

Text Styles​

There are a lot of text style options available (see TextStyle), but they break down into 5 main groups:

Font: fontFamily to select the webfont to use, fontSize to specify the size of the text to draw, along with options for font weight, style and variant.

Appearance: Set the color with fill or add a stroke outline, including options for gradient fills.

Drop-Shadows: Set a drop-shadow with dropShadow, with a host of related options to specify offset, blur, opacity, etc.

Layout: Enable with wordWrap and wordWrapWidth, and then customize the lineHeight and align or letterSpacing

Utilities: Add padding or trim extra space to deal with funky font families if needed.

To interactively test out feature of Text Style, check out this tool.

Loading and Using Fonts​

In order for PixiJS to build a PIXI.Text object, you'll need to make sure that the font you want to use is loaded by the browser. Unfortunately, at the time of writing, the PIXI.Loader system does not support loading font files, so you'll need to use a 3rd party font loader to ensure that any custom web fonts you want to use are pre-loaded. It's not enough to add an @font-face declaration in your project's CSS because browsers will happily render text using a fallback font while your custom font loads.

Any javascript library that can load a web font will work, you just want something that will delay starting your project until the font has been fully loaded by the browser.

One such library is FontFaceObserver. Here's a simple example that shows how to use it to ensure the web font "Short Stack" is loaded before your app starts. First, we need a font-face declaration in CSS:

@font-face {
font-family: Short Stack;
src: url(short-stack.woff2) format('woff2'),
url(short-stack.woff) format('woff');
}

Now that the browser knows what our font is and how to find the source files, it's time to use the library to load them:

// Create the loader
let font = new FontFaceObserver('Short Stack', {});
// Start loading the font
font.load().then(() => {
// Successful load, start up your PixiJS app as usual
let app = new PIXI.Application({ width: 640, height: 360 });
document.body.appendChild(app.view);
// ... etc ...

}, () => {
// Failed load, log the error or display a message to the user
alert('Unable to load required font!');
});

Caveats and Gotchas​

While PixiJS does make working with text easy, there are a few things you need to watch out for.

First, changing an existing text string requires re-generating the internal render of that text, which is a slow operation that can impact performance if you change many text objects each frame. If your project requires lots of frequently changing text on the screen at once, consider using a PIXI.BitmapText object (explained below) which uses a fixed bitmap font that doesn't require re-generation when text changes.

Second, be careful when scaling text. Setting a text object's scale to > 1.0 will result in blurry/pixely display, because the text is not re-rendered at the higher resolution needed to look sharp - it's still the same resolution it was when generated. To deal with this, you can render at a higher initial size and down-scale, instead. This will use more memory, but will allow your text to always look clear and crisp.

BitmapText​

In addition to the standard PIXI.Text approach to adding text to your project, PixiJS also supports bitmap fonts. Bitmap fonts are very different from TrueType or other general purpose fonts, in that they consist of a single image containing pre-rendered versions of every letter you want to use. When drawing text with a bitmap font, PixiJS doesn't need to render the font glyphs into a temporary buffer - it can simply copy and stamp out each character of a string from the master font image.

The primary advantage of this approach is speed - changing text frequently is much cheaper and rendering each additional piece of text is much faster due to the shared source texture.

Check out the bitmap text example code.

BitmapFont​

  • 3rd party solutions
  • BitmapFont.from auto-generation

Selecting the Right Approach​

PIXI.Text

  • Static text
  • Small number of text objects
  • High fidelity text rendering (kerning e.g.)
  • Text layout (line & letter spacing)

PIXI.BitmapText

  • Dynamic text
  • Large number of text objects
  • Lower memory
- - + + \ No newline at end of file diff --git a/guides/components/textures.html b/guides/components/textures.html index 35789ee8f..a8113a69d 100644 --- a/guides/components/textures.html +++ b/guides/components/textures.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Textures

We're slowly working our way down from the high level to the low. We've talked about the scene graph, and in general about display objects that live in it. We're about to get to sprites and other simple display objects. But before we do, we need to talk about textures.

In PixiJS, textures are one of the core resources used by display objects. A texture, broadly speaking, represents a source of pixels to be used to fill in an area on the screen. The simplest example is a sprite - a rectangle that is completely filled with a single texture. But things can get much more complex.

Life-cycle of a Texture​

Let's examine how textures really work, by following the path your image data travels on its way to the screen.

Here's the flow we're going to follow: Source Image > Loader > BaseTexture > Texture

Serving the Image​

To start with, you have the image you want to display. The first step is to make it available on your server. This may seem obvious, but if you're coming to PixiJS from other game development systems, it's worth remembering that everything has to be loaded over the network. If you're developing locally, please be aware that you must use a webserver to test, or your images won't load due to how browsers treat local file security.

Loading the Image​

To work with the image, the first step is to pull the image file from your webserver into the user's web browser. To do this, we can use PIXI.Texture.from(), which works for quick demos, but in production you'll use the Loader class. A Loader wraps and manages using an <IMG> element to tell the browser to fetch the image, and then notifies you when that has been completed. This process is asynchronous - you request the load, then time passes, then an event fires to let you know the load is completed. We'll go into the loader in a lot more depth in a later guide.

BaseTextures Own the Data​

Once the Loader has done its work, the loaded <IMG> element contains the pixel data we need. But to use it to render something, PixiJS has to take that raw image file and upload it to the GPU. This brings us to the real workhorse of the texture system - the BaseTexture class. Each BaseTexture manages a single pixel source - usually an image, but can also be a Canvas or Video element. BaseTextures allow PixiJS to convert the image to pixels and use those pixels in rendering. In addition, it also contains settings that control how the texture data is rendered, such as the wrap mode (for UV coordinates outside the 0.0-1.0 range) and scale mode (used when scaling a texture).

BaseTextures are automatically cached, so that calling PIXI.Texture.from() repeatedly for the same URL returns the same BaseTexture each time. Destroying a BaseTexture frees the image data associated with it.

Textures are a View on BaseTextures​

So finally, we get to the PIXI.Texture class itself! At this point, you may be wondering what the Texture object does. After all, the BaseTexture manages the pixels and render settings. And the answer is, it doesn't do very much. Textures are light-weight views on an underlying BaseTexture. Their main attribute is the source rectangle within the BaseTexture from which to pull.

If all PixiJS drew were sprites, that would be pretty redundant. But consider SpriteSheets. A SpriteSheet is a single image that contains multiple sprite images arranged within. In a Spritesheet object, a single BaseTexture is referenced by a set of Textures, one for each source image in the original sprite sheet. By sharing a single BaseTexture, the browser only downloads one file, and our batching renderer can blaze through drawing sprites since they all share the same underlying pixel data. The SpriteSheet's Textures pull out just the rectangle of pixels needed by each sprite.

That is why we have both Textures and BaseTextures - to allow sprite sheets, animations, button states, etc to be loaded as a single image, while only displaying the part of the master image that is needed.

Loading Textures​

We will discuss resource loading in a later guide, but one of the most common issues new users face when building a PixiJS project is how best to load their textures. Using PIXI.Texture.from() as we do in our demo snippets will work, but will result in pop-in as each texture is loaded while your objects are already being rendered in the scene graph.

Instead, here's a quick cheat sheet of one good solution:

  1. Show a loading image
  2. Create a Loader
  3. Run all texture-based objects, add their textures to the loader
  4. Start the loader, and optionally update your loading image based on progress callbacks
  5. On loader completion, run all objects and use PIXI.Texture.from() to pull the loaded textures out of the texture cache
  6. Prepare your textures (optional - see below)
  7. Hide your loading image, start rendering your scene graph

Using this workflow ensures that your textures are pre-loaded, to prevent pop-in, and is relatively easy to code.

Regarding preparing textures: Even after you've loaded your textures, the images still need to be pushed to the GPU and decoded. Doing this for a large number of source images can be slow and cause lag spikes when your project first loads. To solve this, you can use the Prepare plugin, which allows you to pre-load textures in a final step before displaying your project.

Unloading Textures​

Once you're done with a Texture, you may wish to free up the memory (both WebGL-managed buffers and browser-based) that it uses. To do so, you should call destroy() on the BaseTexture that owns the data. Remember that Textures don't manage pixel data!

This is a particularly good idea for short-lived imagery like cut-scenes that are large and will only be used once. If you want to remove all textures and wipe the slate clean, you can use the PIXI.utils.destroyTextureCache() function.

Beyond Images​

As we alluded to above, you can make a Texture out of more than just images:

Video: Pass an HTML5 <VIDEO> element to PIXI.BaseTexture.from() to allow you to display video in your project. Since it's a texture, you can tint it, add filters, or even apply it to custom geometry.

Canvas: Similarly, you can wrap an HTML5 <CANVAS> element in a BaseTexture to let you use canvas's drawing methods to dynamically create a texture.

SVG: Pass in an <SVG> element or load a .svg URL, and PixiJS will attempt to rasterize it. For highly network-constrained projects, this can allow for beautiful graphics with minimal network load times.

RenderTexture: A more advanced (but very powerful!) feature is to build a Texture from a RenderTexture. This can allow for building complex geometry using a Geometry object, then baking that geometry down to a simple texture.

Each of these texture sources has caveats and nuances that we can't cover in this guide, but they should give you a feeling for the power of PixiJS's texture system.

Check out the render texture example code.

- - + + \ No newline at end of file diff --git a/guides/migrations/upgrading.html b/guides/migrations/upgrading.html index 56dc487b5..36ebe28a4 100644 --- a/guides/migrations/upgrading.html +++ b/guides/migrations/upgrading.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Upgrading PixiJS

PixiJS uses a lot of peerDependencies internally to define the relationship between packages. This has created unpredictable errors because of how npm resolves peers when bumping/upgrading (e.g., #8382, #8268, #8144, #7209).

When you're upgrading using npm please completely uninstall instead of just changing the version in your package.json:

npm uninstall pixi.js
npm install pixi.js

If you are using any PixiJS community plugins, please make sure to uninstall those too:

npm uninstall pixi.js @pixi/particle-emitter pixi-sound
npm install pixi.js @pixi/particle-emitter pixi-sound
- - + + \ No newline at end of file diff --git a/guides/migrations/v5.html b/guides/migrations/v5.html index 7d1a193de..a18c867e3 100644 --- a/guides/migrations/v5.html +++ b/guides/migrations/v5.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

v5 Migration Guide

This document is useful for developers who are attempting to upgrading from v4 to v5. This includes gotchas and important context for understanding why your v4 code made need some subtle changes. In general, we've try to be as backward-compatible in v5 with the use of deprecation warnings in the console. There are, however, sometimes when changes are too substantial and require some additional help.

🚧 API Changes​

Making WebGL First-Class​

PixiJS v5 has made WebGL the first-class renderer and made CanvasRenderer to be second-class. Functionally, there's not much that changed from v4, but there are a bunch of subtle internal naming changes which could trip-up some developers upgrading to v5. For instance:

  • WebGLRenderer becomes Renderer
  • renderWebGL becomes render (in DisplayObject, Sprite, Container, etc)
  • _renderWebGL becomes _render (in DisplayObject, Container, etc)

If you created a plugin or project that previously used render on a Container (see #5510), this will probably cause your project to not render correctly. Please consider renaming your user-defined render to something else. In most other cases, you'll get a deprecation warning trying to invoke WebGL-related classes or methods, e.g., new PIXI.WebGLRenderer().

Renderer Parameters​

Specifying options as a third parameter in Renderer constructor is officially dropped (same with PIXI.Application, PIXI.autoDetectRenderer & PIXI.CanvasRenderer). In v4 we supported two function signatures, but in v5 we dropped width, height, options signature. Please add width and height to options.

const renderer = new PIXI.Renderer(800, 600, { transparent: true }); // bad
const renderer = new PIXI.Renderer({ width: 800, height: 600, transparent: true }); // good
  • Note: Adding transparent: true in Renderer or Application constructor options might help with strange artifacts on some devices, but it might reduce FPS. It's much better than preserveDrawingBuffer: true.

  • If you need the v4 default behavior of resizing the canvas using css pixels, add autoDensity: true to the options.

Not everything went to params. To enable WebGL1 even if WebGL2 is available, use

PIXI.settings.PREFER_ENV = PIXI.ENV.WEBGL;

Mesh, Plane, Rope​

PixiJS v5 introduces a new class called PIXI.Mesh. This allows overriding the default shader and the ability to add more attributes to geometry. For example, you can add colors to vertices.

The old v4 Mesh class has moved from PIXI.mesh.Mesh to PIXI.SimpleMesh, it extends PIXI.Mesh.

PIXI.mesh.Rope, PIXI.mesh.Plane, PIXI.mesh.NineSlicePlane have moved to PIXI.SimpleRope, PIXI.SimplePlane and PIXI.NineSlicePlane respectively.

If you used custom shaders or generated meshes in v4, you might be impacted by these changes in v5.

PIXI.SimpleMesh fields vertices, uvs, indices are wrapped inside mesh.geometry attribute buffers. For example, this is how access to buffers provided through mesh.uvBuffer property:

get uvBuffer()
{
return this.geometry.buffers[1];
}

The indices property shortcut is also missing, but you can access the data inside mesh.geometry.indexBuffer.

You can override buffer data, and notify it that data was changed, in this case buffer will be uploaded to GPU lazily. Previously in v4 mesh had several flags that indicated which attributes have to be updated and their names confused people.

Graphics Holes​

Drawing holes in Graphics was very limited in v4. This only supported non-Shape drawing, like using lineTo, bezierCurveTo, etc. In v5, we improved the hole API by supporting shapes. Unfortunately, there's no deprecation strategy to support the v4 API. For instance, in v4:

const graphic = new PIXI.Graphics()
.beginFill(0xff0000)
.moveTo(0, 0)
.lineTo(100, 0)
.lineTo(100, 100)
.lineTo(0, 100)
.moveTo(10, 10)
.lineTo(90, 10)
.lineTo(90, 90)
.lineTo(10, 90)
.addHole();

Live example in v4.x

In v5, Graphics has simplified and the API changed from addHole to beginHole and endHole.

const graphic = new PIXI.Graphics()
.beginFill(0xff0000)
.drawRect(0, 0, 100, 100)
.beginHole()
.drawCircle(50, 50, 30)
.endHole();

Live example in dev

Filter Padding​

In v4 filters had a default padding of 4 and in v5 this has been changed to a default of 0. This can cause some filters to look broken when used. To fix this issue simply add some padding to the filters you create.

// Glow filter from https://github.com/pixijs/pixi-filters
const filter = new PIXI.filters.GlowFilter();
filter.padding = 4;

Some filters, like BlurFilter, automatically calculate the padding so changes may not be necessary.

Filter Default Vertex Shader​

We reorganized all uniforms dedicated to coordinate system transforms, and renamed them. If your filter doesn't work anymore, check if you use default vertex shader. In that case, you can use old v4 vertex shader code.

All changes are explained in [[Creating Filters|v5-Creating-filters]]

Enable Mipmapping for RenderTexture​

Previously, you may have ended up with code like this in v4 (specifically if you saw Ivan's comment/JSFiddle):

const renderer = PIXI.autoDetectRenderer();
renderer.bindTexture(baseRenderTex, false, 0);
const glTex = baseRenderTex._glTextures[renderer.CONTEXT_UID];
glTex.enableMipmap(); // this is what actually generates mipmaps in WebGL
glTex.enableLinearScaling(); // this is what tells WebGL to USE those mipmaps

In v5, this code is no longer needed.

BaseTexture Resources​

One of the newest features in v5 is that we decoupled all the asset-specific functionality from BaseTexture. We created a new system called "resources" and each BaseTexture now has a resource that wraps some specific asset type. For instance: VideoResource, SVGResource, ImageResource, CanvasResource. In the future, we hope to be able to add other resource types. If there were asset-specific methods or properties being called before, these will probably be on baseTexture.resource.

Also, we removed all of the from* methods from BaseTexture, so you just can call BaseTexture.from and pass in whatever resource. Please see docs for more information about from.

const canvas = document.createElement('canvas');
const baseTexture = PIXI.BaseTexture.from(canvas);

That API also allows to use pure WebGL and 2d context calls, see the gradient example.

BaseTexture.source​

Has been moved to baseTexture.resource.source, moved into resource corresponding to the baseTexture. baseTexture.resource does not exist for RenderTexture, and source does not exist for resources that dont have source.

Graphics Interaction​

If you use transparent interactive graphics trick, make sure that you use specify alpha=0 for all element, not for its parts. How PixiJS deals with shapes that have alpha=0 is considered undefined behaviour. We might change it back, but we have no guarantees about it.

graphics.beginFill(0xffffff, 0.0); //bad
graphics.alpha = 0; //good

πŸ“¦ Publishing Changes​

Canvas Becomes Legacy​

Since WebGL and WebGL2 are now first-class, we have removed the canvas-based fallback from the default pixi.js package. If you need CanvasRenderer, you should switch to use pixi.js-legacy instead.

import * as PIXI from "pixi.js";
// Will NOT return CanvasRenderer because canvas-based
// functionality was removed from "pixi.js"
const renderer = PIXI.autoDetectRenderer(); // return PIXI.Renderer or throws error

Instead, use the legacy bundle to have access to the canvas rendering.

import * as PIXI from "pixi.js-legacy";
const renderer = PIXI.autoDetectRenderer(); // returns PIXI.Renderer or PIXI.CanvasRenderer

Bundling Changes​

If you're using Rollup, Parcel or another bundler to add PixiJS into your project there are a few subtle changes when moving to v5. Namely, the global PIXI object is no longer created automatically. This was removed from bundling for two purpose: 1) to improve tree-shaking for bundlers, and 2) for security purpose by protecting PIXI.

This is no longer a valid way to import:

import "pixi.js";
const renderer = PIXI.autoDetectRenderer(); // INVALID! No more global.PIXI!

Instead, you should import as a namespace or individual elements:

import * as PIXI from "pixi.js";
const renderer = PIXI.autoDetectRenderer();

// or even better:
import { autoDetectRenderer } from "pixi.js";
const renderer = autoDetectRenderer();

Lastly, some 3rd-party plugins maybe expecting window.PIXI, so you might have to explicitly expose the global like this, however this is not recommended.

import * as PIXI from 'pixi.js';
window.PIXI = PIXI; // some bundlers might prefer "global" instead of "window"

Webpack​

When Webpack and 3rd-party plugins, like pixi-spine, you might have difficulties building the global PIXI object resulting in a runtime error ReferenceError: PIXI is not defined. Usually this can be resolved by using Webpack shimming globals.

For instance, here's your import code:

import * as PIXI from 'pixi.js';
import 'pixi-spine'; // or other plugins that need global 'PIXI' to be defined first

Add a plugins section to your webpack.config.js to let know Webpack that the global PIXI variable make reference to pixi.js module. For instance:

const webpack = require('webpack');

module.exports = {
entry: '...',
output: {
...
},
plugins: [
new webpack.ProvidePlugin({
PIXI: 'pixi.js'
})
]
}
- - + + \ No newline at end of file diff --git a/guides/migrations/v6.html b/guides/migrations/v6.html index d46bb9517..85a8f8b02 100644 --- a/guides/migrations/v6.html +++ b/guides/migrations/v6.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

v6 Migration Guide

PixiJS 6 comes with few surface-level breaking changes. This document is not complete.

Typings​

If you're using TypeScript, make sure the follow is added to your tsconfig.json:

{
"compilerOptions": {
"moduleResolution": "node",
// Required for importing 3rd-party dependencies like EventEmitter3
"esModuleInterop": true
}
}

Mesh Internals​

If you ever overrode Mesh._renderDefault to take into account more uniforms like this: v5 Reference

if (shader.program.uniformData.translationMatrix)
{
shader.uniforms.translationMatrix = this.transform.worldTransform.toArray(true);
}

Remove the if, leave the contents, otherwise you might not get correct sync uniform for translationMatrix, or even worse - get null pointer. v6 Reference.

shader.uniforms.translationMatrix = this.transform.worldTransform.toArray(true);
- - + + \ No newline at end of file diff --git a/guides/migrations/v7.html b/guides/migrations/v7.html index f10ca92bc..cd0cca8ab 100644 --- a/guides/migrations/v7.html +++ b/guides/migrations/v7.html @@ -9,15 +9,15 @@ - - + +
Skip to main content

v7 Migration Guide

First and foremost, PixiJS v7 is a modernization release that reflects changes in the ecosystem since PixiJS was first published over six years ago. Browsers have gotten better, but PixiJS hasn't really taken advantage of some of the new features like fetch, Workers, modern JavaScript language syntax. This release keeps intact much of the high-level DisplayObjects (e.g., Sprite, Graphics, Mesh, etc). Aside from a few things, this release should be medium to low impact for most users.

πŸ‘‹ Dropping Internet Explorer​

Microsoft officially ended support for IE, so we decided to follow. It simplified many of our modernizations since IE was an outliner from Safari/Chrome/Firefox/Edge and mobile browsers. If you need support for IE, please consider using Babel or some other trans-piling tool.

πŸ—‘οΈ Remove Polyfills​

We removed the bundled polyfills such as requestAnimationFrame and Promise. These things are widely available in browsers now. If projects require them, developers should include the polyfills they need for backward-compatibility. Please check out polyfill.io.

πŸ’¬ Output ES2020 (modules) and ES2017 (browser)​

PixiJS historically only published ES5 (no classes!). A new output standard allows us to use ES2017 features that previously we couldn't use (e.g., String.prototype.startsWith, Array.prototype.contains, etc). Not only does it make the code more readable, but the output looks nicer as well. For modules we are outputting ES2020, which contains syntax like nullish coalescing (??). If your project needs to have backward compatibility, you can use Babel to transpile or polyfill.

🐭 Replaces InteractionManager with EventSystem​

InteractionManager was getting complex and difficult to maintain. Few core team members understood the code. We decided to move to FederatedEvents, which is concise, better aligned with the DOM, and supports things like bubbling. The good news, is you shouldn't have to change code, as it is largely a drop-in replacement. We added addEventListener and removeEventListener APIs to DisplayObject which have the same DOM signature and can be used instead of on and off.

πŸ“¦ Replaces Loader with Assets​

Similarly, we've been wanting to remove the Loader because of its legacy approach (e.g., XMLHttpRequest). This was forked from resource-loader that has been with PixiJS for a long time. The original design inspiration for Loader was driven largely by Flash/AS3, which now seem dated. There were a few things we wanted out of a new iteration: static loading, loading with Workers, background loading, Promise-based, fewer layers of caching. Here's a quick example of how this will change:

import { Loader, Sprite } from 'pixi.js';

const loader = new Loader();
loader.add('background', 'path/to/assets/background.jpg');
loader.load((loader, resources) => {
const image = Sprite.from(resources.background.texture);
});

Now becomes:

import { Assets, Sprite } from 'pixi.js';

const texture = await Assets.load('path/to/assets/background.jpg');
const image = Sprite.from(texture);

🀝 Abandon the use of peerDependencies​

PixiJS heavily uses peerDependencies in the package.json within each package. This design choice has plagued Pixi with many issues. It's a breaking change to remove, so now was a good time. We have decided to completely remove peerDependencies, instead opting for nothing. This should make installing and upgrading pixi.js much easier. We are working on updating our tooling for composing a custom version with packages. Edit: As of 7.2.0, we have reverted this change to keep compatibility with some module-based CDNs.

πŸ‘‚ Other Changes​

  • Browser builds have been removed for all packages, with the exception of pixi.js and pixi.js-legacy.
  • Removes Graphics.nextRoundedRectBehavior this is now the default behavior
  • Removes Text.nextLineHeightBehavior this is now the default behavior
  • AbstractBatchRenderer and BatchPluginFactory has been removed. Either extends BatchRenderer or use setShaderGenerator on the default BatchRenderer, (e.g., renderer.plugins.batch)
  • BatchRenderer is installed by default in @pixi/core, no need to Renderer.registerPlugin('batch', BatchRenderer) anymore

Exports from @pixi/core​

The @pixi/core package now depends and re-exports the following packages.

  • @pixi/math
  • @pixi/contants
  • @pixi/utils
  • @pixi/runner
  • @pixi/settings
  • @pixi/ticker

While some packages will still work when installed directly, others will not, since by installing them alongside @pixi/core you will be effectively importing two copies of the same code.Β  This will lead to errors where changing settings from @pixi/settings doesn't do anything since @pixi/core has its own version of that package. It is recommended that you uninstall these from your project and use @pixi/core instead.

import { Rectangle } from '@pixi/math';
import { settings } from '@pixi/settings';
import { ALPHA_MODES } from '@pixi/constants';
import { string2hex } from '@pixi/utils';

Now becomes:

import { Rectangle, settings, ALPHA_MODES, utils } from '@pixi/core';

const { string2hex } = utils;

Extract and Prepare Systems​

Extract and prepare plugins have been converted to Renderer "systems".

renderer.plugins.extract
renderer.plugins.prepare

Now becomes:

renderer.extract
renderer.prepare

Extensions Self-Install​

Extensions now install themselves, so you should only need to import the class in order to use. For example, in v6:

import { AccessibilityManager } from '@pixi/accessibility';
import { extensions } from '@pixi/core';
extensions.add(AccessibilityManager);

Now becomes:

import '@pixi/accessibility';

Using hitTest with Events​

With the new events system, one of the common APIs that changed is `hitTest.

import {Application} from 'pixi.js';

const app = new Application();
app.renderer.plugins.interaction.hitTest({x, y});

Now becomes:

import {Application, EventBoundary} from 'pixi.js';

const app = new Application();
const boundary = new EventBoundary(app.stage);
boundary.hitTest(x, y);

New Async Extract Methods​

The following methods are now async and return a Promise.

  • CanvasExtract.base64()
  • CanvasExtract.image()
  • Extract.base64()
  • Extract.image()
import {Application, EventBoundary} from 'pixi.js';

const app = new Application();
const dataUri = app.renderer.extract.base64();

Now becomes:

import {Application, EventBoundary} from 'pixi.js';

const app = new Application();
const dataUri = await app.renderer.extract.base64();

Interactive Move Events​

Interaction events in PixiJS now behave like the DOM in v7. This was intentional to align around behavior that would be familiar with developers, but obviously impacts the behavior with pointermove, mousemove, and touchmove.

Like the DOM, move events are now local. This means that if you are outside the bounds of the object, you will not receive a move event. Generally, you should consider adding move events to the stage or parent instead of the DisplayObject itself.

Working example: https://jsfiddle.net/bigtimebuddy/spnv4wm6/

Interactive Property Handlers are Removed​

Property-based handlers were removed from events. This was a feature of the old InteractionManager. For instance:

sprite.pointertap = () => {
// handler the pointertap
};

Now becomes:

sprite.on('pointertap', () => {
// handler the pointertap
});

Property buttonMode has been removed​

The property buttonMode was a convenience for toggling the cursor property between pointer and null. It has now been removed.

sprite.buttonMode = true;

Now becomes:

sprite.cursor = 'pointer';

If you would like to re-add this functionality, you can patch DisplayObject's prototype:

import { DisplayObject } from 'pixi.js';

Object.defineProperty(DisplayObject.prototype, 'buttonMode', {
get() { return this.cursor === 'pointer'; },
set(value) { this.cursor = value ? 'pointer' : null; },
});

☝️ Suggestions for Upgrading​

If you're planning on transitioning your code from v6, it would be helpful to implement some of the more dramatic changes in v6 first before upgrading to v7:

import { InteractionManager, extensions, Application } from 'pixi.js';
import { EventSystem } from '@pixi/events';

// Uninstall interaction
extensions.remove(InteractionManager);

// Create the renderer or application
const app = new Application();

// Install events
app.renderer.addSystem(EventSystem, 'events');
  • Switch to the Assets package by installing @pixi/assets and swapping for Loader. For more information on implementing Assets, see this guide.
  • Set Graphics.nextRoundedRectBehavior = true, this uses arcs for corner radius instead of bezier curves.
  • Set Text.nextLineHeightBehavior = true, this defaults to the DOM-like behavior for line height.

πŸ—οΈ Plugin Supported​

PluginCompatiblePlugin Version Supported
PixiJS Soundβœ…v5.0.0+
PixiJS HTMLTextβœ…v3.0.0+
PixiJS Filtersβœ…v5.0.0+
PixiJS GIFβœ…v2.0.0+
PixiJS Spineβœ…v4.0.0+
PixiJS Particle Emitterβœ…v5.0.8+
PixiJS Animate❌
PixiJS Layersβœ…v2.0.0+
PixiJS Lightsβœ…v4.0.0+
PixiJS Graphics Smoothβœ…v1.0.0+
PixiJS Tilemap❌
- - + + \ No newline at end of file diff --git a/guides/production/performance-tips.html b/guides/production/performance-tips.html index bcbf5ea22..a167d35d1 100644 --- a/guides/production/performance-tips.html +++ b/guides/production/performance-tips.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

Performance Tips

General​

  • Only optimize when you need to! PixiJS can handle a fair amount of content off the bat
  • Be mindful of the complexity of your scene. The more objects you add the slower things will end up
  • Order can help, for example sprite / graphic / sprite / graphic is slower than sprite / sprite / graphic / graphic
  • Some older mobile devices run things a little slower. Passing in the option useContextAlpha: false and antialias: false to the Renderer or Application can help with performance
  • Culling is disabled by default as it's often better to do this at an application level or set objects to be cullable = true. If you are GPU-bound it will improve performance; if you are CPU-bound it will degrade performance

Sprites​

  • Use Spritesheets where possible to minimize total textures
  • Sprites can be batched with up to 16 different textures (dependent on hardware)
  • This is the fastest way to render content
  • On older devices use smaller low resolution textures
  • Add the extention @0.5x.png to the 50% scale-down spritesheet so PixiJS will visually-double them automatically
  • Draw order can be important

Graphics​

  • Graphics fastest when they are not modified constantly (not including the transform, alpha or tint!)
  • Graphics objects are batched when under a certain size (100 points or smaller)
  • Small Graphics objects are as fast as Sprites (rectangles, triangles)
  • Using 100s of graphics complex objects can be slow, in this instance use sprites (you can create a texture)

Texture​

  • Textures are automatically managed by a Texture Garbage Collector
  • You can also manage them yourself by using texture.destroy()
  • If you plan to destroyed more than one at once add a random delay to their destruction to remove freezing
  • Delay texture destroy if you plan to delete a lot of textures yourself

Text​

  • Avoid changing it on every frame as this can be expensive (each time it draws to a canvas and then uploads to GPU)
  • Bitmap Text gives much better performance for dynamically changing text
  • Text resolution matches the renderer resolution, to decreases resolution yourself by setting resolution property, which can consume less memory

Masks​

  • Masks can be expensive if too many are used: e.g., 100s of masks will really slow things down
  • Axis-aligned Rectangle masks are the fastest (as the use scissor rect)
  • Graphics masks are second fastest (as they use the stencil buffer)
  • Sprite masks are the third fastest (they uses filters). They are really expensive. Do not use too many in your scene!

Filters​

  • Release memory: displayObject.filters = null
  • If you know the size of them: displayObject.filterArea = new PIXI.Rectangle(x,y,w,h). This can speeds things up as it means the object does not need to be measured
  • Filters are expensive, using too many will start to slow things down!

BlendModes​

  • Different blend modes will cause batches to break (de-optimize)
  • SceenSprite / NormalSprite / SceenSprite / NormalSprite would be 4 draw calls
  • SceenSprite / SceenSprite / NormalSprite / NormalSprite would be 2 draw calls

CacheAsBitmap​

  • Setting to true turns an object into a Sprite by caching it as a Texture
  • It has a one time cost when it is activated as it draws the object to a Texture
  • Avoid changing this on elements frequently
  • If you have a complicated item that has lots of sprites / filters AND does not move then this will speed up rendering!
  • Do not need apply to sprites as they are already Textures
  • Do not use if the object where its children are constantly changing as this will slow things down

Events​

  • If an object has no interactive children use interactiveChildren = false. The event system will then be able to avoid crawling through the object
  • Setting hitArea = new PIXI.Rectangle(x,y,w,h) as above should stop the event system from crawling through the object
- - + + \ No newline at end of file diff --git a/index.html b/index.html index 52a495a41..fd4e80e33 100644 --- a/index.html +++ b/index.html @@ -9,13 +9,13 @@ - - + +
Skip to main content

The HTML5 Creation Engine

Create beautiful digital content with the fastest, most flexible 2D WebGL renderer.

A mature solution for hundreds of global brands

- - + + \ No newline at end of file diff --git a/playground.html b/playground.html index afd0f3438..40e53a8ee 100644 --- a/playground.html +++ b/playground.html @@ -9,13 +9,13 @@ - - + +
-
Skip to main content
Loading...
- - +
Skip to main content
+ + \ No newline at end of file diff --git a/search-index-blog.json b/search-index-blog.json index b26ce4b23..dcb2deef4 100644 --- a/search-index-blog.json +++ b/search-index-blog.json @@ -1 +1 @@ -[{"documents":[{"i":1,"t":"","u":"/blog/archive","b":["Blog"]},{"i":2,"t":"Introducing the PixiJS Universe!","u":"/blog/pixi-universe","b":["Blog"]}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/1",[]],["t/2",[0,0.492,1,0.492,2,0.492]]],"invertedIndex":[["introducing",{"_index":0,"t":{"2":{"position":[[0,11]]}}}],["pixijs",{"_index":1,"t":{"2":{"position":[[16,6]]}}}],["universe",{"_index":2,"t":{"2":{"position":[[23,9]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":4,"t":"Phase 1​","u":"/blog/pixi-universe","h":"#phase-1","p":2},{"i":6,"t":"PixiJS Website​","u":"/blog/pixi-universe","h":"#pixijs-website","p":2},{"i":8,"t":"PixiJS React​","u":"/blog/pixi-universe","h":"#pixijs-react","p":2},{"i":10,"t":"PixiJS Open Games​","u":"/blog/pixi-universe","h":"#pixijs-open-games","p":2},{"i":12,"t":"PixiJS UI & PixiJS Layout​","u":"/blog/pixi-universe","h":"#pixijs-ui--pixijs-layout","p":2},{"i":14,"t":"AssetPack​","u":"/blog/pixi-universe","h":"#assetpack","p":2},{"i":16,"t":"Phase 2​","u":"/blog/pixi-universe","h":"#phase-2","p":2},{"i":18,"t":"PixiJS JumpStart​","u":"/blog/pixi-universe","h":"#pixijs-jumpstart","p":2},{"i":20,"t":"PixiJS Dev Tools​","u":"/blog/pixi-universe","h":"#pixijs-dev-tools","p":2},{"i":22,"t":"Phase 3​","u":"/blog/pixi-universe","h":"#phase-3","p":2},{"i":24,"t":"Comet​","u":"/blog/pixi-universe","h":"#comet","p":2},{"i":26,"t":"PixiJS v8​","u":"/blog/pixi-universe","h":"#pixijs-v8","p":2},{"i":28,"t":"Phase 4​","u":"/blog/pixi-universe","h":"#phase-4","p":2},{"i":30,"t":"PixiJS 3D​","u":"/blog/pixi-universe","h":"#pixijs-3d","p":2},{"i":32,"t":"PixiJS Game Engine​","u":"/blog/pixi-universe","h":"#pixijs-game-engine","p":2},{"i":34,"t":"Conclusion","u":"/blog/pixi-universe","h":"#conclusion","p":2}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/4",[0,1.377,1,2.516]],["t/6",[2,0.603,3,2.516]],["t/8",[2,0.603,4,2.516]],["t/10",[2,0.505,5,2.108,6,2.108]],["t/12",[2,0.588,7,1.591,8,1.591,9,1.591]],["t/14",[10,3.121]],["t/16",[0,1.377,11,2.516]],["t/18",[2,0.603,12,2.516]],["t/20",[2,0.505,13,2.108,14,2.108]],["t/22",[0,1.377,15,2.516]],["t/24",[16,3.121]],["t/26",[2,0.603,17,2.516]],["t/28",[0,1.377,18,2.516]],["t/30",[2,0.603,19,2.516]],["t/32",[2,0.505,20,2.108,21,2.108]],["t/34",[22,3.121]]],"invertedIndex":[["",{"_index":8,"t":{"12":{"position":[[10,1]]}}}],["1",{"_index":1,"t":{"4":{"position":[[6,2]]}}}],["2",{"_index":11,"t":{"16":{"position":[[6,2]]}}}],["3",{"_index":15,"t":{"22":{"position":[[6,2]]}}}],["3d",{"_index":19,"t":{"30":{"position":[[7,3]]}}}],["4",{"_index":18,"t":{"28":{"position":[[6,2]]}}}],["assetpack",{"_index":10,"t":{"14":{"position":[[0,10]]}}}],["comet",{"_index":16,"t":{"24":{"position":[[0,6]]}}}],["conclusion",{"_index":22,"t":{"34":{"position":[[0,10]]}}}],["dev",{"_index":13,"t":{"20":{"position":[[7,3]]}}}],["engine",{"_index":21,"t":{"32":{"position":[[12,7]]}}}],["game",{"_index":20,"t":{"32":{"position":[[7,4]]}}}],["games",{"_index":6,"t":{"10":{"position":[[12,6]]}}}],["jumpstart",{"_index":12,"t":{"18":{"position":[[7,10]]}}}],["layout",{"_index":9,"t":{"12":{"position":[[19,7]]}}}],["open",{"_index":5,"t":{"10":{"position":[[7,4]]}}}],["phase",{"_index":0,"t":{"4":{"position":[[0,5]]},"16":{"position":[[0,5]]},"22":{"position":[[0,5]]},"28":{"position":[[0,5]]}}}],["pixijs",{"_index":2,"t":{"6":{"position":[[0,6]]},"8":{"position":[[0,6]]},"10":{"position":[[0,6]]},"12":{"position":[[0,6],[12,6]]},"18":{"position":[[0,6]]},"20":{"position":[[0,6]]},"26":{"position":[[0,6]]},"30":{"position":[[0,6]]},"32":{"position":[[0,6]]}}}],["react",{"_index":4,"t":{"8":{"position":[[7,6]]}}}],["tools",{"_index":14,"t":{"20":{"position":[[11,6]]}}}],["ui",{"_index":7,"t":{"12":{"position":[[7,2]]}}}],["v8",{"_index":17,"t":{"26":{"position":[[7,3]]}}}],["website",{"_index":3,"t":{"6":{"position":[[7,8]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":3,"t":"We are excited to announce the launch of the PixiJS Universe, an initiative to further enhance the capabilities of PixiJS and make it even easier for developers to create amazing games and apps. For years, PixiJS has been the most popular 2D renderer for the web, but it was always \"just a rendering engine.\" The community has created many great tools to help developers build games and applications with PixiJS, but we lacked the manpower to maintain and improve these tools, causing fragmentation in the community. To address this, Playco has assembled a dedicated team of developers who will work on PixiJS full-time. Over the next 12 months, we have more than ten projects planned, and in this announcement, we would like to introduce some of them.","s":"Introducing the PixiJS Universe!","u":"/blog/pixi-universe","h":"","p":2},{"i":5,"t":"We have several new projects in the works, and we are releasing them in four phases over the year. We are currently nearing the end of phase 1, which has seen the release of several exciting new tools and libraries for PixiJS:","s":"Phase 1​","u":"/blog/pixi-universe","h":"#phase-1","p":2},{"i":7,"t":"First up we are excited to announce that we will be releasing a beta version of our new website for PixiJS. The current documentation has suffered from long-term organic growth over the years with little structure and as such much of the PixiJS documentation is fragmented across multiple sites. This new website will put everything you need in one place and be easily searchable. We are also planning on improving the documentation and adding more guides and examples, as well as considering translating the documentation into other languages. If you have any ideas on how to improve the site please let us know! Github Repo","s":"PixiJS Website​","u":"/blog/pixi-universe","h":"#pixijs-website","p":2},{"i":9,"t":"Next up is PixiJS React. A library that provides a way to use PixiJS in React applications. PixiJS React is a continuation of the react-pixi library created by Patrick Brouwer, which has been widely used by the PixiJS community in React projects. PixiJS has taken over maintenance of the library and is dedicated to improving the library's performance, documentation, and support for new features. The library provides an easy-to-use interface that makes it easy for developers to create React applications with PixiJS. The library integrates all the core features of PixiJS and allows you to create custom components for 3rd party libraries. Github Repo","s":"PixiJS React​","u":"/blog/pixi-universe","h":"#pixijs-react","p":2},{"i":11,"t":"We have now released a new repository called \"PixiJS Open Games\". This is a collection of open-source games that showcases how to use PixiJS to create games and is released under the MIT license. The purpose of these games is to provide professional examples of how to use PixiJS for game development. The first two games released are a match-3 game and a bubble shooter game. These games not only demonstrate how to use PixiJS for game development but also how to use other libraries such as PixiJS UI and AssetPack. We also have more games planned for release, which will demonstrate how to use PixiJS with other libraries such as PixiJS Layout and PixiJS React. PixiJS Open Games will hopefully be a valuable resource for game developers who want to learn how to use PixiJS for game development and will also be a great source of inspiration for developers looking to create their own games using PixiJS. The project is available on GitHub for anyone who wants to explore the code or contribute to the project. Github Repo Play Puzzling Potions Play Bubbo Bubbo","s":"PixiJS Open Games​","u":"/blog/pixi-universe","h":"#pixijs-open-games","p":2},{"i":13,"t":"PixiJS UI is a new library for developers who want to create beautiful and functional user interfaces with PixiJS. The library includes a range of components such as buttons, checkboxes, sliders, text inputs, scroll views, lists, radio buttons, and progress bars, which can be easily integrated into your game. These components are highly customizable, allowing you to tweak the appearance and behaviour of each element to fit your game's specific needs. PixiJS UI has been used in all of the open-source games, so feel free to check these out for real-world examples. PixiJS UI Github Repo PixiJS Layout is another library that can make your life as a developer easier. This library enables you to create responsive layouts using PixiJS, which means you can design interfaces that adapt to different screen sizes and aspect ratios. PixiJS Layout works well with PixiJS UI, allowing you to combine both libraries to create complex, dynamic interfaces that respond to user input and screen changes. With PixiJS Layout, you have the flexibility to create resizable layouts that can be adjusted to fit any screen size or device. This means that your game's interface can look great on everything from small mobile devices to large desktop displays. PixiJS Layout is still under development but will be ready in the next few weeks PixiJS Layout Github Repo","s":"PixiJS UI & PixiJS Layout​","u":"/blog/pixi-universe","h":"#pixijs-ui--pixijs-layout","p":2},{"i":15,"t":"Finally, for phase 1 we are announcing AssetPack. Asset management is an important part of developing applications, and the new AssetPack library aims to make this process easier. AssetPack is a framework-agnostic library that can be used with any framework, including PixiJS, ThreeJS, and Phaser. It provides a range of features that help developers manage their assets efficiently. The key feature of AssetPack is the ability to automatically generate new assets on the fly. For example, you can provide it with a folder of individual images and it will generate sprite sheets, which can significantly improve the performance of your application. It also provides plugins to generate mipmaps, convert fonts to different formats, convert audio to different formats, compress images, and minify JSON. These features help developers optimize their assets for faster loading times, better performance, and improved user experience. We will soon be releasing a new blog post that provides more details on how to use it. With its many useful features and framework-agnostic design. However, if you want to get stuck in today then check out the GitHub repo Github Repo","s":"AssetPack​","u":"/blog/pixi-universe","h":"#assetpack","p":2},{"i":17,"t":"Phase 2 will begin shortly and aims to make it easier to work with PixiJS applications.","s":"Phase 2​","u":"/blog/pixi-universe","h":"#phase-2","p":2},{"i":19,"t":"Jumpstart is a new CLI tool being developed by the PixiJS team to simplify the process of creating new PixiJS applications. With this tool, developers will no longer need to set up complicated tooling or worry about setting up different bundlers and frameworks. The tool will handle all the setup for you, allowing you to focus on building your application. Jumpstart will be similar to other CLI tools such as Create-React-App or Create-Vue, which have become popular in the front-end development community. The tool will provide templates for different bundlers and frameworks, including webpack, parcel, rollup, and more. This will make it easy for developers to get started with PixiJS regardless of their preferred tools and workflows. With Jumpstart, you'll be able to create a new PixiJS application in just a few minutes and start building right away.","s":"PixiJS JumpStart​","u":"/blog/pixi-universe","h":"#pixijs-jumpstart","p":2},{"i":21,"t":"PixiJS dev tools will be a browser extension that is planned to be released soon to help developers debug their PixiJS applications. This tool aims to make it easier for developers to understand the inner workings of PixiJS, optimize their code, and follow best practices. It is designed to help developers diagnose performance issues and visualize the resources that their applications are consuming. One of the key features of the PixiJS Dev Tools is its ability to help developers understand the complex process of batching in PixiJS. Batching is a technique used to optimize the rendering of multiple objects in the same draw call. This process can be complicated to understand, especially for new developers. PixiJS Dev Tools aims to make it easier to debug and optimize the rendering of objects. Overall, PixiJS Dev Tools will be a powerful tool that will make it easier for developers to build high-performance, visually stunning applications with PixiJS. By providing developers with a deeper understanding of the inner workings of PixiJS, this toolset will help developers optimize their code and create more efficient and engaging applications.","s":"PixiJS Dev Tools​","u":"/blog/pixi-universe","h":"#pixijs-dev-tools","p":2},{"i":23,"t":"Phase 3 is where our long-term projects start to be revealed. These are major changes to the PixiJS ecosystem that we are incredibly excited about","s":"Phase 3​","u":"/blog/pixi-universe","h":"#phase-3","p":2},{"i":25,"t":"Comet will be a new editor that aims to make it easier than ever to design and create games and applications with PixiJS. With its intuitive and user-friendly interface, the editor is designed to appeal to both designers and developers, allowing both groups to collaborate and work more efficiently. One of the standout features of Comet is the visual interface it provides for creating and editing scenes, sprites, animations, and more. This means that designers can create and edit complex scenes without ever having to write a single line of code. The editor provides a range of tools and options for creating sprites, animations, and other game elements, making it easy to get started with creating a game or application. In addition, developers will appreciate the runtime player feature, which allows them to easily recreate scenes in their own applications. This makes it easy to test and iterate on designs, ensuring that the final product is both functional and visually appealing. And with multi-user, real-time collaboration, Comet makes it easy for teams to work together, sharing assets and ideas and creating high-quality games and applications in record time.","s":"Comet​","u":"/blog/pixi-universe","h":"#comet","p":2},{"i":27,"t":"PixiJS v8 will be the next major release that represents a complete rewrite of PixiJS from the ground up. The development team has leveraged their extensive experience over many years to make improvements and optimizations to the core PixiJS engine. The new version of PixiJS is designed to be faster and more efficient, providing a significant improvement in rendering performance compared to v7 (currently sitting at x2) One of the most exciting features of PixiJS v8 is the inclusion of first-class support for WebGPU, which is a new graphics API that is being developed by major browser vendors. This will enable developers to take advantage of advanced GPU capabilities, which can significantly improve the performance of graphics-intensive applications. In addition to WebGPU support, the PixiJS team has also made a significant effort to optimize the engine for the canvas renderer, which will be available as a first-class option for developers looking to reduce bundle size. Overall, PixiJS v8 represents a major leap forward for us, developers can expect a much faster and more efficient engine that is better suited for building complex, graphics-intensive applications.","s":"PixiJS v8​","u":"/blog/pixi-universe","h":"#pixijs-v8","p":2},{"i":29,"t":"Phase 4 represents a leap into new territory for PixiJS as we look to delve deeper into areas outside of strictly 2D rendering.","s":"Phase 4​","u":"/blog/pixi-universe","h":"#phase-4","p":2},{"i":31,"t":"For years, Goodboy (now Playco) has had an internal 3D engine called Odie that was built on top of PixiJS. We are now planning to open-source it, which is exciting for those of you who want to seamlessly mix 2D and 3D content in your games or applications. With PixiJS 3D, you will no longer need to switch between engines or frameworks to incorporate 3D elements in your project. Although this is a long-term project, the team is making progress and plans to share more information later in the year. This release will greatly expand PixiJS's capabilities and give developers even more flexibility when building their applications.","s":"PixiJS 3D​","u":"/blog/pixi-universe","h":"#pixijs-3d","p":2},{"i":33,"t":"Finally, we are thrilled to announce that we will be working on a new library called PixiJS Game Engine. This game engine aims to provide everything you would expect from a 2D/3D game engine and will offer many features and tools to make game development easier and more efficient. Some of the features of PixiJS Game Engine will include support for physics engines, audio, input handling, asset loading and management, state management, animation and tweening, and more.","s":"PixiJS Game Engine​","u":"/blog/pixi-universe","h":"#pixijs-game-engine","p":2},{"i":35,"t":"We've shared a lot of exciting news about new projects and updates coming to the PixiJS community. There's a lot to look forward to in the upcoming months. We want to extend our sincere thanks to the PixiJS community, its contributors, and Playco for making all of this possible. We're excited to see what you'll create with these new tools and resources, and we look forward to continuing to support and grow the PixiJS ecosystem. Be sure to check out the GitHub links mentioned above and stay tuned for more updates on the PixiJS Universe!","s":"Conclusion","u":"/blog/pixi-universe","h":"#conclusion","p":2}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/3",[0,1.419,1,1.676,2,2.544,3,0.05,4,2.021,5,2.544,6,2.544,7,2.544,8,1.676,9,0.654,10,2.021,11,0.896,12,0.857,13,0.768,14,2.544,15,1.656,16,2.544,17,1.419,18,2.021,19,1.676,20,2.021,21,2.544,22,2.544,23,1.419,24,1.419,25,1.937,26,2.021,27,1.419,28,1.676,29,1.223,30,1.676,31,2.021,32,0.654,33,2.544,34,2.544,35,2.544,36,1.419,37,2.544,38,2.544,39,2.544,40,1.676,41,2.544,42,2.021,43,1.419,44,1.676,45,2.544,46,2.021,47,1.214,48,1.419,49,2.544,50,2.021,51,0.459,52,2.544,53,1.214,54,1.676,55,2.544,56,2.544]],["t/5",[3,0.039,29,1.217,47,1.648,53,1.648,57,4.233,58,0.49,59,2.743,60,2.276,61,3.453,62,3.453,63,2.743,64,2.743,65,3.453,66,2.743,67,1.648,68,2.743,69,3.453,70,1.927,71,1.927,72,1.927]],["t/7",[0,1.509,1,1.783,3,0.041,17,1.509,36,1.509,47,1.291,51,0.488,58,0.419,60,1.783,73,1.783,74,1.509,75,2.706,76,2.149,77,3.62,78,2.706,79,3.46,80,2.706,81,1.783,82,1.783,83,2.706,84,2.706,85,2.706,86,2.706,87,1.509,88,2.149,89,2.706,90,2.149,91,2.706,92,2.706,93,1.783,94,1.783,95,1.509,96,2.706,97,1.783,98,2.706,99,2.149,100,2.149,101,2.706,102,2.706,103,1.783,104,2.149,105,2.706,106,2.706,107,2.706,108,2.149,109,2.706,110,2.706,111,2.706,112,1.109,113,1.291]],["t/9",[3,0.053,12,0.555,13,1.053,25,1.428,26,2.033,32,0.897,42,2.033,47,1.221,48,1.428,53,1.221,58,0.296,72,1.428,74,1.428,79,2.033,100,2.033,112,1.049,113,1.221,114,3.029,115,2.485,116,2.297,117,2.559,118,2.297,119,2.559,120,2.559,121,2.559,122,2.559,123,2.559,124,1.428,125,2.559,126,2.559,127,2.559,128,1.428,129,1.428,130,1.429,131,2.297,132,1.686,133,2.033,134,2.559,135,2.033,136,2.033,137,2.559,138,2.033,139,2.559,140,2.559]],["t/11",[3,0.054,12,0.652,13,0.907,15,2.207,28,1.366,51,0.374,54,1.366,58,0.24,70,1.156,72,1.677,73,1.366,87,1.677,103,1.366,112,1.232,113,0.989,114,1.366,118,2.83,141,1.646,142,2.809,143,2.072,144,1.366,145,2.33,146,2.072,147,1.98,148,2.072,149,1.646,150,2.072,151,2.072,152,2.072,153,1.156,154,2.072,155,2.396,156,1.687,157,2.072,158,2.072,159,1.646,160,2.072,161,2.072,162,3.005,163,1.646,164,1.646,165,1.646,166,2.072,167,2.072,168,2.072,169,0.989,170,2.072,171,2.072,172,1.646,173,1.646,174,2.387,175,1.646,176,2.072,177,2.072,178,1.366,179,2.072,180,3.005,181,2.072,182,2.072,183,3.005]],["t/13",[3,0.052,9,0.451,11,0.618,12,0.381,13,1.08,15,0.838,28,1.157,48,0.979,58,0.203,59,1.394,72,0.979,87,0.979,93,1.157,97,1.157,103,1.157,104,1.394,112,1.089,113,1.268,115,1.995,124,0.979,132,1.157,138,2.111,145,1.157,147,1.157,149,1.394,155,0.979,156,0.838,163,2.841,165,3.052,169,0.838,173,1.394,184,1.755,185,1.394,186,1.751,187,3.207,188,1.755,189,1.157,190,2.657,191,1.755,192,1.755,193,1.755,194,1.755,195,1.755,196,1.755,197,1.755,198,1.755,199,1.394,200,1.755,201,1.755,202,1.755,203,1.755,204,1.751,205,1.755,206,1.755,207,1.755,208,1.755,209,1.755,210,2.657,211,2.657,212,1.755,213,1.755,214,1.755,215,1.755,216,1.157,217,1.157,218,1.394,219,1.755,220,1.755,221,1.755,222,1.755,223,1.755,224,1.755,225,2.657,226,2.111,227,1.157,228,1.755,229,1.157,230,3.207,231,1.755,232,1.755,233,1.755,234,1.755,235,1.394,236,0.979,237,1.755,238,1.755,239,1.394,240,1.394,241,1.394,242,1.755,243,1.755,244,1.394,245,1.755,246,1.157,247,1.755,248,1.755,249,1.755,250,1.755,251,1.755,252,1.755,253,1.755,254,1.755,255,1.394,256,1.755]],["t/15",[3,0.023,9,0.518,11,0.709,12,0.638,27,1.123,30,1.939,32,0.518,36,1.123,51,0.363,58,0.403,60,1.327,67,0.961,68,1.599,112,1.206,113,1.404,115,1.642,116,2.292,118,1.327,124,1.123,128,1.642,130,1.426,153,1.123,164,3.039,169,0.961,186,1.327,189,1.327,216,1.327,217,1.327,227,1.327,229,1.939,257,1.599,258,2.013,259,1.599,260,1.599,261,2.013,262,2.013,263,2.013,264,0.961,265,1.327,266,3.478,267,2.943,268,1.599,269,2.013,270,2.013,271,2.013,272,2.763,273,1.599,274,1.599,275,1.599,276,1.599,277,2.013,278,3.478,279,2.013,280,2.013,281,2.013,282,2.013,283,2.943,284,2.013,285,2.013,286,1.599,287,1.327,288,2.013,289,2.013,290,2.943,291,2.013,292,2.943,293,1.599,294,2.013,295,2.013,296,2.013,297,1.327,298,1.599,299,1.599,300,2.013,301,1.599,302,2.013,303,1.599,304,1.599,305,2.013,306,2.013,307,2.013,308,2.013,309,2.013,310,2.013]],["t/17",[3,0.043,9,0.984,11,1.348,32,0.984,44,2.522,67,1.826,264,1.826,311,3.826,312,3.826,313,3.826]],["t/19",[3,0.046,9,0.594,12,0.704,13,1.134,18,1.834,25,1.288,29,1.144,32,0.594,43,1.288,51,0.416,58,0.435,66,1.834,74,1.811,87,1.288,94,1.521,114,1.521,131,1.521,153,1.288,156,1.101,204,1.521,229,2.139,255,1.834,265,1.521,268,1.834,287,2.139,314,3.755,315,3.246,316,3.236,317,1.834,318,1.834,319,2.309,320,1.834,321,1.834,322,2.309,323,1.834,324,2.309,325,2.309,326,2.309,327,3.246,328,2.579,329,2.309,330,2.309,331,2.309,332,2.139,333,2.309,334,2.309,335,2.309,336,2.309,337,2.309,338,2.309,339,2.309,340,2.309,341,2.309,342,1.834,343,2.309,344,2.309,345,2.309,346,1.834,347,2.309,348,1.834,349,2.309,350,2.309]],["t/21",[3,0.052,9,0.894,11,1.225,12,0.976,13,0.608,23,1.642,29,1.348,30,2.521,31,1.599,32,0.984,51,0.363,54,1.327,58,0.233,90,1.599,95,1.123,124,1.123,128,1.642,130,0.825,142,1.599,178,1.939,236,1.123,264,1.404,265,1.939,274,1.599,276,1.599,297,2.521,304,1.599,316,2.338,323,1.599,351,3.826,352,1.599,353,2.013,354,2.943,355,3.478,356,2.943,357,2.943,358,2.013,359,2.013,360,2.013,361,1.327,362,2.013,363,2.013,364,2.013,365,1.599,366,2.013,367,2.943,368,2.013,369,2.943,370,2.013,371,2.013,372,2.013,373,2.013,374,1.599,375,2.013,376,1.599,377,1.599,378,2.013,379,1.599,380,1.599,381,2.013,382,2.013,383,1.327,384,2.013]],["t/23",[0,2.079,3,0.042,53,1.778,67,1.778,81,2.455,82,2.455,159,2.96,240,2.96,348,2.96,385,3.726,386,2.96,387,2.96,388,3.726]],["t/25",[3,0.023,9,0.511,11,0.699,12,0.632,13,0.879,15,1.39,29,0.699,32,0.887,44,1.919,46,2.314,51,0.525,58,0.23,95,1.107,97,1.308,108,1.577,116,1.919,130,0.814,131,2.273,132,1.919,133,2.314,136,1.577,155,1.625,178,1.308,185,1.577,186,1.919,189,1.308,204,1.308,218,1.577,226,1.577,227,1.308,235,2.741,236,1.107,264,0.947,272,1.577,273,1.577,275,1.577,287,1.308,320,3.019,342,1.577,361,1.308,376,1.577,377,1.577,389,3.45,390,3.45,391,1.985,392,1.985,393,1.985,394,2.912,395,1.985,396,1.985,397,1.985,398,1.985,399,1.985,400,3.45,401,2.912,402,2.912,403,1.985,404,1.985,405,1.985,406,1.985,407,1.985,408,1.985,409,1.985,410,1.577,411,1.308,412,1.577,413,1.985,414,1.985,415,1.985,416,1.985,417,1.985,418,1.985,419,1.985,420,1.985,421,1.985,422,1.985,423,1.985,424,1.985,425,1.985,426,1.985,427,1.985,428,1.985,429,1.985,430,1.985]],["t/27",[3,0.049,8,1.296,9,0.506,12,0.744,17,1.097,20,1.562,23,1.097,24,1.914,27,1.097,32,0.744,36,1.097,43,1.614,47,0.938,48,1.097,51,0.522,58,0.335,64,1.562,70,1.097,71,1.097,73,1.906,74,1.097,76,1.562,88,1.562,95,1.097,128,1.614,129,1.614,130,0.806,135,1.562,156,0.938,172,1.562,175,1.562,236,1.097,244,1.562,286,1.562,297,1.296,298,2.298,301,1.562,303,1.562,317,1.562,318,1.562,332,1.296,352,1.562,361,1.296,374,1.562,379,1.562,383,1.906,386,2.726,412,1.562,431,3.431,432,2.298,433,1.967,434,1.967,435,1.967,436,1.967,437,1.967,438,1.967,439,1.967,440,2.893,441,1.967,442,1.967,443,1.967,444,1.967,445,1.967,446,1.967,447,2.893,448,2.893,449,3.431,450,1.967,451,1.967,452,1.967,453,1.967,454,1.967,455,1.967,456,1.967,457,2.893,458,1.967,459,1.967,460,1.967,461,1.967,462,1.967,463,1.967,464,1.562,465,1.562,466,1.562,467,1.967]],["t/29",[3,0.042,19,2.413,23,2.043,58,0.424,67,1.747,246,2.413,380,2.909,432,2.909,464,2.909,468,3.662,469,3.662,470,3.662,471,3.662,472,3.662,473,3.662]],["t/31",[3,0.04,8,1.707,10,2.058,12,0.562,15,1.236,17,1.445,19,1.707,24,1.445,32,0.904,40,1.707,43,1.445,51,0.634,63,2.058,70,1.445,71,1.445,81,1.707,82,1.707,94,1.707,99,2.058,141,2.792,144,1.707,145,1.707,147,1.707,169,1.236,174,2.792,199,2.058,241,2.058,321,2.058,328,2.058,332,1.707,410,2.058,411,1.707,474,2.59,475,2.59,476,4.279,477,2.59,478,2.59,479,2.59,480,2.59,481,2.59,482,2.59,483,2.59,484,2.59,485,2.59,486,2.058,487,2.59,488,2.59,489,2.59,490,2.59,491,2.59,492,2.59,493,2.59,494,2.59,495,2.59,496,2.59]],["t/33",[1,1.879,3,0.042,9,0.733,11,1.004,24,2.481,27,1.59,29,1.004,51,0.676,58,0.33,93,1.879,115,1.59,129,1.59,130,1.536,144,1.879,153,1.59,155,2.577,156,1.36,239,2.265,257,2.265,259,2.265,260,2.977,264,1.36,293,2.265,299,2.265,383,1.879,466,2.265,486,2.265,497,2.851,498,2.851,499,2.851,500,2.851,501,2.851,502,2.851,503,2.851,504,2.851,505,2.851,506,2.851]],["t/35",[0,1.519,3,0.05,4,2.163,13,0.822,25,2.028,29,0.959,40,1.794,50,2.163,51,0.491,53,1.299,58,0.421,71,1.519,112,1.116,129,1.519,169,1.299,216,1.794,217,1.794,246,2.396,346,2.163,365,2.163,387,2.163,411,1.794,465,2.888,507,2.723,508,2.723,509,3.635,510,2.723,511,3.635,512,2.723,513,2.723,514,2.723,515,2.723,516,2.723,517,2.723,518,2.723,519,2.723,520,2.723,521,2.723,522,2.723,523,2.723,524,2.723,525,2.723,526,2.723,527,2.723,528,2.723,529,2.723]]],"invertedIndex":[["1",{"_index":68,"t":{"5":{"position":[[141,2]]},"15":{"position":[[19,1]]}}}],["12",{"_index":49,"t":{"3":{"position":[[635,2]]}}}],["2",{"_index":311,"t":{"17":{"position":[[6,1]]}}}],["2d",{"_index":19,"t":{"3":{"position":[[239,2]]},"29":{"position":[[114,2]]},"31":{"position":[[208,2]]}}}],["2d/3d",{"_index":499,"t":{"33":{"position":[[173,5]]}}}],["3",{"_index":159,"t":{"11":{"position":[[343,1]]},"23":{"position":[[6,1]]}}}],["3d",{"_index":476,"t":{"31":{"position":[[52,2],[215,2],[269,3],[352,2]]}}}],["3rd",{"_index":139,"t":{"9":{"position":[[622,3]]}}}],["4",{"_index":468,"t":{"29":{"position":[[6,1]]}}}],["ability",{"_index":276,"t":{"15":{"position":[[420,7]]},"21":{"position":[[457,7]]}}}],["above",{"_index":527,"t":{"35":{"position":[[480,5]]}}}],["adapt",{"_index":228,"t":{"13":{"position":[[782,5]]}}}],["adding",{"_index":101,"t":{"7":{"position":[[437,6]]}}}],["addition",{"_index":412,"t":{"25":{"position":[[729,9]]},"27":{"position":[[763,8]]}}}],["address",{"_index":39,"t":{"3":{"position":[[520,7]]}}}],["adjusted",{"_index":243,"t":{"13":{"position":[[1083,8]]}}}],["advanced",{"_index":455,"t":{"27":{"position":[[649,8]]}}}],["advantage",{"_index":454,"t":{"27":{"position":[[636,9]]}}}],["agnostic",{"_index":267,"t":{"15":{"position":[[205,8],[1061,8]]}}}],["aims",{"_index":264,"t":{"15":{"position":[[146,4]]},"17":{"position":[[31,4]]},"21":{"position":[[143,4],[731,4]]},"25":{"position":[[32,4]]},"33":{"position":[[122,4]]}}}],["allowing",{"_index":204,"t":{"13":{"position":[[353,8],[874,8]]},"19":{"position":[[306,8]]},"25":{"position":[[237,8]]}}}],["allows",{"_index":136,"t":{"9":{"position":[[579,6]]},"25":{"position":[[800,6]]}}}],["although",{"_index":488,"t":{"31":{"position":[[381,8]]}}}],["always",{"_index":22,"t":{"3":{"position":[[275,6]]}}}],["amazing",{"_index":14,"t":{"3":{"position":[[171,7]]}}}],["animation",{"_index":505,"t":{"33":{"position":[[438,9]]}}}],["animations",{"_index":402,"t":{"25":{"position":[[416,11],[622,11]]}}}],["announce",{"_index":1,"t":{"3":{"position":[[18,8]]},"7":{"position":[[27,8]]},"33":{"position":[[28,8]]}}}],["announcement",{"_index":55,"t":{"3":{"position":[[698,13]]}}}],["announcing",{"_index":258,"t":{"15":{"position":[[28,10]]}}}],["another",{"_index":220,"t":{"13":{"position":[[608,7]]}}}],["anyone",{"_index":176,"t":{"11":{"position":[[947,6]]}}}],["api",{"_index":450,"t":{"27":{"position":[[546,3]]}}}],["app",{"_index":334,"t":{"19":{"position":[[424,3]]}}}],["appeal",{"_index":393,"t":{"25":{"position":[[196,6]]}}}],["appealing",{"_index":423,"t":{"25":{"position":[[980,10]]}}}],["appearance",{"_index":206,"t":{"13":{"position":[[379,10]]}}}],["application",{"_index":287,"t":{"15":{"position":[[636,12]]},"19":{"position":[[345,12],[795,11]]},"25":{"position":[[713,12]]}}}],["applications",{"_index":32,"t":{"3":{"position":[[387,12]]},"9":{"position":[[78,13],[494,12]]},"15":{"position":[[102,13]]},"17":{"position":[[74,13]]},"19":{"position":[[110,13]]},"21":{"position":[[119,13],[374,12],[937,12],[1141,13]]},"25":{"position":[[96,12],[851,13],[1146,12]]},"27":{"position":[[746,13],[1168,13]]},"31":{"position":[[243,13],[619,13]]}}}],["appreciate",{"_index":413,"t":{"25":{"position":[[755,10]]}}}],["apps",{"_index":16,"t":{"3":{"position":[[189,5]]}}}],["areas",{"_index":471,"t":{"29":{"position":[[88,5]]}}}],["aspect",{"_index":232,"t":{"13":{"position":[[818,6]]}}}],["assembled",{"_index":41,"t":{"3":{"position":[[545,9]]}}}],["asset",{"_index":259,"t":{"15":{"position":[[50,5]]},"33":{"position":[[390,5]]}}}],["assetpack",{"_index":164,"t":{"11":{"position":[[507,10]]},"15":{"position":[[39,10],[128,9],[180,9],[403,9]]}}}],["assets",{"_index":272,"t":{"15":{"position":[[364,6],[458,6],[847,6]]},"25":{"position":[[1093,6]]}}}],["audio",{"_index":293,"t":{"15":{"position":[[739,5]]},"33":{"position":[[367,6]]}}}],["automatically",{"_index":277,"t":{"15":{"position":[[431,13]]}}}],["available",{"_index":175,"t":{"11":{"position":[[923,9]]},"27":{"position":[[904,9]]}}}],["away",{"_index":350,"t":{"19":{"position":[[854,5]]}}}],["bars",{"_index":200,"t":{"13":{"position":[[258,5]]}}}],["batching",{"_index":367,"t":{"21":{"position":[[518,8],[538,8]]}}}],["beautiful",{"_index":184,"t":{"13":{"position":[[61,9]]}}}],["become",{"_index":336,"t":{"19":{"position":[[454,6]]}}}],["begin",{"_index":312,"t":{"17":{"position":[[13,5]]}}}],["behaviour",{"_index":207,"t":{"13":{"position":[[394,9]]}}}],["being",{"_index":317,"t":{"19":{"position":[[28,5]]},"27":{"position":[[558,5]]}}}],["best",{"_index":359,"t":{"21":{"position":[[257,4]]}}}],["beta",{"_index":75,"t":{"7":{"position":[[64,4]]}}}],["better",{"_index":301,"t":{"15":{"position":[[880,6]]},"27":{"position":[[1113,6]]}}}],["between",{"_index":485,"t":{"31":{"position":[[307,7]]}}}],["blog",{"_index":305,"t":{"15":{"position":[[962,4]]}}}],["both",{"_index":235,"t":{"13":{"position":[[898,4]]},"25":{"position":[[206,4],[246,4],[951,4]]}}}],["brouwer",{"_index":122,"t":{"9":{"position":[[168,8]]}}}],["browser",{"_index":352,"t":{"21":{"position":[[27,7]]},"27":{"position":[[583,7]]}}}],["bubble",{"_index":160,"t":{"11":{"position":[[356,6]]}}}],["bubbo",{"_index":183,"t":{"11":{"position":[[1053,5],[1059,5]]}}}],["build",{"_index":31,"t":{"3":{"position":[[371,5]]},"21":{"position":[[895,5]]}}}],["building",{"_index":332,"t":{"19":{"position":[[331,8],[839,8]]},"27":{"position":[[1131,8]]},"31":{"position":[[604,8]]}}}],["built",{"_index":478,"t":{"31":{"position":[[83,5]]}}}],["bundle",{"_index":463,"t":{"27":{"position":[[971,6]]}}}],["bundlers",{"_index":327,"t":{"19":{"position":[[237,8],[555,8]]}}}],["buttons",{"_index":190,"t":{"13":{"position":[[166,8],[236,8]]}}}],["call",{"_index":372,"t":{"21":{"position":[[630,5]]}}}],["called",{"_index":144,"t":{"11":{"position":[[38,6]]},"31":{"position":[[62,6]]},"33":{"position":[[78,6]]}}}],["canvas",{"_index":460,"t":{"27":{"position":[[873,6]]}}}],["capabilities",{"_index":8,"t":{"3":{"position":[[99,12]]},"27":{"position":[[662,13]]},"31":{"position":[[544,12]]}}}],["causing",{"_index":37,"t":{"3":{"position":[[477,7]]}}}],["changes",{"_index":240,"t":{"13":{"position":[[989,8]]},"23":{"position":[[78,7]]}}}],["check",{"_index":216,"t":{"13":{"position":[[528,5]]},"15":{"position":[[1126,5]]},"35":{"position":[[443,5]]}}}],["checkboxes",{"_index":191,"t":{"13":{"position":[[175,11]]}}}],["class",{"_index":447,"t":{"27":{"position":[[496,5],[925,5]]}}}],["cli",{"_index":315,"t":{"19":{"position":[[19,3],[393,3]]}}}],["code",{"_index":178,"t":{"11":{"position":[[979,4]]},"21":{"position":[[240,5],[1097,4]]},"25":{"position":[[545,5]]}}}],["collaborate",{"_index":396,"t":{"25":{"position":[[261,11]]}}}],["collaboration",{"_index":425,"t":{"25":{"position":[[1022,14]]}}}],["collection",{"_index":146,"t":{"11":{"position":[[76,10]]}}}],["combine",{"_index":234,"t":{"13":{"position":[[890,7]]}}}],["comet",{"_index":389,"t":{"25":{"position":[[0,5],[332,5],[1037,5]]}}}],["coming",{"_index":512,"t":{"35":{"position":[[67,6]]}}}],["community",{"_index":25,"t":{"3":{"position":[[313,9],[506,10]]},"9":{"position":[[218,9]]},"19":{"position":[[498,10]]},"35":{"position":[[88,10],[207,10]]}}}],["compared",{"_index":442,"t":{"27":{"position":[[382,8]]}}}],["complete",{"_index":433,"t":{"27":{"position":[[59,8]]}}}],["complex",{"_index":236,"t":{"13":{"position":[[923,8]]},"21":{"position":[[499,7]]},"25":{"position":[[484,7]]},"27":{"position":[[1140,8]]}}}],["complicated",{"_index":323,"t":{"19":{"position":[[181,11]]},"21":{"position":[[656,11]]}}}],["components",{"_index":138,"t":{"9":{"position":[[607,10]]},"13":{"position":[[147,10],[317,10]]}}}],["compress",{"_index":294,"t":{"15":{"position":[[767,8]]}}}],["considering",{"_index":105,"t":{"7":{"position":[[481,11]]}}}],["consuming",{"_index":366,"t":{"21":{"position":[[391,10]]}}}],["content",{"_index":483,"t":{"31":{"position":[[218,7]]}}}],["continuation",{"_index":119,"t":{"9":{"position":[[110,12]]}}}],["continuing",{"_index":522,"t":{"35":{"position":[[379,10]]}}}],["contribute",{"_index":179,"t":{"11":{"position":[[987,10]]}}}],["contributors",{"_index":518,"t":{"35":{"position":[[222,13]]}}}],["convert",{"_index":290,"t":{"15":{"position":[[695,7],[731,7]]}}}],["core",{"_index":135,"t":{"9":{"position":[[551,4]]},"27":{"position":[[230,4]]}}}],["create",{"_index":13,"t":{"3":{"position":[[164,6]]},"9":{"position":[[481,6],[593,6]]},"11":{"position":[[144,6],[871,6]]},"13":{"position":[[54,6],[699,6],[916,6],[1046,6]]},"19":{"position":[[411,6],[431,6],[775,6]]},"21":{"position":[[1106,6]]},"25":{"position":[[79,6],[468,6]]},"35":{"position":[[313,6]]}}}],["created",{"_index":26,"t":{"3":{"position":[[327,7]]},"9":{"position":[[149,7]]}}}],["creating",{"_index":320,"t":{"19":{"position":[[90,8]]},"25":{"position":[[378,8],[604,8],[694,8],[1114,8]]}}}],["current",{"_index":78,"t":{"7":{"position":[[112,7]]}}}],["currently",{"_index":64,"t":{"5":{"position":[[106,9]]},"27":{"position":[[397,10]]}}}],["custom",{"_index":137,"t":{"9":{"position":[[600,6]]}}}],["customizable",{"_index":203,"t":{"13":{"position":[[339,13]]}}}],["debug",{"_index":354,"t":{"21":{"position":[[100,5],[757,5]]}}}],["dedicated",{"_index":42,"t":{"3":{"position":[[557,9]]},"9":{"position":[[303,9]]}}}],["deeper",{"_index":380,"t":{"21":{"position":[[994,6]]},"29":{"position":[[76,6]]}}}],["delve",{"_index":470,"t":{"29":{"position":[[70,5]]}}}],["demonstrate",{"_index":162,"t":{"11":{"position":[[398,11],[574,11]]}}}],["design",{"_index":227,"t":{"13":{"position":[[759,6]]},"15":{"position":[[1070,7]]},"25":{"position":[[68,6]]}}}],["designed",{"_index":361,"t":{"21":{"position":[[279,8]]},"25":{"position":[[184,8]]},"27":{"position":[[279,8]]}}}],["designers",{"_index":394,"t":{"25":{"position":[[211,9],[454,9]]}}}],["designs",{"_index":419,"t":{"25":{"position":[[907,8]]}}}],["desktop",{"_index":251,"t":{"13":{"position":[[1228,7]]}}}],["details",{"_index":307,"t":{"15":{"position":[[991,7]]}}}],["dev",{"_index":351,"t":{"21":{"position":[[7,3],[440,3],[721,3],[818,3]]}}}],["developed",{"_index":318,"t":{"19":{"position":[[34,9]]},"27":{"position":[[564,9]]}}}],["developer",{"_index":222,"t":{"13":{"position":[[653,9]]}}}],["developers",{"_index":12,"t":{"3":{"position":[[150,10],[360,10],[575,10]]},"9":{"position":[[467,10]]},"11":{"position":[[730,10],[849,10]]},"13":{"position":[[31,10]]},"15":{"position":[[340,10],[821,10]]},"19":{"position":[[140,10],[652,10]]},"21":{"position":[[89,10],[170,10],[296,10],[473,10],[702,11],[881,10],[976,10],[1071,10]]},"25":{"position":[[225,11],[739,10]]},"27":{"position":[[617,10],[942,10],[1043,10]]},"31":{"position":[[566,10]]}}}],["developing",{"_index":263,"t":{"15":{"position":[[91,10]]}}}],["development",{"_index":156,"t":{"11":{"position":[[289,12],[437,11],[786,11]]},"13":{"position":[[1275,11]]},"19":{"position":[[486,11]]},"27":{"position":[[110,11]]},"33":{"position":[[243,11]]}}}],["device",{"_index":245,"t":{"13":{"position":[[1118,7]]}}}],["devices",{"_index":249,"t":{"13":{"position":[[1211,7]]}}}],["diagnose",{"_index":362,"t":{"21":{"position":[[307,8]]}}}],["different",{"_index":229,"t":{"13":{"position":[[791,9]]},"15":{"position":[[712,9],[748,9]]},"19":{"position":[[227,9],[545,9]]}}}],["displays",{"_index":252,"t":{"13":{"position":[[1236,9]]}}}],["documentation",{"_index":79,"t":{"7":{"position":[[120,13],[245,13],[419,13],[509,13]]},"9":{"position":[[353,14]]}}}],["draw",{"_index":371,"t":{"21":{"position":[[625,4]]}}}],["dynamic",{"_index":237,"t":{"13":{"position":[[932,7]]}}}],["each",{"_index":208,"t":{"13":{"position":[[407,4]]}}}],["easier",{"_index":11,"t":{"3":{"position":[[139,6]]},"13":{"position":[[663,7]]},"15":{"position":[[172,7]]},"17":{"position":[[47,6]]},"21":{"position":[[159,6],[747,6],[870,6]]},"25":{"position":[[48,6]]},"33":{"position":[[255,6]]}}}],["easily",{"_index":97,"t":{"7":{"position":[[362,6]]},"13":{"position":[[277,6]]},"25":{"position":[[815,6]]}}}],["easy",{"_index":131,"t":{"9":{"position":[[422,4],[458,4]]},"19":{"position":[[643,4]]},"25":{"position":[[669,4],[879,4],[1052,4]]}}}],["ecosystem",{"_index":387,"t":{"23":{"position":[[100,9]]},"35":{"position":[[421,10]]}}}],["edit",{"_index":403,"t":{"25":{"position":[[479,4]]}}}],["editing",{"_index":399,"t":{"25":{"position":[[391,7]]}}}],["editor",{"_index":390,"t":{"25":{"position":[[20,6],[174,6],[555,6]]}}}],["efficient",{"_index":383,"t":{"21":{"position":[[1118,9]]},"27":{"position":[[310,10],[1088,9]]},"33":{"position":[[271,10]]}}}],["efficiently",{"_index":273,"t":{"15":{"position":[[371,12]]},"25":{"position":[[287,12]]}}}],["effort",{"_index":459,"t":{"27":{"position":[[835,6]]}}}],["element",{"_index":209,"t":{"13":{"position":[[412,7]]}}}],["elements",{"_index":410,"t":{"25":{"position":[[649,9]]},"31":{"position":[[355,8]]}}}],["enable",{"_index":452,"t":{"27":{"position":[[610,6]]}}}],["enables",{"_index":223,"t":{"13":{"position":[[684,7]]}}}],["end",{"_index":66,"t":{"5":{"position":[[128,3]]},"19":{"position":[[482,3]]}}}],["engaging",{"_index":384,"t":{"21":{"position":[[1132,8]]}}}],["engine",{"_index":24,"t":{"3":{"position":[[300,8]]},"27":{"position":[[242,7],[858,6],[1098,6]]},"31":{"position":[[55,6]]},"33":{"position":[[97,7],[115,6],[184,6],[318,6]]}}}],["engines",{"_index":486,"t":{"31":{"position":[[315,7]]},"33":{"position":[[358,8]]}}}],["enhance",{"_index":7,"t":{"3":{"position":[[87,7]]}}}],["ensuring",{"_index":420,"t":{"25":{"position":[[916,8]]}}}],["especially",{"_index":373,"t":{"21":{"position":[[683,10]]}}}],["even",{"_index":10,"t":{"3":{"position":[[134,4]]},"31":{"position":[[577,4]]}}}],["everything",{"_index":93,"t":{"7":{"position":[[322,10]]},"13":{"position":[[1182,10]]},"33":{"position":[[138,10]]}}}],["example",{"_index":280,"t":{"15":{"position":[[481,8]]}}}],["examples",{"_index":103,"t":{"7":{"position":[[460,9]]},"11":{"position":[[250,8]]},"13":{"position":[[559,9]]}}}],["excited",{"_index":0,"t":{"3":{"position":[[7,7]]},"7":{"position":[[16,7]]},"23":{"position":[[133,7]]},"35":{"position":[[286,7]]}}}],["exciting",{"_index":71,"t":{"5":{"position":[[182,8]]},"27":{"position":[[439,8]]},"31":{"position":[[155,8]]},"35":{"position":[[22,8]]}}}],["expand",{"_index":494,"t":{"31":{"position":[[528,6]]}}}],["expect",{"_index":466,"t":{"27":{"position":[[1058,6]]},"33":{"position":[[159,6]]}}}],["experience",{"_index":303,"t":{"15":{"position":[[918,11]]},"27":{"position":[[157,10]]}}}],["explore",{"_index":177,"t":{"11":{"position":[[967,7]]}}}],["extend",{"_index":515,"t":{"35":{"position":[[167,6]]}}}],["extension",{"_index":353,"t":{"21":{"position":[[35,9]]}}}],["extensive",{"_index":437,"t":{"27":{"position":[[147,9]]}}}],["faster",{"_index":298,"t":{"15":{"position":[[858,6]]},"27":{"position":[[294,6],[1072,6]]}}}],["feature",{"_index":275,"t":{"15":{"position":[[392,7]]},"25":{"position":[[785,8]]}}}],["features",{"_index":130,"t":{"9":{"position":[[388,9],[556,8]]},"15":{"position":[[321,8],[807,8],[1038,8]]},"21":{"position":[[417,8]]},"25":{"position":[[320,8]]},"27":{"position":[[448,8]]},"33":{"position":[[211,8],[294,8]]}}}],["feel",{"_index":214,"t":{"13":{"position":[[515,4]]}}}],["few",{"_index":255,"t":{"13":{"position":[[1317,3]]},"19":{"position":[[817,3]]}}}],["final",{"_index":421,"t":{"25":{"position":[[934,5]]}}}],["finally",{"_index":257,"t":{"15":{"position":[[0,8]]},"33":{"position":[[0,8]]}}}],["first",{"_index":73,"t":{"7":{"position":[[0,5]]},"11":{"position":[[306,5]]},"27":{"position":[[490,5],[919,5]]}}}],["fit",{"_index":210,"t":{"13":{"position":[[423,3],[1095,3]]}}}],["flexibility",{"_index":241,"t":{"13":{"position":[[1031,11]]},"31":{"position":[[587,11]]}}}],["fly",{"_index":279,"t":{"15":{"position":[[472,4]]}}}],["focus",{"_index":331,"t":{"19":{"position":[[322,5]]}}}],["folder",{"_index":281,"t":{"15":{"position":[[516,6]]}}}],["follow",{"_index":358,"t":{"21":{"position":[[250,6]]}}}],["fonts",{"_index":291,"t":{"15":{"position":[[703,5]]}}}],["formats",{"_index":292,"t":{"15":{"position":[[722,8],[758,8]]}}}],["forward",{"_index":465,"t":{"27":{"position":[[1027,7]]},"35":{"position":[[121,7],[368,7]]}}}],["four",{"_index":61,"t":{"5":{"position":[[72,4]]}}}],["fragmentation",{"_index":38,"t":{"3":{"position":[[485,13]]}}}],["fragmented",{"_index":89,"t":{"7":{"position":[[262,10]]}}}],["framework",{"_index":266,"t":{"15":{"position":[[195,9],[248,10],[1051,9]]}}}],["frameworks",{"_index":328,"t":{"19":{"position":[[250,11],[568,11]]},"31":{"position":[[326,10]]}}}],["free",{"_index":215,"t":{"13":{"position":[[520,4]]}}}],["friendly",{"_index":392,"t":{"25":{"position":[[150,8]]}}}],["front",{"_index":337,"t":{"19":{"position":[[476,5]]}}}],["full",{"_index":45,"t":{"3":{"position":[[610,4]]}}}],["functional",{"_index":185,"t":{"13":{"position":[[75,10]]},"25":{"position":[[956,10]]}}}],["further",{"_index":6,"t":{"3":{"position":[[79,7]]}}}],["game",{"_index":155,"t":{"11":{"position":[[284,4],[345,4],[371,5],[432,4],[725,4],[781,4]]},"13":{"position":[[305,5]]},"25":{"position":[[644,4],[705,4]]},"33":{"position":[[92,4],[110,4],[179,4],[238,4],[313,4]]}}}],["game's",{"_index":211,"t":{"13":{"position":[[432,6],[1147,6]]}}}],["games",{"_index":15,"t":{"3":{"position":[[179,5],[377,5]]},"11":{"position":[[58,7],[102,5],[151,5],[217,5],[316,5],[383,5],[536,5],[677,5],[888,5]]},"13":{"position":[[505,6]]},"25":{"position":[[86,5],[1136,5]]},"31":{"position":[[234,5]]}}}],["generate",{"_index":278,"t":{"15":{"position":[[445,8],[556,8],[677,8]]}}}],["github",{"_index":112,"t":{"7":{"position":[[614,6]]},"9":{"position":[[643,6]]},"11":{"position":[[936,6],[1014,6]]},"13":{"position":[[579,6],[1341,6]]},"15":{"position":[[1140,6],[1152,6]]},"35":{"position":[[457,6]]}}}],["give",{"_index":496,"t":{"31":{"position":[[561,4]]}}}],["goodboy",{"_index":474,"t":{"31":{"position":[[11,7]]}}}],["gpu",{"_index":456,"t":{"27":{"position":[[658,3]]}}}],["graphics",{"_index":449,"t":{"27":{"position":[[537,8],[727,8],[1149,8]]}}}],["great",{"_index":28,"t":{"3":{"position":[[340,5]]},"11":{"position":[[817,5]]},"13":{"position":[[1173,5]]}}}],["greatly",{"_index":493,"t":{"31":{"position":[[520,7]]}}}],["ground",{"_index":435,"t":{"27":{"position":[[95,6]]}}}],["groups",{"_index":395,"t":{"25":{"position":[[251,6]]}}}],["grow",{"_index":523,"t":{"35":{"position":[[405,4]]}}}],["growth",{"_index":84,"t":{"7":{"position":[[170,6]]}}}],["guides",{"_index":102,"t":{"7":{"position":[[449,6]]}}}],["handle",{"_index":329,"t":{"19":{"position":[[276,6]]}}}],["handling",{"_index":503,"t":{"33":{"position":[[380,9]]}}}],["having",{"_index":405,"t":{"25":{"position":[[512,6]]}}}],["help",{"_index":30,"t":{"3":{"position":[[355,4]]},"15":{"position":[[335,4],[816,4]]},"21":{"position":[[84,4],[291,4],[468,4],[1066,4]]}}}],["high",{"_index":376,"t":{"21":{"position":[[901,4]]},"25":{"position":[[1123,4]]}}}],["highly",{"_index":202,"t":{"13":{"position":[[332,6]]}}}],["hopefully",{"_index":166,"t":{"11":{"position":[[688,9]]}}}],["ideas",{"_index":108,"t":{"7":{"position":[[561,5]]},"25":{"position":[[1104,5]]}}}],["images",{"_index":283,"t":{"15":{"position":[[537,6],[776,7]]}}}],["important",{"_index":261,"t":{"15":{"position":[[73,9]]}}}],["improve",{"_index":36,"t":{"3":{"position":[[456,7]]},"7":{"position":[[577,7]]},"15":{"position":[[604,7]]},"27":{"position":[[700,7]]}}}],["improved",{"_index":302,"t":{"15":{"position":[[904,8]]}}}],["improvement",{"_index":441,"t":{"27":{"position":[[345,11]]}}}],["improvements",{"_index":438,"t":{"27":{"position":[[192,12]]}}}],["improving",{"_index":100,"t":{"7":{"position":[[405,9]]},"9":{"position":[[316,9]]}}}],["include",{"_index":501,"t":{"33":{"position":[[330,7]]}}}],["includes",{"_index":188,"t":{"13":{"position":[[127,8]]}}}],["including",{"_index":268,"t":{"15":{"position":[[259,9]]},"19":{"position":[[580,9]]}}}],["inclusion",{"_index":446,"t":{"27":{"position":[[477,9]]}}}],["incorporate",{"_index":487,"t":{"31":{"position":[[340,11]]}}}],["incredibly",{"_index":388,"t":{"23":{"position":[[122,10]]}}}],["individual",{"_index":282,"t":{"15":{"position":[[526,10]]}}}],["information",{"_index":491,"t":{"31":{"position":[[471,11]]}}}],["initiative",{"_index":5,"t":{"3":{"position":[[65,10]]}}}],["inner",{"_index":356,"t":{"21":{"position":[[199,5],[1022,5]]}}}],["input",{"_index":239,"t":{"13":{"position":[[972,5]]},"33":{"position":[[374,5]]}}}],["inputs",{"_index":194,"t":{"13":{"position":[[201,7]]}}}],["inspiration",{"_index":171,"t":{"11":{"position":[[833,11]]}}}],["integrated",{"_index":201,"t":{"13":{"position":[[284,10]]}}}],["integrates",{"_index":134,"t":{"9":{"position":[[532,10]]}}}],["intensive",{"_index":457,"t":{"27":{"position":[[736,9],[1158,9]]}}}],["interface",{"_index":132,"t":{"9":{"position":[[434,9]]},"13":{"position":[[1154,9]]},"25":{"position":[[159,10],[352,9]]}}}],["interfaces",{"_index":187,"t":{"13":{"position":[[91,10],[766,10],[940,10]]}}}],["internal",{"_index":475,"t":{"31":{"position":[[43,8]]}}}],["introduce",{"_index":56,"t":{"3":{"position":[[729,9]]}}}],["intuitive",{"_index":391,"t":{"25":{"position":[[131,9]]}}}],["issues",{"_index":363,"t":{"21":{"position":[[328,6]]}}}],["iterate",{"_index":418,"t":{"25":{"position":[[896,7]]}}}],["json",{"_index":296,"t":{"15":{"position":[[795,5]]}}}],["jumpstart",{"_index":314,"t":{"19":{"position":[[0,9],[358,9],[746,10]]}}}],["key",{"_index":274,"t":{"15":{"position":[[388,3]]},"21":{"position":[[413,3]]}}}],["know",{"_index":111,"t":{"7":{"position":[[608,5]]}}}],["lacked",{"_index":33,"t":{"3":{"position":[[420,6]]}}}],["languages",{"_index":107,"t":{"7":{"position":[[534,10]]}}}],["large",{"_index":250,"t":{"13":{"position":[[1222,5]]}}}],["later",{"_index":492,"t":{"31":{"position":[[483,5]]}}}],["launch",{"_index":2,"t":{"3":{"position":[[31,6]]}}}],["layout",{"_index":165,"t":{"11":{"position":[[640,6]]},"13":{"position":[[598,6],[840,6],[1010,7],[1253,6],[1334,6]]}}}],["layouts",{"_index":225,"t":{"13":{"position":[[717,7],[1063,7]]}}}],["leap",{"_index":464,"t":{"27":{"position":[[1022,4]]},"29":{"position":[[21,4]]}}}],["learn",{"_index":170,"t":{"11":{"position":[[753,5]]}}}],["leveraged",{"_index":436,"t":{"27":{"position":[[131,9]]}}}],["libraries",{"_index":72,"t":{"5":{"position":[[205,9]]},"9":{"position":[[632,10]]},"11":{"position":[[475,9],[615,9]]},"13":{"position":[[903,9]]}}}],["library",{"_index":115,"t":{"9":{"position":[[27,7],[141,7],[288,7],[402,7],[524,7]]},"13":{"position":[[19,7],[119,7],[616,7],[676,7]]},"15":{"position":[[138,7],[214,7]]},"33":{"position":[[70,7]]}}}],["library's",{"_index":127,"t":{"9":{"position":[[330,9]]}}}],["license",{"_index":151,"t":{"11":{"position":[[187,8]]}}}],["life",{"_index":221,"t":{"13":{"position":[[643,4]]}}}],["line",{"_index":408,"t":{"25":{"position":[[537,4]]}}}],["links",{"_index":525,"t":{"35":{"position":[[464,5]]}}}],["lists",{"_index":197,"t":{"13":{"position":[[223,6]]}}}],["little",{"_index":85,"t":{"7":{"position":[[197,6]]}}}],["loading",{"_index":299,"t":{"15":{"position":[[865,7]]},"33":{"position":[[396,7]]}}}],["long",{"_index":81,"t":{"7":{"position":[[152,4]]},"23":{"position":[[21,4]]},"31":{"position":[[400,4]]}}}],["longer",{"_index":321,"t":{"19":{"position":[[159,6]]},"31":{"position":[[285,6]]}}}],["look",{"_index":246,"t":{"13":{"position":[[1168,4]]},"29":{"position":[[62,4]]},"35":{"position":[[116,4],[363,4]]}}}],["looking",{"_index":172,"t":{"11":{"position":[[860,7]]},"27":{"position":[[953,7]]}}}],["lot",{"_index":509,"t":{"35":{"position":[[15,3],[109,3]]}}}],["made",{"_index":458,"t":{"27":{"position":[[816,4]]}}}],["maintain",{"_index":35,"t":{"3":{"position":[[443,8]]}}}],["maintenance",{"_index":126,"t":{"9":{"position":[[269,11]]}}}],["major",{"_index":386,"t":{"23":{"position":[[72,5]]},"27":{"position":[[27,5],[577,5],[1016,5]]}}}],["make",{"_index":9,"t":{"3":{"position":[[126,4]]},"13":{"position":[[633,4]]},"15":{"position":[[154,4]]},"17":{"position":[[39,4]]},"19":{"position":[[635,4]]},"21":{"position":[[151,4],[739,4],[862,4]]},"25":{"position":[[40,4]]},"27":{"position":[[187,4]]},"33":{"position":[[233,4]]}}}],["makes",{"_index":133,"t":{"9":{"position":[[449,5]]},"25":{"position":[[870,5],[1043,5]]}}}],["making",{"_index":411,"t":{"25":{"position":[[659,6]]},"31":{"position":[[431,6]]},"35":{"position":[[251,6]]}}}],["manage",{"_index":271,"t":{"15":{"position":[[351,6]]}}}],["management",{"_index":260,"t":{"15":{"position":[[56,10]]},"33":{"position":[[408,11],[426,11]]}}}],["manpower",{"_index":34,"t":{"3":{"position":[[431,8]]}}}],["many",{"_index":27,"t":{"3":{"position":[[335,4]]},"15":{"position":[[1026,4]]},"27":{"position":[[173,4]]},"33":{"position":[[206,4]]}}}],["match",{"_index":158,"t":{"11":{"position":[[337,5]]}}}],["means",{"_index":226,"t":{"13":{"position":[[745,5],[1131,5]]},"25":{"position":[[443,5]]}}}],["mentioned",{"_index":526,"t":{"35":{"position":[[470,9]]}}}],["minify",{"_index":295,"t":{"15":{"position":[[788,6]]}}}],["minutes",{"_index":347,"t":{"19":{"position":[[821,7]]}}}],["mipmaps",{"_index":289,"t":{"15":{"position":[[686,8]]}}}],["mit",{"_index":150,"t":{"11":{"position":[[183,3]]}}}],["mix",{"_index":482,"t":{"31":{"position":[[204,3]]}}}],["mobile",{"_index":248,"t":{"13":{"position":[[1204,6]]}}}],["months",{"_index":50,"t":{"3":{"position":[[638,7]]},"35":{"position":[[148,7]]}}}],["more",{"_index":51,"t":{"3":{"position":[[654,4]]},"7":{"position":[[444,4]]},"11":{"position":[[531,4]]},"15":{"position":[[986,4]]},"19":{"position":[[619,5]]},"21":{"position":[[1113,4]]},"25":{"position":[[282,4],[432,5]]},"27":{"position":[[305,4],[1083,4]]},"31":{"position":[[466,4],[582,4]]},"33":{"position":[[266,4],[466,5]]},"35":{"position":[[505,4]]}}}],["much",{"_index":88,"t":{"7":{"position":[[226,4]]},"27":{"position":[[1067,4]]}}}],["multi",{"_index":424,"t":{"25":{"position":[[1000,5]]}}}],["multiple",{"_index":90,"t":{"7":{"position":[[280,8]]},"21":{"position":[[596,8]]}}}],["nearing",{"_index":65,"t":{"5":{"position":[[116,7]]}}}],["need",{"_index":94,"t":{"7":{"position":[[337,4]]},"19":{"position":[[166,4]]},"31":{"position":[[292,4]]}}}],["needs",{"_index":213,"t":{"13":{"position":[[448,6]]}}}],["new",{"_index":58,"t":{"5":{"position":[[16,3],[191,3]]},"7":{"position":[[84,3],[301,3]]},"9":{"position":[[384,3]]},"11":{"position":[[23,3]]},"13":{"position":[[15,3]]},"15":{"position":[[124,3],[454,3],[958,3]]},"19":{"position":[[15,3],[99,3],[784,3]]},"21":{"position":[[698,3]]},"25":{"position":[[16,3]]},"27":{"position":[[254,3],[533,3]]},"29":{"position":[[31,3]]},"33":{"position":[[66,3]]},"35":{"position":[[42,3],[331,3]]}}}],["news",{"_index":510,"t":{"35":{"position":[[31,4]]}}}],["next",{"_index":48,"t":{"3":{"position":[[630,4]]},"9":{"position":[[0,4]]},"13":{"position":[[1312,4]]},"27":{"position":[[22,4]]}}}],["now",{"_index":141,"t":{"11":{"position":[[8,3]]},"31":{"position":[[19,4],[114,3]]}}}],["objects",{"_index":369,"t":{"21":{"position":[[605,7],[793,8]]}}}],["odie",{"_index":477,"t":{"31":{"position":[[69,4]]}}}],["offer",{"_index":500,"t":{"33":{"position":[[200,5]]}}}],["one",{"_index":95,"t":{"7":{"position":[[345,3]]},"21":{"position":[[402,3]]},"25":{"position":[[300,3]]},"27":{"position":[[423,3]]}}}],["open",{"_index":145,"t":{"11":{"position":[[53,4],[90,4],[672,4]]},"13":{"position":[[493,4]]},"31":{"position":[[130,4]]}}}],["optimizations",{"_index":439,"t":{"27":{"position":[[209,13]]}}}],["optimize",{"_index":297,"t":{"15":{"position":[[832,8]]},"21":{"position":[[225,8],[570,8],[767,8],[1082,8]]},"27":{"position":[[845,8]]}}}],["option",{"_index":461,"t":{"27":{"position":[[931,6]]}}}],["options",{"_index":409,"t":{"25":{"position":[[592,7]]}}}],["organic",{"_index":83,"t":{"7":{"position":[[162,7]]}}}],["out",{"_index":217,"t":{"13":{"position":[[540,3]]},"15":{"position":[[1132,3]]},"35":{"position":[[449,3]]}}}],["outside",{"_index":472,"t":{"29":{"position":[[94,7]]}}}],["over",{"_index":47,"t":{"3":{"position":[[621,4]]},"5":{"position":[[84,4]]},"7":{"position":[[177,4]]},"9":{"position":[[264,4]]},"27":{"position":[[168,4]]}}}],["overall",{"_index":374,"t":{"21":{"position":[[802,8]]},"27":{"position":[[984,8]]}}}],["parcel",{"_index":340,"t":{"19":{"position":[[599,7]]}}}],["part",{"_index":262,"t":{"15":{"position":[[83,4]]}}}],["party",{"_index":140,"t":{"9":{"position":[[626,5]]}}}],["patrick",{"_index":121,"t":{"9":{"position":[[160,7]]}}}],["performance",{"_index":128,"t":{"9":{"position":[[340,12]]},"15":{"position":[[616,11],[887,12]]},"21":{"position":[[316,11],[906,12]]},"27":{"position":[[370,11],[712,11]]}}}],["phase",{"_index":67,"t":{"5":{"position":[[135,5]]},"15":{"position":[[13,5]]},"17":{"position":[[0,5]]},"23":{"position":[[0,5]]},"29":{"position":[[0,5]]}}}],["phaser",{"_index":270,"t":{"15":{"position":[[290,7]]}}}],["phases",{"_index":62,"t":{"5":{"position":[[77,6]]}}}],["physics",{"_index":502,"t":{"33":{"position":[[350,7]]}}}],["pixi",{"_index":120,"t":{"9":{"position":[[136,4]]}}}],["pixijs",{"_index":3,"t":{"3":{"position":[[45,6],[115,6],[206,6],[405,7],[603,6]]},"5":{"position":[[219,7]]},"7":{"position":[[100,7],[238,6]]},"9":{"position":[[11,6],[62,6],[92,6],[211,6],[247,6],[512,7],[568,6]]},"11":{"position":[[45,7],[134,6],[273,6],[421,6],[493,6],[597,6],[633,6],[651,6],[665,6],[770,6],[900,7]]},"13":{"position":[[0,6],[107,7],[455,6],[569,6],[591,6],[731,7],[833,6],[863,6],[1003,6],[1246,6],[1327,6]]},"15":{"position":[[269,7]]},"17":{"position":[[67,6]]},"19":{"position":[[51,6],[103,6],[683,6],[788,6]]},"21":{"position":[[0,6],[112,6],[217,7],[433,6],[530,7],[714,6],[811,6],[955,7],[1040,7]]},"23":{"position":[[93,6]]},"25":{"position":[[114,7]]},"27":{"position":[[0,6],[79,6],[235,6],[269,6],[460,6],[795,6],[993,6]]},"29":{"position":[[49,6]]},"31":{"position":[[99,7],[262,6]]},"33":{"position":[[85,6],[306,6]]},"35":{"position":[[81,6],[200,6],[414,6],[525,6]]}}}],["pixijs's",{"_index":495,"t":{"31":{"position":[[535,8]]}}}],["place",{"_index":96,"t":{"7":{"position":[[349,5]]}}}],["planned",{"_index":54,"t":{"3":{"position":[[677,8]]},"11":{"position":[[542,7]]},"21":{"position":[[53,7]]}}}],["planning",{"_index":99,"t":{"7":{"position":[[393,8]]},"31":{"position":[[118,8]]}}}],["plans",{"_index":489,"t":{"31":{"position":[[451,5]]}}}],["play",{"_index":180,"t":{"11":{"position":[[1026,4],[1048,4]]}}}],["playco",{"_index":40,"t":{"3":{"position":[[534,6]]},"31":{"position":[[24,7]]},"35":{"position":[[240,6]]}}}],["player",{"_index":415,"t":{"25":{"position":[[778,6]]}}}],["please",{"_index":110,"t":{"7":{"position":[[594,6]]}}}],["plugins",{"_index":288,"t":{"15":{"position":[[666,7]]}}}],["popular",{"_index":18,"t":{"3":{"position":[[231,7]]},"19":{"position":[[461,7]]}}}],["possible",{"_index":519,"t":{"35":{"position":[[270,9]]}}}],["post",{"_index":306,"t":{"15":{"position":[[967,4]]}}}],["potions",{"_index":182,"t":{"11":{"position":[[1040,7]]}}}],["powerful",{"_index":375,"t":{"21":{"position":[[838,8]]}}}],["practices",{"_index":360,"t":{"21":{"position":[[262,10]]}}}],["preferred",{"_index":344,"t":{"19":{"position":[[710,9]]}}}],["process",{"_index":265,"t":{"15":{"position":[[164,7]]},"19":{"position":[[79,7]]},"21":{"position":[[507,7],[641,7]]}}}],["product",{"_index":422,"t":{"25":{"position":[[940,7]]}}}],["professional",{"_index":154,"t":{"11":{"position":[[237,12]]}}}],["progress",{"_index":199,"t":{"13":{"position":[[249,8]]},"31":{"position":[[438,8]]}}}],["project",{"_index":174,"t":{"11":{"position":[[912,7],[1005,8]]},"31":{"position":[[372,8],[410,8]]}}}],["projects",{"_index":53,"t":{"3":{"position":[[668,8]]},"5":{"position":[[20,8]]},"9":{"position":[[237,9]]},"23":{"position":[[31,8]]},"35":{"position":[[46,8]]}}}],["provide",{"_index":153,"t":{"11":{"position":[[229,7]]},"15":{"position":[[498,7]]},"19":{"position":[[523,7]]},"33":{"position":[[130,7]]}}}],["provides",{"_index":116,"t":{"9":{"position":[[40,8],[410,8]]},"15":{"position":[[301,8],[657,8],[977,8]]},"25":{"position":[[365,8],[562,8]]}}}],["providing",{"_index":379,"t":{"21":{"position":[[966,9]]},"27":{"position":[[321,9]]}}}],["purpose",{"_index":152,"t":{"11":{"position":[[200,7]]}}}],["put",{"_index":92,"t":{"7":{"position":[[318,3]]}}}],["puzzling",{"_index":181,"t":{"11":{"position":[[1031,8]]}}}],["quality",{"_index":429,"t":{"25":{"position":[[1128,7]]}}}],["radio",{"_index":198,"t":{"13":{"position":[[230,5]]}}}],["range",{"_index":189,"t":{"13":{"position":[[138,5]]},"15":{"position":[[312,5]]},"25":{"position":[[573,5]]}}}],["ratios",{"_index":233,"t":{"13":{"position":[[825,7]]}}}],["react",{"_index":114,"t":{"9":{"position":[[18,6],[72,5],[99,5],[130,5],[231,5],[488,5]]},"11":{"position":[[658,6]]},"19":{"position":[[418,5]]}}}],["ready",{"_index":254,"t":{"13":{"position":[[1299,5]]}}}],["real",{"_index":218,"t":{"13":{"position":[[548,4]]},"25":{"position":[[1012,4]]}}}],["record",{"_index":430,"t":{"25":{"position":[[1162,6]]}}}],["recreate",{"_index":416,"t":{"25":{"position":[[822,8]]}}}],["reduce",{"_index":462,"t":{"27":{"position":[[964,6]]}}}],["regardless",{"_index":343,"t":{"19":{"position":[[690,10]]}}}],["release",{"_index":70,"t":{"5":{"position":[[163,7]]},"11":{"position":[[554,8]]},"27":{"position":[[33,7]]},"31":{"position":[[507,7]]}}}],["released",{"_index":142,"t":{"11":{"position":[[12,8],[164,8],[322,8]]},"21":{"position":[[67,8]]}}}],["releasing",{"_index":60,"t":{"5":{"position":[[54,9]]},"7":{"position":[[52,9]]},"15":{"position":[[946,9]]}}}],["renderer",{"_index":20,"t":{"3":{"position":[[242,8]]},"27":{"position":[[880,9]]}}}],["rendering",{"_index":23,"t":{"3":{"position":[[290,9]]},"21":{"position":[[583,9],[780,9]]},"27":{"position":[[360,9]]},"29":{"position":[[117,10]]}}}],["repo",{"_index":113,"t":{"7":{"position":[[621,4]]},"9":{"position":[[650,4]]},"11":{"position":[[1021,4]]},"13":{"position":[[586,4],[1348,4]]},"15":{"position":[[1147,4],[1159,4]]}}}],["repository",{"_index":143,"t":{"11":{"position":[[27,10]]}}}],["represents",{"_index":432,"t":{"27":{"position":[[46,10],[1003,10]]},"29":{"position":[[8,10]]}}}],["resizable",{"_index":242,"t":{"13":{"position":[[1053,9]]}}}],["resource",{"_index":168,"t":{"11":{"position":[[712,8]]}}}],["resources",{"_index":365,"t":{"21":{"position":[[353,9]]},"35":{"position":[[345,10]]}}}],["respond",{"_index":238,"t":{"13":{"position":[[956,7]]}}}],["responsive",{"_index":224,"t":{"13":{"position":[[706,10]]}}}],["revealed",{"_index":385,"t":{"23":{"position":[[52,9]]}}}],["rewrite",{"_index":434,"t":{"27":{"position":[[68,7]]}}}],["right",{"_index":349,"t":{"19":{"position":[[848,5]]}}}],["rollup",{"_index":341,"t":{"19":{"position":[[607,7]]}}}],["runtime",{"_index":414,"t":{"25":{"position":[[770,7]]}}}],["same",{"_index":370,"t":{"21":{"position":[[620,4]]}}}],["scenes",{"_index":400,"t":{"25":{"position":[[399,7],[492,6],[831,6]]}}}],["screen",{"_index":230,"t":{"13":{"position":[[801,6],[982,6],[1103,6]]}}}],["scroll",{"_index":195,"t":{"13":{"position":[[209,6]]}}}],["seamlessly",{"_index":481,"t":{"31":{"position":[[193,10]]}}}],["searchable",{"_index":98,"t":{"7":{"position":[[369,11]]}}}],["see",{"_index":521,"t":{"35":{"position":[[297,3]]}}}],["seen",{"_index":69,"t":{"5":{"position":[[154,4]]}}}],["set",{"_index":322,"t":{"19":{"position":[[174,3]]}}}],["setting",{"_index":326,"t":{"19":{"position":[[216,7]]}}}],["setup",{"_index":330,"t":{"19":{"position":[[291,5]]}}}],["several",{"_index":57,"t":{"5":{"position":[[8,7],[174,7]]}}}],["share",{"_index":490,"t":{"31":{"position":[[460,5]]}}}],["shared",{"_index":508,"t":{"35":{"position":[[6,6]]}}}],["sharing",{"_index":428,"t":{"25":{"position":[[1085,7]]}}}],["sheets",{"_index":285,"t":{"15":{"position":[[572,7]]}}}],["shooter",{"_index":161,"t":{"11":{"position":[[363,7]]}}}],["shortly",{"_index":313,"t":{"17":{"position":[[19,7]]}}}],["showcases",{"_index":148,"t":{"11":{"position":[[113,9]]}}}],["significant",{"_index":440,"t":{"27":{"position":[[333,11],[823,11]]}}}],["significantly",{"_index":286,"t":{"15":{"position":[[590,13]]},"27":{"position":[[686,13]]}}}],["similar",{"_index":333,"t":{"19":{"position":[[376,7]]}}}],["simplify",{"_index":319,"t":{"19":{"position":[[66,8]]}}}],["sincere",{"_index":516,"t":{"35":{"position":[[178,7]]}}}],["single",{"_index":407,"t":{"25":{"position":[[530,6]]}}}],["site",{"_index":109,"t":{"7":{"position":[[589,4]]}}}],["sites",{"_index":91,"t":{"7":{"position":[[289,6]]}}}],["sitting",{"_index":444,"t":{"27":{"position":[[408,7]]}}}],["size",{"_index":244,"t":{"13":{"position":[[1110,4]]},"27":{"position":[[978,5]]}}}],["sizes",{"_index":231,"t":{"13":{"position":[[808,5]]}}}],["sliders",{"_index":192,"t":{"13":{"position":[[187,8]]}}}],["small",{"_index":247,"t":{"13":{"position":[[1198,5]]}}}],["soon",{"_index":304,"t":{"15":{"position":[[938,4]]},"21":{"position":[[76,4]]}}}],["source",{"_index":147,"t":{"11":{"position":[[95,6],[823,6]]},"13":{"position":[[498,6]]},"31":{"position":[[135,6]]}}}],["specific",{"_index":212,"t":{"13":{"position":[[439,8]]}}}],["sprite",{"_index":284,"t":{"15":{"position":[[565,6]]}}}],["sprites",{"_index":401,"t":{"25":{"position":[[407,8],[613,8]]}}}],["standout",{"_index":397,"t":{"25":{"position":[[311,8]]}}}],["start",{"_index":348,"t":{"19":{"position":[[833,5]]},"23":{"position":[[40,5]]}}}],["started",{"_index":342,"t":{"19":{"position":[[670,7]]},"25":{"position":[[681,7]]}}}],["state",{"_index":504,"t":{"33":{"position":[[420,5]]}}}],["stay",{"_index":528,"t":{"35":{"position":[[490,4]]}}}],["still",{"_index":253,"t":{"13":{"position":[[1263,5]]}}}],["strictly",{"_index":473,"t":{"29":{"position":[[105,8]]}}}],["structure",{"_index":86,"t":{"7":{"position":[[204,9]]}}}],["stuck",{"_index":309,"t":{"15":{"position":[[1106,5]]}}}],["stunning",{"_index":378,"t":{"21":{"position":[[928,8]]}}}],["such",{"_index":87,"t":{"7":{"position":[[221,4]]},"11":{"position":[[485,4],[625,4]]},"13":{"position":[[158,4]]},"19":{"position":[[403,4]]}}}],["suffered",{"_index":80,"t":{"7":{"position":[[138,8]]}}}],["suited",{"_index":467,"t":{"27":{"position":[[1120,6]]}}}],["support",{"_index":129,"t":{"9":{"position":[[372,7]]},"27":{"position":[[502,7],[782,8]]},"33":{"position":[[338,7]]},"35":{"position":[[393,7]]}}}],["sure",{"_index":524,"t":{"35":{"position":[[435,4]]}}}],["switch",{"_index":484,"t":{"31":{"position":[[300,6]]}}}],["take",{"_index":453,"t":{"27":{"position":[[631,4]]}}}],["taken",{"_index":125,"t":{"9":{"position":[[258,5]]}}}],["team",{"_index":43,"t":{"3":{"position":[[567,4]]},"19":{"position":[[58,4]]},"27":{"position":[[122,4],[802,4]]},"31":{"position":[[423,4]]}}}],["teams",{"_index":426,"t":{"25":{"position":[[1061,5]]}}}],["technique",{"_index":368,"t":{"21":{"position":[[552,9]]}}}],["templates",{"_index":338,"t":{"19":{"position":[[531,9]]}}}],["ten",{"_index":52,"t":{"3":{"position":[[664,3]]}}}],["term",{"_index":82,"t":{"7":{"position":[[157,4]]},"23":{"position":[[26,4]]},"31":{"position":[[405,4]]}}}],["territory",{"_index":469,"t":{"29":{"position":[[35,9]]}}}],["test",{"_index":417,"t":{"25":{"position":[[887,4]]}}}],["text",{"_index":193,"t":{"13":{"position":[[196,4]]}}}],["thanks",{"_index":517,"t":{"35":{"position":[[186,6]]}}}],["there's",{"_index":513,"t":{"35":{"position":[[99,7]]}}}],["those",{"_index":480,"t":{"31":{"position":[[168,5]]}}}],["threejs",{"_index":269,"t":{"15":{"position":[[277,8]]}}}],["thrilled",{"_index":497,"t":{"33":{"position":[[16,8]]}}}],["time",{"_index":46,"t":{"3":{"position":[[615,5]]},"25":{"position":[[1017,4],[1169,5]]}}}],["times",{"_index":300,"t":{"15":{"position":[[873,6]]}}}],["today",{"_index":310,"t":{"15":{"position":[[1115,5]]}}}],["together",{"_index":427,"t":{"25":{"position":[[1075,9]]}}}],["tool",{"_index":316,"t":{"19":{"position":[[23,4],[134,5],[266,4],[513,4]]},"21":{"position":[[138,4],[847,4]]}}}],["tooling",{"_index":324,"t":{"19":{"position":[[193,7]]}}}],["tools",{"_index":29,"t":{"3":{"position":[[346,5],[470,6]]},"5":{"position":[[195,5]]},"19":{"position":[[397,5],[720,5]]},"21":{"position":[[11,5],[444,5],[725,5],[822,5]]},"25":{"position":[[582,5]]},"33":{"position":[[224,5]]},"35":{"position":[[335,5]]}}}],["toolset",{"_index":382,"t":{"21":{"position":[[1053,7]]}}}],["top",{"_index":479,"t":{"31":{"position":[[92,3]]}}}],["translating",{"_index":106,"t":{"7":{"position":[[493,11]]}}}],["tuned",{"_index":529,"t":{"35":{"position":[[495,5]]}}}],["tweak",{"_index":205,"t":{"13":{"position":[[369,5]]}}}],["tweening",{"_index":506,"t":{"33":{"position":[[452,9]]}}}],["two",{"_index":157,"t":{"11":{"position":[[312,3]]}}}],["ui",{"_index":163,"t":{"11":{"position":[[500,2]]},"13":{"position":[[7,2],[462,2],[576,2],[870,3]]}}}],["under",{"_index":149,"t":{"11":{"position":[[173,5]]},"13":{"position":[[1269,5]]}}}],["understand",{"_index":355,"t":{"21":{"position":[[184,10],[484,10],[671,11]]}}}],["understanding",{"_index":381,"t":{"21":{"position":[[1001,13]]}}}],["universe",{"_index":4,"t":{"3":{"position":[[52,9]]},"35":{"position":[[532,9]]}}}],["up",{"_index":74,"t":{"7":{"position":[[6,2]]},"9":{"position":[[5,2]]},"19":{"position":[[178,2],[224,2]]},"27":{"position":[[102,3]]}}}],["upcoming",{"_index":514,"t":{"35":{"position":[[139,8]]}}}],["updates",{"_index":511,"t":{"35":{"position":[[59,7],[510,7]]}}}],["use",{"_index":118,"t":{"9":{"position":[[58,3],[430,3]]},"11":{"position":[[130,3],[269,3],[417,3],[465,3],[593,3],[766,3]]},"15":{"position":[[1009,3]]}}}],["used",{"_index":124,"t":{"9":{"position":[[199,4]]},"13":{"position":[[474,4]]},"15":{"position":[[234,4]]},"21":{"position":[[562,4]]}}}],["useful",{"_index":308,"t":{"15":{"position":[[1031,6]]}}}],["user",{"_index":186,"t":{"13":{"position":[[86,4],[967,4]]},"15":{"position":[[913,4]]},"25":{"position":[[145,4],[1006,5]]}}}],["using",{"_index":173,"t":{"11":{"position":[[894,5]]},"13":{"position":[[725,5]]}}}],["v7",{"_index":443,"t":{"27":{"position":[[394,2]]}}}],["v8",{"_index":431,"t":{"27":{"position":[[7,2],[467,2],[1000,2]]}}}],["valuable",{"_index":167,"t":{"11":{"position":[[703,8]]}}}],["vendors",{"_index":451,"t":{"27":{"position":[[591,8]]}}}],["version",{"_index":76,"t":{"7":{"position":[[69,7]]},"27":{"position":[[258,7]]}}}],["views",{"_index":196,"t":{"13":{"position":[[216,6]]}}}],["visual",{"_index":398,"t":{"25":{"position":[[345,6]]}}}],["visualize",{"_index":364,"t":{"21":{"position":[[339,9]]}}}],["visually",{"_index":377,"t":{"21":{"position":[[919,8]]},"25":{"position":[[971,8]]}}}],["vue",{"_index":335,"t":{"19":{"position":[[438,4]]}}}],["want",{"_index":169,"t":{"11":{"position":[[745,4]]},"13":{"position":[[46,4]]},"15":{"position":[[1094,4]]},"31":{"position":[[185,4]]},"35":{"position":[[159,4]]}}}],["way",{"_index":117,"t":{"9":{"position":[[51,3]]}}}],["we're",{"_index":520,"t":{"35":{"position":[[280,5]]}}}],["we've",{"_index":507,"t":{"35":{"position":[[0,5]]}}}],["web",{"_index":21,"t":{"3":{"position":[[259,4]]}}}],["webgpu",{"_index":448,"t":{"27":{"position":[[514,7],[775,6]]}}}],["webpack",{"_index":339,"t":{"19":{"position":[[590,8]]}}}],["website",{"_index":77,"t":{"7":{"position":[[88,7],[305,7]]}}}],["weeks",{"_index":256,"t":{"13":{"position":[[1321,5]]}}}],["well",{"_index":104,"t":{"7":{"position":[[473,4]]},"13":{"position":[[853,4]]}}}],["widely",{"_index":123,"t":{"9":{"position":[[192,6]]}}}],["without",{"_index":404,"t":{"25":{"position":[[499,7]]}}}],["work",{"_index":44,"t":{"3":{"position":[[595,4]]},"17":{"position":[[57,4]]},"25":{"position":[[277,4],[1070,4]]}}}],["workflows",{"_index":345,"t":{"19":{"position":[[730,10]]}}}],["working",{"_index":498,"t":{"33":{"position":[[53,7]]}}}],["workings",{"_index":357,"t":{"21":{"position":[[205,8],[1028,8]]}}}],["works",{"_index":59,"t":{"5":{"position":[[36,6]]},"13":{"position":[[847,5]]}}}],["world",{"_index":219,"t":{"13":{"position":[[553,5]]}}}],["worry",{"_index":325,"t":{"19":{"position":[[204,5]]}}}],["write",{"_index":406,"t":{"25":{"position":[[522,5]]}}}],["x2",{"_index":445,"t":{"27":{"position":[[419,3]]}}}],["year",{"_index":63,"t":{"5":{"position":[[93,5]]},"31":{"position":[[496,5]]}}}],["years",{"_index":17,"t":{"3":{"position":[[199,6]]},"7":{"position":[[186,5]]},"27":{"position":[[178,5]]},"31":{"position":[[4,6]]}}}],["you'll",{"_index":346,"t":{"19":{"position":[[757,6]]},"35":{"position":[[306,6]]}}}]],"pipeline":["stemmer"]}}] \ No newline at end of file +[{"documents":[{"i":1,"t":"","u":"/blog/archive","b":["Blog"]},{"i":4,"t":"Introducing the PixiJS Universe!","u":"/blog/pixi-universe","b":["Blog"]}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/1",[]],["t/4",[0,0.492,1,0.492,2,0.492]]],"invertedIndex":[["introducing",{"_index":0,"t":{"4":{"position":[[0,11]]}}}],["pixijs",{"_index":1,"t":{"4":{"position":[[16,6]]}}}],["universe",{"_index":2,"t":{"4":{"position":[[23,9]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":6,"t":"Phase 1​","u":"/blog/pixi-universe","h":"#phase-1","p":4},{"i":8,"t":"PixiJS Website​","u":"/blog/pixi-universe","h":"#pixijs-website","p":4},{"i":10,"t":"PixiJS React​","u":"/blog/pixi-universe","h":"#pixijs-react","p":4},{"i":12,"t":"PixiJS Open Games​","u":"/blog/pixi-universe","h":"#pixijs-open-games","p":4},{"i":14,"t":"PixiJS UI & PixiJS Layout​","u":"/blog/pixi-universe","h":"#pixijs-ui--pixijs-layout","p":4},{"i":16,"t":"AssetPack​","u":"/blog/pixi-universe","h":"#assetpack","p":4},{"i":18,"t":"Phase 2​","u":"/blog/pixi-universe","h":"#phase-2","p":4},{"i":20,"t":"PixiJS JumpStart​","u":"/blog/pixi-universe","h":"#pixijs-jumpstart","p":4},{"i":22,"t":"PixiJS Dev Tools​","u":"/blog/pixi-universe","h":"#pixijs-dev-tools","p":4},{"i":24,"t":"Phase 3​","u":"/blog/pixi-universe","h":"#phase-3","p":4},{"i":26,"t":"Comet​","u":"/blog/pixi-universe","h":"#comet","p":4},{"i":28,"t":"PixiJS v8​","u":"/blog/pixi-universe","h":"#pixijs-v8","p":4},{"i":30,"t":"Phase 4​","u":"/blog/pixi-universe","h":"#phase-4","p":4},{"i":32,"t":"PixiJS 3D​","u":"/blog/pixi-universe","h":"#pixijs-3d","p":4},{"i":34,"t":"PixiJS Game Engine​","u":"/blog/pixi-universe","h":"#pixijs-game-engine","p":4},{"i":36,"t":"Conclusion","u":"/blog/pixi-universe","h":"#conclusion","p":4}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/6",[0,1.377,1,2.516]],["t/8",[2,0.603,3,2.516]],["t/10",[2,0.603,4,2.516]],["t/12",[2,0.505,5,2.108,6,2.108]],["t/14",[2,0.588,7,1.591,8,1.591,9,1.591]],["t/16",[10,3.121]],["t/18",[0,1.377,11,2.516]],["t/20",[2,0.603,12,2.516]],["t/22",[2,0.505,13,2.108,14,2.108]],["t/24",[0,1.377,15,2.516]],["t/26",[16,3.121]],["t/28",[2,0.603,17,2.516]],["t/30",[0,1.377,18,2.516]],["t/32",[2,0.603,19,2.516]],["t/34",[2,0.505,20,2.108,21,2.108]],["t/36",[22,3.121]]],"invertedIndex":[["",{"_index":8,"t":{"14":{"position":[[10,1]]}}}],["1",{"_index":1,"t":{"6":{"position":[[6,2]]}}}],["2",{"_index":11,"t":{"18":{"position":[[6,2]]}}}],["3",{"_index":15,"t":{"24":{"position":[[6,2]]}}}],["3d",{"_index":19,"t":{"32":{"position":[[7,3]]}}}],["4",{"_index":18,"t":{"30":{"position":[[6,2]]}}}],["assetpack",{"_index":10,"t":{"16":{"position":[[0,10]]}}}],["comet",{"_index":16,"t":{"26":{"position":[[0,6]]}}}],["conclusion",{"_index":22,"t":{"36":{"position":[[0,10]]}}}],["dev",{"_index":13,"t":{"22":{"position":[[7,3]]}}}],["engine",{"_index":21,"t":{"34":{"position":[[12,7]]}}}],["game",{"_index":20,"t":{"34":{"position":[[7,4]]}}}],["games",{"_index":6,"t":{"12":{"position":[[12,6]]}}}],["jumpstart",{"_index":12,"t":{"20":{"position":[[7,10]]}}}],["layout",{"_index":9,"t":{"14":{"position":[[19,7]]}}}],["open",{"_index":5,"t":{"12":{"position":[[7,4]]}}}],["phase",{"_index":0,"t":{"6":{"position":[[0,5]]},"18":{"position":[[0,5]]},"24":{"position":[[0,5]]},"30":{"position":[[0,5]]}}}],["pixijs",{"_index":2,"t":{"8":{"position":[[0,6]]},"10":{"position":[[0,6]]},"12":{"position":[[0,6]]},"14":{"position":[[0,6],[12,6]]},"20":{"position":[[0,6]]},"22":{"position":[[0,6]]},"28":{"position":[[0,6]]},"32":{"position":[[0,6]]},"34":{"position":[[0,6]]}}}],["react",{"_index":4,"t":{"10":{"position":[[7,6]]}}}],["tools",{"_index":14,"t":{"22":{"position":[[11,6]]}}}],["ui",{"_index":7,"t":{"14":{"position":[[7,2]]}}}],["v8",{"_index":17,"t":{"28":{"position":[[7,3]]}}}],["website",{"_index":3,"t":{"8":{"position":[[7,8]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":5,"t":"We are excited to announce the launch of the PixiJS Universe, an initiative to further enhance the capabilities of PixiJS and make it even easier for developers to create amazing games and apps. For years, PixiJS has been the most popular 2D renderer for the web, but it was always \"just a rendering engine.\" The community has created many great tools to help developers build games and applications with PixiJS, but we lacked the manpower to maintain and improve these tools, causing fragmentation in the community. To address this, Playco has assembled a dedicated team of developers who will work on PixiJS full-time. Over the next 12 months, we have more than ten projects planned, and in this announcement, we would like to introduce some of them.","s":"Introducing the PixiJS Universe!","u":"/blog/pixi-universe","h":"","p":4},{"i":7,"t":"We have several new projects in the works, and we are releasing them in four phases over the year. We are currently nearing the end of phase 1, which has seen the release of several exciting new tools and libraries for PixiJS:","s":"Phase 1​","u":"/blog/pixi-universe","h":"#phase-1","p":4},{"i":9,"t":"First up we are excited to announce that we will be releasing a beta version of our new website for PixiJS. The current documentation has suffered from long-term organic growth over the years with little structure and as such much of the PixiJS documentation is fragmented across multiple sites. This new website will put everything you need in one place and be easily searchable. We are also planning on improving the documentation and adding more guides and examples, as well as considering translating the documentation into other languages. If you have any ideas on how to improve the site please let us know! Github Repo","s":"PixiJS Website​","u":"/blog/pixi-universe","h":"#pixijs-website","p":4},{"i":11,"t":"Next up is PixiJS React. A library that provides a way to use PixiJS in React applications. PixiJS React is a continuation of the react-pixi library created by Patrick Brouwer, which has been widely used by the PixiJS community in React projects. PixiJS has taken over maintenance of the library and is dedicated to improving the library's performance, documentation, and support for new features. The library provides an easy-to-use interface that makes it easy for developers to create React applications with PixiJS. The library integrates all the core features of PixiJS and allows you to create custom components for 3rd party libraries. Github Repo","s":"PixiJS React​","u":"/blog/pixi-universe","h":"#pixijs-react","p":4},{"i":13,"t":"We have now released a new repository called \"PixiJS Open Games\". This is a collection of open-source games that showcases how to use PixiJS to create games and is released under the MIT license. The purpose of these games is to provide professional examples of how to use PixiJS for game development. The first two games released are a match-3 game and a bubble shooter game. These games not only demonstrate how to use PixiJS for game development but also how to use other libraries such as PixiJS UI and AssetPack. We also have more games planned for release, which will demonstrate how to use PixiJS with other libraries such as PixiJS Layout and PixiJS React. PixiJS Open Games will hopefully be a valuable resource for game developers who want to learn how to use PixiJS for game development and will also be a great source of inspiration for developers looking to create their own games using PixiJS. The project is available on GitHub for anyone who wants to explore the code or contribute to the project. Github Repo Play Puzzling Potions Play Bubbo Bubbo","s":"PixiJS Open Games​","u":"/blog/pixi-universe","h":"#pixijs-open-games","p":4},{"i":15,"t":"PixiJS UI is a new library for developers who want to create beautiful and functional user interfaces with PixiJS. The library includes a range of components such as buttons, checkboxes, sliders, text inputs, scroll views, lists, radio buttons, and progress bars, which can be easily integrated into your game. These components are highly customizable, allowing you to tweak the appearance and behaviour of each element to fit your game's specific needs. PixiJS UI has been used in all of the open-source games, so feel free to check these out for real-world examples. PixiJS UI Github Repo PixiJS Layout is another library that can make your life as a developer easier. This library enables you to create responsive layouts using PixiJS, which means you can design interfaces that adapt to different screen sizes and aspect ratios. PixiJS Layout works well with PixiJS UI, allowing you to combine both libraries to create complex, dynamic interfaces that respond to user input and screen changes. With PixiJS Layout, you have the flexibility to create resizable layouts that can be adjusted to fit any screen size or device. This means that your game's interface can look great on everything from small mobile devices to large desktop displays. PixiJS Layout is still under development but will be ready in the next few weeks PixiJS Layout Github Repo","s":"PixiJS UI & PixiJS Layout​","u":"/blog/pixi-universe","h":"#pixijs-ui--pixijs-layout","p":4},{"i":17,"t":"Finally, for phase 1 we are announcing AssetPack. Asset management is an important part of developing applications, and the new AssetPack library aims to make this process easier. AssetPack is a framework-agnostic library that can be used with any framework, including PixiJS, ThreeJS, and Phaser. It provides a range of features that help developers manage their assets efficiently. The key feature of AssetPack is the ability to automatically generate new assets on the fly. For example, you can provide it with a folder of individual images and it will generate sprite sheets, which can significantly improve the performance of your application. It also provides plugins to generate mipmaps, convert fonts to different formats, convert audio to different formats, compress images, and minify JSON. These features help developers optimize their assets for faster loading times, better performance, and improved user experience. We will soon be releasing a new blog post that provides more details on how to use it. With its many useful features and framework-agnostic design. However, if you want to get stuck in today then check out the GitHub repo Github Repo","s":"AssetPack​","u":"/blog/pixi-universe","h":"#assetpack","p":4},{"i":19,"t":"Phase 2 will begin shortly and aims to make it easier to work with PixiJS applications.","s":"Phase 2​","u":"/blog/pixi-universe","h":"#phase-2","p":4},{"i":21,"t":"Jumpstart is a new CLI tool being developed by the PixiJS team to simplify the process of creating new PixiJS applications. With this tool, developers will no longer need to set up complicated tooling or worry about setting up different bundlers and frameworks. The tool will handle all the setup for you, allowing you to focus on building your application. Jumpstart will be similar to other CLI tools such as Create-React-App or Create-Vue, which have become popular in the front-end development community. The tool will provide templates for different bundlers and frameworks, including webpack, parcel, rollup, and more. This will make it easy for developers to get started with PixiJS regardless of their preferred tools and workflows. With Jumpstart, you'll be able to create a new PixiJS application in just a few minutes and start building right away.","s":"PixiJS JumpStart​","u":"/blog/pixi-universe","h":"#pixijs-jumpstart","p":4},{"i":23,"t":"PixiJS dev tools will be a browser extension that is planned to be released soon to help developers debug their PixiJS applications. This tool aims to make it easier for developers to understand the inner workings of PixiJS, optimize their code, and follow best practices. It is designed to help developers diagnose performance issues and visualize the resources that their applications are consuming. One of the key features of the PixiJS Dev Tools is its ability to help developers understand the complex process of batching in PixiJS. Batching is a technique used to optimize the rendering of multiple objects in the same draw call. This process can be complicated to understand, especially for new developers. PixiJS Dev Tools aims to make it easier to debug and optimize the rendering of objects. Overall, PixiJS Dev Tools will be a powerful tool that will make it easier for developers to build high-performance, visually stunning applications with PixiJS. By providing developers with a deeper understanding of the inner workings of PixiJS, this toolset will help developers optimize their code and create more efficient and engaging applications.","s":"PixiJS Dev Tools​","u":"/blog/pixi-universe","h":"#pixijs-dev-tools","p":4},{"i":25,"t":"Phase 3 is where our long-term projects start to be revealed. These are major changes to the PixiJS ecosystem that we are incredibly excited about","s":"Phase 3​","u":"/blog/pixi-universe","h":"#phase-3","p":4},{"i":27,"t":"Comet will be a new editor that aims to make it easier than ever to design and create games and applications with PixiJS. With its intuitive and user-friendly interface, the editor is designed to appeal to both designers and developers, allowing both groups to collaborate and work more efficiently. One of the standout features of Comet is the visual interface it provides for creating and editing scenes, sprites, animations, and more. This means that designers can create and edit complex scenes without ever having to write a single line of code. The editor provides a range of tools and options for creating sprites, animations, and other game elements, making it easy to get started with creating a game or application. In addition, developers will appreciate the runtime player feature, which allows them to easily recreate scenes in their own applications. This makes it easy to test and iterate on designs, ensuring that the final product is both functional and visually appealing. And with multi-user, real-time collaboration, Comet makes it easy for teams to work together, sharing assets and ideas and creating high-quality games and applications in record time.","s":"Comet​","u":"/blog/pixi-universe","h":"#comet","p":4},{"i":29,"t":"PixiJS v8 will be the next major release that represents a complete rewrite of PixiJS from the ground up. The development team has leveraged their extensive experience over many years to make improvements and optimizations to the core PixiJS engine. The new version of PixiJS is designed to be faster and more efficient, providing a significant improvement in rendering performance compared to v7 (currently sitting at x2) One of the most exciting features of PixiJS v8 is the inclusion of first-class support for WebGPU, which is a new graphics API that is being developed by major browser vendors. This will enable developers to take advantage of advanced GPU capabilities, which can significantly improve the performance of graphics-intensive applications. In addition to WebGPU support, the PixiJS team has also made a significant effort to optimize the engine for the canvas renderer, which will be available as a first-class option for developers looking to reduce bundle size. Overall, PixiJS v8 represents a major leap forward for us, developers can expect a much faster and more efficient engine that is better suited for building complex, graphics-intensive applications.","s":"PixiJS v8​","u":"/blog/pixi-universe","h":"#pixijs-v8","p":4},{"i":31,"t":"Phase 4 represents a leap into new territory for PixiJS as we look to delve deeper into areas outside of strictly 2D rendering.","s":"Phase 4​","u":"/blog/pixi-universe","h":"#phase-4","p":4},{"i":33,"t":"For years, Goodboy (now Playco) has had an internal 3D engine called Odie that was built on top of PixiJS. We are now planning to open-source it, which is exciting for those of you who want to seamlessly mix 2D and 3D content in your games or applications. With PixiJS 3D, you will no longer need to switch between engines or frameworks to incorporate 3D elements in your project. Although this is a long-term project, the team is making progress and plans to share more information later in the year. This release will greatly expand PixiJS's capabilities and give developers even more flexibility when building their applications.","s":"PixiJS 3D​","u":"/blog/pixi-universe","h":"#pixijs-3d","p":4},{"i":35,"t":"Finally, we are thrilled to announce that we will be working on a new library called PixiJS Game Engine. This game engine aims to provide everything you would expect from a 2D/3D game engine and will offer many features and tools to make game development easier and more efficient. Some of the features of PixiJS Game Engine will include support for physics engines, audio, input handling, asset loading and management, state management, animation and tweening, and more.","s":"PixiJS Game Engine​","u":"/blog/pixi-universe","h":"#pixijs-game-engine","p":4},{"i":37,"t":"We've shared a lot of exciting news about new projects and updates coming to the PixiJS community. There's a lot to look forward to in the upcoming months. We want to extend our sincere thanks to the PixiJS community, its contributors, and Playco for making all of this possible. We're excited to see what you'll create with these new tools and resources, and we look forward to continuing to support and grow the PixiJS ecosystem. Be sure to check out the GitHub links mentioned above and stay tuned for more updates on the PixiJS Universe!","s":"Conclusion","u":"/blog/pixi-universe","h":"#conclusion","p":4}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/5",[0,1.419,1,1.676,2,2.544,3,0.05,4,2.021,5,2.544,6,2.544,7,2.544,8,1.676,9,0.654,10,2.021,11,0.896,12,0.857,13,0.768,14,2.544,15,1.656,16,2.544,17,1.419,18,2.021,19,1.676,20,2.021,21,2.544,22,2.544,23,1.419,24,1.419,25,1.937,26,2.021,27,1.419,28,1.676,29,1.223,30,1.676,31,2.021,32,0.654,33,2.544,34,2.544,35,2.544,36,1.419,37,2.544,38,2.544,39,2.544,40,1.676,41,2.544,42,2.021,43,1.419,44,1.676,45,2.544,46,2.021,47,1.214,48,1.419,49,2.544,50,2.021,51,0.459,52,2.544,53,1.214,54,1.676,55,2.544,56,2.544]],["t/7",[3,0.039,29,1.217,47,1.648,53,1.648,57,4.233,58,0.49,59,2.743,60,2.276,61,3.453,62,3.453,63,2.743,64,2.743,65,3.453,66,2.743,67,1.648,68,2.743,69,3.453,70,1.927,71,1.927,72,1.927]],["t/9",[0,1.509,1,1.783,3,0.041,17,1.509,36,1.509,47,1.291,51,0.488,58,0.419,60,1.783,73,1.783,74,1.509,75,2.706,76,2.149,77,3.62,78,2.706,79,3.46,80,2.706,81,1.783,82,1.783,83,2.706,84,2.706,85,2.706,86,2.706,87,1.509,88,2.149,89,2.706,90,2.149,91,2.706,92,2.706,93,1.783,94,1.783,95,1.509,96,2.706,97,1.783,98,2.706,99,2.149,100,2.149,101,2.706,102,2.706,103,1.783,104,2.149,105,2.706,106,2.706,107,2.706,108,2.149,109,2.706,110,2.706,111,2.706,112,1.109,113,1.291]],["t/11",[3,0.053,12,0.555,13,1.053,25,1.428,26,2.033,32,0.897,42,2.033,47,1.221,48,1.428,53,1.221,58,0.296,72,1.428,74,1.428,79,2.033,100,2.033,112,1.049,113,1.221,114,3.029,115,2.485,116,2.297,117,2.559,118,2.297,119,2.559,120,2.559,121,2.559,122,2.559,123,2.559,124,1.428,125,2.559,126,2.559,127,2.559,128,1.428,129,1.428,130,1.429,131,2.297,132,1.686,133,2.033,134,2.559,135,2.033,136,2.033,137,2.559,138,2.033,139,2.559,140,2.559]],["t/13",[3,0.054,12,0.652,13,0.907,15,2.207,28,1.366,51,0.374,54,1.366,58,0.24,70,1.156,72,1.677,73,1.366,87,1.677,103,1.366,112,1.232,113,0.989,114,1.366,118,2.83,141,1.646,142,2.809,143,2.072,144,1.366,145,2.33,146,2.072,147,1.98,148,2.072,149,1.646,150,2.072,151,2.072,152,2.072,153,1.156,154,2.072,155,2.396,156,1.687,157,2.072,158,2.072,159,1.646,160,2.072,161,2.072,162,3.005,163,1.646,164,1.646,165,1.646,166,2.072,167,2.072,168,2.072,169,0.989,170,2.072,171,2.072,172,1.646,173,1.646,174,2.387,175,1.646,176,2.072,177,2.072,178,1.366,179,2.072,180,3.005,181,2.072,182,2.072,183,3.005]],["t/15",[3,0.052,9,0.451,11,0.618,12,0.381,13,1.08,15,0.838,28,1.157,48,0.979,58,0.203,59,1.394,72,0.979,87,0.979,93,1.157,97,1.157,103,1.157,104,1.394,112,1.089,113,1.268,115,1.995,124,0.979,132,1.157,138,2.111,145,1.157,147,1.157,149,1.394,155,0.979,156,0.838,163,2.841,165,3.052,169,0.838,173,1.394,184,1.755,185,1.394,186,1.751,187,3.207,188,1.755,189,1.157,190,2.657,191,1.755,192,1.755,193,1.755,194,1.755,195,1.755,196,1.755,197,1.755,198,1.755,199,1.394,200,1.755,201,1.755,202,1.755,203,1.755,204,1.751,205,1.755,206,1.755,207,1.755,208,1.755,209,1.755,210,2.657,211,2.657,212,1.755,213,1.755,214,1.755,215,1.755,216,1.157,217,1.157,218,1.394,219,1.755,220,1.755,221,1.755,222,1.755,223,1.755,224,1.755,225,2.657,226,2.111,227,1.157,228,1.755,229,1.157,230,3.207,231,1.755,232,1.755,233,1.755,234,1.755,235,1.394,236,0.979,237,1.755,238,1.755,239,1.394,240,1.394,241,1.394,242,1.755,243,1.755,244,1.394,245,1.755,246,1.157,247,1.755,248,1.755,249,1.755,250,1.755,251,1.755,252,1.755,253,1.755,254,1.755,255,1.394,256,1.755]],["t/17",[3,0.023,9,0.518,11,0.709,12,0.638,27,1.123,30,1.939,32,0.518,36,1.123,51,0.363,58,0.403,60,1.327,67,0.961,68,1.599,112,1.206,113,1.404,115,1.642,116,2.292,118,1.327,124,1.123,128,1.642,130,1.426,153,1.123,164,3.039,169,0.961,186,1.327,189,1.327,216,1.327,217,1.327,227,1.327,229,1.939,257,1.599,258,2.013,259,1.599,260,1.599,261,2.013,262,2.013,263,2.013,264,0.961,265,1.327,266,3.478,267,2.943,268,1.599,269,2.013,270,2.013,271,2.013,272,2.763,273,1.599,274,1.599,275,1.599,276,1.599,277,2.013,278,3.478,279,2.013,280,2.013,281,2.013,282,2.013,283,2.943,284,2.013,285,2.013,286,1.599,287,1.327,288,2.013,289,2.013,290,2.943,291,2.013,292,2.943,293,1.599,294,2.013,295,2.013,296,2.013,297,1.327,298,1.599,299,1.599,300,2.013,301,1.599,302,2.013,303,1.599,304,1.599,305,2.013,306,2.013,307,2.013,308,2.013,309,2.013,310,2.013]],["t/19",[3,0.043,9,0.984,11,1.348,32,0.984,44,2.522,67,1.826,264,1.826,311,3.826,312,3.826,313,3.826]],["t/21",[3,0.046,9,0.594,12,0.704,13,1.134,18,1.834,25,1.288,29,1.144,32,0.594,43,1.288,51,0.416,58,0.435,66,1.834,74,1.811,87,1.288,94,1.521,114,1.521,131,1.521,153,1.288,156,1.101,204,1.521,229,2.139,255,1.834,265,1.521,268,1.834,287,2.139,314,3.755,315,3.246,316,3.236,317,1.834,318,1.834,319,2.309,320,1.834,321,1.834,322,2.309,323,1.834,324,2.309,325,2.309,326,2.309,327,3.246,328,2.579,329,2.309,330,2.309,331,2.309,332,2.139,333,2.309,334,2.309,335,2.309,336,2.309,337,2.309,338,2.309,339,2.309,340,2.309,341,2.309,342,1.834,343,2.309,344,2.309,345,2.309,346,1.834,347,2.309,348,1.834,349,2.309,350,2.309]],["t/23",[3,0.052,9,0.894,11,1.225,12,0.976,13,0.608,23,1.642,29,1.348,30,2.521,31,1.599,32,0.984,51,0.363,54,1.327,58,0.233,90,1.599,95,1.123,124,1.123,128,1.642,130,0.825,142,1.599,178,1.939,236,1.123,264,1.404,265,1.939,274,1.599,276,1.599,297,2.521,304,1.599,316,2.338,323,1.599,351,3.826,352,1.599,353,2.013,354,2.943,355,3.478,356,2.943,357,2.943,358,2.013,359,2.013,360,2.013,361,1.327,362,2.013,363,2.013,364,2.013,365,1.599,366,2.013,367,2.943,368,2.013,369,2.943,370,2.013,371,2.013,372,2.013,373,2.013,374,1.599,375,2.013,376,1.599,377,1.599,378,2.013,379,1.599,380,1.599,381,2.013,382,2.013,383,1.327,384,2.013]],["t/25",[0,2.079,3,0.042,53,1.778,67,1.778,81,2.455,82,2.455,159,2.96,240,2.96,348,2.96,385,3.726,386,2.96,387,2.96,388,3.726]],["t/27",[3,0.023,9,0.511,11,0.699,12,0.632,13,0.879,15,1.39,29,0.699,32,0.887,44,1.919,46,2.314,51,0.525,58,0.23,95,1.107,97,1.308,108,1.577,116,1.919,130,0.814,131,2.273,132,1.919,133,2.314,136,1.577,155,1.625,178,1.308,185,1.577,186,1.919,189,1.308,204,1.308,218,1.577,226,1.577,227,1.308,235,2.741,236,1.107,264,0.947,272,1.577,273,1.577,275,1.577,287,1.308,320,3.019,342,1.577,361,1.308,376,1.577,377,1.577,389,3.45,390,3.45,391,1.985,392,1.985,393,1.985,394,2.912,395,1.985,396,1.985,397,1.985,398,1.985,399,1.985,400,3.45,401,2.912,402,2.912,403,1.985,404,1.985,405,1.985,406,1.985,407,1.985,408,1.985,409,1.985,410,1.577,411,1.308,412,1.577,413,1.985,414,1.985,415,1.985,416,1.985,417,1.985,418,1.985,419,1.985,420,1.985,421,1.985,422,1.985,423,1.985,424,1.985,425,1.985,426,1.985,427,1.985,428,1.985,429,1.985,430,1.985]],["t/29",[3,0.049,8,1.296,9,0.506,12,0.744,17,1.097,20,1.562,23,1.097,24,1.914,27,1.097,32,0.744,36,1.097,43,1.614,47,0.938,48,1.097,51,0.522,58,0.335,64,1.562,70,1.097,71,1.097,73,1.906,74,1.097,76,1.562,88,1.562,95,1.097,128,1.614,129,1.614,130,0.806,135,1.562,156,0.938,172,1.562,175,1.562,236,1.097,244,1.562,286,1.562,297,1.296,298,2.298,301,1.562,303,1.562,317,1.562,318,1.562,332,1.296,352,1.562,361,1.296,374,1.562,379,1.562,383,1.906,386,2.726,412,1.562,431,3.431,432,2.298,433,1.967,434,1.967,435,1.967,436,1.967,437,1.967,438,1.967,439,1.967,440,2.893,441,1.967,442,1.967,443,1.967,444,1.967,445,1.967,446,1.967,447,2.893,448,2.893,449,3.431,450,1.967,451,1.967,452,1.967,453,1.967,454,1.967,455,1.967,456,1.967,457,2.893,458,1.967,459,1.967,460,1.967,461,1.967,462,1.967,463,1.967,464,1.562,465,1.562,466,1.562,467,1.967]],["t/31",[3,0.042,19,2.413,23,2.043,58,0.424,67,1.747,246,2.413,380,2.909,432,2.909,464,2.909,468,3.662,469,3.662,470,3.662,471,3.662,472,3.662,473,3.662]],["t/33",[3,0.04,8,1.707,10,2.058,12,0.562,15,1.236,17,1.445,19,1.707,24,1.445,32,0.904,40,1.707,43,1.445,51,0.634,63,2.058,70,1.445,71,1.445,81,1.707,82,1.707,94,1.707,99,2.058,141,2.792,144,1.707,145,1.707,147,1.707,169,1.236,174,2.792,199,2.058,241,2.058,321,2.058,328,2.058,332,1.707,410,2.058,411,1.707,474,2.59,475,2.59,476,4.279,477,2.59,478,2.59,479,2.59,480,2.59,481,2.59,482,2.59,483,2.59,484,2.59,485,2.59,486,2.058,487,2.59,488,2.59,489,2.59,490,2.59,491,2.59,492,2.59,493,2.59,494,2.59,495,2.59,496,2.59]],["t/35",[1,1.879,3,0.042,9,0.733,11,1.004,24,2.481,27,1.59,29,1.004,51,0.676,58,0.33,93,1.879,115,1.59,129,1.59,130,1.536,144,1.879,153,1.59,155,2.577,156,1.36,239,2.265,257,2.265,259,2.265,260,2.977,264,1.36,293,2.265,299,2.265,383,1.879,466,2.265,486,2.265,497,2.851,498,2.851,499,2.851,500,2.851,501,2.851,502,2.851,503,2.851,504,2.851,505,2.851,506,2.851]],["t/37",[0,1.519,3,0.05,4,2.163,13,0.822,25,2.028,29,0.959,40,1.794,50,2.163,51,0.491,53,1.299,58,0.421,71,1.519,112,1.116,129,1.519,169,1.299,216,1.794,217,1.794,246,2.396,346,2.163,365,2.163,387,2.163,411,1.794,465,2.888,507,2.723,508,2.723,509,3.635,510,2.723,511,3.635,512,2.723,513,2.723,514,2.723,515,2.723,516,2.723,517,2.723,518,2.723,519,2.723,520,2.723,521,2.723,522,2.723,523,2.723,524,2.723,525,2.723,526,2.723,527,2.723,528,2.723,529,2.723]]],"invertedIndex":[["1",{"_index":68,"t":{"7":{"position":[[141,2]]},"17":{"position":[[19,1]]}}}],["12",{"_index":49,"t":{"5":{"position":[[635,2]]}}}],["2",{"_index":311,"t":{"19":{"position":[[6,1]]}}}],["2d",{"_index":19,"t":{"5":{"position":[[239,2]]},"31":{"position":[[114,2]]},"33":{"position":[[208,2]]}}}],["2d/3d",{"_index":499,"t":{"35":{"position":[[173,5]]}}}],["3",{"_index":159,"t":{"13":{"position":[[343,1]]},"25":{"position":[[6,1]]}}}],["3d",{"_index":476,"t":{"33":{"position":[[52,2],[215,2],[269,3],[352,2]]}}}],["3rd",{"_index":139,"t":{"11":{"position":[[622,3]]}}}],["4",{"_index":468,"t":{"31":{"position":[[6,1]]}}}],["ability",{"_index":276,"t":{"17":{"position":[[420,7]]},"23":{"position":[[457,7]]}}}],["above",{"_index":527,"t":{"37":{"position":[[480,5]]}}}],["adapt",{"_index":228,"t":{"15":{"position":[[782,5]]}}}],["adding",{"_index":101,"t":{"9":{"position":[[437,6]]}}}],["addition",{"_index":412,"t":{"27":{"position":[[729,9]]},"29":{"position":[[763,8]]}}}],["address",{"_index":39,"t":{"5":{"position":[[520,7]]}}}],["adjusted",{"_index":243,"t":{"15":{"position":[[1083,8]]}}}],["advanced",{"_index":455,"t":{"29":{"position":[[649,8]]}}}],["advantage",{"_index":454,"t":{"29":{"position":[[636,9]]}}}],["agnostic",{"_index":267,"t":{"17":{"position":[[205,8],[1061,8]]}}}],["aims",{"_index":264,"t":{"17":{"position":[[146,4]]},"19":{"position":[[31,4]]},"23":{"position":[[143,4],[731,4]]},"27":{"position":[[32,4]]},"35":{"position":[[122,4]]}}}],["allowing",{"_index":204,"t":{"15":{"position":[[353,8],[874,8]]},"21":{"position":[[306,8]]},"27":{"position":[[237,8]]}}}],["allows",{"_index":136,"t":{"11":{"position":[[579,6]]},"27":{"position":[[800,6]]}}}],["although",{"_index":488,"t":{"33":{"position":[[381,8]]}}}],["always",{"_index":22,"t":{"5":{"position":[[275,6]]}}}],["amazing",{"_index":14,"t":{"5":{"position":[[171,7]]}}}],["animation",{"_index":505,"t":{"35":{"position":[[438,9]]}}}],["animations",{"_index":402,"t":{"27":{"position":[[416,11],[622,11]]}}}],["announce",{"_index":1,"t":{"5":{"position":[[18,8]]},"9":{"position":[[27,8]]},"35":{"position":[[28,8]]}}}],["announcement",{"_index":55,"t":{"5":{"position":[[698,13]]}}}],["announcing",{"_index":258,"t":{"17":{"position":[[28,10]]}}}],["another",{"_index":220,"t":{"15":{"position":[[608,7]]}}}],["anyone",{"_index":176,"t":{"13":{"position":[[947,6]]}}}],["api",{"_index":450,"t":{"29":{"position":[[546,3]]}}}],["app",{"_index":334,"t":{"21":{"position":[[424,3]]}}}],["appeal",{"_index":393,"t":{"27":{"position":[[196,6]]}}}],["appealing",{"_index":423,"t":{"27":{"position":[[980,10]]}}}],["appearance",{"_index":206,"t":{"15":{"position":[[379,10]]}}}],["application",{"_index":287,"t":{"17":{"position":[[636,12]]},"21":{"position":[[345,12],[795,11]]},"27":{"position":[[713,12]]}}}],["applications",{"_index":32,"t":{"5":{"position":[[387,12]]},"11":{"position":[[78,13],[494,12]]},"17":{"position":[[102,13]]},"19":{"position":[[74,13]]},"21":{"position":[[110,13]]},"23":{"position":[[119,13],[374,12],[937,12],[1141,13]]},"27":{"position":[[96,12],[851,13],[1146,12]]},"29":{"position":[[746,13],[1168,13]]},"33":{"position":[[243,13],[619,13]]}}}],["appreciate",{"_index":413,"t":{"27":{"position":[[755,10]]}}}],["apps",{"_index":16,"t":{"5":{"position":[[189,5]]}}}],["areas",{"_index":471,"t":{"31":{"position":[[88,5]]}}}],["aspect",{"_index":232,"t":{"15":{"position":[[818,6]]}}}],["assembled",{"_index":41,"t":{"5":{"position":[[545,9]]}}}],["asset",{"_index":259,"t":{"17":{"position":[[50,5]]},"35":{"position":[[390,5]]}}}],["assetpack",{"_index":164,"t":{"13":{"position":[[507,10]]},"17":{"position":[[39,10],[128,9],[180,9],[403,9]]}}}],["assets",{"_index":272,"t":{"17":{"position":[[364,6],[458,6],[847,6]]},"27":{"position":[[1093,6]]}}}],["audio",{"_index":293,"t":{"17":{"position":[[739,5]]},"35":{"position":[[367,6]]}}}],["automatically",{"_index":277,"t":{"17":{"position":[[431,13]]}}}],["available",{"_index":175,"t":{"13":{"position":[[923,9]]},"29":{"position":[[904,9]]}}}],["away",{"_index":350,"t":{"21":{"position":[[854,5]]}}}],["bars",{"_index":200,"t":{"15":{"position":[[258,5]]}}}],["batching",{"_index":367,"t":{"23":{"position":[[518,8],[538,8]]}}}],["beautiful",{"_index":184,"t":{"15":{"position":[[61,9]]}}}],["become",{"_index":336,"t":{"21":{"position":[[454,6]]}}}],["begin",{"_index":312,"t":{"19":{"position":[[13,5]]}}}],["behaviour",{"_index":207,"t":{"15":{"position":[[394,9]]}}}],["being",{"_index":317,"t":{"21":{"position":[[28,5]]},"29":{"position":[[558,5]]}}}],["best",{"_index":359,"t":{"23":{"position":[[257,4]]}}}],["beta",{"_index":75,"t":{"9":{"position":[[64,4]]}}}],["better",{"_index":301,"t":{"17":{"position":[[880,6]]},"29":{"position":[[1113,6]]}}}],["between",{"_index":485,"t":{"33":{"position":[[307,7]]}}}],["blog",{"_index":305,"t":{"17":{"position":[[962,4]]}}}],["both",{"_index":235,"t":{"15":{"position":[[898,4]]},"27":{"position":[[206,4],[246,4],[951,4]]}}}],["brouwer",{"_index":122,"t":{"11":{"position":[[168,8]]}}}],["browser",{"_index":352,"t":{"23":{"position":[[27,7]]},"29":{"position":[[583,7]]}}}],["bubble",{"_index":160,"t":{"13":{"position":[[356,6]]}}}],["bubbo",{"_index":183,"t":{"13":{"position":[[1053,5],[1059,5]]}}}],["build",{"_index":31,"t":{"5":{"position":[[371,5]]},"23":{"position":[[895,5]]}}}],["building",{"_index":332,"t":{"21":{"position":[[331,8],[839,8]]},"29":{"position":[[1131,8]]},"33":{"position":[[604,8]]}}}],["built",{"_index":478,"t":{"33":{"position":[[83,5]]}}}],["bundle",{"_index":463,"t":{"29":{"position":[[971,6]]}}}],["bundlers",{"_index":327,"t":{"21":{"position":[[237,8],[555,8]]}}}],["buttons",{"_index":190,"t":{"15":{"position":[[166,8],[236,8]]}}}],["call",{"_index":372,"t":{"23":{"position":[[630,5]]}}}],["called",{"_index":144,"t":{"13":{"position":[[38,6]]},"33":{"position":[[62,6]]},"35":{"position":[[78,6]]}}}],["canvas",{"_index":460,"t":{"29":{"position":[[873,6]]}}}],["capabilities",{"_index":8,"t":{"5":{"position":[[99,12]]},"29":{"position":[[662,13]]},"33":{"position":[[544,12]]}}}],["causing",{"_index":37,"t":{"5":{"position":[[477,7]]}}}],["changes",{"_index":240,"t":{"15":{"position":[[989,8]]},"25":{"position":[[78,7]]}}}],["check",{"_index":216,"t":{"15":{"position":[[528,5]]},"17":{"position":[[1126,5]]},"37":{"position":[[443,5]]}}}],["checkboxes",{"_index":191,"t":{"15":{"position":[[175,11]]}}}],["class",{"_index":447,"t":{"29":{"position":[[496,5],[925,5]]}}}],["cli",{"_index":315,"t":{"21":{"position":[[19,3],[393,3]]}}}],["code",{"_index":178,"t":{"13":{"position":[[979,4]]},"23":{"position":[[240,5],[1097,4]]},"27":{"position":[[545,5]]}}}],["collaborate",{"_index":396,"t":{"27":{"position":[[261,11]]}}}],["collaboration",{"_index":425,"t":{"27":{"position":[[1022,14]]}}}],["collection",{"_index":146,"t":{"13":{"position":[[76,10]]}}}],["combine",{"_index":234,"t":{"15":{"position":[[890,7]]}}}],["comet",{"_index":389,"t":{"27":{"position":[[0,5],[332,5],[1037,5]]}}}],["coming",{"_index":512,"t":{"37":{"position":[[67,6]]}}}],["community",{"_index":25,"t":{"5":{"position":[[313,9],[506,10]]},"11":{"position":[[218,9]]},"21":{"position":[[498,10]]},"37":{"position":[[88,10],[207,10]]}}}],["compared",{"_index":442,"t":{"29":{"position":[[382,8]]}}}],["complete",{"_index":433,"t":{"29":{"position":[[59,8]]}}}],["complex",{"_index":236,"t":{"15":{"position":[[923,8]]},"23":{"position":[[499,7]]},"27":{"position":[[484,7]]},"29":{"position":[[1140,8]]}}}],["complicated",{"_index":323,"t":{"21":{"position":[[181,11]]},"23":{"position":[[656,11]]}}}],["components",{"_index":138,"t":{"11":{"position":[[607,10]]},"15":{"position":[[147,10],[317,10]]}}}],["compress",{"_index":294,"t":{"17":{"position":[[767,8]]}}}],["considering",{"_index":105,"t":{"9":{"position":[[481,11]]}}}],["consuming",{"_index":366,"t":{"23":{"position":[[391,10]]}}}],["content",{"_index":483,"t":{"33":{"position":[[218,7]]}}}],["continuation",{"_index":119,"t":{"11":{"position":[[110,12]]}}}],["continuing",{"_index":522,"t":{"37":{"position":[[379,10]]}}}],["contribute",{"_index":179,"t":{"13":{"position":[[987,10]]}}}],["contributors",{"_index":518,"t":{"37":{"position":[[222,13]]}}}],["convert",{"_index":290,"t":{"17":{"position":[[695,7],[731,7]]}}}],["core",{"_index":135,"t":{"11":{"position":[[551,4]]},"29":{"position":[[230,4]]}}}],["create",{"_index":13,"t":{"5":{"position":[[164,6]]},"11":{"position":[[481,6],[593,6]]},"13":{"position":[[144,6],[871,6]]},"15":{"position":[[54,6],[699,6],[916,6],[1046,6]]},"21":{"position":[[411,6],[431,6],[775,6]]},"23":{"position":[[1106,6]]},"27":{"position":[[79,6],[468,6]]},"37":{"position":[[313,6]]}}}],["created",{"_index":26,"t":{"5":{"position":[[327,7]]},"11":{"position":[[149,7]]}}}],["creating",{"_index":320,"t":{"21":{"position":[[90,8]]},"27":{"position":[[378,8],[604,8],[694,8],[1114,8]]}}}],["current",{"_index":78,"t":{"9":{"position":[[112,7]]}}}],["currently",{"_index":64,"t":{"7":{"position":[[106,9]]},"29":{"position":[[397,10]]}}}],["custom",{"_index":137,"t":{"11":{"position":[[600,6]]}}}],["customizable",{"_index":203,"t":{"15":{"position":[[339,13]]}}}],["debug",{"_index":354,"t":{"23":{"position":[[100,5],[757,5]]}}}],["dedicated",{"_index":42,"t":{"5":{"position":[[557,9]]},"11":{"position":[[303,9]]}}}],["deeper",{"_index":380,"t":{"23":{"position":[[994,6]]},"31":{"position":[[76,6]]}}}],["delve",{"_index":470,"t":{"31":{"position":[[70,5]]}}}],["demonstrate",{"_index":162,"t":{"13":{"position":[[398,11],[574,11]]}}}],["design",{"_index":227,"t":{"15":{"position":[[759,6]]},"17":{"position":[[1070,7]]},"27":{"position":[[68,6]]}}}],["designed",{"_index":361,"t":{"23":{"position":[[279,8]]},"27":{"position":[[184,8]]},"29":{"position":[[279,8]]}}}],["designers",{"_index":394,"t":{"27":{"position":[[211,9],[454,9]]}}}],["designs",{"_index":419,"t":{"27":{"position":[[907,8]]}}}],["desktop",{"_index":251,"t":{"15":{"position":[[1228,7]]}}}],["details",{"_index":307,"t":{"17":{"position":[[991,7]]}}}],["dev",{"_index":351,"t":{"23":{"position":[[7,3],[440,3],[721,3],[818,3]]}}}],["developed",{"_index":318,"t":{"21":{"position":[[34,9]]},"29":{"position":[[564,9]]}}}],["developer",{"_index":222,"t":{"15":{"position":[[653,9]]}}}],["developers",{"_index":12,"t":{"5":{"position":[[150,10],[360,10],[575,10]]},"11":{"position":[[467,10]]},"13":{"position":[[730,10],[849,10]]},"15":{"position":[[31,10]]},"17":{"position":[[340,10],[821,10]]},"21":{"position":[[140,10],[652,10]]},"23":{"position":[[89,10],[170,10],[296,10],[473,10],[702,11],[881,10],[976,10],[1071,10]]},"27":{"position":[[225,11],[739,10]]},"29":{"position":[[617,10],[942,10],[1043,10]]},"33":{"position":[[566,10]]}}}],["developing",{"_index":263,"t":{"17":{"position":[[91,10]]}}}],["development",{"_index":156,"t":{"13":{"position":[[289,12],[437,11],[786,11]]},"15":{"position":[[1275,11]]},"21":{"position":[[486,11]]},"29":{"position":[[110,11]]},"35":{"position":[[243,11]]}}}],["device",{"_index":245,"t":{"15":{"position":[[1118,7]]}}}],["devices",{"_index":249,"t":{"15":{"position":[[1211,7]]}}}],["diagnose",{"_index":362,"t":{"23":{"position":[[307,8]]}}}],["different",{"_index":229,"t":{"15":{"position":[[791,9]]},"17":{"position":[[712,9],[748,9]]},"21":{"position":[[227,9],[545,9]]}}}],["displays",{"_index":252,"t":{"15":{"position":[[1236,9]]}}}],["documentation",{"_index":79,"t":{"9":{"position":[[120,13],[245,13],[419,13],[509,13]]},"11":{"position":[[353,14]]}}}],["draw",{"_index":371,"t":{"23":{"position":[[625,4]]}}}],["dynamic",{"_index":237,"t":{"15":{"position":[[932,7]]}}}],["each",{"_index":208,"t":{"15":{"position":[[407,4]]}}}],["easier",{"_index":11,"t":{"5":{"position":[[139,6]]},"15":{"position":[[663,7]]},"17":{"position":[[172,7]]},"19":{"position":[[47,6]]},"23":{"position":[[159,6],[747,6],[870,6]]},"27":{"position":[[48,6]]},"35":{"position":[[255,6]]}}}],["easily",{"_index":97,"t":{"9":{"position":[[362,6]]},"15":{"position":[[277,6]]},"27":{"position":[[815,6]]}}}],["easy",{"_index":131,"t":{"11":{"position":[[422,4],[458,4]]},"21":{"position":[[643,4]]},"27":{"position":[[669,4],[879,4],[1052,4]]}}}],["ecosystem",{"_index":387,"t":{"25":{"position":[[100,9]]},"37":{"position":[[421,10]]}}}],["edit",{"_index":403,"t":{"27":{"position":[[479,4]]}}}],["editing",{"_index":399,"t":{"27":{"position":[[391,7]]}}}],["editor",{"_index":390,"t":{"27":{"position":[[20,6],[174,6],[555,6]]}}}],["efficient",{"_index":383,"t":{"23":{"position":[[1118,9]]},"29":{"position":[[310,10],[1088,9]]},"35":{"position":[[271,10]]}}}],["efficiently",{"_index":273,"t":{"17":{"position":[[371,12]]},"27":{"position":[[287,12]]}}}],["effort",{"_index":459,"t":{"29":{"position":[[835,6]]}}}],["element",{"_index":209,"t":{"15":{"position":[[412,7]]}}}],["elements",{"_index":410,"t":{"27":{"position":[[649,9]]},"33":{"position":[[355,8]]}}}],["enable",{"_index":452,"t":{"29":{"position":[[610,6]]}}}],["enables",{"_index":223,"t":{"15":{"position":[[684,7]]}}}],["end",{"_index":66,"t":{"7":{"position":[[128,3]]},"21":{"position":[[482,3]]}}}],["engaging",{"_index":384,"t":{"23":{"position":[[1132,8]]}}}],["engine",{"_index":24,"t":{"5":{"position":[[300,8]]},"29":{"position":[[242,7],[858,6],[1098,6]]},"33":{"position":[[55,6]]},"35":{"position":[[97,7],[115,6],[184,6],[318,6]]}}}],["engines",{"_index":486,"t":{"33":{"position":[[315,7]]},"35":{"position":[[358,8]]}}}],["enhance",{"_index":7,"t":{"5":{"position":[[87,7]]}}}],["ensuring",{"_index":420,"t":{"27":{"position":[[916,8]]}}}],["especially",{"_index":373,"t":{"23":{"position":[[683,10]]}}}],["even",{"_index":10,"t":{"5":{"position":[[134,4]]},"33":{"position":[[577,4]]}}}],["everything",{"_index":93,"t":{"9":{"position":[[322,10]]},"15":{"position":[[1182,10]]},"35":{"position":[[138,10]]}}}],["example",{"_index":280,"t":{"17":{"position":[[481,8]]}}}],["examples",{"_index":103,"t":{"9":{"position":[[460,9]]},"13":{"position":[[250,8]]},"15":{"position":[[559,9]]}}}],["excited",{"_index":0,"t":{"5":{"position":[[7,7]]},"9":{"position":[[16,7]]},"25":{"position":[[133,7]]},"37":{"position":[[286,7]]}}}],["exciting",{"_index":71,"t":{"7":{"position":[[182,8]]},"29":{"position":[[439,8]]},"33":{"position":[[155,8]]},"37":{"position":[[22,8]]}}}],["expand",{"_index":494,"t":{"33":{"position":[[528,6]]}}}],["expect",{"_index":466,"t":{"29":{"position":[[1058,6]]},"35":{"position":[[159,6]]}}}],["experience",{"_index":303,"t":{"17":{"position":[[918,11]]},"29":{"position":[[157,10]]}}}],["explore",{"_index":177,"t":{"13":{"position":[[967,7]]}}}],["extend",{"_index":515,"t":{"37":{"position":[[167,6]]}}}],["extension",{"_index":353,"t":{"23":{"position":[[35,9]]}}}],["extensive",{"_index":437,"t":{"29":{"position":[[147,9]]}}}],["faster",{"_index":298,"t":{"17":{"position":[[858,6]]},"29":{"position":[[294,6],[1072,6]]}}}],["feature",{"_index":275,"t":{"17":{"position":[[392,7]]},"27":{"position":[[785,8]]}}}],["features",{"_index":130,"t":{"11":{"position":[[388,9],[556,8]]},"17":{"position":[[321,8],[807,8],[1038,8]]},"23":{"position":[[417,8]]},"27":{"position":[[320,8]]},"29":{"position":[[448,8]]},"35":{"position":[[211,8],[294,8]]}}}],["feel",{"_index":214,"t":{"15":{"position":[[515,4]]}}}],["few",{"_index":255,"t":{"15":{"position":[[1317,3]]},"21":{"position":[[817,3]]}}}],["final",{"_index":421,"t":{"27":{"position":[[934,5]]}}}],["finally",{"_index":257,"t":{"17":{"position":[[0,8]]},"35":{"position":[[0,8]]}}}],["first",{"_index":73,"t":{"9":{"position":[[0,5]]},"13":{"position":[[306,5]]},"29":{"position":[[490,5],[919,5]]}}}],["fit",{"_index":210,"t":{"15":{"position":[[423,3],[1095,3]]}}}],["flexibility",{"_index":241,"t":{"15":{"position":[[1031,11]]},"33":{"position":[[587,11]]}}}],["fly",{"_index":279,"t":{"17":{"position":[[472,4]]}}}],["focus",{"_index":331,"t":{"21":{"position":[[322,5]]}}}],["folder",{"_index":281,"t":{"17":{"position":[[516,6]]}}}],["follow",{"_index":358,"t":{"23":{"position":[[250,6]]}}}],["fonts",{"_index":291,"t":{"17":{"position":[[703,5]]}}}],["formats",{"_index":292,"t":{"17":{"position":[[722,8],[758,8]]}}}],["forward",{"_index":465,"t":{"29":{"position":[[1027,7]]},"37":{"position":[[121,7],[368,7]]}}}],["four",{"_index":61,"t":{"7":{"position":[[72,4]]}}}],["fragmentation",{"_index":38,"t":{"5":{"position":[[485,13]]}}}],["fragmented",{"_index":89,"t":{"9":{"position":[[262,10]]}}}],["framework",{"_index":266,"t":{"17":{"position":[[195,9],[248,10],[1051,9]]}}}],["frameworks",{"_index":328,"t":{"21":{"position":[[250,11],[568,11]]},"33":{"position":[[326,10]]}}}],["free",{"_index":215,"t":{"15":{"position":[[520,4]]}}}],["friendly",{"_index":392,"t":{"27":{"position":[[150,8]]}}}],["front",{"_index":337,"t":{"21":{"position":[[476,5]]}}}],["full",{"_index":45,"t":{"5":{"position":[[610,4]]}}}],["functional",{"_index":185,"t":{"15":{"position":[[75,10]]},"27":{"position":[[956,10]]}}}],["further",{"_index":6,"t":{"5":{"position":[[79,7]]}}}],["game",{"_index":155,"t":{"13":{"position":[[284,4],[345,4],[371,5],[432,4],[725,4],[781,4]]},"15":{"position":[[305,5]]},"27":{"position":[[644,4],[705,4]]},"35":{"position":[[92,4],[110,4],[179,4],[238,4],[313,4]]}}}],["game's",{"_index":211,"t":{"15":{"position":[[432,6],[1147,6]]}}}],["games",{"_index":15,"t":{"5":{"position":[[179,5],[377,5]]},"13":{"position":[[58,7],[102,5],[151,5],[217,5],[316,5],[383,5],[536,5],[677,5],[888,5]]},"15":{"position":[[505,6]]},"27":{"position":[[86,5],[1136,5]]},"33":{"position":[[234,5]]}}}],["generate",{"_index":278,"t":{"17":{"position":[[445,8],[556,8],[677,8]]}}}],["github",{"_index":112,"t":{"9":{"position":[[614,6]]},"11":{"position":[[643,6]]},"13":{"position":[[936,6],[1014,6]]},"15":{"position":[[579,6],[1341,6]]},"17":{"position":[[1140,6],[1152,6]]},"37":{"position":[[457,6]]}}}],["give",{"_index":496,"t":{"33":{"position":[[561,4]]}}}],["goodboy",{"_index":474,"t":{"33":{"position":[[11,7]]}}}],["gpu",{"_index":456,"t":{"29":{"position":[[658,3]]}}}],["graphics",{"_index":449,"t":{"29":{"position":[[537,8],[727,8],[1149,8]]}}}],["great",{"_index":28,"t":{"5":{"position":[[340,5]]},"13":{"position":[[817,5]]},"15":{"position":[[1173,5]]}}}],["greatly",{"_index":493,"t":{"33":{"position":[[520,7]]}}}],["ground",{"_index":435,"t":{"29":{"position":[[95,6]]}}}],["groups",{"_index":395,"t":{"27":{"position":[[251,6]]}}}],["grow",{"_index":523,"t":{"37":{"position":[[405,4]]}}}],["growth",{"_index":84,"t":{"9":{"position":[[170,6]]}}}],["guides",{"_index":102,"t":{"9":{"position":[[449,6]]}}}],["handle",{"_index":329,"t":{"21":{"position":[[276,6]]}}}],["handling",{"_index":503,"t":{"35":{"position":[[380,9]]}}}],["having",{"_index":405,"t":{"27":{"position":[[512,6]]}}}],["help",{"_index":30,"t":{"5":{"position":[[355,4]]},"17":{"position":[[335,4],[816,4]]},"23":{"position":[[84,4],[291,4],[468,4],[1066,4]]}}}],["high",{"_index":376,"t":{"23":{"position":[[901,4]]},"27":{"position":[[1123,4]]}}}],["highly",{"_index":202,"t":{"15":{"position":[[332,6]]}}}],["hopefully",{"_index":166,"t":{"13":{"position":[[688,9]]}}}],["ideas",{"_index":108,"t":{"9":{"position":[[561,5]]},"27":{"position":[[1104,5]]}}}],["images",{"_index":283,"t":{"17":{"position":[[537,6],[776,7]]}}}],["important",{"_index":261,"t":{"17":{"position":[[73,9]]}}}],["improve",{"_index":36,"t":{"5":{"position":[[456,7]]},"9":{"position":[[577,7]]},"17":{"position":[[604,7]]},"29":{"position":[[700,7]]}}}],["improved",{"_index":302,"t":{"17":{"position":[[904,8]]}}}],["improvement",{"_index":441,"t":{"29":{"position":[[345,11]]}}}],["improvements",{"_index":438,"t":{"29":{"position":[[192,12]]}}}],["improving",{"_index":100,"t":{"9":{"position":[[405,9]]},"11":{"position":[[316,9]]}}}],["include",{"_index":501,"t":{"35":{"position":[[330,7]]}}}],["includes",{"_index":188,"t":{"15":{"position":[[127,8]]}}}],["including",{"_index":268,"t":{"17":{"position":[[259,9]]},"21":{"position":[[580,9]]}}}],["inclusion",{"_index":446,"t":{"29":{"position":[[477,9]]}}}],["incorporate",{"_index":487,"t":{"33":{"position":[[340,11]]}}}],["incredibly",{"_index":388,"t":{"25":{"position":[[122,10]]}}}],["individual",{"_index":282,"t":{"17":{"position":[[526,10]]}}}],["information",{"_index":491,"t":{"33":{"position":[[471,11]]}}}],["initiative",{"_index":5,"t":{"5":{"position":[[65,10]]}}}],["inner",{"_index":356,"t":{"23":{"position":[[199,5],[1022,5]]}}}],["input",{"_index":239,"t":{"15":{"position":[[972,5]]},"35":{"position":[[374,5]]}}}],["inputs",{"_index":194,"t":{"15":{"position":[[201,7]]}}}],["inspiration",{"_index":171,"t":{"13":{"position":[[833,11]]}}}],["integrated",{"_index":201,"t":{"15":{"position":[[284,10]]}}}],["integrates",{"_index":134,"t":{"11":{"position":[[532,10]]}}}],["intensive",{"_index":457,"t":{"29":{"position":[[736,9],[1158,9]]}}}],["interface",{"_index":132,"t":{"11":{"position":[[434,9]]},"15":{"position":[[1154,9]]},"27":{"position":[[159,10],[352,9]]}}}],["interfaces",{"_index":187,"t":{"15":{"position":[[91,10],[766,10],[940,10]]}}}],["internal",{"_index":475,"t":{"33":{"position":[[43,8]]}}}],["introduce",{"_index":56,"t":{"5":{"position":[[729,9]]}}}],["intuitive",{"_index":391,"t":{"27":{"position":[[131,9]]}}}],["issues",{"_index":363,"t":{"23":{"position":[[328,6]]}}}],["iterate",{"_index":418,"t":{"27":{"position":[[896,7]]}}}],["json",{"_index":296,"t":{"17":{"position":[[795,5]]}}}],["jumpstart",{"_index":314,"t":{"21":{"position":[[0,9],[358,9],[746,10]]}}}],["key",{"_index":274,"t":{"17":{"position":[[388,3]]},"23":{"position":[[413,3]]}}}],["know",{"_index":111,"t":{"9":{"position":[[608,5]]}}}],["lacked",{"_index":33,"t":{"5":{"position":[[420,6]]}}}],["languages",{"_index":107,"t":{"9":{"position":[[534,10]]}}}],["large",{"_index":250,"t":{"15":{"position":[[1222,5]]}}}],["later",{"_index":492,"t":{"33":{"position":[[483,5]]}}}],["launch",{"_index":2,"t":{"5":{"position":[[31,6]]}}}],["layout",{"_index":165,"t":{"13":{"position":[[640,6]]},"15":{"position":[[598,6],[840,6],[1010,7],[1253,6],[1334,6]]}}}],["layouts",{"_index":225,"t":{"15":{"position":[[717,7],[1063,7]]}}}],["leap",{"_index":464,"t":{"29":{"position":[[1022,4]]},"31":{"position":[[21,4]]}}}],["learn",{"_index":170,"t":{"13":{"position":[[753,5]]}}}],["leveraged",{"_index":436,"t":{"29":{"position":[[131,9]]}}}],["libraries",{"_index":72,"t":{"7":{"position":[[205,9]]},"11":{"position":[[632,10]]},"13":{"position":[[475,9],[615,9]]},"15":{"position":[[903,9]]}}}],["library",{"_index":115,"t":{"11":{"position":[[27,7],[141,7],[288,7],[402,7],[524,7]]},"15":{"position":[[19,7],[119,7],[616,7],[676,7]]},"17":{"position":[[138,7],[214,7]]},"35":{"position":[[70,7]]}}}],["library's",{"_index":127,"t":{"11":{"position":[[330,9]]}}}],["license",{"_index":151,"t":{"13":{"position":[[187,8]]}}}],["life",{"_index":221,"t":{"15":{"position":[[643,4]]}}}],["line",{"_index":408,"t":{"27":{"position":[[537,4]]}}}],["links",{"_index":525,"t":{"37":{"position":[[464,5]]}}}],["lists",{"_index":197,"t":{"15":{"position":[[223,6]]}}}],["little",{"_index":85,"t":{"9":{"position":[[197,6]]}}}],["loading",{"_index":299,"t":{"17":{"position":[[865,7]]},"35":{"position":[[396,7]]}}}],["long",{"_index":81,"t":{"9":{"position":[[152,4]]},"25":{"position":[[21,4]]},"33":{"position":[[400,4]]}}}],["longer",{"_index":321,"t":{"21":{"position":[[159,6]]},"33":{"position":[[285,6]]}}}],["look",{"_index":246,"t":{"15":{"position":[[1168,4]]},"31":{"position":[[62,4]]},"37":{"position":[[116,4],[363,4]]}}}],["looking",{"_index":172,"t":{"13":{"position":[[860,7]]},"29":{"position":[[953,7]]}}}],["lot",{"_index":509,"t":{"37":{"position":[[15,3],[109,3]]}}}],["made",{"_index":458,"t":{"29":{"position":[[816,4]]}}}],["maintain",{"_index":35,"t":{"5":{"position":[[443,8]]}}}],["maintenance",{"_index":126,"t":{"11":{"position":[[269,11]]}}}],["major",{"_index":386,"t":{"25":{"position":[[72,5]]},"29":{"position":[[27,5],[577,5],[1016,5]]}}}],["make",{"_index":9,"t":{"5":{"position":[[126,4]]},"15":{"position":[[633,4]]},"17":{"position":[[154,4]]},"19":{"position":[[39,4]]},"21":{"position":[[635,4]]},"23":{"position":[[151,4],[739,4],[862,4]]},"27":{"position":[[40,4]]},"29":{"position":[[187,4]]},"35":{"position":[[233,4]]}}}],["makes",{"_index":133,"t":{"11":{"position":[[449,5]]},"27":{"position":[[870,5],[1043,5]]}}}],["making",{"_index":411,"t":{"27":{"position":[[659,6]]},"33":{"position":[[431,6]]},"37":{"position":[[251,6]]}}}],["manage",{"_index":271,"t":{"17":{"position":[[351,6]]}}}],["management",{"_index":260,"t":{"17":{"position":[[56,10]]},"35":{"position":[[408,11],[426,11]]}}}],["manpower",{"_index":34,"t":{"5":{"position":[[431,8]]}}}],["many",{"_index":27,"t":{"5":{"position":[[335,4]]},"17":{"position":[[1026,4]]},"29":{"position":[[173,4]]},"35":{"position":[[206,4]]}}}],["match",{"_index":158,"t":{"13":{"position":[[337,5]]}}}],["means",{"_index":226,"t":{"15":{"position":[[745,5],[1131,5]]},"27":{"position":[[443,5]]}}}],["mentioned",{"_index":526,"t":{"37":{"position":[[470,9]]}}}],["minify",{"_index":295,"t":{"17":{"position":[[788,6]]}}}],["minutes",{"_index":347,"t":{"21":{"position":[[821,7]]}}}],["mipmaps",{"_index":289,"t":{"17":{"position":[[686,8]]}}}],["mit",{"_index":150,"t":{"13":{"position":[[183,3]]}}}],["mix",{"_index":482,"t":{"33":{"position":[[204,3]]}}}],["mobile",{"_index":248,"t":{"15":{"position":[[1204,6]]}}}],["months",{"_index":50,"t":{"5":{"position":[[638,7]]},"37":{"position":[[148,7]]}}}],["more",{"_index":51,"t":{"5":{"position":[[654,4]]},"9":{"position":[[444,4]]},"13":{"position":[[531,4]]},"17":{"position":[[986,4]]},"21":{"position":[[619,5]]},"23":{"position":[[1113,4]]},"27":{"position":[[282,4],[432,5]]},"29":{"position":[[305,4],[1083,4]]},"33":{"position":[[466,4],[582,4]]},"35":{"position":[[266,4],[466,5]]},"37":{"position":[[505,4]]}}}],["much",{"_index":88,"t":{"9":{"position":[[226,4]]},"29":{"position":[[1067,4]]}}}],["multi",{"_index":424,"t":{"27":{"position":[[1000,5]]}}}],["multiple",{"_index":90,"t":{"9":{"position":[[280,8]]},"23":{"position":[[596,8]]}}}],["nearing",{"_index":65,"t":{"7":{"position":[[116,7]]}}}],["need",{"_index":94,"t":{"9":{"position":[[337,4]]},"21":{"position":[[166,4]]},"33":{"position":[[292,4]]}}}],["needs",{"_index":213,"t":{"15":{"position":[[448,6]]}}}],["new",{"_index":58,"t":{"7":{"position":[[16,3],[191,3]]},"9":{"position":[[84,3],[301,3]]},"11":{"position":[[384,3]]},"13":{"position":[[23,3]]},"15":{"position":[[15,3]]},"17":{"position":[[124,3],[454,3],[958,3]]},"21":{"position":[[15,3],[99,3],[784,3]]},"23":{"position":[[698,3]]},"27":{"position":[[16,3]]},"29":{"position":[[254,3],[533,3]]},"31":{"position":[[31,3]]},"35":{"position":[[66,3]]},"37":{"position":[[42,3],[331,3]]}}}],["news",{"_index":510,"t":{"37":{"position":[[31,4]]}}}],["next",{"_index":48,"t":{"5":{"position":[[630,4]]},"11":{"position":[[0,4]]},"15":{"position":[[1312,4]]},"29":{"position":[[22,4]]}}}],["now",{"_index":141,"t":{"13":{"position":[[8,3]]},"33":{"position":[[19,4],[114,3]]}}}],["objects",{"_index":369,"t":{"23":{"position":[[605,7],[793,8]]}}}],["odie",{"_index":477,"t":{"33":{"position":[[69,4]]}}}],["offer",{"_index":500,"t":{"35":{"position":[[200,5]]}}}],["one",{"_index":95,"t":{"9":{"position":[[345,3]]},"23":{"position":[[402,3]]},"27":{"position":[[300,3]]},"29":{"position":[[423,3]]}}}],["open",{"_index":145,"t":{"13":{"position":[[53,4],[90,4],[672,4]]},"15":{"position":[[493,4]]},"33":{"position":[[130,4]]}}}],["optimizations",{"_index":439,"t":{"29":{"position":[[209,13]]}}}],["optimize",{"_index":297,"t":{"17":{"position":[[832,8]]},"23":{"position":[[225,8],[570,8],[767,8],[1082,8]]},"29":{"position":[[845,8]]}}}],["option",{"_index":461,"t":{"29":{"position":[[931,6]]}}}],["options",{"_index":409,"t":{"27":{"position":[[592,7]]}}}],["organic",{"_index":83,"t":{"9":{"position":[[162,7]]}}}],["out",{"_index":217,"t":{"15":{"position":[[540,3]]},"17":{"position":[[1132,3]]},"37":{"position":[[449,3]]}}}],["outside",{"_index":472,"t":{"31":{"position":[[94,7]]}}}],["over",{"_index":47,"t":{"5":{"position":[[621,4]]},"7":{"position":[[84,4]]},"9":{"position":[[177,4]]},"11":{"position":[[264,4]]},"29":{"position":[[168,4]]}}}],["overall",{"_index":374,"t":{"23":{"position":[[802,8]]},"29":{"position":[[984,8]]}}}],["parcel",{"_index":340,"t":{"21":{"position":[[599,7]]}}}],["part",{"_index":262,"t":{"17":{"position":[[83,4]]}}}],["party",{"_index":140,"t":{"11":{"position":[[626,5]]}}}],["patrick",{"_index":121,"t":{"11":{"position":[[160,7]]}}}],["performance",{"_index":128,"t":{"11":{"position":[[340,12]]},"17":{"position":[[616,11],[887,12]]},"23":{"position":[[316,11],[906,12]]},"29":{"position":[[370,11],[712,11]]}}}],["phase",{"_index":67,"t":{"7":{"position":[[135,5]]},"17":{"position":[[13,5]]},"19":{"position":[[0,5]]},"25":{"position":[[0,5]]},"31":{"position":[[0,5]]}}}],["phaser",{"_index":270,"t":{"17":{"position":[[290,7]]}}}],["phases",{"_index":62,"t":{"7":{"position":[[77,6]]}}}],["physics",{"_index":502,"t":{"35":{"position":[[350,7]]}}}],["pixi",{"_index":120,"t":{"11":{"position":[[136,4]]}}}],["pixijs",{"_index":3,"t":{"5":{"position":[[45,6],[115,6],[206,6],[405,7],[603,6]]},"7":{"position":[[219,7]]},"9":{"position":[[100,7],[238,6]]},"11":{"position":[[11,6],[62,6],[92,6],[211,6],[247,6],[512,7],[568,6]]},"13":{"position":[[45,7],[134,6],[273,6],[421,6],[493,6],[597,6],[633,6],[651,6],[665,6],[770,6],[900,7]]},"15":{"position":[[0,6],[107,7],[455,6],[569,6],[591,6],[731,7],[833,6],[863,6],[1003,6],[1246,6],[1327,6]]},"17":{"position":[[269,7]]},"19":{"position":[[67,6]]},"21":{"position":[[51,6],[103,6],[683,6],[788,6]]},"23":{"position":[[0,6],[112,6],[217,7],[433,6],[530,7],[714,6],[811,6],[955,7],[1040,7]]},"25":{"position":[[93,6]]},"27":{"position":[[114,7]]},"29":{"position":[[0,6],[79,6],[235,6],[269,6],[460,6],[795,6],[993,6]]},"31":{"position":[[49,6]]},"33":{"position":[[99,7],[262,6]]},"35":{"position":[[85,6],[306,6]]},"37":{"position":[[81,6],[200,6],[414,6],[525,6]]}}}],["pixijs's",{"_index":495,"t":{"33":{"position":[[535,8]]}}}],["place",{"_index":96,"t":{"9":{"position":[[349,5]]}}}],["planned",{"_index":54,"t":{"5":{"position":[[677,8]]},"13":{"position":[[542,7]]},"23":{"position":[[53,7]]}}}],["planning",{"_index":99,"t":{"9":{"position":[[393,8]]},"33":{"position":[[118,8]]}}}],["plans",{"_index":489,"t":{"33":{"position":[[451,5]]}}}],["play",{"_index":180,"t":{"13":{"position":[[1026,4],[1048,4]]}}}],["playco",{"_index":40,"t":{"5":{"position":[[534,6]]},"33":{"position":[[24,7]]},"37":{"position":[[240,6]]}}}],["player",{"_index":415,"t":{"27":{"position":[[778,6]]}}}],["please",{"_index":110,"t":{"9":{"position":[[594,6]]}}}],["plugins",{"_index":288,"t":{"17":{"position":[[666,7]]}}}],["popular",{"_index":18,"t":{"5":{"position":[[231,7]]},"21":{"position":[[461,7]]}}}],["possible",{"_index":519,"t":{"37":{"position":[[270,9]]}}}],["post",{"_index":306,"t":{"17":{"position":[[967,4]]}}}],["potions",{"_index":182,"t":{"13":{"position":[[1040,7]]}}}],["powerful",{"_index":375,"t":{"23":{"position":[[838,8]]}}}],["practices",{"_index":360,"t":{"23":{"position":[[262,10]]}}}],["preferred",{"_index":344,"t":{"21":{"position":[[710,9]]}}}],["process",{"_index":265,"t":{"17":{"position":[[164,7]]},"21":{"position":[[79,7]]},"23":{"position":[[507,7],[641,7]]}}}],["product",{"_index":422,"t":{"27":{"position":[[940,7]]}}}],["professional",{"_index":154,"t":{"13":{"position":[[237,12]]}}}],["progress",{"_index":199,"t":{"15":{"position":[[249,8]]},"33":{"position":[[438,8]]}}}],["project",{"_index":174,"t":{"13":{"position":[[912,7],[1005,8]]},"33":{"position":[[372,8],[410,8]]}}}],["projects",{"_index":53,"t":{"5":{"position":[[668,8]]},"7":{"position":[[20,8]]},"11":{"position":[[237,9]]},"25":{"position":[[31,8]]},"37":{"position":[[46,8]]}}}],["provide",{"_index":153,"t":{"13":{"position":[[229,7]]},"17":{"position":[[498,7]]},"21":{"position":[[523,7]]},"35":{"position":[[130,7]]}}}],["provides",{"_index":116,"t":{"11":{"position":[[40,8],[410,8]]},"17":{"position":[[301,8],[657,8],[977,8]]},"27":{"position":[[365,8],[562,8]]}}}],["providing",{"_index":379,"t":{"23":{"position":[[966,9]]},"29":{"position":[[321,9]]}}}],["purpose",{"_index":152,"t":{"13":{"position":[[200,7]]}}}],["put",{"_index":92,"t":{"9":{"position":[[318,3]]}}}],["puzzling",{"_index":181,"t":{"13":{"position":[[1031,8]]}}}],["quality",{"_index":429,"t":{"27":{"position":[[1128,7]]}}}],["radio",{"_index":198,"t":{"15":{"position":[[230,5]]}}}],["range",{"_index":189,"t":{"15":{"position":[[138,5]]},"17":{"position":[[312,5]]},"27":{"position":[[573,5]]}}}],["ratios",{"_index":233,"t":{"15":{"position":[[825,7]]}}}],["react",{"_index":114,"t":{"11":{"position":[[18,6],[72,5],[99,5],[130,5],[231,5],[488,5]]},"13":{"position":[[658,6]]},"21":{"position":[[418,5]]}}}],["ready",{"_index":254,"t":{"15":{"position":[[1299,5]]}}}],["real",{"_index":218,"t":{"15":{"position":[[548,4]]},"27":{"position":[[1012,4]]}}}],["record",{"_index":430,"t":{"27":{"position":[[1162,6]]}}}],["recreate",{"_index":416,"t":{"27":{"position":[[822,8]]}}}],["reduce",{"_index":462,"t":{"29":{"position":[[964,6]]}}}],["regardless",{"_index":343,"t":{"21":{"position":[[690,10]]}}}],["release",{"_index":70,"t":{"7":{"position":[[163,7]]},"13":{"position":[[554,8]]},"29":{"position":[[33,7]]},"33":{"position":[[507,7]]}}}],["released",{"_index":142,"t":{"13":{"position":[[12,8],[164,8],[322,8]]},"23":{"position":[[67,8]]}}}],["releasing",{"_index":60,"t":{"7":{"position":[[54,9]]},"9":{"position":[[52,9]]},"17":{"position":[[946,9]]}}}],["renderer",{"_index":20,"t":{"5":{"position":[[242,8]]},"29":{"position":[[880,9]]}}}],["rendering",{"_index":23,"t":{"5":{"position":[[290,9]]},"23":{"position":[[583,9],[780,9]]},"29":{"position":[[360,9]]},"31":{"position":[[117,10]]}}}],["repo",{"_index":113,"t":{"9":{"position":[[621,4]]},"11":{"position":[[650,4]]},"13":{"position":[[1021,4]]},"15":{"position":[[586,4],[1348,4]]},"17":{"position":[[1147,4],[1159,4]]}}}],["repository",{"_index":143,"t":{"13":{"position":[[27,10]]}}}],["represents",{"_index":432,"t":{"29":{"position":[[46,10],[1003,10]]},"31":{"position":[[8,10]]}}}],["resizable",{"_index":242,"t":{"15":{"position":[[1053,9]]}}}],["resource",{"_index":168,"t":{"13":{"position":[[712,8]]}}}],["resources",{"_index":365,"t":{"23":{"position":[[353,9]]},"37":{"position":[[345,10]]}}}],["respond",{"_index":238,"t":{"15":{"position":[[956,7]]}}}],["responsive",{"_index":224,"t":{"15":{"position":[[706,10]]}}}],["revealed",{"_index":385,"t":{"25":{"position":[[52,9]]}}}],["rewrite",{"_index":434,"t":{"29":{"position":[[68,7]]}}}],["right",{"_index":349,"t":{"21":{"position":[[848,5]]}}}],["rollup",{"_index":341,"t":{"21":{"position":[[607,7]]}}}],["runtime",{"_index":414,"t":{"27":{"position":[[770,7]]}}}],["same",{"_index":370,"t":{"23":{"position":[[620,4]]}}}],["scenes",{"_index":400,"t":{"27":{"position":[[399,7],[492,6],[831,6]]}}}],["screen",{"_index":230,"t":{"15":{"position":[[801,6],[982,6],[1103,6]]}}}],["scroll",{"_index":195,"t":{"15":{"position":[[209,6]]}}}],["seamlessly",{"_index":481,"t":{"33":{"position":[[193,10]]}}}],["searchable",{"_index":98,"t":{"9":{"position":[[369,11]]}}}],["see",{"_index":521,"t":{"37":{"position":[[297,3]]}}}],["seen",{"_index":69,"t":{"7":{"position":[[154,4]]}}}],["set",{"_index":322,"t":{"21":{"position":[[174,3]]}}}],["setting",{"_index":326,"t":{"21":{"position":[[216,7]]}}}],["setup",{"_index":330,"t":{"21":{"position":[[291,5]]}}}],["several",{"_index":57,"t":{"7":{"position":[[8,7],[174,7]]}}}],["share",{"_index":490,"t":{"33":{"position":[[460,5]]}}}],["shared",{"_index":508,"t":{"37":{"position":[[6,6]]}}}],["sharing",{"_index":428,"t":{"27":{"position":[[1085,7]]}}}],["sheets",{"_index":285,"t":{"17":{"position":[[572,7]]}}}],["shooter",{"_index":161,"t":{"13":{"position":[[363,7]]}}}],["shortly",{"_index":313,"t":{"19":{"position":[[19,7]]}}}],["showcases",{"_index":148,"t":{"13":{"position":[[113,9]]}}}],["significant",{"_index":440,"t":{"29":{"position":[[333,11],[823,11]]}}}],["significantly",{"_index":286,"t":{"17":{"position":[[590,13]]},"29":{"position":[[686,13]]}}}],["similar",{"_index":333,"t":{"21":{"position":[[376,7]]}}}],["simplify",{"_index":319,"t":{"21":{"position":[[66,8]]}}}],["sincere",{"_index":516,"t":{"37":{"position":[[178,7]]}}}],["single",{"_index":407,"t":{"27":{"position":[[530,6]]}}}],["site",{"_index":109,"t":{"9":{"position":[[589,4]]}}}],["sites",{"_index":91,"t":{"9":{"position":[[289,6]]}}}],["sitting",{"_index":444,"t":{"29":{"position":[[408,7]]}}}],["size",{"_index":244,"t":{"15":{"position":[[1110,4]]},"29":{"position":[[978,5]]}}}],["sizes",{"_index":231,"t":{"15":{"position":[[808,5]]}}}],["sliders",{"_index":192,"t":{"15":{"position":[[187,8]]}}}],["small",{"_index":247,"t":{"15":{"position":[[1198,5]]}}}],["soon",{"_index":304,"t":{"17":{"position":[[938,4]]},"23":{"position":[[76,4]]}}}],["source",{"_index":147,"t":{"13":{"position":[[95,6],[823,6]]},"15":{"position":[[498,6]]},"33":{"position":[[135,6]]}}}],["specific",{"_index":212,"t":{"15":{"position":[[439,8]]}}}],["sprite",{"_index":284,"t":{"17":{"position":[[565,6]]}}}],["sprites",{"_index":401,"t":{"27":{"position":[[407,8],[613,8]]}}}],["standout",{"_index":397,"t":{"27":{"position":[[311,8]]}}}],["start",{"_index":348,"t":{"21":{"position":[[833,5]]},"25":{"position":[[40,5]]}}}],["started",{"_index":342,"t":{"21":{"position":[[670,7]]},"27":{"position":[[681,7]]}}}],["state",{"_index":504,"t":{"35":{"position":[[420,5]]}}}],["stay",{"_index":528,"t":{"37":{"position":[[490,4]]}}}],["still",{"_index":253,"t":{"15":{"position":[[1263,5]]}}}],["strictly",{"_index":473,"t":{"31":{"position":[[105,8]]}}}],["structure",{"_index":86,"t":{"9":{"position":[[204,9]]}}}],["stuck",{"_index":309,"t":{"17":{"position":[[1106,5]]}}}],["stunning",{"_index":378,"t":{"23":{"position":[[928,8]]}}}],["such",{"_index":87,"t":{"9":{"position":[[221,4]]},"13":{"position":[[485,4],[625,4]]},"15":{"position":[[158,4]]},"21":{"position":[[403,4]]}}}],["suffered",{"_index":80,"t":{"9":{"position":[[138,8]]}}}],["suited",{"_index":467,"t":{"29":{"position":[[1120,6]]}}}],["support",{"_index":129,"t":{"11":{"position":[[372,7]]},"29":{"position":[[502,7],[782,8]]},"35":{"position":[[338,7]]},"37":{"position":[[393,7]]}}}],["sure",{"_index":524,"t":{"37":{"position":[[435,4]]}}}],["switch",{"_index":484,"t":{"33":{"position":[[300,6]]}}}],["take",{"_index":453,"t":{"29":{"position":[[631,4]]}}}],["taken",{"_index":125,"t":{"11":{"position":[[258,5]]}}}],["team",{"_index":43,"t":{"5":{"position":[[567,4]]},"21":{"position":[[58,4]]},"29":{"position":[[122,4],[802,4]]},"33":{"position":[[423,4]]}}}],["teams",{"_index":426,"t":{"27":{"position":[[1061,5]]}}}],["technique",{"_index":368,"t":{"23":{"position":[[552,9]]}}}],["templates",{"_index":338,"t":{"21":{"position":[[531,9]]}}}],["ten",{"_index":52,"t":{"5":{"position":[[664,3]]}}}],["term",{"_index":82,"t":{"9":{"position":[[157,4]]},"25":{"position":[[26,4]]},"33":{"position":[[405,4]]}}}],["territory",{"_index":469,"t":{"31":{"position":[[35,9]]}}}],["test",{"_index":417,"t":{"27":{"position":[[887,4]]}}}],["text",{"_index":193,"t":{"15":{"position":[[196,4]]}}}],["thanks",{"_index":517,"t":{"37":{"position":[[186,6]]}}}],["there's",{"_index":513,"t":{"37":{"position":[[99,7]]}}}],["those",{"_index":480,"t":{"33":{"position":[[168,5]]}}}],["threejs",{"_index":269,"t":{"17":{"position":[[277,8]]}}}],["thrilled",{"_index":497,"t":{"35":{"position":[[16,8]]}}}],["time",{"_index":46,"t":{"5":{"position":[[615,5]]},"27":{"position":[[1017,4],[1169,5]]}}}],["times",{"_index":300,"t":{"17":{"position":[[873,6]]}}}],["today",{"_index":310,"t":{"17":{"position":[[1115,5]]}}}],["together",{"_index":427,"t":{"27":{"position":[[1075,9]]}}}],["tool",{"_index":316,"t":{"21":{"position":[[23,4],[134,5],[266,4],[513,4]]},"23":{"position":[[138,4],[847,4]]}}}],["tooling",{"_index":324,"t":{"21":{"position":[[193,7]]}}}],["tools",{"_index":29,"t":{"5":{"position":[[346,5],[470,6]]},"7":{"position":[[195,5]]},"21":{"position":[[397,5],[720,5]]},"23":{"position":[[11,5],[444,5],[725,5],[822,5]]},"27":{"position":[[582,5]]},"35":{"position":[[224,5]]},"37":{"position":[[335,5]]}}}],["toolset",{"_index":382,"t":{"23":{"position":[[1053,7]]}}}],["top",{"_index":479,"t":{"33":{"position":[[92,3]]}}}],["translating",{"_index":106,"t":{"9":{"position":[[493,11]]}}}],["tuned",{"_index":529,"t":{"37":{"position":[[495,5]]}}}],["tweak",{"_index":205,"t":{"15":{"position":[[369,5]]}}}],["tweening",{"_index":506,"t":{"35":{"position":[[452,9]]}}}],["two",{"_index":157,"t":{"13":{"position":[[312,3]]}}}],["ui",{"_index":163,"t":{"13":{"position":[[500,2]]},"15":{"position":[[7,2],[462,2],[576,2],[870,3]]}}}],["under",{"_index":149,"t":{"13":{"position":[[173,5]]},"15":{"position":[[1269,5]]}}}],["understand",{"_index":355,"t":{"23":{"position":[[184,10],[484,10],[671,11]]}}}],["understanding",{"_index":381,"t":{"23":{"position":[[1001,13]]}}}],["universe",{"_index":4,"t":{"5":{"position":[[52,9]]},"37":{"position":[[532,9]]}}}],["up",{"_index":74,"t":{"9":{"position":[[6,2]]},"11":{"position":[[5,2]]},"21":{"position":[[178,2],[224,2]]},"29":{"position":[[102,3]]}}}],["upcoming",{"_index":514,"t":{"37":{"position":[[139,8]]}}}],["updates",{"_index":511,"t":{"37":{"position":[[59,7],[510,7]]}}}],["use",{"_index":118,"t":{"11":{"position":[[58,3],[430,3]]},"13":{"position":[[130,3],[269,3],[417,3],[465,3],[593,3],[766,3]]},"17":{"position":[[1009,3]]}}}],["used",{"_index":124,"t":{"11":{"position":[[199,4]]},"15":{"position":[[474,4]]},"17":{"position":[[234,4]]},"23":{"position":[[562,4]]}}}],["useful",{"_index":308,"t":{"17":{"position":[[1031,6]]}}}],["user",{"_index":186,"t":{"15":{"position":[[86,4],[967,4]]},"17":{"position":[[913,4]]},"27":{"position":[[145,4],[1006,5]]}}}],["using",{"_index":173,"t":{"13":{"position":[[894,5]]},"15":{"position":[[725,5]]}}}],["v7",{"_index":443,"t":{"29":{"position":[[394,2]]}}}],["v8",{"_index":431,"t":{"29":{"position":[[7,2],[467,2],[1000,2]]}}}],["valuable",{"_index":167,"t":{"13":{"position":[[703,8]]}}}],["vendors",{"_index":451,"t":{"29":{"position":[[591,8]]}}}],["version",{"_index":76,"t":{"9":{"position":[[69,7]]},"29":{"position":[[258,7]]}}}],["views",{"_index":196,"t":{"15":{"position":[[216,6]]}}}],["visual",{"_index":398,"t":{"27":{"position":[[345,6]]}}}],["visualize",{"_index":364,"t":{"23":{"position":[[339,9]]}}}],["visually",{"_index":377,"t":{"23":{"position":[[919,8]]},"27":{"position":[[971,8]]}}}],["vue",{"_index":335,"t":{"21":{"position":[[438,4]]}}}],["want",{"_index":169,"t":{"13":{"position":[[745,4]]},"15":{"position":[[46,4]]},"17":{"position":[[1094,4]]},"33":{"position":[[185,4]]},"37":{"position":[[159,4]]}}}],["way",{"_index":117,"t":{"11":{"position":[[51,3]]}}}],["we're",{"_index":520,"t":{"37":{"position":[[280,5]]}}}],["we've",{"_index":507,"t":{"37":{"position":[[0,5]]}}}],["web",{"_index":21,"t":{"5":{"position":[[259,4]]}}}],["webgpu",{"_index":448,"t":{"29":{"position":[[514,7],[775,6]]}}}],["webpack",{"_index":339,"t":{"21":{"position":[[590,8]]}}}],["website",{"_index":77,"t":{"9":{"position":[[88,7],[305,7]]}}}],["weeks",{"_index":256,"t":{"15":{"position":[[1321,5]]}}}],["well",{"_index":104,"t":{"9":{"position":[[473,4]]},"15":{"position":[[853,4]]}}}],["widely",{"_index":123,"t":{"11":{"position":[[192,6]]}}}],["without",{"_index":404,"t":{"27":{"position":[[499,7]]}}}],["work",{"_index":44,"t":{"5":{"position":[[595,4]]},"19":{"position":[[57,4]]},"27":{"position":[[277,4],[1070,4]]}}}],["workflows",{"_index":345,"t":{"21":{"position":[[730,10]]}}}],["working",{"_index":498,"t":{"35":{"position":[[53,7]]}}}],["workings",{"_index":357,"t":{"23":{"position":[[205,8],[1028,8]]}}}],["works",{"_index":59,"t":{"7":{"position":[[36,6]]},"15":{"position":[[847,5]]}}}],["world",{"_index":219,"t":{"15":{"position":[[553,5]]}}}],["worry",{"_index":325,"t":{"21":{"position":[[204,5]]}}}],["write",{"_index":406,"t":{"27":{"position":[[522,5]]}}}],["x2",{"_index":445,"t":{"29":{"position":[[419,3]]}}}],["year",{"_index":63,"t":{"7":{"position":[[93,5]]},"33":{"position":[[496,5]]}}}],["years",{"_index":17,"t":{"5":{"position":[[199,6]]},"9":{"position":[[186,5]]},"29":{"position":[[178,5]]},"33":{"position":[[4,6]]}}}],["you'll",{"_index":346,"t":{"21":{"position":[[757,6]]},"37":{"position":[[306,6]]}}}]],"pipeline":["stemmer"]}}] \ No newline at end of file diff --git a/search-index-examples.json b/search-index-examples.json index 8ce9757de..c2a68975f 100644 --- a/search-index-examples.json +++ b/search-index-examples.json @@ -1 +1 @@ -[{"documents":[{"i":36,"t":"Examples","u":"/examples","b":[]},{"i":38,"t":"Collision Detection","u":"/examples/advanced/collision-detection","b":["Advanced"]},{"i":40,"t":"Mouse Trail","u":"/examples/advanced/mouse-trail","b":["Advanced"]},{"i":42,"t":"Scratch Card","u":"/examples/advanced/scratch-card","b":["Advanced"]},{"i":44,"t":"Screen Shot","u":"/examples/advanced/screen-shot","b":["Advanced"]},{"i":46,"t":"Slots","u":"/examples/advanced/slots","b":["Advanced"]},{"i":48,"t":"Spinners","u":"/examples/advanced/spinners","b":["Advanced"]},{"i":50,"t":"Star Warp","u":"/examples/advanced/star-warp","b":["Advanced"]},{"i":52,"t":"Async","u":"/examples/assets/async","b":["Assets"]},{"i":54,"t":"Background","u":"/examples/assets/background","b":["Assets"]},{"i":56,"t":"Bundle","u":"/examples/assets/bundle","b":["Assets"]},{"i":58,"t":"Multiple","u":"/examples/assets/multiple","b":["Assets"]},{"i":60,"t":"Promise","u":"/examples/assets/promise","b":["Assets"]},{"i":62,"t":"Blend Modes","u":"/examples/basic/blend-modes","b":["Basic"]},{"i":64,"t":"Cache As Bitmap","u":"/examples/basic/cache-as-bitmap","b":["Basic"]},{"i":66,"t":"Container","u":"/examples/basic/container","b":["Basic"]},{"i":68,"t":"Particle Container","u":"/examples/basic/particle-container","b":["Basic"]},{"i":70,"t":"Simple Plane","u":"/examples/basic/simple-plane","b":["Basic"]},{"i":72,"t":"Tinting","u":"/examples/basic/tinting","b":["Basic"]},{"i":74,"t":"Transparent Background","u":"/examples/basic/transparent-background","b":["Basic"]},{"i":76,"t":"Click","u":"/examples/events/click","b":["Events"]},{"i":78,"t":"Custom Hitarea","u":"/examples/events/custom-hitarea","b":["Events"]},{"i":80,"t":"Custom Mouse Icon","u":"/examples/events/custom-mouse-icon","b":["Events"]},{"i":82,"t":"Dragging","u":"/examples/events/dragging","b":["Events"]},{"i":84,"t":"Interactivity","u":"/examples/events/interactivity","b":["Events"]},{"i":86,"t":"Logger","u":"/examples/events/logger","b":["Events"]},{"i":88,"t":"Nested Boundary With Projection","u":"/examples/events/nested-boundary-with-projection","b":["Events"]},{"i":90,"t":"Pointer Tracker","u":"/examples/events/pointer-tracker","b":["Events"]},{"i":92,"t":"Slider","u":"/examples/events/slider","b":["Events"]},{"i":94,"t":"Custom","u":"/examples/filters-advanced/custom","b":["Filters Advanced"]},{"i":96,"t":"Mouse Blending","u":"/examples/filters-advanced/mouse-blending","b":["Filters Advanced"]},{"i":98,"t":"Shader Toy Filter Render Texture","u":"/examples/filters-advanced/shader-toy-filter-render-texture","b":["Filters Advanced"]},{"i":100,"t":"Blur","u":"/examples/filters-basic/blur","b":["Filters Basic"]},{"i":102,"t":"Color Matrix","u":"/examples/filters-basic/color-matrix","b":["Filters Basic"]},{"i":104,"t":"Displacement Map Crawlies","u":"/examples/filters-basic/displacement-map-crawlies","b":["Filters Basic"]},{"i":106,"t":"Displacement Map Flag","u":"/examples/filters-basic/displacement-map-flag","b":["Filters Basic"]},{"i":108,"t":"Advanced","u":"/examples/graphics/advanced","b":["Graphics"]},{"i":110,"t":"Dynamic","u":"/examples/graphics/dynamic","b":["Graphics"]},{"i":112,"t":"Simple","u":"/examples/graphics/simple","b":["Graphics"]},{"i":114,"t":"Filter","u":"/examples/masks/filter","b":["Masks"]},{"i":116,"t":"Graphics","u":"/examples/masks/graphics","b":["Masks"]},{"i":118,"t":"Sprite","u":"/examples/masks/sprite","b":["Masks"]},{"i":120,"t":"Instanced Geometry","u":"/examples/mesh-and-shaders/instanced-geometry","b":["Mesh And Shaders"]},{"i":122,"t":"Interleaving Geometry","u":"/examples/mesh-and-shaders/interleaving-geometry","b":["Mesh And Shaders"]},{"i":124,"t":"Merging Geometry","u":"/examples/mesh-and-shaders/merging-geometry","b":["Mesh And Shaders"]},{"i":126,"t":"Multi Pass Shader Generated Mesh","u":"/examples/mesh-and-shaders/multi-pass-shader-generated-mesh","b":["Mesh And Shaders"]},{"i":128,"t":"Shader Toy Mesh","u":"/examples/mesh-and-shaders/shader-toy-mesh","b":["Mesh And Shaders"]},{"i":130,"t":"Shared Shader","u":"/examples/mesh-and-shaders/shared-shader","b":["Mesh And Shaders"]},{"i":132,"t":"Sharing Geometry","u":"/examples/mesh-and-shaders/sharing-geometry","b":["Mesh And Shaders"]},{"i":134,"t":"Textured Mesh Advanced","u":"/examples/mesh-and-shaders/textured-mesh-advanced","b":["Mesh And Shaders"]},{"i":136,"t":"Textured Mesh Basic","u":"/examples/mesh-and-shaders/textured-mesh-basic","b":["Mesh And Shaders"]},{"i":138,"t":"Triangle","u":"/examples/mesh-and-shaders/triangle","b":["Mesh And Shaders"]},{"i":140,"t":"Triangle Color","u":"/examples/mesh-and-shaders/triangle-color","b":["Mesh And Shaders"]},{"i":142,"t":"Triangle Textured","u":"/examples/mesh-and-shaders/triangle-textured","b":["Mesh And Shaders"]},{"i":144,"t":"Uniforms","u":"/examples/mesh-and-shaders/uniforms","b":["Mesh And Shaders"]},{"i":146,"t":"Basic","u":"/examples/offscreen-canvas/basic","b":["Offscreen Canvas"]},{"i":148,"t":"Animated Sprite Animation Speed","u":"/examples/sprite/animated-sprite-animation-speed","b":["Sprite"]},{"i":150,"t":"Animated Sprite Explosion","u":"/examples/sprite/animated-sprite-explosion","b":["Sprite"]},{"i":152,"t":"Animated Sprite Jet","u":"/examples/sprite/animated-sprite-jet","b":["Sprite"]},{"i":154,"t":"Basic","u":"/examples/sprite/basic","b":["Sprite"]},{"i":156,"t":"Texture Swap","u":"/examples/sprite/texture-swap","b":["Sprite"]},{"i":158,"t":"Tiling Sprite","u":"/examples/sprite/tiling-sprite","b":["Sprite"]},{"i":160,"t":"Video","u":"/examples/sprite/video","b":["Sprite"]},{"i":162,"t":"Bitmap Text","u":"/examples/text/bitmap-text","b":["Text"]},{"i":164,"t":"From Font","u":"/examples/text/from-font","b":["Text"]},{"i":166,"t":"Pixi Text","u":"/examples/text/pixi-text","b":["Text"]},{"i":168,"t":"Web Font","u":"/examples/text/web-font","b":["Text"]},{"i":170,"t":"Gradient Basic","u":"/examples/textures/gradient-basic","b":["Textures"]},{"i":172,"t":"Gradient Resource","u":"/examples/textures/gradient-resource","b":["Textures"]},{"i":174,"t":"Render Texture Basic","u":"/examples/textures/render-texture-basic","b":["Textures"]},{"i":176,"t":"Render Texture Advanced","u":"/examples/textures/render-texture-advanced","b":["Textures"]},{"i":178,"t":"Texture Rotate","u":"/examples/textures/texture-rotate","b":["Textures"]}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/36",[0,4.792]],["t/38",[1,3.77,2,3.77]],["t/40",[3,2.948,4,3.77]],["t/42",[5,3.77,6,3.77]],["t/44",[7,3.77,8,3.77]],["t/46",[9,4.792]],["t/48",[10,4.792]],["t/50",[11,3.77,12,3.77]],["t/52",[13,4.792]],["t/54",[14,4.162]],["t/56",[15,4.792]],["t/58",[16,4.792]],["t/60",[17,4.792]],["t/62",[18,3.77,19,3.77]],["t/64",[20,3.77,21,3.274]],["t/66",[22,4.162]],["t/68",[22,3.274,23,3.77]],["t/70",[24,3.274,25,3.77]],["t/72",[26,4.792]],["t/74",[14,3.274,27,3.77]],["t/76",[28,4.792]],["t/78",[29,2.948,30,3.77]],["t/80",[3,2.429,29,2.429,31,3.107]],["t/82",[32,4.792]],["t/84",[33,4.792]],["t/86",[34,4.792]],["t/88",[35,3.107,36,3.107,37,3.107]],["t/90",[38,3.77,39,3.77]],["t/92",[40,4.792]],["t/94",[29,3.747]],["t/96",[3,2.948,41,3.77]],["t/98",[42,1.649,43,1.997,44,1.997,45,1.797,46,1.53]],["t/100",[47,4.792]],["t/102",[48,3.274,49,3.77]],["t/104",[50,2.699,51,2.699,52,3.107]],["t/106",[50,2.699,51,2.699,53,3.107]],["t/108",[54,3.747]],["t/110",[55,4.792]],["t/112",[24,4.162]],["t/114",[44,4.162]],["t/116",[56,4.792]],["t/118",[57,3.189]],["t/120",[58,3.77,59,2.704]],["t/122",[59,2.704,60,3.77]],["t/124",[59,2.704,61,3.77]],["t/126",[42,1.649,62,2.299,63,2.299,64,2.299,65,1.649]],["t/128",[42,2.229,43,2.699,65,2.229]],["t/130",[42,2.704,66,3.77]],["t/132",[59,2.704,67,3.77]],["t/134",[54,2.429,65,2.229,68,2.429]],["t/136",[65,2.229,68,2.429,69,2.068]],["t/138",[70,3.747]],["t/140",[48,3.274,70,2.948]],["t/142",[68,2.948,70,2.948]],["t/144",[71,4.792]],["t/146",[69,3.189]],["t/148",[57,1.759,72,2.066,73,2.643,74,2.643]],["t/150",[57,2.068,72,2.429,75,3.107]],["t/152",[57,2.068,72,2.429,76,3.107]],["t/154",[69,3.189]],["t/156",[46,2.509,77,3.77]],["t/158",[57,2.509,78,3.77]],["t/160",[79,4.792]],["t/162",[21,3.274,80,3.274]],["t/164",[81,4.162]],["t/166",[80,3.274,82,3.77]],["t/168",[81,3.274,83,3.77]],["t/170",[69,2.509,84,3.274]],["t/172",[84,3.274,85,3.77]],["t/174",[45,2.429,46,2.068,69,2.068]],["t/176",[45,2.429,46,2.068,54,2.429]],["t/178",[46,2.509,86,3.77]]],"invertedIndex":[["advanced",{"_index":54,"t":{"108":{"position":[[0,8]]},"134":{"position":[[14,8]]},"176":{"position":[[15,8]]}}}],["animated",{"_index":72,"t":{"148":{"position":[[0,8]]},"150":{"position":[[0,8]]},"152":{"position":[[0,8]]}}}],["animation",{"_index":73,"t":{"148":{"position":[[16,9]]}}}],["async",{"_index":13,"t":{"52":{"position":[[0,5]]}}}],["background",{"_index":14,"t":{"54":{"position":[[0,10]]},"74":{"position":[[12,10]]}}}],["basic",{"_index":69,"t":{"136":{"position":[[14,5]]},"146":{"position":[[0,5]]},"154":{"position":[[0,5]]},"170":{"position":[[9,5]]},"174":{"position":[[15,5]]}}}],["bitmap",{"_index":21,"t":{"64":{"position":[[9,6]]},"162":{"position":[[0,6]]}}}],["blend",{"_index":18,"t":{"62":{"position":[[0,5]]}}}],["blending",{"_index":41,"t":{"96":{"position":[[6,8]]}}}],["blur",{"_index":47,"t":{"100":{"position":[[0,4]]}}}],["boundary",{"_index":36,"t":{"88":{"position":[[7,8]]}}}],["bundle",{"_index":15,"t":{"56":{"position":[[0,6]]}}}],["cache",{"_index":20,"t":{"64":{"position":[[0,5]]}}}],["card",{"_index":6,"t":{"42":{"position":[[8,4]]}}}],["click",{"_index":28,"t":{"76":{"position":[[0,5]]}}}],["collision",{"_index":1,"t":{"38":{"position":[[0,9]]}}}],["color",{"_index":48,"t":{"102":{"position":[[0,5]]},"140":{"position":[[9,5]]}}}],["container",{"_index":22,"t":{"66":{"position":[[0,9]]},"68":{"position":[[9,9]]}}}],["crawlies",{"_index":52,"t":{"104":{"position":[[17,8]]}}}],["custom",{"_index":29,"t":{"78":{"position":[[0,6]]},"80":{"position":[[0,6]]},"94":{"position":[[0,6]]}}}],["detection",{"_index":2,"t":{"38":{"position":[[10,9]]}}}],["displacement",{"_index":50,"t":{"104":{"position":[[0,12]]},"106":{"position":[[0,12]]}}}],["dragging",{"_index":32,"t":{"82":{"position":[[0,8]]}}}],["dynamic",{"_index":55,"t":{"110":{"position":[[0,7]]}}}],["examples",{"_index":0,"t":{"36":{"position":[[0,8]]}}}],["explosion",{"_index":75,"t":{"150":{"position":[[16,9]]}}}],["filter",{"_index":44,"t":{"98":{"position":[[11,6]]},"114":{"position":[[0,6]]}}}],["flag",{"_index":53,"t":{"106":{"position":[[17,4]]}}}],["font",{"_index":81,"t":{"164":{"position":[[5,4]]},"168":{"position":[[4,4]]}}}],["generated",{"_index":64,"t":{"126":{"position":[[18,9]]}}}],["geometry",{"_index":59,"t":{"120":{"position":[[10,8]]},"122":{"position":[[13,8]]},"124":{"position":[[8,8]]},"132":{"position":[[8,8]]}}}],["gradient",{"_index":84,"t":{"170":{"position":[[0,8]]},"172":{"position":[[0,8]]}}}],["graphics",{"_index":56,"t":{"116":{"position":[[0,8]]}}}],["hitarea",{"_index":30,"t":{"78":{"position":[[7,7]]}}}],["icon",{"_index":31,"t":{"80":{"position":[[13,4]]}}}],["instanced",{"_index":58,"t":{"120":{"position":[[0,9]]}}}],["interactivity",{"_index":33,"t":{"84":{"position":[[0,13]]}}}],["interleaving",{"_index":60,"t":{"122":{"position":[[0,12]]}}}],["jet",{"_index":76,"t":{"152":{"position":[[16,3]]}}}],["logger",{"_index":34,"t":{"86":{"position":[[0,6]]}}}],["map",{"_index":51,"t":{"104":{"position":[[13,3]]},"106":{"position":[[13,3]]}}}],["matrix",{"_index":49,"t":{"102":{"position":[[6,6]]}}}],["merging",{"_index":61,"t":{"124":{"position":[[0,7]]}}}],["mesh",{"_index":65,"t":{"126":{"position":[[28,4]]},"128":{"position":[[11,4]]},"134":{"position":[[9,4]]},"136":{"position":[[9,4]]}}}],["modes",{"_index":19,"t":{"62":{"position":[[6,5]]}}}],["mouse",{"_index":3,"t":{"40":{"position":[[0,5]]},"80":{"position":[[7,5]]},"96":{"position":[[0,5]]}}}],["multi",{"_index":62,"t":{"126":{"position":[[0,5]]}}}],["multiple",{"_index":16,"t":{"58":{"position":[[0,8]]}}}],["nested",{"_index":35,"t":{"88":{"position":[[0,6]]}}}],["particle",{"_index":23,"t":{"68":{"position":[[0,8]]}}}],["pass",{"_index":63,"t":{"126":{"position":[[6,4]]}}}],["pixi",{"_index":82,"t":{"166":{"position":[[0,4]]}}}],["plane",{"_index":25,"t":{"70":{"position":[[7,5]]}}}],["pointer",{"_index":38,"t":{"90":{"position":[[0,7]]}}}],["projection",{"_index":37,"t":{"88":{"position":[[21,10]]}}}],["promise",{"_index":17,"t":{"60":{"position":[[0,7]]}}}],["render",{"_index":45,"t":{"98":{"position":[[18,6]]},"174":{"position":[[0,6]]},"176":{"position":[[0,6]]}}}],["resource",{"_index":85,"t":{"172":{"position":[[9,8]]}}}],["rotate",{"_index":86,"t":{"178":{"position":[[8,6]]}}}],["scratch",{"_index":5,"t":{"42":{"position":[[0,7]]}}}],["screen",{"_index":7,"t":{"44":{"position":[[0,6]]}}}],["shader",{"_index":42,"t":{"98":{"position":[[0,6]]},"126":{"position":[[11,6]]},"128":{"position":[[0,6]]},"130":{"position":[[7,6]]}}}],["shared",{"_index":66,"t":{"130":{"position":[[0,6]]}}}],["sharing",{"_index":67,"t":{"132":{"position":[[0,7]]}}}],["shot",{"_index":8,"t":{"44":{"position":[[7,4]]}}}],["simple",{"_index":24,"t":{"70":{"position":[[0,6]]},"112":{"position":[[0,6]]}}}],["slider",{"_index":40,"t":{"92":{"position":[[0,6]]}}}],["slots",{"_index":9,"t":{"46":{"position":[[0,5]]}}}],["speed",{"_index":74,"t":{"148":{"position":[[26,5]]}}}],["spinners",{"_index":10,"t":{"48":{"position":[[0,8]]}}}],["sprite",{"_index":57,"t":{"118":{"position":[[0,6]]},"148":{"position":[[9,6]]},"150":{"position":[[9,6]]},"152":{"position":[[9,6]]},"158":{"position":[[7,6]]}}}],["star",{"_index":11,"t":{"50":{"position":[[0,4]]}}}],["swap",{"_index":77,"t":{"156":{"position":[[8,4]]}}}],["text",{"_index":80,"t":{"162":{"position":[[7,4]]},"166":{"position":[[5,4]]}}}],["texture",{"_index":46,"t":{"98":{"position":[[25,7]]},"156":{"position":[[0,7]]},"174":{"position":[[7,7]]},"176":{"position":[[7,7]]},"178":{"position":[[0,7]]}}}],["textured",{"_index":68,"t":{"134":{"position":[[0,8]]},"136":{"position":[[0,8]]},"142":{"position":[[9,8]]}}}],["tiling",{"_index":78,"t":{"158":{"position":[[0,6]]}}}],["tinting",{"_index":26,"t":{"72":{"position":[[0,7]]}}}],["toy",{"_index":43,"t":{"98":{"position":[[7,3]]},"128":{"position":[[7,3]]}}}],["tracker",{"_index":39,"t":{"90":{"position":[[8,7]]}}}],["trail",{"_index":4,"t":{"40":{"position":[[6,5]]}}}],["transparent",{"_index":27,"t":{"74":{"position":[[0,11]]}}}],["triangle",{"_index":70,"t":{"138":{"position":[[0,8]]},"140":{"position":[[0,8]]},"142":{"position":[[0,8]]}}}],["uniforms",{"_index":71,"t":{"144":{"position":[[0,8]]}}}],["video",{"_index":79,"t":{"160":{"position":[[0,5]]}}}],["warp",{"_index":12,"t":{"50":{"position":[[5,4]]}}}],["web",{"_index":83,"t":{"168":{"position":[[0,3]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":37,"t":"Introduction here explaining examples and maybe links to featured examples.","s":"Examples","u":"/examples","h":"","p":36},{"i":39,"t":"import * as PIXI from 'pixi.js'; // Based somewhat on this article by Spicy Yoghurt // URL for further reading: https://spicyyoghurt.com/tutorials/html5-javascript-game-development/collision-detection-physics const app = new PIXI.Application({ background: '#111', resizeTo: window }); document.body.appendChild(app.view); // Options for how objects interact // How fast the red square moves const movementSpeed = 0.05; // Strength of the impulse push between two objects const impulsePower = 5; // Test For Hit // A basic AABB check between two different squares function testForAABB(object1, object2) { const bounds1 = object1.getBounds(); const bounds2 = object2.getBounds(); return bounds1.x < bounds2.x + bounds2.width && bounds1.x + bounds1.width > bounds2.x && bounds1.y < bounds2.y + bounds2.height && bounds1.y + bounds1.height > bounds2.y; } // Calculates the results of a collision, allowing us to give an impulse that // shoves objects apart function collisionResponse(object1, object2) { if (!object1 || !object2) { return new PIXI.Point(0); } const vCollision = new PIXI.Point( object2.x - object1.x, object2.y - object1.y, ); const distance = Math.sqrt( (object2.x - object1.x) * (object2.x - object1.x) + (object2.y - object1.y) * (object2.y - object1.y), ); const vCollisionNorm = new PIXI.Point( vCollision.x / distance, vCollision.y / distance, ); const vRelativeVelocity = new PIXI.Point( object1.acceleration.x - object2.acceleration.x, object1.acceleration.y - object2.acceleration.y, ); const speed = vRelativeVelocity.x * vCollisionNorm.x + vRelativeVelocity.y * vCollisionNorm.y; const impulse = impulsePower * speed / (object1.mass + object2.mass); return new PIXI.Point( impulse * vCollisionNorm.x, impulse * vCollisionNorm.y, ); } // Calculate the distance between two given points function distanceBetweenTwoPoints(p1, p2) { const a = p1.x - p2.x; const b = p1.y - p2.y; return Math.hypot(a, b); } // The green square we will knock about const greenSquare = new PIXI.Sprite(PIXI.Texture.WHITE); greenSquare.position.set((app.screen.width - 100) / 2, (app.screen.height - 100) / 2); greenSquare.width = 100; greenSquare.height = 100; greenSquare.tint = 0x00FF00; greenSquare.acceleration = new PIXI.Point(0); greenSquare.mass = 3; // The square you move around const redSquare = new PIXI.Sprite(PIXI.Texture.WHITE); redSquare.position.set(0, 0); redSquare.width = 100; redSquare.height = 100; redSquare.tint = 0xFF0000; redSquare.acceleration = new PIXI.Point(0); redSquare.mass = 1; const mouseCoords = { x: 0, y: 0 }; app.stage.eventMode = 'static'; app.stage.hitArea = app.screen; app.stage.on('mousemove', (event) => { mouseCoords.x = event.global.x; mouseCoords.y = event.global.y; }); // Listen for animate update app.ticker.add((delta) => { // Applied deacceleration for both squares, done by reducing the // acceleration by 0.01% of the acceleration every loop redSquare.acceleration.set(redSquare.acceleration.x * 0.99, redSquare.acceleration.y * 0.99); greenSquare.acceleration.set(greenSquare.acceleration.x * 0.99, greenSquare.acceleration.y * 0.99); // Check whether the green square ever moves off the screen // If so, reverse acceleration in that direction if (greenSquare.x < 0 || greenSquare.x > (app.screen.width - 100)) { greenSquare.acceleration.x = -greenSquare.acceleration.x; } if (greenSquare.y < 0 || greenSquare.y > (app.screen.height - 100)) { greenSquare.acceleration.y = -greenSquare.acceleration.y; } // If the green square pops out of the cordon, it pops back into the // middle if ((greenSquare.x < -30 || greenSquare.x > (app.screen.width + 30)) || greenSquare.y < -30 || greenSquare.y > (app.screen.height + 30)) { greenSquare.position.set((app.screen.width - 100) / 2, (app.screen.height - 100) / 2); } // If the mouse is off screen, then don't update any further if (app.screen.width > mouseCoords.x || mouseCoords.x > 0 || app.screen.height > mouseCoords.y || mouseCoords.y > 0) { // Get the red square's center point const redSquareCenterPosition = new PIXI.Point( redSquare.x + (redSquare.width * 0.5), redSquare.y + (redSquare.height * 0.5), ); // Calculate the direction vector between the mouse pointer and // the red square const toMouseDirection = new PIXI.Point( mouseCoords.x - redSquareCenterPosition.x, mouseCoords.y - redSquareCenterPosition.y, ); // Use the above to figure out the angle that direction has const angleToMouse = Math.atan2( toMouseDirection.y, toMouseDirection.x, ); // Figure out the speed the square should be travelling by, as a // function of how far away from the mouse pointer the red square is const distMouseRedSquare = distanceBetweenTwoPoints( mouseCoords, redSquareCenterPosition, ); const redSpeed = distMouseRedSquare * movementSpeed; // Calculate the acceleration of the red square redSquare.acceleration.set( Math.cos(angleToMouse) * redSpeed, Math.sin(angleToMouse) * redSpeed, ); } // If the two squares are colliding if (testForAABB(greenSquare, redSquare)) { // Calculate the changes in acceleration that should be made between // each square as a result of the collision const collisionPush = collisionResponse(greenSquare, redSquare); // Set the changes in acceleration for both squares redSquare.acceleration.set( (collisionPush.x * greenSquare.mass), (collisionPush.y * greenSquare.mass), ); greenSquare.acceleration.set( -(collisionPush.x * redSquare.mass), -(collisionPush.y * redSquare.mass), ); } greenSquare.x += greenSquare.acceleration.x * delta; greenSquare.y += greenSquare.acceleration.y * delta; redSquare.x += redSquare.acceleration.x * delta; redSquare.y += redSquare.acceleration.y * delta; }); // Add to stage app.stage.addChild(redSquare, greenSquare);","s":"Collision Detection","u":"/examples/advanced/collision-detection","h":"","p":38},{"i":41,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ background: '#1099bb', resizeTo: window }); document.body.appendChild(app.view); // Get the texture for rope. const trailTexture = PIXI.Texture.from('https://pixijs.com/assets/trail.png'); const historyX = []; const historyY = []; // historySize determines how long the trail will be. const historySize = 20; // ropeSize determines how smooth the trail will be. const ropeSize = 100; const points = []; // Create history array. for (let i = 0; i < historySize; i++) { historyX.push(0); historyY.push(0); } // Create rope points. for (let i = 0; i < ropeSize; i++) { points.push(new PIXI.Point(0, 0)); } // Create the rope const rope = new PIXI.SimpleRope(trailTexture, points); // Set the blendmode rope.blendmode = PIXI.BLEND_MODES.ADD; app.stage.addChild(rope); let mouseposition = null; app.stage.eventMode = 'static'; app.stage.hitArea = app.screen; app.stage.on('mousemove', (event) => { mouseposition = mouseposition || { x: 0, y: 0 }; mouseposition.x = event.global.x; mouseposition.y = event.global.y; }); // Listen for animate update app.ticker.add(() => { if (!mouseposition) return; // Update the mouse values to history historyX.pop(); historyX.unshift(mouseposition.x); historyY.pop(); historyY.unshift(mouseposition.y); // Update the points to correspond with history. for (let i = 0; i < ropeSize; i++) { const p = points[i]; // Smooth the curve with cubic interpolation to prevent sharp edges. const ix = cubicInterpolation(historyX, i / ropeSize * historySize); const iy = cubicInterpolation(historyY, i / ropeSize * historySize); p.x = ix; p.y = iy; } }); /** * Cubic interpolation based on https://github.com/osuushi/Smooth.js */ function clipInput(k, arr) { if (k < 0) k = 0; if (k > arr.length - 1) k = arr.length - 1; return arr[k]; } function getTangent(k, factor, array) { return factor * (clipInput(k + 1, array) - clipInput(k - 1, array)) / 2; } function cubicInterpolation(array, t, tangentFactor) { if (tangentFactor === null) tangentFactor = 1; const k = Math.floor(t); const m = [getTangent(k, tangentFactor, array), getTangent(k + 1, tangentFactor, array)]; const p = [clipInput(k, array), clipInput(k + 1, array)]; t -= k; const t2 = t * t; const t3 = t * t2; return (2 * t3 - 3 * t2 + 1) * p[0] + (t3 - 2 * t2 + t) * m[0] + (-2 * t3 + 3 * t2) * p[1] + (t3 - t2) * m[1]; }","s":"Mouse Trail","u":"/examples/advanced/mouse-trail","h":"","p":40},{"i":43,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); // prepare circle texture, that will be our brush const brush = new PIXI.Graphics() .beginFill(0xffffff) .drawCircle(0, 0, 50); // Create a line that will interpolate the drawn points const line = new PIXI.Graphics(); PIXI.Assets.add('t1', 'https://pixijs.com/assets/bg_grass.jpg'); PIXI.Assets.add('t2', 'https://pixijs.com/assets/bg_rotate.jpg'); PIXI.Assets.load(['t1', 't2']).then(setup); function setup() { const { width, height } = app.screen; const stageSize = { width, height }; const background = Object.assign(PIXI.Sprite.from('t1'), stageSize); const imageToReveal = Object.assign(PIXI.Sprite.from('t2'), stageSize); const renderTexture = PIXI.RenderTexture.create(stageSize); const renderTextureSprite = new PIXI.Sprite(renderTexture); imageToReveal.mask = renderTextureSprite; app.stage.addChild( background, imageToReveal, renderTextureSprite, ); app.stage.eventMode = 'static'; app.stage.hitArea = app.screen; app.stage .on('pointerdown', pointerDown) .on('pointerup', pointerUp) .on('pointerupoutside', pointerUp) .on('pointermove', pointerMove); let dragging = false; let lastDrawnPoint = null; function pointerMove({ global: { x, y } }) { if (dragging) { brush.position.set(x, y); app.renderer.render(brush, { renderTexture, clear: false, skipUpdateTransform: false, }); // Smooth out the drawing a little bit to make it look nicer // this connects the previous drawn point to the current one // using a line if (lastDrawnPoint) { line .clear() .lineStyle({ width: 100, color: 0xffffff }) .moveTo(lastDrawnPoint.x, lastDrawnPoint.y) .lineTo(x, y); app.renderer.render(line, { renderTexture, clear: false, skipUpdateTransform: false, }); } lastDrawnPoint = lastDrawnPoint || new PIXI.Point(); lastDrawnPoint.set(x, y); } } function pointerDown(event) { dragging = true; pointerMove(event); } function pointerUp(event) { dragging = false; lastDrawnPoint = null; } }","s":"Scratch Card","u":"/examples/advanced/scratch-card","h":"","p":42},{"i":45,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ backgroundColor: '#111', resizeTo: window }); document.body.appendChild(app.view); const texture = PIXI.Texture.from('https://pixijs.com/assets/bunny.png'); const bunnyContainer = new PIXI.Container(); async function takeScreenshot() { app.stop(); const url = await app.renderer.extract.base64(bunnyContainer); const a = document.createElement('a'); document.body.append(a); a.download = 'screenshot'; a.href = url; a.click(); a.remove(); app.start(); } app.stage.eventMode = 'static'; app.stage.hitArea = app.screen; app.stage.on('pointerdown', takeScreenshot); for (let i = 0; i < 25; i++) { const bunny = new PIXI.Sprite(texture); bunny.anchor.set(0.5); bunny.x = (i % 5) * 40; bunny.y = Math.floor(i / 5) * 40; bunnyContainer.addChild(bunny); } bunnyContainer.x = 400; bunnyContainer.y = 300; bunnyContainer.pivot.x = bunnyContainer.width / 2; bunnyContainer.pivot.y = bunnyContainer.height / 2; app.ticker.add((delta) => { bunnyContainer.rotation += 0.01 * delta; }); const style = new PIXI.TextStyle({ fontFamily: 'Roboto', fill: '#999', }); const screenshotText = new PIXI.Text('Click To Take Screenshot', style); screenshotText.x = Math.round((app.screen.width - screenshotText.width) / 2); screenshotText.y = Math.round(screenshotText.height / 2); app.stage.addChild(screenshotText, bunnyContainer);","s":"Screen Shot","u":"/examples/advanced/screen-shot","h":"","p":44},{"i":47,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ background: '#1099bb', resizeTo: window }); document.body.appendChild(app.view); PIXI.Assets.load([ 'https://pixijs.com/assets/eggHead.png', 'https://pixijs.com/assets/flowerTop.png', 'https://pixijs.com/assets/helmlok.png', 'https://pixijs.com/assets/skully.png', ]).then(onAssetsLoaded); const REEL_WIDTH = 160; const SYMBOL_SIZE = 150; // onAssetsLoaded handler builds the example. function onAssetsLoaded() { // Create different slot symbols. const slotTextures = [ PIXI.Texture.from('https://pixijs.com/assets/eggHead.png'), PIXI.Texture.from('https://pixijs.com/assets/flowerTop.png'), PIXI.Texture.from('https://pixijs.com/assets/helmlok.png'), PIXI.Texture.from('https://pixijs.com/assets/skully.png'), ]; // Build the reels const reels = []; const reelContainer = new PIXI.Container(); for (let i = 0; i < 5; i++) { const rc = new PIXI.Container(); rc.x = i * REEL_WIDTH; reelContainer.addChild(rc); const reel = { container: rc, symbols: [], position: 0, previousPosition: 0, blur: new PIXI.filters.BlurFilter(), }; reel.blur.blurX = 0; reel.blur.blurY = 0; rc.filters = [reel.blur]; // Build the symbols for (let j = 0; j < 4; j++) { const symbol = new PIXI.Sprite(slotTextures[Math.floor(Math.random() * slotTextures.length)]); // Scale the symbol to fit symbol area. symbol.y = j * SYMBOL_SIZE; symbol.scale.x = symbol.scale.y = Math.min(SYMBOL_SIZE / symbol.width, SYMBOL_SIZE / symbol.height); symbol.x = Math.round((SYMBOL_SIZE - symbol.width) / 2); reel.symbols.push(symbol); rc.addChild(symbol); } reels.push(reel); } app.stage.addChild(reelContainer); // Build top & bottom covers and position reelContainer const margin = (app.screen.height - SYMBOL_SIZE * 3) / 2; reelContainer.y = margin; reelContainer.x = Math.round(app.screen.width - REEL_WIDTH * 5); const top = new PIXI.Graphics(); top.beginFill(0, 1); top.drawRect(0, 0, app.screen.width, margin); const bottom = new PIXI.Graphics(); bottom.beginFill(0, 1); bottom.drawRect(0, SYMBOL_SIZE * 3 + margin, app.screen.width, margin); // Add play text const style = new PIXI.TextStyle({ fontFamily: 'Arial', fontSize: 36, fontStyle: 'italic', fontWeight: 'bold', fill: ['#ffffff', '#00ff99'], // gradient stroke: '#4a1850', strokeThickness: 5, dropShadow: true, dropShadowColor: '#000000', dropShadowBlur: 4, dropShadowAngle: Math.PI / 6, dropShadowDistance: 6, wordWrap: true, wordWrapWidth: 440, }); const playText = new PIXI.Text('Spin the wheels!', style); playText.x = Math.round((bottom.width - playText.width) / 2); playText.y = app.screen.height - margin + Math.round((margin - playText.height) / 2); bottom.addChild(playText); // Add header text const headerText = new PIXI.Text('PIXI MONSTER SLOTS!', style); headerText.x = Math.round((top.width - headerText.width) / 2); headerText.y = Math.round((margin - headerText.height) / 2); top.addChild(headerText); app.stage.addChild(top); app.stage.addChild(bottom); // Set the interactivity. bottom.eventMode = 'static'; bottom.cursor = 'pointer'; bottom.addListener('pointerdown', () => { startPlay(); }); let running = false; // Function to start playing. function startPlay() { if (running) return; running = true; for (let i = 0; i < reels.length; i++) { const r = reels[i]; const extra = Math.floor(Math.random() * 3); const target = r.position + 10 + i * 5 + extra; const time = 2500 + i * 600 + extra * 600; tweenTo(r, 'position', target, time, backout(0.5), null, i === reels.length - 1 ? reelsComplete : null); } } // Reels done handler. function reelsComplete() { running = false; } // Listen for animate update. app.ticker.add((delta) => { // Update the slots. for (let i = 0; i < reels.length; i++) { const r = reels[i]; // Update blur filter y amount based on speed. // This would be better if calculated with time in mind also. Now blur depends on frame rate. r.blur.blurY = (r.position - r.previousPosition) * 8; r.previousPosition = r.position; // Update symbol positions on reel. for (let j = 0; j < r.symbols.length; j++) { const s = r.symbols[j]; const prevy = s.y; s.y = ((r.position + j) % r.symbols.length) * SYMBOL_SIZE - SYMBOL_SIZE; if (s.y < 0 && prevy > SYMBOL_SIZE) { // Detect going over and swap a texture. // This should in proper product be determined from some logical reel. s.texture = slotTextures[Math.floor(Math.random() * slotTextures.length)]; s.scale.x = s.scale.y = Math.min(SYMBOL_SIZE / s.texture.width, SYMBOL_SIZE / s.texture.height); s.x = Math.round((SYMBOL_SIZE - s.width) / 2); } } } }); } // Very simple tweening utility function. This should be replaced with a proper tweening library in a real product. const tweening = []; function tweenTo(object, property, target, time, easing, onchange, oncomplete) { const tween = { object, property, propertyBeginValue: object[property], target, easing, time, change: onchange, complete: oncomplete, start: Date.now(), }; tweening.push(tween); return tween; } // Listen for animate update. app.ticker.add((delta) => { const now = Date.now(); const remove = []; for (let i = 0; i < tweening.length; i++) { const t = tweening[i]; const phase = Math.min(1, (now - t.start) / t.time); t.object[t.property] = lerp(t.propertyBeginValue, t.target, t.easing(phase)); if (t.change) t.change(t); if (phase === 1) { t.object[t.property] = t.target; if (t.complete) t.complete(t); remove.push(t); } } for (let i = 0; i < remove.length; i++) { tweening.splice(tweening.indexOf(remove[i]), 1); } }); // Basic lerp funtion. function lerp(a1, a2, t) { return a1 * (1 - t) + a2 * t; } // Backout function from tweenjs. // https://github.com/CreateJS/TweenJS/blob/master/src/tweenjs/Ease.js function backout(amount) { return (t) => (--t * t * ((amount + 1) * t + amount) + 1); }","s":"Slots","u":"/examples/advanced/slots","h":"","p":46},{"i":49,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ background: '#1099bb', resizeTo: window }); document.body.appendChild(app.view); /* --------------------------------------- Spinner 1. Square with radial completion. -------------------------------------- */ const generateSpinner1 = (position) => { const container = new PIXI.Container(); container.position = position; app.stage.addChild(container); const base = PIXI.Sprite.from('https://pixijs.com/assets/bg_scene_rotate.jpg'); const size = 100; base.width = size; base.height = size; const bottom = PIXI.Sprite.from('https://pixijs.com/assets/bg_rotate.jpg'); bottom.width = size; bottom.height = size; const mask = new PIXI.Graphics(); mask.position.set(size / 2, size / 2); base.mask = mask; window.mask = mask; container.addChild(bottom); container.addChild(base); container.addChild(mask); let phase = 0; return (delta) => { // Update phase phase += delta / 60; phase %= (Math.PI * 2); // Calculate target point. const x = Math.cos(phase - Math.PI / 2) * size; const y = Math.sin(phase - Math.PI / 2) * size; const segments = [ [-size / 2, -size / 2, size / 2, -size / 2], // top segment [size / 2, -size / 2, size / 2, size / 2], // right [-size / 2, size / 2, size / 2, size / 2], // bottom [-size / 2, -size / 2, -size / 2, size / 2], // left ]; // Find the intersecting segment. let intersection = null; let winding = 0; for (let i = 0; i < segments.length; i++) { const segment = segments[i]; const hit = intersect(0, 0, x, y, segment[0], segment[1], segment[2], segment[3]); if (hit) { intersection = hit; if (i === 0) winding = hit.x > 0 ? 0 : 4; else winding = i; break; } } const corners = [ size / 2, -size / 2, // Top right size / 2, size / 2, // Bottom right -size / 2, size / 2, // Bottom left -size / 2, -size / 2, // Top left, 0, -size / 2, // End point ]; // Redraw mask mask.clear(); mask.lineStyle(2, 0xff0000, 1); mask.beginFill(0xff0000, 1); mask.moveTo(0, -size / 2); mask.lineTo(0, 0); mask.lineTo(intersection.x, intersection.y); // fill the corners for (let i = winding; i < corners.length / 2; i++) { mask.lineTo(corners[i * 2], corners[i * 2 + 1]); } mask.endFill(); }; }; /* ----------------------- Spinner 2. Scaling balls. ---------------------- */ const generateSpinner2 = (position) => { const container = new PIXI.Container(); container.position = position; app.stage.addChild(container); const size = 100; const ballAmount = 7; const balls = []; for (let i = 0; i < ballAmount; i++) { const ball = PIXI.Sprite.from('https://pixijs.com/assets/circle.png'); ball.anchor.set(0.5); container.addChild(ball); ball.position.set( size / 2 + Math.cos(i / ballAmount * Math.PI * 2) * size / 3, size / 2 + Math.sin(i / ballAmount * Math.PI * 2) * size / 3, ); balls.push(ball); } let phase = 0; return (delta) => { // Update phase phase += delta / 60; phase %= (Math.PI * 2); // Update ball scales balls.forEach((b, i) => { const sin = Math.sin(i / ballAmount * Math.PI - phase); // Multiply sin with itself to get more steeper edge. b.scale.set(Math.abs(sin * sin * sin * 0.5) + 0.5); }); }; }; /* --------------------- Spinner 3. Radial mask. -------------------- */ const generateSpinner3 = (position) => { const container = new PIXI.Container(); container.position = position; app.stage.addChild(container); const base = PIXI.Sprite.from('https://pixijs.com/assets/bg_scene_rotate.jpg'); const size = 100; base.width = size; base.height = size; const mask = new PIXI.Graphics(); mask.position.set(size / 2, size / 2); base.mask = mask; window.mask = mask; container.addChild(base); container.addChild(mask); let phase = 0; return (delta) => { // Update phase phase += delta / 60; phase %= (Math.PI * 2); const angleStart = 0 - Math.PI / 2; const angle = phase + angleStart; const radius = 50; const x1 = Math.cos(angleStart) * radius; const y1 = Math.sin(angleStart) * radius; // Redraw mask mask.clear(); mask.lineStyle(2, 0xff0000, 1); mask.beginFill(0xff0000, 1); mask.moveTo(0, 0); mask.lineTo(x1, y1); mask.arc(0, 0, radius, angleStart, angle, false); mask.lineTo(0, 0); mask.endFill(); }; }; /* --------------------------------- Spinner 4. Rounded rectangle edges. ------------------------------- */ const generateSpinner4 = (position) => { const container = new PIXI.Container(); container.position = position; app.stage.addChild(container); const size = 100; const arcRadius = 15; const base = PIXI.Sprite.from('https://pixijs.com/assets/bg_scene_rotate.jpg'); base.width = size; base.height = size; // For better performance having assets prerounded would be better than masking. const roundingMask = new PIXI.Graphics(); roundingMask.beginFill(0, 1); roundingMask.lineStyle(1, 0xff0000, 1); roundingMask.drawRoundedRect(0, 0, size, size, arcRadius); roundingMask.endFill(); base.mask = roundingMask; // The edge could be replaced with image as well. const lineSize = 5; const edge = new PIXI.Graphics(); edge.lineStyle(lineSize, 0xff0000, 1); edge.drawRoundedRect(0, 0, size, size, arcRadius); edge.endFill(); // Mask in this example works basically the same way as in example 1. // Except it is reversed and calculates the mask in straight lines in edges. const mask = new PIXI.Graphics(); mask.position.set(size / 2, size / 2); edge.mask = mask; container.addChild(base); container.addChild(roundingMask); container.addChild(edge); container.addChild(mask); let phase = 0; return (delta) => { // Update phase phase += delta / 160; phase %= (Math.PI * 2); // Calculate target point. const x = Math.cos(phase - Math.PI / 2) * size; const y = Math.sin(phase - Math.PI / 2) * size; // Line segments const segments = [ [-size / 2 + lineSize, -size / 2 + lineSize, size / 2 - lineSize, -size / 2 + lineSize], // top segment [size / 2 - lineSize, -size / 2 + lineSize, size / 2 - lineSize, size / 2 - lineSize], // right [-size / 2 + lineSize, size / 2 - lineSize, size / 2 - lineSize, size / 2 - lineSize], // bottom [-size / 2 + lineSize, -size / 2 + lineSize, -size / 2 + lineSize, size / 2 - lineSize], // left ]; // To which dir should mask continue at each segment let outDir = [ [0, -1], [1, 0], [0, 1], [-1, 0], ]; // Find the intersecting segment. let intersection = null; let winding = 0; // What direction should the line continue after hit has been found before hitting the line size for (let i = 0; i < segments.length; i++) { const segment = segments[i]; const hit = intersect(0, 0, x, y, segment[0], segment[1], segment[2], segment[3]); if (hit) { intersection = hit; if (i === 0) winding = hit.x < 0 ? 0 : 4; else winding = 4 - i; outDir = outDir[i]; break; } } const corners = [ -size / 2 - lineSize, -size / 2 - lineSize, // Top left, -size / 2 - lineSize, size / 2 + lineSize, // Bottom left size / 2 + lineSize, size / 2 + lineSize, // Bottom right size / 2 + lineSize, -size / 2 - lineSize, // Top right ]; // Redraw mask mask.clear(); mask.lineStyle(2, 0x00ff00, 1); mask.beginFill(0xff0000, 1); mask.moveTo(0, 0); mask.moveTo(0, -size / 2 - lineSize); // fill the corners for (let i = 0; i < winding; i++) { mask.lineTo(corners[i * 2], corners[i * 2 + 1]); } mask.lineTo(intersection.x + outDir[0] * lineSize * 2, intersection.y + outDir[1] * lineSize * 2); mask.lineTo(intersection.x, intersection.y); mask.lineTo(0, 0); mask.endFill(); }; }; /* --------------------- Spinner 5. Rounded rectangle fixed length spinner by jonlepage -------------------- */ const generateSpinner5 = (position) => { const container = new PIXI.Container(); container.position = position; app.stage.addChild(container); const halfCircle = new PIXI.Graphics(); halfCircle.beginFill(0xff0000); halfCircle.lineStyle(2, 0xffffff); halfCircle.arc(0, 0, 100, 0, Math.PI); halfCircle.endFill(); halfCircle.position.set(50, 50); const rectangle = new PIXI.Graphics(); rectangle.lineStyle(2, 0xffffff, 1); rectangle.drawRoundedRect(0, 0, 100, 100, 16); rectangle.endFill(); rectangle.mask = halfCircle; container.addChild(rectangle); container.addChild(halfCircle); let phase = 0; return (delta) => { // Update phase phase += delta / 6; phase %= (Math.PI * 2); halfCircle.rotation = phase; }; }; const onTick = [ generateSpinner1(new PIXI.Point(50, 50)), generateSpinner2(new PIXI.Point(160, 50)), generateSpinner3(new PIXI.Point(270, 50)), generateSpinner4(new PIXI.Point(380, 50)), generateSpinner5(new PIXI.Point(490, 50)), ]; // Listen for animate update app.ticker.add((delta) => { // Call tick handling for each spinner. onTick.forEach((cb) => { cb(delta); }); }); /** * Helper functions line intercept math by Paul Bourke http://paulbourke.net/geometry/pointlineplane/ Determine the intersection point of two line segments Return FALSE if the lines don't intersect Code modified from original to match pixi examples linting rules. */ function intersect(x1, y1, x2, y2, x3, y3, x4, y4) { // Check if none of the lines are of length 0 if ((x1 === x2 && y1 === y2) || (x3 === x4 && y3 === y4)) { return false; } const denominator = ((y4 - y3) * (x2 - x1) - (x4 - x3) * (y2 - y1)); // Lines are parallel if (denominator === 0) { return false; } const ua = ((x4 - x3) * (y1 - y3) - (y4 - y3) * (x1 - x3)) / denominator; const ub = ((x2 - x1) * (y1 - y3) - (y2 - y1) * (x1 - x3)) / denominator; // is the intersection along the segments if (ua < 0 || ua > 1 || ub < 0 || ub > 1) { return false; } // Return a object with the x and y coordinates of the intersection const x = x1 + ua * (x2 - x1); const y = y1 + ua * (y2 - y1); return { x, y }; }","s":"Spinners","u":"/examples/advanced/spinners","h":"","p":48},{"i":51,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); // Get the texture for star. const starTexture = PIXI.Texture.from('https://pixijs.com/assets/star.png'); const starAmount = 1000; let cameraZ = 0; const fov = 20; const baseSpeed = 0.025; let speed = 0; let warpSpeed = 0; const starStretch = 5; const starBaseSize = 0.05; // Create the stars const stars = []; for (let i = 0; i < starAmount; i++) { const star = { sprite: new PIXI.Sprite(starTexture), z: 0, x: 0, y: 0, }; star.sprite.anchor.x = 0.5; star.sprite.anchor.y = 0.7; randomizeStar(star, true); app.stage.addChild(star.sprite); stars.push(star); } function randomizeStar(star, initial) { star.z = initial ? Math.random() * 2000 : cameraZ + Math.random() * 1000 + 2000; // Calculate star positions with radial random coordinate so no star hits the camera. const deg = Math.random() * Math.PI * 2; const distance = Math.random() * 50 + 1; star.x = Math.cos(deg) * distance; star.y = Math.sin(deg) * distance; } // Change flight speed every 5 seconds setInterval(() => { warpSpeed = warpSpeed > 0 ? 0 : 1; }, 5000); // Listen for animate update app.ticker.add((delta) => { // Simple easing. This should be changed to proper easing function when used for real. speed += (warpSpeed - speed) / 20; cameraZ += delta * 10 * (speed + baseSpeed); for (let i = 0; i < starAmount; i++) { const star = stars[i]; if (star.z < cameraZ) randomizeStar(star); // Map star 3d position to 2d with really simple projection const z = star.z - cameraZ; star.sprite.x = star.x * (fov / z) * app.renderer.screen.width + app.renderer.screen.width / 2; star.sprite.y = star.y * (fov / z) * app.renderer.screen.width + app.renderer.screen.height / 2; // Calculate star scale & rotation. const dxCenter = star.sprite.x - app.renderer.screen.width / 2; const dyCenter = star.sprite.y - app.renderer.screen.height / 2; const distanceCenter = Math.sqrt(dxCenter * dxCenter + dyCenter * dyCenter); const distanceScale = Math.max(0, (2000 - z) / 2000); star.sprite.scale.x = distanceScale * starBaseSize; // Star is looking towards center so that y axis is towards center. // Scale the star depending on how fast we are moving, what the stretchfactor is // and depending on how far away it is from the center. star.sprite.scale.y = distanceScale * starBaseSize + distanceScale * speed * starStretch * distanceCenter / app.renderer.screen.width; star.sprite.rotation = Math.atan2(dyCenter, dxCenter) + Math.PI / 2; } });","s":"Star Warp","u":"/examples/advanced/star-warp","h":"","p":50},{"i":53,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ background: '#1099bb', resizeTo: window }); document.body.appendChild(app.view); // await can only be used inside an async function async function init() { const texture = await PIXI.Assets.load('https://pixijs.com/assets/bunny.png'); // create a new Sprite from the awaited loaded Texture const bunny = PIXI.Sprite.from(texture); // center the sprite's anchor point bunny.anchor.set(0.5); // move the sprite to the center of the screen bunny.x = app.screen.width / 2; bunny.y = app.screen.height / 2; app.stage.addChild(bunny); } // Call that async function init();","s":"Async","u":"/examples/assets/async","h":"","p":52},{"i":55,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ background: '#1099bb', resizeTo: window }); document.body.appendChild(app.view); // Add the assets to load PIXI.Assets.add('flowerTop', 'https://pixijs.com/assets/flowerTop.png'); PIXI.Assets.add('eggHead', 'https://pixijs.com/assets/eggHead.png'); // Allow the assets to load in the background PIXI.Assets.backgroundLoad(['flowerTop', 'eggHead']); // If the background load hasn't loaded this asset yet, calling load forces this asset to load now. PIXI.Assets.load('eggHead').then((texture) => { // auxiliar flag for toggling the texture let isEggHead = true; // create a new Sprite from the resolved loaded texture const character = new PIXI.Sprite(texture); character.anchor.set(0.5); character.x = app.screen.width / 2; character.y = app.screen.height / 2; character.eventMode = 'static'; character.cursor = 'pointer'; app.stage.addChild(character); character.on('pointertap', async () => { isEggHead = !isEggHead; // These promise are already resolved in the cache. character.texture = await PIXI.Assets.load(isEggHead ? 'eggHead' : 'flowerTop'); }); });","s":"Background","u":"/examples/assets/background","h":"","p":54},{"i":57,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ background: '#1099bb', resizeTo: window }); document.body.appendChild(app.view); async function init() { // manifest example const manifestExample = { bundles: [{ name: 'load-screen', assets: [ { name: 'flowerTop', srcs: 'https://pixijs.com/assets/flowerTop.png', }, ], }, { name: 'game-screen', assets: [ { name: 'eggHead', srcs: 'https://pixijs.com/assets/eggHead.png', }, ], }], }; await PIXI.Assets.init({ manifest: manifestExample }); // bundles can be loaded in the background too! PIXI.Assets.backgroundLoadBundle(['load-screen', 'game-screen']); makeLoadScreen(); } async function makeLoadScreen() { // get the assets from the load screen bundle. // If the bundle was already downloaded the promise resolves instantly! const loadScreenAssets = await PIXI.Assets.loadBundle('load-screen'); // create a new Sprite from the resolved loaded texture const goNext = new PIXI.Sprite(loadScreenAssets.flowerTop); goNext.anchor.set(0.5); goNext.x = app.screen.width / 2; goNext.y = app.screen.height / 2; app.stage.addChild(goNext); goNext.eventMode = 'static'; goNext.cursor = 'pointer'; goNext.on('pointertap', async () => { goNext.destroy(); makeGameScreen(); }); } async function makeGameScreen() { // Wait here until you get the assets // If the user spends enough time in the load screen by the time they reach the game screen // the assets are completely loaded and the promise resolves instantly! const loadScreenAssets = await PIXI.Assets.loadBundle('game-screen'); // create a new Sprite from the resolved loaded texture const goBack = new PIXI.Sprite(loadScreenAssets.eggHead); goBack.anchor.set(0.5); goBack.x = app.screen.width / 2; goBack.y = app.screen.height / 2; app.stage.addChild(goBack); goBack.eventMode = 'static'; goBack.cursor = 'pointer'; goBack.on('pointertap', async () => { goBack.destroy(); // The user can go back and the files are already downloaded makeLoadScreen(); }); } init();","s":"Bundle","u":"/examples/assets/bundle","h":"","p":56},{"i":59,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ background: '#1099bb', resizeTo: window }); document.body.appendChild(app.view); // Add the assets to load PIXI.Assets.add('flowerTop', 'https://pixijs.com/assets/flowerTop.png'); PIXI.Assets.add('eggHead', 'https://pixijs.com/assets/eggHead.png'); // Load the assets and get a resolved promise once both are loaded const texturesPromise = PIXI.Assets.load(['flowerTop', 'eggHead']); // => Promise<{flowerTop: Texture, eggHead: Texture}> // When the promise resolves, we have the texture! texturesPromise.then((textures) => { // create a new Sprite from the resolved loaded Textures const flower = PIXI.Sprite.from(textures.flowerTop); flower.anchor.set(0.5); flower.x = app.screen.width * 0.25; flower.y = app.screen.height / 2; app.stage.addChild(flower); const egg = PIXI.Sprite.from(textures.eggHead); egg.anchor.set(0.5); egg.x = app.screen.width * 0.75; egg.y = app.screen.height / 2; app.stage.addChild(egg); });","s":"Multiple","u":"/examples/assets/multiple","h":"","p":58},{"i":61,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ background: '#1099bb', resizeTo: window }); document.body.appendChild(app.view); // Start loading right away and create a promise const texturePromise = PIXI.Assets.load('https://pixijs.com/assets/bunny.png'); // When the promise resolves, we have the texture! texturePromise.then((resolvedTexture) => { // create a new Sprite from the resolved loaded Texture const bunny = PIXI.Sprite.from(resolvedTexture); // center the sprite's anchor point bunny.anchor.set(0.5); // move the sprite to the center of the screen bunny.x = app.screen.width / 2; bunny.y = app.screen.height / 2; app.stage.addChild(bunny); });","s":"Promise","u":"/examples/assets/promise","h":"","p":60},{"i":63,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); // create a new background sprite const background = PIXI.Sprite.from('https://pixijs.com/assets/bg_rotate.jpg'); background.width = app.screen.width; background.height = app.screen.height; app.stage.addChild(background); // create an array to store a reference to the dudes const dudeArray = []; const totaldudes = 20; for (let i = 0; i < totaldudes; i++) { // create a new Sprite that uses the image name that we just generated as its source const dude = PIXI.Sprite.from('https://pixijs.com/assets/flowerTop.png'); dude.anchor.set(0.5); // set a random scale for the dude dude.scale.set(0.8 + Math.random() * 0.3); // finally let's set the dude to be at a random position... dude.x = Math.floor(Math.random() * app.screen.width); dude.y = Math.floor(Math.random() * app.screen.height); // The important bit of this example, this is how you change the default blend mode of the sprite dude.blendMode = PIXI.BLEND_MODES.ADD; // create some extra properties that will control movement dude.direction = Math.random() * Math.PI * 2; // this number will be used to modify the direction of the dude over time dude.turningSpeed = Math.random() - 0.8; // create a random speed for the dude between 0 - 2 dude.speed = 2 + Math.random() * 2; // finally we push the dude into the dudeArray so it it can be easily accessed later dudeArray.push(dude); app.stage.addChild(dude); } // create a bounding box for the little dudes const dudeBoundsPadding = 100; const dudeBounds = new PIXI.Rectangle( -dudeBoundsPadding, -dudeBoundsPadding, app.screen.width + dudeBoundsPadding * 2, app.screen.height + dudeBoundsPadding * 2, ); app.ticker.add(() => { // iterate through the dudes and update the positions for (let i = 0; i < dudeArray.length; i++) { const dude = dudeArray[i]; dude.direction += dude.turningSpeed * 0.01; dude.x += Math.sin(dude.direction) * dude.speed; dude.y += Math.cos(dude.direction) * dude.speed; dude.rotation = -dude.direction - Math.PI / 2; // wrap the dudes by testing their bounds... if (dude.x < dudeBounds.x) { dude.x += dudeBounds.width; } else if (dude.x > dudeBounds.x + dudeBounds.width) { dude.x -= dudeBounds.width; } if (dude.y < dudeBounds.y) { dude.y += dudeBounds.height; } else if (dude.y > dudeBounds.y + dudeBounds.height) { dude.y -= dudeBounds.height; } } });","s":"Blend Modes","u":"/examples/basic/blend-modes","h":"","p":62},{"i":65,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); app.stop(); // load resources PIXI.Assets.load('https://pixijs.com/assets/spritesheet/monsters.json') .then(onAssetsLoaded); // holder to store aliens const aliens = []; const alienFrames = [ 'eggHead.png', 'flowerTop.png', 'helmlok.png', 'skully.png', ]; let count = 0; // create an empty container const alienContainer = new PIXI.Container(); alienContainer.x = 400; alienContainer.y = 300; // make the stage interactive app.stage.eventMode = 'static'; app.stage.addChild(alienContainer); function onAssetsLoaded() { // add a bunch of aliens with textures from image paths for (let i = 0; i < 100; i++) { const frameName = alienFrames[i % 4]; // create an alien using the frame name.. const alien = PIXI.Sprite.from(frameName); alien.tint = Math.random() * 0xFFFFFF; alien.x = Math.random() * 800 - 400; alien.y = Math.random() * 600 - 300; alien.anchor.x = 0.5; alien.anchor.y = 0.5; aliens.push(alien); alienContainer.addChild(alien); } app.start(); } // Combines both mouse click + touch tap app.stage.on('pointertap', onClick); function onClick() { alienContainer.cacheAsBitmap = !alienContainer.cacheAsBitmap; } app.ticker.add(() => { // let's rotate the aliens a little bit for (let i = 0; i < 100; i++) { const alien = aliens[i]; alien.rotation += 0.1; } count += 0.01; alienContainer.scale.x = Math.sin(count); alienContainer.scale.y = Math.sin(count); alienContainer.rotation += 0.01; });","s":"Cache As Bitmap","u":"/examples/basic/cache-as-bitmap","h":"","p":64},{"i":67,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ background: '#1099bb', resizeTo: window }); document.body.appendChild(app.view); const container = new PIXI.Container(); app.stage.addChild(container); // Create a new texture const texture = PIXI.Texture.from('https://pixijs.com/assets/bunny.png'); // Create a 5x5 grid of bunnies for (let i = 0; i < 25; i++) { const bunny = new PIXI.Sprite(texture); bunny.anchor.set(0.5); bunny.x = (i % 5) * 40; bunny.y = Math.floor(i / 5) * 40; container.addChild(bunny); } // Move container to the center container.x = app.screen.width / 2; container.y = app.screen.height / 2; // Center bunny sprite in local container coordinates container.pivot.x = container.width / 2; container.pivot.y = container.height / 2; // Listen for animate update app.ticker.add((delta) => { // rotate the container! // use delta to create frame-independent transform container.rotation -= 0.01 * delta; });","s":"Container","u":"/examples/basic/container","h":"","p":66},{"i":69,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); const sprites = new PIXI.ParticleContainer(10000, { scale: true, position: true, rotation: true, uvs: true, alpha: true, }); app.stage.addChild(sprites); // create an array to store all the sprites const maggots = []; const totalSprites = app.renderer instanceof PIXI.Renderer ? 10000 : 100; for (let i = 0; i < totalSprites; i++) { // create a new Sprite const dude = PIXI.Sprite.from('https://pixijs.com/assets/maggot_tiny.png'); // set the anchor point so the texture is centerd on the sprite dude.anchor.set(0.5); // different maggots, different sizes dude.scale.set(0.8 + Math.random() * 0.3); // scatter them all dude.x = Math.random() * app.screen.width; dude.y = Math.random() * app.screen.height; dude.tint = Math.random() * 0x808080; // create a random direction in radians dude.direction = Math.random() * Math.PI * 2; // this number will be used to modify the direction of the sprite over time dude.turningSpeed = Math.random() - 0.8; // create a random speed between 0 - 2, and these maggots are slooww dude.speed = (2 + Math.random() * 2) * 0.2; dude.offset = Math.random() * 100; // finally we push the dude into the maggots array so it it can be easily accessed later maggots.push(dude); sprites.addChild(dude); } // create a bounding box box for the little maggots const dudeBoundsPadding = 100; const dudeBounds = new PIXI.Rectangle( -dudeBoundsPadding, -dudeBoundsPadding, app.screen.width + dudeBoundsPadding * 2, app.screen.height + dudeBoundsPadding * 2, ); let tick = 0; app.ticker.add(() => { // iterate through the sprites and update their position for (let i = 0; i < maggots.length; i++) { const dude = maggots[i]; dude.scale.y = 0.95 + Math.sin(tick + dude.offset) * 0.05; dude.direction += dude.turningSpeed * 0.01; dude.x += Math.sin(dude.direction) * (dude.speed * dude.scale.y); dude.y += Math.cos(dude.direction) * (dude.speed * dude.scale.y); dude.rotation = -dude.direction + Math.PI; // wrap the maggots if (dude.x < dudeBounds.x) { dude.x += dudeBounds.width; } else if (dude.x > dudeBounds.x + dudeBounds.width) { dude.x -= dudeBounds.width; } if (dude.y < dudeBounds.y) { dude.y += dudeBounds.height; } else if (dude.y > dudeBounds.y + dudeBounds.height) { dude.y -= dudeBounds.height; } } // increment the ticker tick += 0.1; });","s":"Particle Container","u":"/examples/basic/particle-container","h":"","p":68},{"i":71,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ background: '#1099bb', resizeTo: window }); document.body.appendChild(app.view); PIXI.Assets.load('https://pixijs.com/assets/bg_grass.jpg').then((texture) => { const plane = new PIXI.SimplePlane(texture, 10, 10); plane.x = 100; plane.y = 100; app.stage.addChild(plane); // Get the buffer for vertice positions. const buffer = plane.geometry.getBuffer('aVertexPosition'); // Listen for animate update let timer = 0; app.ticker.add(() => { // Randomize the vertice positions a bit to create movement. for (let i = 0; i < buffer.data.length; i++) { buffer.data[i] += Math.sin((timer / 10) + i) * 0.5; } buffer.update(); timer++; }); });","s":"Simple Plane","u":"/examples/basic/simple-plane","h":"","p":70},{"i":73,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); // holder to store the aliens const aliens = []; const totalDudes = 20; for (let i = 0; i < totalDudes; i++) { // create a new Sprite that uses the image name that we just generated as its source const dude = PIXI.Sprite.from('https://pixijs.com/assets/eggHead.png'); // set the anchor point so the texture is centered on the sprite dude.anchor.set(0.5); // set a random scale for the dude - no point them all being the same size! dude.scale.set(0.8 + Math.random() * 0.3); // finally lets set the dude to be at a random position.. dude.x = Math.random() * app.screen.width; dude.y = Math.random() * app.screen.height; dude.tint = Math.random() * 0xFFFFFF; // create some extra properties that will control movement : // create a random direction in radians. This is a number between 0 and PI*2 which is the equivalent of 0 - 360 degrees dude.direction = Math.random() * Math.PI * 2; // this number will be used to modify the direction of the dude over time dude.turningSpeed = Math.random() - 0.8; // create a random speed for the dude between 2 - 4 dude.speed = 2 + Math.random() * 2; // finally we push the dude into the aliens array so it it can be easily accessed later aliens.push(dude); app.stage.addChild(dude); } // create a bounding box for the little dudes const dudeBoundsPadding = 100; const dudeBounds = new PIXI.Rectangle(-dudeBoundsPadding, -dudeBoundsPadding, app.screen.width + dudeBoundsPadding * 2, app.screen.height + dudeBoundsPadding * 2); app.ticker.add(() => { // iterate through the dudes and update their position for (let i = 0; i < aliens.length; i++) { const dude = aliens[i]; dude.direction += dude.turningSpeed * 0.01; dude.x += Math.sin(dude.direction) * dude.speed; dude.y += Math.cos(dude.direction) * dude.speed; dude.rotation = -dude.direction - Math.PI / 2; // wrap the dudes by testing their bounds... if (dude.x < dudeBounds.x) { dude.x += dudeBounds.width; } else if (dude.x > dudeBounds.x + dudeBounds.width) { dude.x -= dudeBounds.width; } if (dude.y < dudeBounds.y) { dude.y += dudeBounds.height; } else if (dude.y > dudeBounds.y + dudeBounds.height) { dude.y -= dudeBounds.height; } } });","s":"Tinting","u":"/examples/basic/tinting","h":"","p":72},{"i":75,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ backgroundAlpha: 0, resizeTo: window }); document.body.appendChild(app.view); // create a new Sprite from an image path. const bunny = PIXI.Sprite.from('https://pixijs.com/assets/bunny.png'); // center the sprite's anchor point bunny.anchor.set(0.5); // move the sprite to the center of the screen bunny.x = app.screen.width / 2; bunny.y = app.screen.height / 2; app.stage.addChild(bunny); app.ticker.add(() => { // just for fun, let's rotate mr rabbit a little bunny.rotation += 0.1; });","s":"Transparent Background","u":"/examples/basic/transparent-background","h":"","p":74},{"i":77,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ background: '#1099bb', resizeTo: window }); document.body.appendChild(app.view); // Scale mode for all textures, will retain pixelation PIXI.settings.SCALE_MODE = PIXI.SCALE_MODES.NEAREST; const sprite = PIXI.Sprite.from('https://pixijs.com/assets/bunny.png'); // Set the initial position sprite.anchor.set(0.5); sprite.x = app.screen.width / 2; sprite.y = app.screen.height / 2; // Opt-in to interactivity sprite.eventMode = 'static'; // Shows hand cursor sprite.cursor = 'pointer'; // Pointers normalize touch and mouse (good for mobile and desktop) sprite.on('pointerdown', onClick); // Alternatively, use the mouse & touch events: // sprite.on('click', onClick); // mouse-only // sprite.on('tap', onClick); // touch-only app.stage.addChild(sprite); function onClick() { sprite.scale.x *= 1.25; sprite.scale.y *= 1.25; }","s":"Click","u":"/examples/events/click","h":"","p":76},{"i":79,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application(800, 600, { background: '#1099bb' }); document.body.appendChild(app.view); const yellowStar = PIXI.Texture.from('https://pixijs.com/assets/yellowstar.png'); // Standard Sprite Button const starButton1 = new PIXI.Sprite(yellowStar); starButton1.position.set(50, 200); starButton1.cursor = 'pointer'; starButton1.eventMode = 'static'; starButton1 .on('pointerdown', onClick, starButton1) .on('pointerover', onPointerOver, starButton1) .on('pointerout', onPointerOut, starButton1); // Custom Hitarea Button const starButton2 = new PIXI.Sprite(yellowStar); starButton2.position.set(250, 200); // Create a hitarea that matches the sprite, which will be used for point // intersection starButton2.hitArea = new PIXI.Polygon([ 80, 0, 100, 50, 160, 55, 115, 95, 130, 150, 80, 120, 30, 150, 45, 95, 0, 55, 60, 50, ]); starButton2.cursor = 'pointer'; starButton2.eventMode = 'static'; starButton2 .on('pointerdown', onClick, starButton2) .on('pointerover', onPointerOver, starButton2) .on('pointerout', onPointerOut, starButton2); // With Mask, No Hit Area const starButton3 = new PIXI.Sprite(yellowStar); starButton3.position.set(450, 200); starButton3.cursor = 'pointer'; starButton3.eventMode = 'static'; const squareMask = new PIXI.Graphics() .beginFill(0xFFFFFF) .drawRect(starButton3.x, starButton3.y, 75, 200) .endFill(); starButton3.mask = squareMask; starButton3 .on('pointerdown', onClick, starButton3) .on('pointerover', onPointerOver, starButton3) .on('pointerout', onPointerOut, starButton3); // With a Mask and Hit Area // Hitareas ignore masks. You can still click on a button made in this way, // even from areas covered by a mask const starButton4 = new PIXI.Sprite(yellowStar); starButton4.position.set(600, 200); const squareMask2 = new PIXI.Graphics() .beginFill(0xFFFFFF) .drawRect(starButton4.x, starButton4.y, 75, 200) .endFill(); starButton4.mask = squareMask2; // Again, hitarea for intersection checks starButton4.hitArea = new PIXI.Polygon([ 80, 0, 100, 50, 160, 55, 115, 95, 130, 150, 80, 120, 30, 150, 45, 95, 0, 55, 60, 50, ]); starButton4.cursor = 'pointer'; starButton4.eventMode = 'static'; starButton4 .on('pointerdown', onClick, starButton4) .on('pointerover', onPointerOver, starButton4) .on('pointerout', onPointerOut, starButton4); const style = new PIXI.TextStyle({ fill: '#ffffff' }); const text1 = new PIXI.Text('Standard', style); text1.x = starButton1.x + 25; text1.y = starButton1.y + 170; const text2 = new PIXI.Text('Hit Area', style); text2.x = starButton2.x + 35; text2.y = starButton2.y + 170; const text3 = new PIXI.Text('Mask', style); text3.x = starButton3.x + 10; text3.y = starButton3.y + 170; const text4 = new PIXI.Text('Mask + Hit Area', style); text4.x = starButton4.x - 10; text4.y = starButton4.y + 170; // Add to stage app.stage.addChild( starButton2, starButton1, starButton3, starButton4, squareMask, squareMask2, text1, text2, text3, text4, ); function onClick() { this.tint = 0x333333; } function onPointerOver() { this.tint = 0x666666; } function onPointerOut() { this.tint = 0xFFFFFF; }","s":"Custom Hitarea","u":"/examples/events/custom-hitarea","h":"","p":78},{"i":81,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ background: '#1099bb', resizeTo: window }); document.body.appendChild(app.view); // Css style for icons const defaultIcon = 'url(\\'https://pixijs.com/assets/bunny.png\\'),auto'; const hoverIcon = 'url(\\'https://pixijs.com/assets/bunny_saturated.png\\'),auto'; // Add custom cursor styles app.renderer.events.cursorStyles.default = defaultIcon; app.renderer.events.cursorStyles.hover = hoverIcon; // create a background... const background = PIXI.Sprite.from('https://pixijs.com/assets/bg_button.jpg'); background.width = app.screen.width; background.height = app.screen.height; // add background to stage... app.stage.addChild(background); // create some textures from an image path const textureButton = PIXI.Texture.from('https://pixijs.com/assets/button.png'); const textureButtonDown = PIXI.Texture.from('https://pixijs.com/assets/button_down.png'); const textureButtonOver = PIXI.Texture.from('https://pixijs.com/assets/button_over.png'); const buttons = []; const buttonPositions = [ 175, 75, 655, 75, 410, 325, 150, 465, 685, 445, ]; for (let i = 0; i < 5; i++) { const button = new PIXI.Sprite(textureButton); button.cursor = 'hover'; button.anchor.set(0.5); button.x = buttonPositions[i * 2]; button.y = buttonPositions[i * 2 + 1]; // make the button interactive... button.eventMode = 'static'; button .on('pointerdown', onButtonDown) .on('pointerup', onButtonUp) .on('pointerupoutside', onButtonUp) .on('pointerover', onButtonOver) .on('pointerout', onButtonOut); // add it to the stage app.stage.addChild(button); // add button to array buttons.push(button); } // set some silly values... buttons[0].scale.set(1.2); buttons[2].rotation = Math.PI / 10; buttons[3].scale.set(0.8); buttons[4].scale.set(0.8, 1.2); buttons[4].rotation = Math.PI; function onButtonDown() { this.isdown = true; this.texture = textureButtonDown; this.alpha = 1; } function onButtonUp() { this.isdown = false; if (this.isOver) { this.texture = textureButtonOver; } else { this.texture = textureButton; } } function onButtonOver() { this.isOver = true; if (this.isdown) { return; } this.texture = textureButtonOver; } function onButtonOut() { this.isOver = false; if (this.isdown) { return; } this.texture = textureButton; }","s":"Custom Mouse Icon","u":"/examples/events/custom-mouse-icon","h":"","p":80},{"i":83,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ background: '#1099bb', resizeTo: window }); document.body.appendChild(app.view); // create a texture from an image path const texture = PIXI.Texture.from('https://pixijs.com/assets/bunny.png'); // Scale mode for pixelation texture.baseTexture.scaleMode = PIXI.SCALE_MODES.NEAREST; for (let i = 0; i < 10; i++) { createBunny( Math.floor(Math.random() * app.screen.width), Math.floor(Math.random() * app.screen.height), ); } function createBunny(x, y) { // create our little bunny friend.. const bunny = new PIXI.Sprite(texture); // enable the bunny to be interactive... this will allow it to respond to mouse and touch events bunny.eventMode = 'static'; // this button mode will mean the hand cursor appears when you roll over the bunny with your mouse bunny.cursor = 'pointer'; // center the bunny's anchor point bunny.anchor.set(0.5); // make it a bit bigger, so it's easier to grab bunny.scale.set(3); // setup events for mouse + touch using // the pointer events bunny.on('pointerdown', onDragStart, bunny); // move the sprite to its designated position bunny.x = x; bunny.y = y; // add it to the stage app.stage.addChild(bunny); } let dragTarget = null; app.stage.eventMode = 'static'; app.stage.hitArea = app.screen; app.stage.on('pointerup', onDragEnd); app.stage.on('pointerupoutside', onDragEnd); function onDragMove(event) { if (dragTarget) { dragTarget.parent.toLocal(event.global, null, dragTarget.position); } } function onDragStart() { // store a reference to the data // the reason for this is because of multitouch // we want to track the movement of this particular touch // this.data = event.data; this.alpha = 0.5; dragTarget = this; app.stage.on('pointermove', onDragMove); } function onDragEnd() { if (dragTarget) { app.stage.off('pointermove', onDragMove); dragTarget.alpha = 1; dragTarget = null; } }","s":"Dragging","u":"/examples/events/dragging","h":"","p":82},{"i":85,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); // create a background... const background = PIXI.Sprite.from('https://pixijs.com/assets/bg_button.jpg'); background.width = app.screen.width; background.height = app.screen.height; // add background to stage... app.stage.addChild(background); // create some textures from an image path const textureButton = PIXI.Texture.from('https://pixijs.com/assets/button.png'); const textureButtonDown = PIXI.Texture.from('https://pixijs.com/assets/button_down.png'); const textureButtonOver = PIXI.Texture.from('https://pixijs.com/assets/button_over.png'); const buttons = []; const buttonPositions = [ 175, 75, 655, 75, 410, 325, 150, 465, 685, 445, ]; for (let i = 0; i < 5; i++) { const button = new PIXI.Sprite(textureButton); button.anchor.set(0.5); button.x = buttonPositions[i * 2]; button.y = buttonPositions[i * 2 + 1]; // make the button interactive... button.eventMode = 'static'; button.cursor = 'pointer'; button // Mouse & touch events are normalized into // the pointer* events for handling different // button events. .on('pointerdown', onButtonDown) .on('pointerup', onButtonUp) .on('pointerupoutside', onButtonUp) .on('pointerover', onButtonOver) .on('pointerout', onButtonOut); // Use mouse-only events // .on('mousedown', onButtonDown) // .on('mouseup', onButtonUp) // .on('mouseupoutside', onButtonUp) // .on('mouseover', onButtonOver) // .on('mouseout', onButtonOut) // Use touch-only events // .on('touchstart', onButtonDown) // .on('touchend', onButtonUp) // .on('touchendoutside', onButtonUp) // add it to the stage app.stage.addChild(button); // add button to array buttons.push(button); } // set some silly values... buttons[0].scale.set(1.2); buttons[2].rotation = Math.PI / 10; buttons[3].scale.set(0.8); buttons[4].scale.set(0.8, 1.2); buttons[4].rotation = Math.PI; function onButtonDown() { this.isdown = true; this.texture = textureButtonDown; this.alpha = 1; } function onButtonUp() { this.isdown = false; if (this.isOver) { this.texture = textureButtonOver; } else { this.texture = textureButton; } } function onButtonOver() { this.isOver = true; if (this.isdown) { return; } this.texture = textureButtonOver; } function onButtonOut() { this.isOver = false; if (this.isdown) { return; } this.texture = textureButton; }","s":"Interactivity","u":"/examples/events/interactivity","h":"","p":84},{"i":87,"t":"import * as PIXI from 'pixi.js'; // This example logs the order of events hover-related events in the scene. const app = new PIXI.Application({ antialias: true, background: '#1099bb', }); document.body.appendChild(app.view); const title = app.stage.addChild(new PIXI.Text( `Move your mouse slowly over the boxes to see the order of pointerenter, pointerleave, pointerover, pointerout events on each target!`, { fontSize: 16, }, )); title.x = 2; const logs = []; const logText = app.stage.addChild(new PIXI.Text('', { fontSize: 14, })); logText.y = 80; logText.x = 2; app.stage.name = 'stage'; // Mount outer black box const blackBox = app.stage.addChild(new PIXI.Graphics() .beginFill(0) .drawRect(0, 0, 400, 400) .endFill()); blackBox.name = 'black box'; blackBox.x = 400; // Mount white box inside the white one const whiteBox = blackBox.addChild(new PIXI.Graphics() .beginFill(0xffffff) .drawRect(100, 100, 200, 200) .endFill()); whiteBox.name = 'white box'; // Enable interactivity everywhere! app.stage.eventMode = 'static'; app.stage.hitArea = app.screen; whiteBox.eventMode = 'static'; blackBox.eventMode = 'static'; function onEvent(e) { const type = e.type; const targetName = e.target.name; const currentTargetName = e.currentTarget.name; // Add event to top of logs logs.push(`${currentTargetName} received ${type} event (target is ${targetName})`); if (currentTargetName === 'stage' || type === 'pointerenter' || type === 'pointerleave') { logs.push('-----------------------------------------', ''); } // Prevent logs from growing too long if (logs.length > 30) { while (logs.length > 30) { logs.shift(); } } // Update logText logText.text = logs.join('\\n'); } [app.stage, whiteBox, blackBox].forEach((object) => { object.addEventListener('pointerenter', onEvent); object.addEventListener('pointerleave', onEvent); object.addEventListener('pointerover', onEvent); object.addEventListener('pointerout', onEvent); });","s":"Logger","u":"/examples/events/logger","h":"","p":86},{"i":89,"t":"import * as PIXI from 'pixi.js'; import '@pixi/graphics-extras'; // This example shows how you can setup a nested boundary to propagate events // into a disjoint scene graph. Here, a camera is used to project an different // world onto the canvas. const app = new PIXI.Application({ antialias: true, background: '#1099bb', }); document.body.appendChild(app.view); // A projector renders it's content using projection. The transforms in // the contents scene graph don't change if you move the camera. To achieve // this, the content is not added as a \"child\" to the projector; however, this // means events won't propagate into the content by default. // // To solve this, we nest our own EventBoundary, and connect it using // addEventListener! class Projector extends PIXI.DisplayObject { constructor() { super(); // The content root to be rendered by this camera. this.content = new PIXI.Container(); // Temporary matrix to store the original projection transform. this.originalTransform = new PIXI.Matrix(); // The event boundary that'll map events downstream into the content // scene. this.boundary = new PIXI.EventBoundary(this.content); // Override copyMouseData to apply inverse worldTransform on // global coords this.boundary.copyMouseData = (from, to) => { // Apply default implementation first PIXI.EventBoundary.prototype.copyMouseData.call(this.boundary, from, to); // Then bring global coords into content's world this.worldTransform.applyInverse(to.global, to.global); // TODO: Remove after https://github.com/pixijs/pixi.js/pull/7381 // is merged! to.target = this.boundary.hitTest(to.global.x, to.global.y); }; // Propagate these events down into the content's scene graph! [ 'pointerdown', 'pointerup', 'pointermove', 'pointerover', 'pointerout', 'wheel', ].forEach((event) => { this.addEventListener(event, (e) => this.boundary.mapEvent(e)); }); this.eventMode = 'static'; } // Pass through cursor get cursor() { return this.boundary.cursor; } // eslint-disable-next-line class-methods-use-this set cursor(value) { throw new Error('The camera\\'s cursor is derived from its content!'); } // Pass through calculateBounds calculateBounds() { const contentBounds = this.content.getBounds(); this._bounds.addFrameMatrix( this.worldTransform, contentBounds.x, contentBounds.y, contentBounds.width, contentBounds.height, ); } // Pass through containsPoint containsPoint(point) { return !!this.boundary.hitTest(point.x, point.y); } // Render content with projection render(renderer) { renderer.batch.flush(); const projectionSystem = renderer.projection; const renderTextureSystem = renderer.renderTexture; projectionSystem.transform = projectionSystem.transform || new PIXI.Matrix(); projectionSystem.transform.copyTo(this.originalTransform); projectionSystem.transform.append(this.worldTransform); projectionSystem.update(null, null, 1, !renderTextureSystem.current); this.content.render(renderer); renderer.batch.flush(); projectionSystem.transform.copyFrom(this.originalTransform); projectionSystem.update(null, null, 1, !renderTextureSystem.current); } // updateTransform also updates content's transform updateTransform() { super.updateTransform(); this.content.enableTempParent(); this.content.updateTransform(); this.content.disableTempParent(null); } } // The projector const projector = app.stage.addChild(new Projector()); // Add coordinate axes! projector.content.addChild( new PIXI.Graphics() .lineStyle({ color: 0, alpha: 0.2, width: 2 }) .moveTo(0, -300) .lineTo(0, 600) .moveTo(-100, 0) .lineTo(700, 0), ); // Construct the star Graphics const stars = [1, 2, 3].map((i) => new PIXI.Graphics() .beginFill(0xffffff, 0.75) .drawStar(0, 0, 18 / i, 100 * i / 2)); // Place the stars stars[0].x = 0; stars[1].x = 200; stars[2].x = 500; // Add stars to the projector projector.content.addChild(...stars); // Make projection x+100, y+300 projector.x = 100; projector.y = 300; projector.content.hitArea = new PIXI.Rectangle(-100, -300, app.screen.width, app.screen.height); // Make hit-area cover the whole screen so we can capture // pointermove everywhere! projector.hitArea = projector.content.hitArea; projector.content.eventMode = 'static'; // Make stars interactive & add wheel handlers stars.forEach((star) => { // Make star interactive star.eventMode = 'static'; // Set initial cursor star.cursor = 'zoom-in'; // Add wheel rotation feedback star.addEventListener('wheel', (e) => { const scroll = Math.sign(e.deltaY) * Math.min(15, Math.abs(e.deltaY)); star.rotation += scroll / 100; }); // Add click zoom-in/zoom-out handler star.addEventListener('click', (e) => { if (star.scale.x === 1) { star.scale.set(1.33); star.cursor = 'zoom-out'; } else { star.scale.set(1); star.cursor = 'zoom-in'; } }); }); PIXI.BitmapFont.from('coordinates', { fontFamily: 'Roboto', fontSize: 16, fill: '#272d37', }, { chars: ['Global:() Screen-.,', ['0', '9']] }); const coordinates = new PIXI.BitmapText('Global: (0, 0)\\nScreen: (0, 0)', { fontName: 'coordinates', }); coordinates.x = 110; coordinates.y = 550; app.stage.addChild(coordinates); projector.content.addEventListener('pointermove', (e) => { const global = `(${e.global.x | 0}, ${e.global.y | 0})`; const screen = `(${e.screen.x | 0}, ${e.screen.y | 0})`; coordinates.text = `Global: ${global}\\nScreen: ${screen}`; }); const description = new PIXI.Text( 'The (0, 0) world coordinates for the content is located at the center of the first star!' + '\\n * Mouse wheel over stars to rotate them' + '\\n * Click to zoom in or out', { fontSize: 16, fontFamily: 'Roboto', fill: '#272d37', }, ); description.position.set(110, 12); app.stage.addChild(description);","s":"Nested Boundary With Projection","u":"/examples/events/nested-boundary-with-projection","h":"","p":88},{"i":91,"t":"import * as PIXI from 'pixi.js'; // In this a example, a circle will follow the pointer wherever it // moves over the canvas. const app = new PIXI.Application({ antialias: true, background: '#1099bb', }); document.body.appendChild(app.view); // Create the circle const circle = app.stage.addChild(new PIXI.Graphics() .beginFill(0xffffff) .lineStyle({ color: 0x111111, alpha: 0.87, width: 1 }) .drawCircle(0, 0, 8) .endFill()); circle.position.set(app.screen.width / 2, app.screen.height / 2); // Enable interactivity! app.stage.eventMode = 'static'; // Make sure the whole canvas area is interactive, not just the circle. app.stage.hitArea = app.screen; // Follow the pointer app.stage.addEventListener('pointermove', (e) => { circle.position.copyFrom(e.global); });","s":"Pointer Tracker","u":"/examples/events/pointer-tracker","h":"","p":90},{"i":93,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ antialias: true, background: '#1099bb', }); document.body.appendChild(app.view); const stageHeight = app.screen.height; const stageWidth = app.screen.width; // Make sure stage covers the whole scene app.stage.hitArea = app.screen; // Make the slider const sliderWidth = 320; const slider = new PIXI.Graphics() .beginFill(0x272d37) .drawRect(0, 0, sliderWidth, 4); slider.x = (stageWidth - sliderWidth) / 2; slider.y = stageHeight * 0.75; // Draw the handle const handle = new PIXI.Graphics() .beginFill(0xffffff) .drawCircle(0, 0, 8); handle.y = slider.height / 2; handle.x = sliderWidth / 2; handle.eventMode = 'static'; handle.cursor = 'pointer'; handle .on('pointerdown', onDragStart) .on('pointerup', onDragEnd) .on('pointerupoutside', onDragEnd); app.stage.addChild(slider); slider.addChild(handle); // Add bunny whose scale can be changed by user using slider const bunny = app.stage.addChild(PIXI.Sprite.from('https://pixijs.com/assets/bunny.png')); bunny.texture.baseTexture.scaleMode = PIXI.SCALE_MODES.NEAREST; bunny.scale.set(3); bunny.anchor.set(0.5); bunny.x = stageWidth / 2; bunny.y = stageHeight / 2; // Add title const title = new PIXI.Text('Drag the handle to change the scale of bunny.', { fill: '#272d37', fontFamily: 'Roboto', fontSize: 20, align: 'center', }); title.roundPixels = true; title.x = stageWidth / 2; title.y = 40; title.anchor.set(0.5, 0); app.stage.addChild(title); // Listen to pointermove on stage once handle is pressed. function onDragStart() { app.stage.eventMode = 'static'; app.stage.addEventListener('pointermove', onDrag); } // Stop dragging feedback once the handle is released. function onDragEnd(e) { app.stage.eventMode = 'auto'; app.stage.removeEventListener('pointermove', onDrag); } // Update the handle's position & bunny's scale when the handle is moved. function onDrag(e) { const halfHandleWidth = handle.width / 2; // Set handle y-position to match pointer, clamped to (4, screen.height - 4). handle.x = Math.max(halfHandleWidth, Math.min( slider.toLocal(e.global).x, sliderWidth - halfHandleWidth, )); // Normalize handle position between -1 and 1. const t = 2 * ((handle.x / sliderWidth) - 0.5); bunny.scale.set(3 * (1.1 + t)); }","s":"Slider","u":"/examples/events/slider","h":"","p":92},{"i":95,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); // Create background image const background = PIXI.Sprite.from('https://pixijs.com/assets/bg_grass.jpg'); background.width = app.screen.width; background.height = app.screen.height; app.stage.addChild(background); // Stop application wait for load to finish app.stop(); fetch('https://pixijs.com/assets/pixi-filters/shader.frag') .then((res) => res.text()) .then(onLoaded); let filter; // Handle the load completed function onLoaded(data) { // Create the new filter, arguments: (vertexShader, framentSource) filter = new PIXI.Filter(null, data, { customUniform: 0.0, }); // === WARNING === // specify uniforms in filter constructor // or set them BEFORE first use // filter.uniforms.customUniform = 0.0 // Add the filter background.filters = [filter]; // Resume application update app.start(); } // Animate the filter app.ticker.add((delta) => { filter.uniforms.customUniform += 0.04 * delta; });","s":"Custom","u":"/examples/filters-advanced/custom","h":"","p":94},{"i":97,"t":"import * as PIXI from 'pixi.js'; /** * https://github.com/pixijs/pixi.js/wiki/v5-Creating-Filters */ const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); // Create background image const background = PIXI.Sprite.from('https://pixijs.com/assets/bg_grass.jpg'); background.width = app.screen.width; background.height = app.screen.height; app.stage.addChild(background); // NOTE: this shader wont work on old devices where mediump precision is forced in fragment shader // because v5 default vertex shader uses `inputSize` in it. Same uniform in fragment and vertex shader // cant have different precision :( const shaderFrag = ` precision highp float; varying vec2 vTextureCoord; uniform vec2 mouse; uniform vec4 inputSize; uniform vec4 outputFrame; uniform float time; void main() { vec2 screenPos = vTextureCoord * inputSize.xy + outputFrame.xy; if (length(mouse - screenPos) < 25.0) { gl_FragColor = vec4(1.0, 1.0, 0.0, 1.0) * 0.7; //yellow circle, alpha=0.7 } else { // blend with underlying image, alpha=0.5 gl_FragColor = vec4( sin(time), (mouse.xy - outputFrame.xy) / outputFrame.zw, 1.0) * 0.5; } } `; const container = new PIXI.Container(); container.filterArea = new PIXI.Rectangle(100, 100, app.screen.width - 200, app.screen.height - 200); app.stage.addChild(container); const filter = new PIXI.Filter(null, shaderFrag, { mouse: new PIXI.Point(), }); container.filters = [filter]; app.stage.hitArea = app.screen; app.stage.eventMode = 'static'; app.stage.on('pointermove', (event) => { filter.uniforms.mouse.copyFrom(event.global); });","s":"Mouse Blending","u":"/examples/filters-advanced/mouse-blending","h":"","p":96},{"i":99,"t":"import * as PIXI from 'pixi.js'; /** * Please note that this is not the most optimal way of doing pure shader generated rendering and should be used when the * scene is wanted as input texture. Check the mesh version of example for more performant version if you need only shader * generated content. **/ const app = new PIXI.Application({ background: '#1099bb', resizeTo: window }); document.body.appendChild(app.view); PIXI.Assets.load('https://pixijs.com/assets/perlin.jpg').then(onAssetsLoaded); let filter = null; const text = new PIXI.Text('PixiJS', { fill: 0xFFFFFF, fontSize: 80 }); text.anchor.set(0.5, 0.5); text.position.set(app.renderer.screen.width / 2, app.renderer.screen.height / 2); app.stage.addChild(text); let totalTime = 0; // Fragment shader, in real use this would be much cleaner when loaded from a file // or embedded into the application as data resource. const fragment = `//Based on this: https://www.shadertoy.com/view/wtlSWX varying vec2 vTextureCoord; uniform sampler2D uSampler; uniform sampler2D noise; uniform float time; // Distance function. Just calculates the height (z) from x,y plane with really simple length check. // Its not exact as there could be shorter distances. vec2 dist(vec3 p) { float id = floor(p.x)+floor(p.y); id = mod(id, 2.); float h = texture2D(noise, vec2(p.x, p.y)*0.04).r*5.1; float h2 = texture2D(uSampler, vTextureCoord).r; return vec2(h+h2-p.z,id); } //Light calculation. vec3 calclight(vec3 p, vec3 rd) { vec2 eps = vec2( 0., 0.001); vec3 n = normalize( vec3( dist(p+eps.yxx).x - dist(p-eps.yxx).x, dist(p+eps.xyx).x - dist(p-eps.xyx).x, dist(p+eps.xxy).x - dist(p-eps.xxy).x )); vec3 d = vec3( max( 0., dot( -rd ,n))); return d; } void main() { vec2 uv = vec2(vTextureCoord.x, 1.-vTextureCoord.y); uv *=2.; uv-=1.; vec3 cam = vec3(0.,time -2., -3.); vec3 target = vec3(sin(time)*0.1, time+cos(time)+2., 0. ); float fov = 2.2; vec3 forward = normalize( target - cam); vec3 up = normalize(cross( forward, vec3(0., 1.,0.))); vec3 right = normalize( cross( up, forward)); vec3 raydir = normalize(vec3( uv.x *up + uv.y * right + fov*forward)); //Do the raymarch vec3 col = vec3(0.); float t = 0.; for( int i = 0; i < 100; i++) { vec3 p = t * raydir + cam; vec2 d = dist(p); t+=d.x*0.5;//Jump only half of the distance as height function used is not really the best for heightmaps. if(d.x < 0.001) { vec3 bc = d.y < 0.5 ? vec3(1.0, .8, 0.) : vec3(0.8,0.0, 1.0); col = vec3( 1.) * calclight(p, raydir) * (1. - t/150.) *bc; break; } if(t > 1000.) { break; } } gl_FragColor = vec4(col, 1.); } `; function onAssetsLoaded(perlin) { // Add perlin noise for filter, make sure it's wrapping and does not have mipmap. perlin.baseTexture.wrapMode = PIXI.WRAP_MODES.REPEAT; perlin.baseTexture.mipmap = false; // Build the filter filter = new PIXI.Filter(null, fragment, { time: 0.0, noise: perlin, }); app.stage.filterArea = app.renderer.screen; app.stage.filters = [filter]; // Listen for animate update. app.ticker.add((delta) => { filter.uniforms.time = totalTime; totalTime += delta / 60; }); }","s":"Shader Toy Filter Render Texture","u":"/examples/filters-advanced/shader-toy-filter-render-texture","h":"","p":98},{"i":101,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); const bg = PIXI.Sprite.from('https://pixijs.com/assets/pixi-filters/bg_depth_blur.jpg'); bg.width = app.screen.width; bg.height = app.screen.height; app.stage.addChild(bg); const littleDudes = PIXI.Sprite.from('https://pixijs.com/assets/pixi-filters/depth_blur_dudes.jpg'); littleDudes.x = (app.screen.width / 2) - 315; littleDudes.y = 200; app.stage.addChild(littleDudes); const littleRobot = PIXI.Sprite.from('https://pixijs.com/assets/pixi-filters/depth_blur_moby.jpg'); littleRobot.x = (app.screen.width / 2) - 200; littleRobot.y = 100; app.stage.addChild(littleRobot); const blurFilter1 = new PIXI.filters.BlurFilter(); const blurFilter2 = new PIXI.filters.BlurFilter(); littleDudes.filters = [blurFilter1]; littleRobot.filters = [blurFilter2]; let count = 0; app.ticker.add(() => { count += 0.005; const blurAmount = Math.cos(count); const blurAmount2 = Math.sin(count); blurFilter1.blur = 20 * (blurAmount); blurFilter2.blur = 20 * (blurAmount2); });","s":"Blur","u":"/examples/filters-basic/blur","h":"","p":100},{"i":103,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); app.stage.eventMode = 'static'; const bg = PIXI.Sprite.from('https://pixijs.com/assets/bg_rotate.jpg'); bg.anchor.set(0.5); bg.x = app.screen.width / 2; bg.y = app.screen.height / 2; const filter = new PIXI.filters.ColorMatrixFilter(); const container = new PIXI.Container(); container.x = app.screen.width / 2; container.y = app.screen.height / 2; const bgFront = PIXI.Sprite.from('https://pixijs.com/assets/bg_scene_rotate.jpg'); bgFront.anchor.set(0.5); container.addChild(bgFront); const light2 = PIXI.Sprite.from('https://pixijs.com/assets/light_rotate_2.png'); light2.anchor.set(0.5); container.addChild(light2); const light1 = PIXI.Sprite.from('https://pixijs.com/assets/light_rotate_1.png'); light1.anchor.set(0.5); container.addChild(light1); const panda = PIXI.Sprite.from('https://pixijs.com/assets/panda.png'); panda.anchor.set(0.5); container.addChild(panda); app.stage.addChild(container); app.stage.filters = [filter]; let count = 0; let enabled = true; app.stage.on('pointertap', () => { enabled = !enabled; app.stage.filters = enabled ? [filter] : null; }); const help = new PIXI.Text('Click or tap to turn filters on / off.', { fontFamily: 'Arial', fontSize: 12, fontWeight: 'bold', fill: 'white', }); help.y = app.screen.height - 25; help.x = 10; app.stage.addChild(help); app.ticker.add((delta) => { 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; const { matrix } = filter; matrix[1] = Math.sin(count) * 3; matrix[2] = Math.cos(count); matrix[3] = Math.cos(count) * 1.5; matrix[4] = Math.sin(count / 3) * 2; matrix[5] = Math.sin(count / 2); matrix[6] = Math.sin(count / 4); });","s":"Color Matrix","u":"/examples/filters-basic/color-matrix","h":"","p":102},{"i":105,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); app.stage.eventMode = 'static'; const container = new PIXI.Container(); app.stage.addChild(container); const padding = 100; const bounds = new PIXI.Rectangle( -padding, -padding, app.screen.width + padding * 2, app.screen.height + padding * 2, ); const maggots = []; for (let i = 0; i < 20; i++) { const maggot = PIXI.Sprite.from('https://pixijs.com/assets/maggot.png'); maggot.anchor.set(0.5); container.addChild(maggot); maggot.direction = Math.random() * Math.PI * 2; maggot.speed = 1; maggot.turnSpeed = Math.random() - 0.8; maggot.x = Math.random() * bounds.width; maggot.y = Math.random() * bounds.height; maggot.scale.set(1 + Math.random() * 0.3); maggot.original = new PIXI.Point(); maggot.original.copyFrom(maggot.scale); maggots.push(maggot); } const displacementSprite = PIXI.Sprite.from('https://pixijs.com/assets/pixi-filters/displace.png'); const displacementFilter = new PIXI.filters.DisplacementFilter(displacementSprite); app.stage.addChild(displacementSprite); container.filters = [displacementFilter]; displacementFilter.scale.x = 110; displacementFilter.scale.y = 110; displacementSprite.anchor.set(0.5); const ring = PIXI.Sprite.from('https://pixijs.com/assets/pixi-filters/ring.png'); ring.anchor.set(0.5); ring.visible = false; app.stage.addChild(ring); const bg = PIXI.Sprite.from('https://pixijs.com/assets/bg_grass.jpg'); bg.width = app.screen.width; bg.height = app.screen.height; bg.alpha = 0.4; container.addChild(bg); app.stage .on('mousemove', onPointerMove) .on('touchmove', onPointerMove); function onPointerMove(eventData) { ring.visible = true; displacementSprite.position.set(eventData.data.global.x - 25, eventData.data.global.y); ring.position.copyFrom(displacementSprite.position); } let count = 0; app.ticker.add(() => { count += 0.05; for (let i = 0; i < maggots.length; i++) { const maggot = maggots[i]; maggot.direction += maggot.turnSpeed * 0.01; maggot.x += Math.sin(maggot.direction) * maggot.speed; maggot.y += Math.cos(maggot.direction) * maggot.speed; maggot.rotation = -maggot.direction - Math.PI / 2; maggot.scale.x = maggot.original.x + Math.sin(count) * 0.2; // wrap the maggots around as the crawl if (maggot.x < bounds.x) { maggot.x += bounds.width; } else if (maggot.x > bounds.x + bounds.width) { maggot.x -= bounds.width; } if (maggot.y < bounds.y) { maggot.y += bounds.height; } else if (maggot.y > bounds.y + bounds.height) { maggot.y -= bounds.height; } } });","s":"Displacement Map Crawlies","u":"/examples/filters-basic/displacement-map-crawlies","h":"","p":104},{"i":107,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); app.stage.eventMode = 'static'; const container = new PIXI.Container(); app.stage.addChild(container); const flag = PIXI.Sprite.from('https://pixijs.com/assets/pixi-filters/flag.png'); container.addChild(flag); flag.x = 100; flag.y = 100; const displacementSprite = PIXI.Sprite.from('https://pixijs.com/assets/pixi-filters/displacement_map_repeat.jpg'); // Make sure the sprite is wrapping. displacementSprite.texture.baseTexture.wrapMode = PIXI.WRAP_MODES.REPEAT; const displacementFilter = new PIXI.filters.DisplacementFilter(displacementSprite); displacementFilter.padding = 10; displacementSprite.position = flag.position; app.stage.addChild(displacementSprite); flag.filters = [displacementFilter]; displacementFilter.scale.x = 30; displacementFilter.scale.y = 60; app.ticker.add(() => { // Offset the sprite position to make vFilterCoord update to larger value. // Repeat wrapping makes sure there's still pixels on the coordinates. displacementSprite.x++; // Reset x to 0 when it's over width to keep values from going to very huge numbers. if (displacementSprite.x > displacementSprite.width) { displacementSprite.x = 0; } });","s":"Displacement Map Flag","u":"/examples/filters-basic/displacement-map-flag","h":"","p":106},{"i":109,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ antialias: true, resizeTo: window }); document.body.appendChild(app.view); const sprite = PIXI.Sprite.from('https://pixijs.com/assets/bg_rotate.jpg'); // // BEZIER CURVE //// // information: https://en.wikipedia.org/wiki/BΓ©zier_curve const realPath = new PIXI.Graphics(); realPath.lineStyle(2, 0xFFFFFF, 1); realPath.moveTo(0, 0); realPath.lineTo(100, 200); realPath.lineTo(200, 200); realPath.lineTo(240, 100); realPath.position.x = 50; realPath.position.y = 50; app.stage.addChild(realPath); const bezier = new PIXI.Graphics(); bezier.lineStyle(5, 0xAA0000, 1); bezier.bezierCurveTo(100, 200, 200, 200, 240, 100); bezier.position.x = 50; bezier.position.y = 50; app.stage.addChild(bezier); // // BEZIER CURVE 2 //// const realPath2 = new PIXI.Graphics(); realPath2.lineStyle(2, 0xFFFFFF, 1); realPath2.moveTo(0, 0); realPath2.lineTo(0, -100); realPath2.lineTo(150, 150); realPath2.lineTo(240, 100); realPath2.position.x = 320; realPath2.position.y = 150; app.stage.addChild(realPath2); const bezier2 = new PIXI.Graphics(); bezier2.lineTextureStyle({ width: 10, texture: sprite.texture }); bezier2.bezierCurveTo(0, -100, 150, 150, 240, 100); bezier2.position.x = 320; bezier2.position.y = 150; app.stage.addChild(bezier2); // // ARC //// const arc = new PIXI.Graphics(); arc.lineStyle(5, 0xAA00BB, 1); arc.arc(600, 100, 50, Math.PI, 2 * Math.PI); app.stage.addChild(arc); // // ARC 2 //// const arc2 = new PIXI.Graphics(); arc2.lineStyle(6, 0x3333DD, 1); arc2.arc(650, 270, 60, 2 * Math.PI, 3 * Math.PI / 2); app.stage.addChild(arc2); // // ARC 3 //// const arc3 = new PIXI.Graphics(); arc3.lineTextureStyle({ width: 20, texture: sprite.texture }); arc3.arc(650, 420, 60, 2 * Math.PI, 2.5 * Math.PI / 2); app.stage.addChild(arc3); // / Hole //// const rectAndHole = new PIXI.Graphics(); rectAndHole.beginFill(0x00FF00); rectAndHole.drawRect(350, 350, 150, 150); rectAndHole.beginHole(); rectAndHole.drawCircle(375, 375, 25); rectAndHole.drawCircle(425, 425, 25); rectAndHole.drawCircle(475, 475, 25); rectAndHole.endHole(); rectAndHole.endFill(); app.stage.addChild(rectAndHole); // // Line Texture Style //// const beatifulRect = new PIXI.Graphics(); beatifulRect.lineTextureStyle({ width: 20, texture: sprite.texture }); beatifulRect.beginFill(0xFF0000); beatifulRect.drawRect(80, 350, 150, 150); beatifulRect.endFill(); app.stage.addChild(beatifulRect);","s":"Advanced","u":"/examples/graphics/advanced","h":"","p":108},{"i":111,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ antialias: true, resizeTo: window }); document.body.appendChild(app.view); app.stage.eventMode = 'static'; app.stage.hitArea = app.screen; const 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.closePath(); 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.quadraticCurveTo(600, 0, 480, 100); graphics.lineTo(330, 120); graphics.lineTo(410, 200); graphics.lineTo(210, 300); graphics.closePath(); graphics.endFill(); // draw a rectangle 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.endFill(); graphics.lineStyle(20, 0x33FF00); graphics.moveTo(30, 30); graphics.lineTo(600, 300); app.stage.addChild(graphics); // let's create a moving shape const thing = new PIXI.Graphics(); app.stage.addChild(thing); thing.x = 800 / 2; thing.y = 600 / 2; let count = 0; // Just click on the stage to draw random lines window.app = app; app.stage.on('pointerdown', () => { graphics.lineStyle(Math.random() * 30, Math.random() * 0xFFFFFF, 1); graphics.moveTo(Math.random() * 800, Math.random() * 600); graphics.bezierCurveTo( Math.random() * 800, Math.random() * 600, Math.random() * 800, Math.random() * 600, Math.random() * 800, Math.random() * 600, ); }); app.ticker.add(() => { count += 0.1; thing.clear(); thing.lineStyle(10, 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.closePath(); thing.rotation = count * 0.1; });","s":"Dynamic","u":"/examples/graphics/dynamic","h":"","p":110},{"i":113,"t":"import * as PIXI from 'pixi.js'; import '@pixi/graphics-extras'; const app = new PIXI.Application({ antialias: true, resizeTo: window }); document.body.appendChild(app.view); const graphics = new PIXI.Graphics(); // Rectangle graphics.beginFill(0xDE3249); graphics.drawRect(50, 50, 100, 100); graphics.endFill(); // Rectangle + line style 1 graphics.lineStyle(2, 0xFEEB77, 1); graphics.beginFill(0x650A5A); graphics.drawRect(200, 50, 100, 100); graphics.endFill(); // Rectangle + line style 2 graphics.lineStyle(10, 0xFFBD01, 1); graphics.beginFill(0xC34288); graphics.drawRect(350, 50, 100, 100); graphics.endFill(); // Rectangle 2 graphics.lineStyle(2, 0xFFFFFF, 1); graphics.beginFill(0xAA4F08); graphics.drawRect(530, 50, 140, 100); graphics.endFill(); // Circle graphics.lineStyle(0); // draw a circle, set the lineStyle to zero so the circle doesn't have an outline graphics.beginFill(0xDE3249, 1); graphics.drawCircle(100, 250, 50); graphics.endFill(); // Circle + line style 1 graphics.lineStyle(2, 0xFEEB77, 1); graphics.beginFill(0x650A5A, 1); graphics.drawCircle(250, 250, 50); graphics.endFill(); // Circle + line style 2 graphics.lineStyle(10, 0xFFBD01, 1); graphics.beginFill(0xC34288, 1); graphics.drawCircle(400, 250, 50); graphics.endFill(); // Ellipse + line style 2 graphics.lineStyle(2, 0xFFFFFF, 1); graphics.beginFill(0xAA4F08, 1); graphics.drawEllipse(600, 250, 80, 50); graphics.endFill(); // draw a shape graphics.beginFill(0xFF3300); graphics.lineStyle(4, 0xffd900, 1); graphics.moveTo(50, 350); graphics.lineTo(250, 350); graphics.lineTo(100, 400); graphics.lineTo(50, 350); graphics.closePath(); graphics.endFill(); // draw a rounded rectangle graphics.lineStyle(2, 0xFF00FF, 1); graphics.beginFill(0x650A5A, 0.25); graphics.drawRoundedRect(50, 440, 100, 100, 16); graphics.endFill(); // draw star graphics.lineStyle(2, 0xFFFFFF); graphics.beginFill(0x35CC5A, 1); graphics.drawStar(360, 370, 5, 50); graphics.endFill(); // draw star 2 graphics.lineStyle(2, 0xFFFFFF); graphics.beginFill(0xFFCC5A, 1); graphics.drawStar(280, 510, 7, 50); graphics.endFill(); // draw star 3 graphics.lineStyle(4, 0xFFFFFF); graphics.beginFill(0x55335A, 1); graphics.drawStar(470, 450, 4, 50); graphics.endFill(); // draw polygon const path = [600, 370, 700, 460, 780, 420, 730, 570, 590, 520]; graphics.lineStyle(0); graphics.beginFill(0x3500FA, 1); graphics.drawPolygon(path); graphics.endFill(); app.stage.addChild(graphics);","s":"Simple","u":"/examples/graphics/simple","h":"","p":112},{"i":115,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); // Inner radius of the circle const radius = 100; // The blur amount const blurSize = 32; PIXI.Assets.load('https://pixijs.com/assets/bg_grass.jpg').then((grassTexture) => { const background = new PIXI.Sprite(grassTexture); app.stage.addChild(background); background.width = app.screen.width; background.height = app.screen.height; const circle = new PIXI.Graphics() .beginFill(0xFF0000) .drawCircle(radius + blurSize, radius + blurSize, radius) .endFill(); circle.filters = [new PIXI.filters.BlurFilter(blurSize)]; const bounds = new PIXI.Rectangle(0, 0, (radius + blurSize) * 2, (radius + blurSize) * 2); const texture = app.renderer.generateTexture(circle, PIXI.SCALE_MODES.NEAREST, 1, bounds); const focus = new PIXI.Sprite(texture); app.stage.addChild(focus); background.mask = focus; app.stage.eventMode = 'static'; app.stage.hitArea = app.screen; app.stage.on('pointermove', (event) => { focus.position.x = event.global.x - focus.width / 2; focus.position.y = event.global.y - focus.height / 2; }); });","s":"Filter","u":"/examples/masks/filter","h":"","p":114},{"i":117,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ antialias: true, resizeTo: window }); document.body.appendChild(app.view); app.stage.eventMode = 'static'; const bg = PIXI.Sprite.from('https://pixijs.com/assets/bg_rotate.jpg'); bg.anchor.set(0.5); bg.x = app.screen.width / 2; bg.y = app.screen.height / 2; app.stage.addChild(bg); const container = new PIXI.Container(); container.x = app.screen.width / 2; container.y = app.screen.height / 2; // add a bunch of sprites const bgFront = PIXI.Sprite.from('https://pixijs.com/assets/bg_scene_rotate.jpg'); bgFront.anchor.set(0.5); const light2 = PIXI.Sprite.from('https://pixijs.com/assets/light_rotate_2.png'); light2.anchor.set(0.5); const light1 = PIXI.Sprite.from('https://pixijs.com/assets/light_rotate_1.png'); light1.anchor.set(0.5); const panda = PIXI.Sprite.from('https://pixijs.com/assets/panda.png'); panda.anchor.set(0.5); container.addChild(bgFront, light2, light1, panda); app.stage.addChild(container); // let's create a moving shape const thing = new PIXI.Graphics(); app.stage.addChild(thing); thing.x = app.screen.width / 2; thing.y = app.screen.height / 2; thing.lineStyle(0); container.mask = thing; let count = 0; app.stage.on('pointertap', () => { if (!container.mask) { container.mask = thing; } else { container.mask = null; } }); const help = new PIXI.Text('Click or tap to turn masking on / off.', { fontFamily: 'Arial', fontSize: 12, fontWeight: 'bold', fill: 'white', }); help.y = app.screen.height - 26; help.x = 10; app.stage.addChild(help); app.ticker.add(() => { 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.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.rotation = count * 0.1; });","s":"Graphics","u":"/examples/masks/graphics","h":"","p":116},{"i":119,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); app.stage.eventMode = 'static'; const bg = PIXI.Sprite.from('https://pixijs.com/assets/bg_plane.jpg'); app.stage.addChild(bg); const cells = PIXI.Sprite.from('https://pixijs.com/assets/cells.png'); cells.scale.set(1.5); const mask = PIXI.Sprite.from('https://pixijs.com/assets/flowerTop.png'); mask.anchor.set(0.5); mask.x = 310; mask.y = 190; cells.mask = mask; app.stage.addChild(mask, cells); const target = new PIXI.Point(); reset(); function reset() { target.x = Math.floor(Math.random() * 550); target.y = Math.floor(Math.random() * 300); } app.ticker.add(() => { mask.x += (target.x - mask.x) * 0.1; mask.y += (target.y - mask.y) * 0.1; if (Math.abs(mask.x - target.x) < 1) { reset(); } });","s":"Sprite","u":"/examples/masks/sprite","h":"","p":118},{"i":121,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); const geometry = new PIXI.Geometry() .addAttribute('aVPos', [-100, 0, 100, 0, 0, -150]); geometry.instanced = true; geometry.instanceCount = 5; const positionSize = 2; const colorSize = 3; const buffer = new PIXI.Buffer(new Float32Array(geometry.instanceCount * (positionSize + colorSize))); geometry.addAttribute( 'aIPos', buffer, positionSize, false, PIXI.TYPES.FLOAT, 4 * (positionSize + colorSize), 0, true ); geometry.addAttribute( 'aICol', buffer, colorSize, false, PIXI.TYPES.FLOAT, 4 * (positionSize + colorSize), 4 * positionSize, true ); for (let i = 0; i < geometry.instanceCount; i++) { const instanceOffset = i * (positionSize + colorSize); buffer.data[instanceOffset + 0] = i * 80; buffer.data[instanceOffset + 2] = Math.random(); buffer.data[instanceOffset + 3] = Math.random(); buffer.data[instanceOffset + 4] = Math.random(); } const shader = PIXI.Shader.from(` precision mediump float; attribute vec2 aVPos; attribute vec2 aIPos; attribute vec3 aICol; uniform mat3 translationMatrix; uniform mat3 projectionMatrix; varying vec3 vCol; void main() { vCol = aICol; gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVPos + aIPos, 1.0)).xy, 0.0, 1.0); }`, `precision mediump float; varying vec3 vCol; void main() { gl_FragColor = vec4(vCol, 1.0); } `); const triangles = new PIXI.Mesh(geometry, shader); triangles.position.set(400, 300); app.stage.addChild(triangles); app.ticker.add((delta) => { triangles.rotation += 0.01; });","s":"Instanced Geometry","u":"/examples/mesh-and-shaders/instanced-geometry","h":"","p":120},{"i":123,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); const geometry = new PIXI.Geometry() .addAttribute('aVertexPosition', // the attribute name [-100, -100, // x, y 100, -100, // x, y 100, 100, -100, 100], // x, y 2) // the size of the attribute .addAttribute('aUvs', // the attribute name [0, 0, // u, v 1, 0, // u, v 1, 1, 0, 1], // u, v 2) // the size of the attribute .addIndex([0, 1, 2, 0, 2, 3]) .interleave(); const shader = PIXI.Shader.from(` precision mediump float; attribute vec2 aVertexPosition; attribute vec2 aUvs; uniform mat3 translationMatrix; uniform mat3 projectionMatrix; varying vec2 vUvs; void main() { vUvs = aUvs; gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); }`, `precision mediump float; varying vec2 vUvs; uniform sampler2D uSampler2; void main() { gl_FragColor = texture2D(uSampler2, vUvs ); } `, { uSampler2: PIXI.Texture.from('https://pixijs.com/assets/bg_scene_rotate.jpg'), }); const quad = new PIXI.Mesh(geometry, shader); quad.position.set(400, 300); quad.scale.set(2); app.stage.addChild(quad); app.ticker.add((delta) => { quad.rotation += 0.01; });","s":"Interleaving Geometry","u":"/examples/mesh-and-shaders/interleaving-geometry","h":"","p":122},{"i":125,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); const geometry = new PIXI.Geometry() .addAttribute('aVertexPosition', // the attribute name [-100, -100, // x, y 100, -100, // x, y 100, 100, -100, 100], // x, y 2) // the size of the attribute .addAttribute('aUvs', // the attribute name [0, 0, // u, v 1, 0, // u, v 1, 1, 0, 1], // u, v 2) // the size of the attribute .addIndex([0, 1, 2, 0, 2, 3]); const geometry2 = new PIXI.Geometry() .addAttribute('aVertexPosition', // the attribute name [-100 + 100, -100, // x, y 100 + 100, -100, // x, y 100 + 100, 100], // x, y 2) // the size of the attribute .addAttribute('aUvs', // the attribute name [0, 0, // u, v 1, 0, // u, v 1, 1], // u, v 2) // the size of the attribute .addIndex([0, 1, 2]); const geometry3 = PIXI.Geometry.merge([geometry, geometry2]); const shader = PIXI.Shader.from(` precision mediump float; attribute vec2 aVertexPosition; attribute vec2 aUvs; uniform mat3 translationMatrix; uniform mat3 projectionMatrix; varying vec2 vUvs; void main() { vUvs = aUvs; gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); }`, `precision mediump float; varying vec2 vUvs; uniform sampler2D uSampler2; void main() { gl_FragColor = texture2D(uSampler2, vUvs ); } `, { uSampler2: PIXI.Texture.from('https://pixijs.com/assets/bg_scene_rotate.jpg'), }); const quad = new PIXI.Mesh(geometry3, shader); quad.position.set(400, 300); quad.scale.set(2); app.stage.addChild(quad); app.ticker.add((delta) => { quad.rotation += 0.01; });","s":"Merging Geometry","u":"/examples/mesh-and-shaders/merging-geometry","h":"","p":124},{"i":127,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ height: 640, resizeTo: window }); document.body.appendChild(app.view); // Build geometry. const geometry = new PIXI.Geometry() .addAttribute('aVertexPosition', // the attribute name [0, 0, // x, y 200, 0, // x, y 200, 200, 0, 200], // x, y 2) // the size of the attribute .addAttribute('aUvs', // the attribute name [0, 0, // u, v 1, 0, // u, v 1, 1, 0, 1], // u, v 2) // the size of the attribute .addIndex([0, 1, 2, 0, 2, 3]); // Vertex shader. Use same shader for all passes. const vertexSrc = ` precision mediump float; attribute vec2 aVertexPosition; attribute vec2 aUvs; uniform mat3 translationMatrix; uniform mat3 projectionMatrix; varying vec2 vUvs; void main() { vUvs = aUvs; gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); }`; // Load a perlinnoise texture for one of the shaders. const perlinTexture = PIXI.Texture.from('https://pixijs.com/assets/perlin.jpg'); // First pass, generates a grid. const fragmentGridSrc = ` precision mediump float; varying vec2 vUvs; uniform float zoom; void main() { //Generate a simple grid. //Offset uv so that center is 0,0 and edges are -1,1 vec2 uv = (vUvs-vec2(0.5))*2.0; vec2 gUv = floor(uv*zoom); vec4 color1 = vec4(0.8, 0.8, 0.8, 1.0); vec4 color2 = vec4(0.4, 0.4, 0.4, 1.0); vec4 outColor = mod(gUv.x + gUv.y, 2.) < 0.5 ? color1 : color2; gl_FragColor = outColor; }`; const gridUniforms = { zoom: 10, }; const gridShader = PIXI.Shader.from(vertexSrc, fragmentGridSrc, gridUniforms); // Sharing textures and meshes is possible. // But for simplicity each pass has its own output texture and mesh in this example. const gridTexture = PIXI.RenderTexture.create({ width: 200, height: 200 }); const gridQuad = new PIXI.Mesh(geometry, gridShader); const gridContainer = new PIXI.Container(); gridContainer.addChild(gridQuad); // Second pass. Takes grid as input and makes it ripple. const fragmentRippleSrc = ` precision mediump float; varying vec2 vUvs; uniform float amount; uniform float phase; uniform sampler2D texIn; void main() { //Generate a simple grid. vec2 uv = vUvs; //Calculate distance from center float distance = length( uv - vec2(0.5)); vec4 color = texture2D(texIn, uv); color.rgb *= sin(distance*25.0+phase) * amount+1.; gl_FragColor = color; }`; const rippleUniforms = { amount: 0.5, phase: 0, texIn: gridTexture, }; const rippleShader = PIXI.Shader.from(vertexSrc, fragmentRippleSrc, rippleUniforms); const rippleTexture = PIXI.RenderTexture.create({ width: 200, height: 200 }); const rippleQuad = new PIXI.Mesh(geometry, rippleShader); const rippleContainer = new PIXI.Container(); rippleContainer.addChild(rippleQuad); // Second effect. Generates a filtered noise. const fragmentNoiseSrc = ` precision mediump float; varying vec2 vUvs; uniform float limit; uniform sampler2D noise; void main() { float color = texture2D(noise, vUvs).r; color = step(limit, color); gl_FragColor = vec4(color); }`; const noiseUniforms = { limit: 0.5, noise: perlinTexture, }; const noiseShader = PIXI.Shader.from(vertexSrc, fragmentNoiseSrc, noiseUniforms); const noiseTexture = PIXI.RenderTexture.create({ width: 200, height: 200 }); const noiseQuad = new PIXI.Mesh(geometry, noiseShader); const noiseContainer = new PIXI.Container(); noiseContainer.addChild(noiseQuad); // Third effect const fragmentWaveSrc = ` precision mediump float; varying vec2 vUvs; uniform float amplitude; uniform float time; void main() { //Offset uv so that center is 0,0 and edges are -1,1 vec2 uv = (vUvs-vec2(0.5))*2.0; vec3 outColor = vec3(0.); //Simple wavefunctions inversed and with small offsets. outColor += 5./length(uv.y*200. - 50.0*sin( uv.x*0.25+ time*0.25)*amplitude); outColor += 4./length(uv.y*300. - 100.0*sin(uv.x*0.5+time*0.5)*amplitude*1.2); outColor += 3./length(uv.y*400. - 150.0*sin(uv.x*0.75+time*0.75)*amplitude*1.4); outColor += 2./length(uv.y*500. - 200.0*sin(uv.x+time)*amplitude*1.6); gl_FragColor = vec4(outColor,1.0); }`; const waveUniforms = { amplitude: 0.75, time: 0, }; const waveShader = PIXI.Shader.from(vertexSrc, fragmentWaveSrc, waveUniforms); const waveTexture = PIXI.RenderTexture.create({ width: 200, height: 200 }); const waveQuad = new PIXI.Mesh(geometry, waveShader); const waveContainer = new PIXI.Container(); waveContainer.addChild(waveQuad); // Final combination pass const fragmentCombineSrc = ` precision mediump float; varying vec2 vUvs; uniform sampler2D texRipple; uniform sampler2D texNoise; uniform sampler2D texWave; void main() { //Read color from all vec4 ripple = texture2D(texRipple, vUvs); vec4 noise = texture2D(texNoise, vUvs); vec4 wave = texture2D(texWave, vUvs); gl_FragColor = mix(ripple, wave,noise.r); }`; const combineUniforms = { texRipple: rippleTexture, texNoise: noiseTexture, texWave: waveTexture, }; const combineShader = PIXI.Shader.from(vertexSrc, fragmentCombineSrc, combineUniforms); const combineQuad = new PIXI.Mesh(geometry, combineShader); gridContainer.position.set(10, 10); rippleContainer.position.set(220, 10); noiseContainer.position.set(10, 220); waveContainer.position.set(10, 430); combineQuad.position.set(430, 220); // Add all phases to stage so all the phases can be seen separately. app.stage.addChild(gridContainer); app.stage.addChild(rippleContainer); app.stage.addChild(noiseContainer); app.stage.addChild(waveContainer); app.stage.addChild(combineQuad); // start the animation.. let time = 0; app.ticker.add((delta) => { time += 1 / 60; // gridQuad.shader.uniforms.zoom = Math.sin(time)*5+10; rippleQuad.shader.uniforms.phase = -time; waveQuad.shader.uniforms.time = time; noiseQuad.shader.uniforms.limit = Math.sin(time * 0.5) * 0.35 + 0.5; // Render the passes to get textures. app.renderer.render(gridQuad, { renderTexture: gridTexture }); app.renderer.render(rippleQuad, { renderTexture: rippleTexture }); app.renderer.render(noiseQuad, { renderTexture: noiseTexture }); app.renderer.render(waveQuad, { renderTexture: waveTexture }); });","s":"Multi Pass Shader Generated Mesh","u":"/examples/mesh-and-shaders/multi-pass-shader-generated-mesh","h":"","p":126},{"i":129,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); // Build geometry. const geometry = new PIXI.Geometry() .addAttribute('aVertexPosition', // the attribute name [-100, -100, // x, y 100, -100, // x, y 100, 100, -100, 100], // x, y 2) // the size of the attribute .addAttribute('aUvs', // the attribute name [0, 0, // u, v 1, 0, // u, v 1, 1, 0, 1], // u, v 2) // the size of the attribute .addIndex([0, 1, 2, 0, 2, 3]); const vertexSrc = ` precision mediump float; attribute vec2 aVertexPosition; attribute vec2 aUvs; uniform mat3 translationMatrix; uniform mat3 projectionMatrix; varying vec2 vUvs; void main() { vUvs = aUvs; gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); }`; const fragmentSrc = ` //Based on this: https://www.shadertoy.com/view/wtlSWX precision mediump float; varying vec2 vUvs; uniform sampler2D noise; uniform float time; // Distance function. Just calculates the height (z) from x,y plane with really simple length check. // Its not exact as there could be shorter distances. vec2 dist(vec3 p) { float id = floor(p.x)+floor(p.y); id = mod(id, 2.); float h = texture2D(noise, vec2(p.x, p.y)*0.04).r*5.1; return vec2(h-p.z,id); } //Light calculation. vec3 calclight(vec3 p, vec3 rd) { vec2 eps = vec2( 0., 0.001); vec3 n = normalize( vec3( dist(p+eps.yxx).x - dist(p-eps.yxx).x, dist(p+eps.xyx).x - dist(p-eps.xyx).x, dist(p+eps.xxy).x - dist(p-eps.xxy).x )); vec3 d = vec3( max( 0., dot( -rd ,n))); return d; } void main() { vec2 uv = vec2(vUvs.x,1.-vUvs.y); uv *=2.; uv-=1.; vec3 cam = vec3(0.,time -2., -3.); vec3 target = vec3(sin(time)*0.1, time+cos(time)+2., 0. ); float fov = 2.2; vec3 forward = normalize( target - cam); vec3 up = normalize(cross( forward, vec3(0., 1.,0.))); vec3 right = normalize( cross( up, forward)); vec3 raydir = normalize(vec3( uv.x *up + uv.y * right + fov*forward)); //Do the raymarch vec3 col = vec3(0.); float t = 0.; for( int i = 0; i < 100; i++) { vec3 p = t * raydir + cam; vec2 d = dist(p); t+=d.x*0.5;//Jump only half of the distance as height function used is not really the best for heightmaps. if(d.x < 0.001) { vec3 bc = d.y < 0.5 ? vec3(1.0, .8, 0.) : vec3(0.8,0.0, 1.0); col = vec3( 1.) * calclight(p, raydir) * (1. - t/150.) *bc; break; } if(t > 1000.) { break; } } gl_FragColor = vec4(col, 1.); }`; const uniforms = { noise: PIXI.Texture.from('https://pixijs.com/assets/perlin.jpg'), time: 0, }; // Make sure repeat wrap is used and no mipmapping. uniforms.noise.baseTexture.wrapMode = PIXI.WRAP_MODES.REPEAT; uniforms.noise.baseTexture.mipmap = false; // Build the shader and the quad. const shader = PIXI.Shader.from(vertexSrc, fragmentSrc, uniforms); const quad = new PIXI.Mesh(geometry, shader); quad.position.set(400, 300); quad.scale.set(2); app.stage.addChild(quad); // start the animation.. let time = 0; app.ticker.add((delta) => { time += 1 / 60; quad.shader.uniforms.time = time; quad.scale.set(Number(Math.cos(time)) + 2, Number(Math.sin(time * 0.7)) + 2); });","s":"Shader Toy Mesh","u":"/examples/mesh-and-shaders/shader-toy-mesh","h":"","p":128},{"i":131,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); const geometry = new PIXI.Geometry() .addAttribute('aVertexPosition', // the attribute name [-100, -100, // x, y 100, -100, // x, y 100, 100]) // x, y .addAttribute('aUvs', // the attribute name [0, 0, // u, v 1, 0, // u, v 1, 1]); // u, v const shader = PIXI.Shader.from(` precision mediump float; attribute vec2 aVertexPosition; attribute vec2 aUvs; uniform mat3 translationMatrix; uniform mat3 projectionMatrix; varying vec2 vUvs; void main() { vUvs = aUvs; gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); }`, `precision mediump float; varying vec2 vUvs; uniform sampler2D uSampler2; void main() { gl_FragColor = texture2D(uSampler2, vUvs); } `, { uSampler2: PIXI.Texture.from('https://pixijs.com/assets/bg_scene_rotate.jpg'), }); const shader2 = PIXI.Shader.from(` precision mediump float; attribute vec2 aVertexPosition; attribute vec2 aUvs; uniform mat3 translationMatrix; uniform mat3 projectionMatrix; varying vec2 vUvs; void main() { vUvs = aUvs; gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); }`, `precision mediump float; varying vec2 vUvs; uniform sampler2D uSampler2; void main() { gl_FragColor = texture2D(uSampler2, vUvs); gl_FragColor.r += (abs(sin(gl_FragCoord.x * 0.06)) * 0.5) * 2.; gl_FragColor.g += (abs(cos(gl_FragCoord.y * 0.06)) * 0.5) * 2.; } `, { uSampler2: PIXI.Texture.from('https://pixijs.com/assets/bg_scene_rotate.jpg'), }); const triangle = new PIXI.Mesh(geometry, shader); const triangle2 = new PIXI.Mesh(geometry, shader2); triangle.position.set(400, 300); triangle.scale.set(2); triangle2.position.set(500, 400); triangle2.scale.set(3); app.stage.addChild(triangle2, triangle); app.ticker.add((delta) => { triangle.rotation += 0.01; triangle2.rotation -= 0.005; });","s":"Shared Shader","u":"/examples/mesh-and-shaders/shared-shader","h":"","p":130},{"i":133,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); const geometry = new PIXI.Geometry() .addAttribute('aVertexPosition', // the attribute name [-100, -100, // x, y 100, -100, // x, y 100, 100], // x, y 2) // the size of the attribute .addAttribute('aUvs', // the attribute name [0, 0, // u, v 1, 0, // u, v 1, 1], // u, v 2); // the size of the attribute const program = PIXI.Program.from(` precision mediump float; attribute vec2 aVertexPosition; attribute vec2 aUvs; uniform mat3 translationMatrix; uniform mat3 projectionMatrix; varying vec2 vUvs; void main() { vUvs = aUvs; gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); }`, `precision mediump float; varying vec2 vUvs; uniform sampler2D uSamplerTexture; void main() { gl_FragColor = texture2D(uSamplerTexture, vUvs); } `); const triangle = new PIXI.Mesh(geometry, new PIXI.Shader(program, { uSamplerTexture: PIXI.Texture.from('https://pixijs.com/assets/bg_scene_rotate.jpg'), })); const triangle2 = new PIXI.Mesh(geometry, new PIXI.Shader(program, { uSamplerTexture: PIXI.Texture.from('https://pixijs.com/assets/bg_rotate.jpg'), })); const triangle3 = new PIXI.Mesh(geometry, new PIXI.Shader(program, { uSamplerTexture: PIXI.Texture.from('https://pixijs.com/assets/bg_displacement.jpg'), })); triangle.position.set(400, 300); triangle.scale.set(2); triangle2.position.set(200, 100); triangle3.position.set(500, 400); triangle3.scale.set(3); app.stage.addChild(triangle3, triangle2, triangle); app.ticker.add((delta) => { triangle.rotation += 0.01; triangle2.rotation -= 0.01; triangle3.rotation -= 0.005; });","s":"Sharing Geometry","u":"/examples/mesh-and-shaders/sharing-geometry","h":"","p":132},{"i":135,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); let count = 0; // build a rope! const ropeLength = 45; const points = []; for (let i = 0; i < 25; i++) { points.push(new PIXI.Point(i * ropeLength, 0)); } const strip = new PIXI.SimpleRope(PIXI.Texture.from('https://pixijs.com/assets/snake.png'), points); strip.x = -40; strip.y = 300; app.stage.addChild(strip); const g = new PIXI.Graphics(); g.x = strip.x; g.y = strip.y; app.stage.addChild(g); // start animating app.ticker.add(() => { count += 0.1; // make the snake for (let i = 0; i < points.length; i++) { points[i].y = Math.sin((i * 0.5) + count) * 30; points[i].x = i * ropeLength + Math.cos((i * 0.3) + count) * 20; } renderPoints(); }); function renderPoints() { g.clear(); g.lineStyle(2, 0xffc2c2); g.moveTo(points[0].x, points[0].y); for (let i = 1; i < points.length; i++) { g.lineTo(points[i].x, points[i].y); } for (let i = 1; i < points.length; i++) { g.beginFill(0xff0022); g.drawCircle(points[i].x, points[i].y, 10); g.endFill(); } }","s":"Textured Mesh Advanced","u":"/examples/mesh-and-shaders/textured-mesh-advanced","h":"","p":134},{"i":137,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); let count = 0; // build a rope! const ropeLength = 918 / 20; const points = []; for (let i = 0; i < 20; i++) { points.push(new PIXI.Point(i * ropeLength, 0)); } const strip = new PIXI.SimpleRope(PIXI.Texture.from('https://pixijs.com/assets/snake.png'), points); strip.x = -459; const snakeContainer = new PIXI.Container(); snakeContainer.x = 400; snakeContainer.y = 300; snakeContainer.scale.set(800 / 1100); app.stage.addChild(snakeContainer); snakeContainer.addChild(strip); app.ticker.add(() => { count += 0.1; // make the snake for (let i = 0; i < points.length; i++) { points[i].y = Math.sin((i * 0.5) + count) * 30; points[i].x = i * ropeLength + Math.cos((i * 0.3) + count) * 20; } });","s":"Textured Mesh Basic","u":"/examples/mesh-and-shaders/textured-mesh-basic","h":"","p":136},{"i":139,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); const geometry = new PIXI.Geometry() .addAttribute('aVertexPosition', [-100, -50, 100, -50, 0, 100]); const shader = PIXI.Shader.from(` precision mediump float; attribute vec2 aVertexPosition; uniform mat3 translationMatrix; uniform mat3 projectionMatrix; void main() { gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); }`, `precision mediump float; void main() { gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); } `); const triangle = new PIXI.Mesh(geometry, shader); triangle.position.set(400, 300); app.stage.addChild(triangle); app.ticker.add((delta) => { triangle.rotation += 0.01; });","s":"Triangle","u":"/examples/mesh-and-shaders/triangle","h":"","p":138},{"i":141,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); const geometry = new PIXI.Geometry() .addAttribute('aVertexPosition', // the attribute name [-100, -50, // x, y 100, -50, // x, y 0.0, 100.0], // x, y 2) // the size of the attribute .addAttribute('aColor', // the attribute name [1, 0, 0, // r, g, b 0, 1, 0, // r, g, b 0, 0, 1], // r, g, b 3); // the size of the attribute const shader = PIXI.Shader.from(` precision mediump float; attribute vec2 aVertexPosition; attribute vec3 aColor; uniform mat3 translationMatrix; uniform mat3 projectionMatrix; varying vec3 vColor; void main() { vColor = aColor; gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); }`, `precision mediump float; varying vec3 vColor; void main() { gl_FragColor = vec4(vColor, 1.0); } `); const triangle = new PIXI.Mesh(geometry, shader); triangle.position.set(400, 300); triangle.scale.set(2); app.stage.addChild(triangle); app.ticker.add((delta) => { triangle.rotation += 0.01; });","s":"Triangle Color","u":"/examples/mesh-and-shaders/triangle-color","h":"","p":140},{"i":143,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); const geometry = new PIXI.Geometry() .addAttribute('aVertexPosition', // the attribute name [-100, -100, // x, y 100, -100, // x, y 100, 100], // x, y 2) // the size of the attribute .addAttribute('aColor', // the attribute name [1, 0, 0, // r, g, b 0, 1, 0, // r, g, b 0, 0, 1], // r, g, b 3) // the size of the attribute .addAttribute('aUvs', // the attribute name [0, 0, // u, v 1, 0, // u, v 1, 1], // u, v 2); // the size of the attribute const vertexSrc = ` precision mediump float; attribute vec2 aVertexPosition; attribute vec3 aColor; attribute vec2 aUvs; uniform mat3 translationMatrix; uniform mat3 projectionMatrix; varying vec2 vUvs; varying vec3 vColor; void main() { vUvs = aUvs; vColor = aColor; gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); }`; const fragmentSrc = ` precision mediump float; varying vec3 vColor; varying vec2 vUvs; uniform sampler2D uSampler2; void main() { gl_FragColor = texture2D(uSampler2, vUvs) * vec4(vColor, 1.0); }`; const uniforms = { uSampler2: PIXI.Texture.from('https://pixijs.com/assets/bg_scene_rotate.jpg') }; const shader = PIXI.Shader.from(vertexSrc, fragmentSrc, uniforms); const triangle = new PIXI.Mesh(geometry, shader); triangle.position.set(400, 300); triangle.scale.set(2); app.stage.addChild(triangle); app.ticker.add((delta) => { triangle.rotation += 0.01; });","s":"Triangle Textured","u":"/examples/mesh-and-shaders/triangle-textured","h":"","p":142},{"i":145,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); const geometry = new PIXI.Geometry() .addAttribute('aVertexPosition', // the attribute name [-100, -100, // x, y 100, -100, // x, y 100, 100, -100, 100], // x, y 2) // the size of the attribute .addAttribute('aUvs', // the attribute name [0, 0, // u, v 1, 0, // u, v 1, 1, 0, 1], // u, v 2) // the size of the attribute .addIndex([0, 1, 2, 0, 2, 3]); const vertexSrc = ` precision mediump float; attribute vec2 aVertexPosition; attribute vec2 aUvs; uniform mat3 translationMatrix; uniform mat3 projectionMatrix; varying vec2 vUvs; void main() { vUvs = aUvs; gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); }`; const fragmentSrc = ` precision mediump float; varying vec2 vUvs; uniform sampler2D uSampler2; uniform float time; void main() { gl_FragColor = texture2D(uSampler2, vUvs + sin( (time + (vUvs.x) * 14.) ) * 0.1 ); }`; const uniforms = { uSampler2: PIXI.Texture.from('https://pixijs.com/assets/bg_scene_rotate.jpg'), time: 0, }; const shader = PIXI.Shader.from(vertexSrc, fragmentSrc, uniforms); const quad = new PIXI.Mesh(geometry, shader); quad.position.set(400, 300); quad.scale.set(2); app.stage.addChild(quad); // start the animation.. // requestAnimationFrame(animate); app.ticker.add((delta) => { quad.rotation += 0.01; quad.shader.uniforms.time += 0.1; });","s":"Uniforms","u":"/examples/mesh-and-shaders/uniforms","h":"","p":144},{"i":147,"t":"import * as PIXI from 'pixi.js'; // This example is the based on basic/container, but using OffscreenCanvas. const canvas = document.createElement('canvas'); const view = canvas.transferControlToOffscreen(); const app = new PIXI.Application({ view, background: 0x1099bb, resizeTo: window }); document.body.appendChild(canvas); const container = new PIXI.Container(); app.stage.addChild(container); // Create a new texture const texture = PIXI.Texture.from('https://pixijs.com/assets/bunny.png'); // Create a 5x5 grid of bunnies for (let i = 0; i < 25; i++) { const bunny = new PIXI.Sprite(texture); bunny.anchor.set(0.5); bunny.x = (i % 5) * 40; bunny.y = Math.floor(i / 5) * 40; container.addChild(bunny); } // Move container to the center container.x = app.screen.width / 2; container.y = app.screen.height / 2; // Center bunny sprite in local container coordinates container.pivot.x = container.width / 2; container.pivot.y = container.height / 2; // Listen for animate update app.ticker.add((delta) => { // rotate the container! // use delta to create frame-independent transform container.rotation -= 0.01 * delta; });","s":"Basic","u":"/examples/offscreen-canvas/basic","h":"","p":146},{"i":149,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ autoStart: false, resizeTo: window }); document.body.appendChild(app.view); PIXI.Assets.load('https://pixijs.com/assets/spritesheet/0123456789.json').then((spritesheet) => { // create an array to store the textures const textures = []; let i; for (i = 0; i < 10; i++) { const framekey = `0123456789 ${i}.ase`; const texture = PIXI.Texture.from(framekey); const time = spritesheet.data.frames[framekey].duration; textures.push({ texture, time }); } const scaling = 4; // create a slow AnimatedSprite const slow = new PIXI.AnimatedSprite(textures); slow.anchor.set(0.5); slow.scale.set(scaling); slow.animationSpeed = 0.5; slow.x = (app.screen.width - slow.width) / 2; slow.y = app.screen.height / 2; slow.play(); app.stage.addChild(slow); // create a fast AnimatedSprite const fast = new PIXI.AnimatedSprite(textures); fast.anchor.set(0.5); fast.scale.set(scaling); fast.x = (app.screen.width + fast.width) / 2; fast.y = app.screen.height / 2; fast.play(); app.stage.addChild(fast); // start animating app.start(); });","s":"Animated Sprite Animation Speed","u":"/examples/sprite/animated-sprite-animation-speed","h":"","p":148},{"i":151,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ autoStart: false, resizeTo: window }); document.body.appendChild(app.view); PIXI.Assets.load('https://pixijs.com/assets/spritesheet/mc.json').then(() => { // create an array to store the textures const explosionTextures = []; let i; for (i = 0; i < 26; i++) { const texture = PIXI.Texture.from(`Explosion_Sequence_A ${i + 1}.png`); explosionTextures.push(texture); } for (i = 0; i < 50; i++) { // create an explosion AnimatedSprite const explosion = new PIXI.AnimatedSprite(explosionTextures); explosion.x = Math.random() * app.screen.width; explosion.y = Math.random() * app.screen.height; explosion.anchor.set(0.5); explosion.rotation = Math.random() * Math.PI; explosion.scale.set(0.75 + Math.random() * 0.5); explosion.gotoAndPlay(Math.random() * 26 | 0); app.stage.addChild(explosion); } // start animating app.start(); });","s":"Animated Sprite Explosion","u":"/examples/sprite/animated-sprite-explosion","h":"","p":150},{"i":153,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ background: '#1099bb', resizeTo: window }); document.body.appendChild(app.view); PIXI.Assets.load('https://pixijs.com/assets/spritesheet/fighter.json').then(() => { // create an array of textures from an image path const frames = []; for (let i = 0; i < 30; i++) { const val = i < 10 ? `0${i}` : i; // magically works since the spritesheet was loaded with the pixi loader frames.push(PIXI.Texture.from(`rollSequence00${val}.png`)); } // create an AnimatedSprite (brings back memories from the days of Flash, right ?) const anim = new PIXI.AnimatedSprite(frames); /* * An AnimatedSprite inherits all the properties of a PIXI sprite * so you can change its position, its anchor, mask it, etc */ anim.x = app.screen.width / 2; anim.y = app.screen.height / 2; anim.anchor.set(0.5); anim.animationSpeed = 0.5; anim.play(); app.stage.addChild(anim); // Animate the rotation app.ticker.add(() => { anim.rotation += 0.01; }); });","s":"Animated Sprite Jet","u":"/examples/sprite/animated-sprite-jet","h":"","p":152},{"i":155,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ background: '#1099bb', resizeTo: window }); document.body.appendChild(app.view); // create a new Sprite from an image path const bunny = PIXI.Sprite.from('https://pixijs.com/assets/bunny.png'); // center the sprite's anchor point bunny.anchor.set(0.5); // move the sprite to the center of the screen bunny.x = app.screen.width / 2; bunny.y = app.screen.height / 2; app.stage.addChild(bunny); // Listen for animate update app.ticker.add((delta) => { // just for fun, let's rotate mr rabbit a little // delta is 1 if running at 100% performance // creates frame-independent transformation bunny.rotation += 0.1 * delta; });","s":"Basic","u":"/examples/sprite/basic","h":"","p":154},{"i":157,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ background: '#1099bb', resizeTo: window }); document.body.appendChild(app.view); let isFlower = true; const texture = PIXI.Texture.from('https://pixijs.com/assets/flowerTop.png'); const secondTexture = PIXI.Texture.from('https://pixijs.com/assets/eggHead.png'); // create a new Sprite using the texture const character = new PIXI.Sprite(texture); // center the sprites anchor point character.anchor.set(0.5); // move the sprite to the center of the screen character.x = app.screen.width / 2; character.y = app.screen.height / 2; app.stage.addChild(character); // make the sprite interactive character.eventMode = 'static'; character.cursor = 'pointer'; character.on('pointertap', () => { isFlower = !isFlower; // Dynamically swap the texture character.texture = isFlower ? texture : secondTexture; }); app.ticker.add(() => { character.rotation += 0.02; });","s":"Texture Swap","u":"/examples/sprite/texture-swap","h":"","p":156},{"i":159,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); // create a texture from an image path const texture = PIXI.Texture.from('https://pixijs.com/assets/p2.jpeg'); /* create a tiling sprite ... * requires a texture, a width and a height * in WebGL the image size should preferably be a power of two */ const tilingSprite = new PIXI.TilingSprite( texture, app.screen.width, app.screen.height, ); app.stage.addChild(tilingSprite); let count = 0; app.ticker.add(() => { 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; });","s":"Tiling Sprite","u":"/examples/sprite/tiling-sprite","h":"","p":158},{"i":161,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ backgroundAlpha: 0, resizeTo: window }); document.body.appendChild(app.view); // Create play button that can be used to trigger the video const button = new PIXI.Graphics() .beginFill(0x0, 0.5) .drawRoundedRect(0, 0, 100, 100, 10) .endFill() .beginFill(0xffffff) .moveTo(36, 30) .lineTo(36, 70) .lineTo(70, 50); // Position the button button.x = (app.screen.width - button.width) / 2; button.y = (app.screen.height - button.height) / 2; // Enable interactivity on the button button.eventMode = 'static'; button.cursor = 'pointer'; // Add to the stage app.stage.addChild(button); // Listen for a click/tap event to start playing the video // this is useful for some mobile platforms. For example: // ios9 and under cannot render videos in PIXI without a // polyfill - https://github.com/bfred-it/iphone-inline-video // ios10 and above require a click/tap event to render videos // that contain audio in PIXI. Videos with no audio track do // not have this requirement button.on('pointertap', onPlayVideo); function onPlayVideo() { // Don't need the button anymore button.destroy(); // create a video texture from a path const texture = PIXI.Texture.from('https://pixijs.com/assets/video.mp4'); // create a new Sprite using the video texture (yes it's that easy) const videoSprite = new PIXI.Sprite(texture); // Stetch the fullscreen videoSprite.width = app.screen.width; videoSprite.height = app.screen.height; app.stage.addChild(videoSprite); }","s":"Video","u":"/examples/sprite/video","h":"","p":160},{"i":163,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ background: '#1099bb', resizeTo: window }); document.body.appendChild(app.view); PIXI.Assets.load('https://pixijs.com/assets/bitmap-font/desyrel.xml').then(() => { const bitmapFontText = new PIXI.BitmapText( 'bitmap fonts are supported!\\nWoo yay!', { fontName: 'Desyrel', fontSize: 55, align: 'left', }, ); bitmapFontText.x = 50; bitmapFontText.y = 200; app.stage.addChild(bitmapFontText); });","s":"Bitmap Text","u":"/examples/text/bitmap-text","h":"","p":162},{"i":165,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ background: '#1099bb', resizeTo: window }); document.body.appendChild(app.view); // Load from any font file! PIXI.Assets.addBundle('fonts', { ChaChicle: 'https://pixijs.com/assets/webfont-loader/ChaChicle.ttf', Lineal: 'https://pixijs.com/assets/webfont-loader/Lineal.otf', 'Dotrice Regular': 'https://pixijs.com/assets/webfont-loader/Dotrice-Regular.woff', Crosterian: 'https://pixijs.com/assets/webfont-loader/Crosterian.woff2', }); PIXI.Assets.loadBundle('fonts').then(() => { const text1 = new PIXI.Text('ChaChicle.ttf', new PIXI.TextStyle({ fontFamily: 'ChaChicle', fontSize: 50 })); const text2 = new PIXI.Text('Lineal.otf', new PIXI.TextStyle({ fontFamily: 'Lineal', fontSize: 50 })); const text3 = new PIXI.Text('Dotrice Regular.woff', new PIXI.TextStyle({ fontFamily: 'Dotrice Regular', fontSize: 50 })); const text4 = new PIXI.Text('Crosterian.woff2', new PIXI.TextStyle({ fontFamily: 'Crosterian', fontSize: 50 })); text2.y = 150; text3.y = 300; text4.y = 450; app.stage.addChild(text1); app.stage.addChild(text2); app.stage.addChild(text3); app.stage.addChild(text4); });","s":"From Font","u":"/examples/text/from-font","h":"","p":164},{"i":167,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ background: '#1099bb', resizeTo: window }); document.body.appendChild(app.view); const basicText = new PIXI.Text('Basic text in pixi'); basicText.x = 50; basicText.y = 100; app.stage.addChild(basicText); const style = new PIXI.TextStyle({ fontFamily: 'Arial', fontSize: 36, fontStyle: 'italic', fontWeight: 'bold', fill: ['#ffffff', '#00ff99'], // gradient stroke: '#4a1850', strokeThickness: 5, dropShadow: true, dropShadowColor: '#000000', dropShadowBlur: 4, dropShadowAngle: Math.PI / 6, dropShadowDistance: 6, wordWrap: true, wordWrapWidth: 440, lineJoin: 'round', }); const richText = new PIXI.Text('Rich text with a lot of options and across multiple lines', style); richText.x = 50; richText.y = 220; app.stage.addChild(richText); const skewStyle = new PIXI.TextStyle({ fontFamily: 'Arial', dropShadow: true, dropShadowAlpha: 0.8, dropShadowAngle: 2.1, dropShadowBlur: 4, dropShadowColor: '0x111111', dropShadowDistance: 10, fill: ['#ffffff'], stroke: '#004620', fontSize: 60, fontWeight: 'lighter', lineJoin: 'round', strokeThickness: 12, }); const skewText = new PIXI.Text('SKEW IS COOL', skewStyle); skewText.skew.set(0.65, -0.3); skewText.anchor.set(0.5, 0.5); skewText.x = 300; skewText.y = 480; app.stage.addChild(skewText);","s":"Pixi Text","u":"/examples/text/pixi-text","h":"","p":166},{"i":169,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ background: '#1099bb', resizeTo: window }); document.body.appendChild(app.view); // Load them google fonts before starting... window.WebFontConfig = { google: { families: ['Snippet'], }, active() { init(); }, }; /* eslint-disable */ // include the web-font loader script (function() { const wf = document.createElement('script'); wf.src = `${document.location.protocol === 'https:' ? 'https' : 'http' }://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js`; wf.type = 'text/javascript'; wf.async = 'true'; const s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(wf, s); }()); /* eslint-enabled */ function init() { // create some white text using the Snippet webfont const textSample = new PIXI.Text( 'PixiJS text using the\\ncustom \"Snippet\" Webfont', { fontFamily: 'Snippet', fontSize: 50, fill: 'white', align: 'left', } ); textSample.position.set(50, 200); app.stage.addChild(textSample); }","s":"Web Font","u":"/examples/text/web-font","h":"","p":168},{"i":171,"t":"import * as PIXI from 'pixi.js'; // This demo uses canvas2d gradient API // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/createLinearGradient const app = new PIXI.Application({ antialias: true, resizeTo: window }); document.body.appendChild(app.view); function createGradTexture() { // adjust it if somehow you need better quality for very very big images const quality = 256; const canvas = document.createElement('canvas'); canvas.width = quality; canvas.height = 1; const ctx = canvas.getContext('2d'); // use canvas2d API to create gradient const grd = ctx.createLinearGradient(0, 0, quality, 0); grd.addColorStop(0, 'rgba(255, 255, 255, 0.0)'); grd.addColorStop(0.3, 'cyan'); grd.addColorStop(0.7, 'red'); grd.addColorStop(1, 'green'); ctx.fillStyle = grd; ctx.fillRect(0, 0, quality, 1); return PIXI.Texture.from(canvas); } const gradTexture = createGradTexture(); const sprite = new PIXI.Sprite(gradTexture); sprite.position.set(100, 100); sprite.rotation = Math.PI / 8; sprite.width = 500; sprite.height = 50; app.stage.addChild(sprite);","s":"Gradient Basic","u":"/examples/textures/gradient-basic","h":"","p":170},{"i":173,"t":"import * as PIXI from 'pixi.js'; // PixiJS V5 Texture-Resource API + canvas2d gradient API + WebGL texImage2D // Look here for advanced upload function: // https://github.com/pixijs/pixi.js/blob/dev/packages/core/src/textures/resources/BaseImageResource.js#L54 class GradientResource extends PIXI.Resource { constructor() { // pass width and height. (0,0) if we dont know yet // gradient needs only 1 pixel height super(256, 1); } upload(renderer, baseTexture, glTexture) { const { width } = this; // default size or from baseTexture? const { height } = this; // your choice. // temporary canvas, we dont need it after texture is uploaded to GPU const canvas = document.createElement('canvas'); canvas.width = width; canvas.height = height; const ctx = canvas.getContext('2d'); const grd = ctx.createLinearGradient(0, 0, width, 0); grd.addColorStop(0, 'rgba(255, 255, 255, 0.0)'); grd.addColorStop(0.3, 'cyan'); grd.addColorStop(0.7, 'red'); grd.addColorStop(1, 'green'); ctx.fillStyle = grd; ctx.fillRect(0, 0, width, height); // This info ios usseful if upload happens second time // Some people use that to track used memory glTexture.width = width; glTexture.height = height; // PURE WEBGL CALLS - that's what its all about. // PixiJS cant wrap all that API, we give you acceess to it! const { gl } = renderer; gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, baseTexture.premultiplyAlpha); gl.texImage2D(baseTexture.target, 0, baseTexture.format, baseTexture.format, baseTexture.type, canvas); return true; } } const app = new PIXI.Application({ antialias: true, resizeTo: window }); document.body.appendChild(app.view); const gradBaseTexture = new PIXI.BaseTexture(new GradientResource()); // Here you can fake baseTexture size to avoid resizing all sprites // There can be multiple baseTextures per gradient, but be careful: // resource will spawn more glTextures! gradBaseTexture.setSize(500, 50); const gradTexture = new PIXI.Texture(gradBaseTexture); const sprite = new PIXI.Sprite(gradTexture); sprite.position.set(100, 100); sprite.rotation = Math.PI / 8; app.stage.addChild(sprite);","s":"Gradient Resource","u":"/examples/textures/gradient-resource","h":"","p":172},{"i":175,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ background: '#1099bb', resizeTo: window }); document.body.appendChild(app.view); const container = new PIXI.Container(); app.stage.addChild(container); const texture = PIXI.Texture.from('https://pixijs.com/assets/bunny.png'); for (let i = 0; i < 25; i++) { const bunny = new PIXI.Sprite(texture); bunny.x = (i % 5) * 30; bunny.y = Math.floor(i / 5) * 30; bunny.rotation = Math.random() * (Math.PI * 2); container.addChild(bunny); } const brt = new PIXI.BaseRenderTexture(300, 300, PIXI.SCALE_MODES.LINEAR, 1); const rt = new PIXI.RenderTexture(brt); const sprite = new PIXI.Sprite(rt); sprite.x = 450; sprite.y = 60; app.stage.addChild(sprite); /* * All the bunnies are added to the container with the addChild method * when you do this, all the bunnies become children of the container, and when a container moves, * so do all its children. * This gives you a lot of flexibility and makes it easier to position elements on the screen */ container.x = 100; container.y = 60; app.ticker.add(() => { app.renderer.render(container, rt); });","s":"Render Texture Basic","u":"/examples/textures/render-texture-basic","h":"","p":174},{"i":177,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); const stageSize = { width: app.screen.width, height: app.screen.height, }; // create two render textures... these dynamic textures will be used to draw the scene into itself let renderTexture = PIXI.RenderTexture.create(stageSize); let renderTexture2 = PIXI.RenderTexture.create(stageSize); const currentTexture = renderTexture; // create a new sprite that uses the render texture we created above const outputSprite = new PIXI.Sprite(currentTexture); // align the sprite outputSprite.x = 400; outputSprite.y = 300; outputSprite.anchor.set(0.5); // add to stage app.stage.addChild(outputSprite); const stuffContainer = new PIXI.Container(); stuffContainer.x = 400; stuffContainer.y = 300; app.stage.addChild(stuffContainer); // create an array of image ids.. const fruits = [ 'https://pixijs.com/assets/rt_object_01.png', 'https://pixijs.com/assets/rt_object_02.png', 'https://pixijs.com/assets/rt_object_03.png', 'https://pixijs.com/assets/rt_object_04.png', 'https://pixijs.com/assets/rt_object_05.png', 'https://pixijs.com/assets/rt_object_06.png', 'https://pixijs.com/assets/rt_object_07.png', 'https://pixijs.com/assets/rt_object_08.png', ]; // create an array of items const items = []; // now create some items and randomly position them in the stuff container for (let i = 0; i < 20; i++) { const item = PIXI.Sprite.from(fruits[i % fruits.length]); item.x = Math.random() * 400 - 200; item.y = Math.random() * 400 - 200; item.anchor.set(0.5); stuffContainer.addChild(item); items.push(item); } // used for spinning! let count = 0; app.ticker.add(() => { for (let i = 0; i < items.length; i++) { // rotate each item const item = items[i]; item.rotation += 0.1; } count += 0.01; // swap the buffers ... const temp = renderTexture; renderTexture = renderTexture2; renderTexture2 = temp; // set the new texture outputSprite.texture = renderTexture; // twist this up! stuffContainer.rotation -= 0.01; outputSprite.scale.set(1 + Math.sin(count) * 0.2); // render the stage to the texture // the 'true' clears the texture before the content is rendered app.renderer.render(app.stage, { renderTexture: renderTexture2, clear: false, }); });","s":"Render Texture Advanced","u":"/examples/textures/render-texture-advanced","h":"","p":176},{"i":179,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); PIXI.Assets.load('https://pixijs.com/assets/flowerTop.png').then((texture) => { // create rotated textures const textures = [texture]; const D8 = PIXI.groupD8; for (let rotate = 1; rotate < 16; rotate++) { const h = D8.isVertical(rotate) ? texture.frame.width : texture.frame.height; const w = D8.isVertical(rotate) ? texture.frame.height : texture.frame.width; const { frame } = texture; const crop = new PIXI.Rectangle(texture.frame.x, texture.frame.y, w, h); const trim = crop; let rotatedTexture; if (rotate % 2 === 0) { rotatedTexture = new PIXI.Texture(texture.baseTexture, frame, crop, trim, rotate); } else { // HACK to avoid exception // PIXI doesnt like diamond-shaped UVs, because they are different in canvas and webgl rotatedTexture = new PIXI.Texture(texture.baseTexture, frame, crop, trim, rotate - 1); rotatedTexture.rotate++; } textures.push(rotatedTexture); } const offsetX = app.screen.width / 16 | 0; const offsetY = app.screen.height / 8 | 0; const gridW = app.screen.width / 4 | 0; const gridH = app.screen.height / 5 | 0; // normal rotations and mirrors for (let i = 0; i < 16; i++) { // create a new Sprite using rotated texture const dude = new PIXI.Sprite(textures[i < 8 ? i * 2 : (i - 8) * 2 + 1]); dude.scale.x = 0.5; dude.scale.y = 0.5; // show it in grid dude.x = offsetX + gridW * (i % 4); dude.y = offsetY + gridH * (i / 4 | 0); app.stage.addChild(dude); const text = new PIXI.Text(`rotate = ${dude.texture.rotate}`, { fontFamily: 'Courier New', fontSize: '12px', fill: 'white', align: 'left', }); text.x = dude.x; text.y = dude.y - 20; app.stage.addChild(text); } });","s":"Texture Rotate","u":"/examples/textures/texture-rotate","h":"","p":178}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/37",[0,6.406,1,4.595,2,6.406,3,6.36,4,6.406,5,6.406,6,6.406]],["t/39",[7,0.012,8,0.045,9,0.012,10,0.012,11,1.359,12,2.182,13,2.182,14,2.182,15,2.182,16,1.895,17,3.477,18,2.182,19,2.182,20,2.182,21,1.895,22,2.182,23,2.182,24,2.182,25,0.04,26,0.012,27,0.037,28,0.02,29,0.405,30,1.895,31,0.052,32,0.052,33,0.02,34,1.895,35,4.334,36,2.182,37,1.706,38,4.221,39,5.747,40,2.718,41,3.477,42,1.565,43,2.182,44,5.398,45,1.565,46,3.593,47,3.545,48,3.477,49,0.908,50,2.182,51,1.565,52,1.895,53,2.182,54,2.494,55,1.278,56,4.943,57,1.242,58,2.182,59,4.334,60,2.182,61,2.182,62,2.182,63,2.182,64,2.351,65,3.477,66,3.477,67,2.182,68,2.182,69,3.477,70,3.477,71,2.182,72,2.182,73,1.565,74,2.182,75,3.477,76,2.182,77,1.895,78,2.182,79,2.182,80,2.182,81,2.182,82,3.764,83,2.182,84,3.828,85,4.334,86,4.334,87,4.334,88,4.334,89,3.29,90,2.182,91,2.182,92,2.182,93,2.182,94,2.182,95,2.182,96,2.182,97,2.182,98,2.182,99,2.698,100,2.182,101,3.477,102,2.182,103,3.477,104,2.182,105,2.182,106,3.545,107,2.182,108,1.452,109,2.182,110,2.182,111,2.182,112,2.182,113,2.718,114,2.182,115,2.182,116,2.182,117,3.388,118,2.182,119,3.477,120,3.477,121,3.477,122,1.09,123,0.444,124,0.963,125,2.182,126,2.182,127,2.182,128,1.895,129,2.182,130,4.334,131,0.835,132,1.038,133,1.895,134,4.334,135,2.182,136,0.426,137,3.477,138,3.477,139,2.182,140,1.706,141,2.182,142,4.334,143,0.389,144,3.477,145,0.835,146,0.802,147,0.802,148,0.548,149,1.038,150,1.038,151,1.895,152,1.278,153,4.943,154,1.706,155,4.943,156,1.706,157,0.991,158,0.991,159,1.278,160,0.661,161,2.182,162,2.182,163,2.718,164,1.895,165,2.182,166,5.751,167,0.661,168,2.182,169,2.182,170,4.943,171,3.477,172,2.182,173,4.943,174,2.182,175,1.825,176,2.182,177,2.884,178,5.398,179,0.804,180,4.334,181,5.398,182,3.477,183,3.388,184,2.182,185,1.706,186,2.182,187,2.467,188,2.275,189,1.565,190,2.182,191,0.948,192,0.991,193,3.477,194,3.477,195,1.094,196,3.477,197,2.182,198,1.579,199,2.182,200,2.182,201,2.182,202,1.038,203,1.706,204,3.477,205,1.895,206,2.182,207,2.182,208,2.182,209,2.182,210,2.182,211,1.895,212,1.706,213,3.477,214,2.182,215,4.334,216,3.477,217,2.182,218,2.182,219,2.182,220,2.182,221,3.477,222,1.895,223,1.452,224,2.182,225,2.182,226,2.182,227,0.87,228,3.477,229,3.477,230,2.182,231,2.594,232,2.182,233,0.771,234,0.991,235,2.182]],["t/41",[7,0.017,8,0.045,9,0.017,10,0.017,11,1.994,25,0.041,26,0.017,27,0.025,28,0.029,29,0.594,31,0.077,32,0.077,33,0.029,57,1.38,64,2.869,82,2.782,108,4.014,122,0.528,123,0.542,131,1.784,136,0.499,143,1.262,145,1.226,146,1.178,147,1.178,148,0.805,149,1.524,150,1.524,151,2.782,152,1.876,154,2.505,156,2.505,157,1.455,158,1.455,159,2.019,188,1.681,227,1.278,236,0.805,237,0.775,238,4.716,239,3.203,240,3.203,241,3.203,242,3.203,243,6.409,244,4.66,245,2.782,246,4.66,247,1.333,248,6.688,249,4.047,250,0.942,251,5.493,252,3.53,253,3.203,254,3.203,255,2.505,256,3.203,257,3.203,258,3.203,259,2.782,260,3.203,261,6.031,262,2.446,263,3.203,264,3.203,265,1.047,266,2.297,267,3.203,268,3.203,269,3.203,270,3.203,271,3.203,272,3.644,273,3.203,274,2.782,275,4.66,276,4.66,277,2.782,278,3.203,279,2.505,280,4.66,281,3.203,282,4.66,283,3.203,284,3.203,285,3.203,286,3.203,287,6.409,288,3.203,289,6.688,290,4.66,291,3.203,292,5.493,293,4.66,294,3.203,295,4.451,296,6.409,297,3.203,298,3.203,299,6.688,300,6.409,301,3.203,302,3.203,303,3.203,304,3.203]],["t/43",[7,0.021,8,0.045,9,0.021,10,0.021,25,0.04,26,0.021,27,0.037,28,0.036,29,1.004,31,0.095,32,0.095,33,0.036,57,1.665,84,2.634,108,2.634,122,0.652,136,0.279,145,1.515,146,2.436,147,1.455,148,0.995,149,1.883,150,2.574,183,3.095,192,1.798,237,0.958,249,3.438,250,0.679,262,2.84,305,3.958,306,2.464,307,5.41,308,2.158,309,2.318,310,3.095,311,1.455,312,4.125,313,3.958,314,5.41,315,3.958,316,3.958,317,3.958,318,3.958,319,3.958,320,3.958,321,3.095,322,3.236,323,3.169,324,5.354,325,3.958,326,5.41,327,3.958,328,4.82,329,3.438,330,6.165,331,3.958,332,3.958,333,3.438,334,3.095,335,2.634,336,3.438,337,2.839,338,4.699,339,2.839,340,3.958,341,4.23,342,5.755,343,3.254,344,6.938,345,3.438,346,3.958,347,3.958,348,5.354,349,5.41,350,3.958,351,2.191,352,2.634,353,1.647,354,3.438,355,3.958,356,3.958,357,3.958,358,3.958,359,3.095,360,1.976,361,2.839,362,2.839,363,2.077,364,3.958,365,3.958,366,3.958,367,3.958,368,3.958,369,3.958,370,1.112,371,3.958,372,3.958]],["t/45",[7,0.024,8,0.045,9,0.024,10,0.024,16,5.137,25,0.041,26,0.024,27,0.039,28,0.041,30,3.927,31,0.109,32,0.109,33,0.041,49,2.461,57,1.136,123,0.628,136,0.319,147,1.662,148,1.136,149,2.151,150,2.151,160,1.37,167,1.37,231,2.374,237,1.095,373,4.522,374,3.01,375,5.915,376,1.731,377,3.243,378,5.915,379,3.536,380,3.243,381,4.522,382,4.522,383,4.522,384,4.522,385,5.915,386,4.522,387,4.522,388,4.522,389,3.01,390,3.927,391,2.374,392,2.257,393,2.374,394,2.374,395,2.257,396,3.937,397,2.257,398,3.243,399,4.522,400,4.522,401,2.503,402,4.522,403,1.423,404,4.522,405,4.522,406,4.522,407,4.522,408,4.522,409,3.274,410,3.01,411,2.257,412,3.536,413,1.965,414,4.522,415,4.522,416,3.536,417,4.522,418,4.522,419,4.522,420,4.522,421,4.522,422,4.522,423,4.522]],["t/47",[7,0.011,8,0.045,9,0.011,10,0.011,11,1.28,25,0.041,26,0.011,27,0.035,28,0.018,29,0.382,31,0.049,32,0.049,33,0.018,49,1.988,52,1.786,55,1.205,57,1.59,64,2.273,99,1.28,123,0.529,124,0.591,131,1.594,136,0.485,143,1.094,146,0.756,148,0.517,157,1.506,158,1.506,159,1.926,160,1.004,164,1.786,179,0.615,198,0.934,227,0.82,233,1.171,236,0.517,237,0.498,250,0.353,262,1.74,295,4.079,308,1.322,343,1.506,370,1.17,376,1.269,409,2.305,410,1.369,411,1.026,413,0.893,424,2.056,425,1.475,426,1.475,427,2.056,428,2.056,429,1.786,430,4.165,431,1.608,432,6.328,433,1.205,434,2.879,435,2.879,436,2.056,437,0.978,438,2.056,439,4.165,440,2.056,441,1.786,442,1.786,443,2.056,444,2.056,445,2.593,446,4.165,447,3.315,448,3.315,449,2.056,450,2.056,451,4.165,452,0.934,453,1.733,454,2.056,455,3.617,456,1.786,457,2.056,458,2.056,459,2.056,460,2.056,461,6.129,462,1.577,463,4.777,464,2.056,465,3.315,466,1.138,467,2.056,468,1.475,469,2.056,470,2.056,471,2.056,472,3.315,473,3.315,474,2.056,475,2.056,476,3.315,477,2.056,478,2.056,479,2.056,480,2.056,481,2.592,482,2.879,483,1.786,484,5.601,485,2.056,486,2.056,487,2.056,488,2.056,489,2.056,490,2.056,491,2.056,492,1.786,493,2.206,494,1.475,495,0.934,496,1.786,497,1.786,498,1.786,499,1.475,500,1.475,501,1.608,502,1.786,503,1.475,504,1.786,505,1.786,506,1.786,507,1.786,508,1.786,509,1.786,510,1.786,511,1.786,512,0.82,513,2.592,514,1.786,515,1.786,516,1.786,517,1.608,518,2.056,519,2.056,520,2.056,521,2.056,522,2.056,523,2.056,524,2.056,525,3.315,526,2.056,527,2.056,528,2.056,529,2.056,530,2.056,531,2.056,532,3.315,533,2.056,534,2.056,535,2.056,536,2.056,537,2.056,538,2.056,539,2.056,540,2.056,541,1.369,542,2.056,543,2.056,544,2.056,545,3.315,546,4.149,547,1.74,548,1.786,549,4.165,550,2.592,551,3.315,552,3.257,553,1.475,554,2.974,555,4.777,556,0.756,557,2.38,558,2.056,559,2.064,560,2.056,561,2.056,562,3.315,563,1.369,564,3.257,565,1.608,566,2.056,567,2.056,568,3.257,569,2.056,570,1.28,571,2.056,572,2.056,573,3.315,574,1.138,575,1.475,576,3.315,577,1.786,578,2.056,579,3.315,580,4.165,581,2.056,582,1.786,583,1.079,584,1.608,585,2.879,586,3.315,587,2.056,588,2.056,589,2.056,590,2.056,591,2.056,592,2.056,593,2.056,594,2.056,595,2.056,596,2.056,597,1.608,598,1.369,599,4.165,600,2.056,601,1.786,602,2.056,603,1.608,604,2.056,605,3.315,606,2.879,607,3.315,608,3.315,609,3.315,610,1.786,611,2.056,612,2.056,613,1.28,614,2.056,615,3.315,616,2.056,617,1.786,618,2.056,619,2.056,620,2.592,621,2.056,622,2.056,623,2.056,624,3.315,625,2.056,626,3.315,627,2.056,628,2.056,629,2.056,630,2.056,631,2.056,632,2.056,633,2.056,634,2.056,635,2.056,636,2.056,637,2.056,638,3.315,639,2.056,640,2.056,641,2.056,642,2.056,643,2.056]],["t/49",[3,1.061,7,0.007,8,0.045,9,0.011,10,0.007,25,0.041,26,0.007,27,0.031,28,0.011,29,0.227,31,0.029,32,0.029,33,0.011,39,1.061,47,0.876,49,0.889,51,3.302,54,0.876,57,0.307,64,2.632,73,0.876,106,1.533,122,0.758,123,0.713,128,1.061,131,1.091,136,0.524,140,2.674,143,1.173,145,1.762,146,1.693,157,0.555,158,0.555,159,1.693,160,0.37,177,0.813,189,0.876,192,1.554,195,0.673,205,1.857,223,1.423,231,2.805,236,0.307,262,1.122,279,1.672,308,1.836,311,1.693,312,2.42,343,1.765,363,1.122,376,1.488,413,0.929,431,0.955,437,1.017,452,1.765,453,2.223,462,1.627,481,3.343,482,3.999,512,2.387,513,0.955,554,1.331,565,1.672,601,1.061,610,1.061,620,5.301,644,4.604,645,1.857,646,1.222,647,1.222,648,3.887,649,2.04,650,2.85,651,2.229,652,3.609,653,2.85,654,2.85,655,0.813,656,1.222,657,1.222,658,4.38,659,2.85,660,2.85,661,2.138,662,1.222,663,2.85,664,2.85,665,1.496,666,2.138,667,2.138,668,3.887,669,4.604,670,2.845,671,3.066,672,2.138,673,2.138,674,3.999,675,4.886,676,2.138,677,2.138,678,2.138,679,2.138,680,2.138,681,2.138,682,2.138,683,2.138,684,1.672,685,3.42,686,1.222,687,2.85,688,2.85,689,2.85,690,2.85,691,3.42,692,2.85,693,2.85,694,2.85,695,1.222,696,2.138,697,2.138,698,2.85,699,1.061,700,2.138,701,1.222,702,3.887,703,1.061,704,2.138,705,1.222,706,1.222,707,1.222,708,1.222,709,1.222,710,2.138,711,1.222,712,1.222,713,1.222,714,2.971,715,1.222,716,1.061,717,0.955,718,1.222,719,2.85,720,1.222,721,1.222,722,2.85,723,2.971,724,4.886,725,1.222,726,5.343,727,1.222,728,1.222,729,1.222,730,1.857,731,2.229,732,1.222,733,2.85,734,1.222,735,1.061,736,1.222,737,0.876,738,1.222,739,1.061,740,2.138,741,1.222,742,1.222,743,1.222,744,1.222,745,0.508,746,1.222,747,7.04,748,1.222,749,1.222,750,1.222,751,1.061,752,1.222,753,0.876,754,0.955,755,1.222,756,1.222,757,1.222,758,2.674,759,1.222,760,1.222,761,1.222,762,1.222,763,2.138,764,2.138,765,1.222,766,0.876,767,1.222,768,1.222,769,1.222,770,1.222,771,1.222,772,1.533,773,1.222,774,1.222,775,2.138,776,1.222,777,1.222,778,1.222,779,1.222,780,1.222,781,1.222,782,1.222,783,0.813,784,1.222,785,1.222,786,1.222,787,1.222,788,1.222,789,1.222,790,1.222,791,1.222,792,1.222,793,1.222,794,1.222,795,1.222,796,1.222,797,1.222,798,1.222,799,1.222,800,1.061,801,1.061,802,1.061,803,1.222,804,1.222,805,1.222,806,1.222,807,1.222,808,1.222,809,1.222,810,1.222,811,1.222,812,1.222,813,1.222,814,1.222,815,1.222,816,1.061,817,1.061,818,1.222,819,1.222,820,1.222,821,3.887,822,3.887,823,4.275,824,4.275,825,3.42,826,3.42,827,1.222,828,3.42,829,1.222,830,3.887,831,2.85,832,1.222,833,0.813]],["t/51",[7,0.017,8,0.045,9,0.017,10,0.017,25,0.041,26,0.017,27,0.024,28,0.028,31,0.075,32,0.075,33,0.028,37,2.446,42,2.243,49,1.905,57,1.151,89,3.606,99,4.129,106,3.285,123,0.596,136,0.514,143,0.817,145,1.197,146,1.684,157,1.421,158,1.421,159,1.15,160,0.948,191,2.354,195,0.984,211,2.717,212,2.446,231,1.642,237,0.757,247,1.905,250,0.536,311,1.15,370,0.879,453,1.301,466,2.535,512,1.827,556,1.15,575,2.243,585,2.717,598,3.048,603,2.446,606,3.978,613,1.947,645,2.717,834,5.604,835,3.128,836,3.128,837,5.418,838,3.581,839,6.348,840,4.236,841,4.58,842,3.128,843,5.964,844,4.58,845,5.418,846,3.978,847,0.786,848,3.128,849,4.963,850,3.128,851,3.128,852,2.446,853,5.418,854,3.128,855,3.128,856,3.581,857,5.418,858,2.837,859,5.964,860,2.082,861,2.717,862,3.128,863,2.717,864,3.128,865,4.58,866,3.128,867,4.58,868,3.128,869,3.128,870,3.128,871,3.128,872,3.128,873,2.717,874,1.421,875,3.128,876,2.717,877,3.128,878,3.128,879,2.446,880,2.717,881,4.58,882,6.348,883,4.58,884,3.978,885,2.243,886,5.418,887,5.418,888,4.58,889,3.128,890,5.964,891,3.128,892,3.128,893,3.128,894,4.58,895,3.128,896,4.58,897,2.446,898,3.128,899,3.128,900,3.128,901,3.128]],["t/53",[7,0.029,8,0.044,9,0.029,10,0.029,25,0.038,26,0.029,27,0.035,28,0.048,29,0.994,31,0.129,32,0.129,33,0.048,57,1.792,123,0.592,124,0.956,132,2.549,175,2.813,179,0.994,191,2.862,192,2.434,236,1.347,237,1.595,250,0.919,377,5.115,380,4.724,392,2.675,394,2.813,395,2.675,397,2.675,800,4.654,847,1.655,874,2.434,902,4.654,903,5.151,904,4.654,905,5.359,906,3.139,907,5.359,908,3.843,909,2.813,910,3.566]],["t/55",[7,0.026,8,0.044,9,0.026,10,0.026,25,0.033,26,0.026,27,0.037,28,0.044,29,1.268,31,0.117,32,0.117,33,0.044,123,0.558,124,0.87,148,1.225,179,0.905,198,2.214,233,1.722,236,1.225,237,1.503,250,0.836,370,1.37,377,3.496,380,3.496,393,2.559,425,3.496,426,3.496,568,3.812,737,4.453,847,1.225,906,3.637,911,4.111,912,4.234,913,4.234,914,4.234,915,4.875,916,4.855,917,4.875,918,6.209,919,4.875,920,4.875,921,4.875,922,4.875,923,4.234,924,4.875,925,6.832,926,4.453,927,4.234,928,4.234,929,4.234,930,4.234,931,4.234,932,4.234,933,4.234,934,4.234,935,3.496,936,4.234,937,4.875,938,4.234,939,4.875,940,4.234]],["t/57",[1,2.778,7,0.021,8,0.045,9,0.021,10,0.021,21,5.294,25,0.038,26,0.021,27,0.037,28,0.035,29,0.989,31,0.093,32,0.093,33,0.035,57,1.532,123,0.59,124,0.951,148,1.34,175,3.956,179,0.989,185,3.029,198,2.422,236,0.973,237,1.291,250,0.914,377,4.938,380,4.372,425,2.778,426,2.778,437,1.843,557,2.422,737,4.938,847,1.34,903,4.168,906,3.846,911,3.374,916,3.029,926,3.824,935,3.824,936,4.63,940,3.364,941,5.331,942,5.331,943,5.331,944,2.853,945,5.331,946,3.874,947,3.874,948,6.096,949,5.331,950,5.331,951,4.168,952,5.331,953,5.331,954,3.874,955,3.874,956,3.874,957,3.874,958,3.874,959,3.874,960,3.874,961,3.874,962,3.874,963,3.874,964,3.874,965,5.331,966,3.364,967,3.874,968,4.63,969,3.874,970,3.874,971,3.874,972,3.874,973,3.874,974,3.874,975,3.874,976,3.874,977,3.874,978,3.874,979,3.874,980,3.874,981,3.874,982,3.874,983,3.874,984,3.874,985,3.874]],["t/59",[7,0.027,8,0.044,9,0.027,10,0.027,25,0.039,26,0.027,27,0.034,28,0.046,29,0.944,31,0.122,32,0.122,33,0.046,123,0.573,124,1.138,163,3.977,179,1.183,233,1.797,236,1.278,237,1.687,250,0.872,425,3.648,426,3.648,737,4.574,847,1.278,906,3.735,911,3.53,912,4.417,913,4.417,916,4.986,926,4.574,935,4.574,951,3.977,986,4.417,987,5.086,988,5.086,989,5.086,990,5.086,991,2.419,992,5.086,993,5.086,994,5.086,995,5.086,996,4.417,997,5.086,998,5.086,999,5.086,1000,5.086,1001,5.086,1002,5.086,1003,3.648,1004,5.086,1005,5.086]],["t/61",[7,0.029,8,0.044,9,0.029,10,0.029,25,0.038,26,0.029,27,0.035,28,0.048,29,1,31,0.129,32,0.129,33,0.048,123,0.593,124,0.961,132,2.563,175,2.828,179,1,191,2.871,192,2.447,212,4.212,236,1.354,237,1.6,250,1.133,392,2.689,394,2.828,395,2.689,397,2.689,547,2.828,670,3.586,847,1.661,904,4.679,906,3.156,908,3.864,909,2.828,910,3.586,926,3.864,935,4.74,951,4.212,1006,5.387,1007,5.387,1008,5.387,1009,5.387]],["t/63",[7,0.019,8,0.045,9,0.019,10,0.019,25,0.039,26,0.019,27,0.034,28,0.032,29,0.927,31,0.085,32,0.085,33,0.032,45,2.533,46,2.35,99,2.199,122,0.582,123,0.638,124,1.035,136,0.409,159,1.298,167,1.07,177,2.35,179,1.076,227,1.994,247,1.469,250,1.185,252,1.763,259,3.067,265,1.154,351,1.955,352,2.35,437,1.68,453,1.469,466,1.955,512,1.994,552,2.761,553,3.585,557,1.604,575,2.533,583,1.854,613,2.199,655,2.35,745,1.469,847,1.458,858,3,860,3.861,874,1.604,944,1.534,1010,2.199,1011,2.199,1012,2.199,1013,1.955,1014,3.067,1015,5.478,1016,4.998,1017,4.341,1018,2.35,1019,2.761,1020,3.067,1021,5.096,1022,3.067,1023,2.761,1024,2.761,1025,2.068,1026,3.908,1027,2.199,1028,4.957,1029,4.957,1030,3.531,1031,2.533,1032,3.067,1033,2.761,1034,3.531,1035,2.761,1036,3.067,1037,2.533,1038,4.536,1039,2.761,1040,2.761,1041,3.908,1042,2.068,1043,4.536,1044,2.761,1045,2.761,1046,2.761,1047,3.531,1048,2.761,1049,2.761,1050,2.533,1051,5.205,1052,2.761,1053,2.35,1054,2.761,1055,2.533,1056,3.531,1057,3.531,1058,2.761,1059,2.761,1060,2.761,1061,2.199,1062,3.067,1063,2.533,1064,3.908,1065,4.536,1066,3.908,1067,4.536]],["t/65",[7,0.022,8,0.045,9,0.022,10,0.022,25,0.04,26,0.022,27,0.03,28,0.038,31,0.101,32,0.101,33,0.038,57,1.413,122,0.926,136,0.448,147,1.54,148,1.053,163,3.276,167,1.704,188,2.199,195,1.769,233,1.481,234,1.903,250,0.964,265,1.37,351,2.319,352,2.789,353,1.743,360,2.091,363,2.199,376,1.604,379,3.276,389,2.789,401,3.113,403,1.769,429,3.639,434,3.639,452,1.903,462,1.993,559,2.609,570,2.609,745,1.743,858,3.019,911,2.319,944,1.82,991,1.993,1013,2.319,1027,2.609,1068,4.19,1069,4.19,1070,3.639,1071,5.892,1072,4.19,1073,4.19,1074,4.19,1075,4.19,1076,4.19,1077,2.807,1078,4.19,1079,4.19,1080,4.19,1081,4.19,1082,2.454,1083,4.19,1084,3.639,1085,4.19,1086,4.19,1087,4.19,1088,6.347,1089,4.19,1090,4.19,1091,4.19,1092,3.639,1093,4.19,1094,4.19,1095,4.19,1096,4.19,1097,4.19,1098,4.19,1099,3.005,1100,3.005,1101,3.276,1102,3.276,1103,4.397,1104,5.624,1105,2.319,1106,3.639,1107,4.19,1108,1.903,1109,4.19,1110,3.113,1111,4.19,1112,4.19]],["t/67",[7,0.026,8,0.045,9,0.026,10,0.026,25,0.038,26,0.026,27,0.038,28,0.043,29,0.887,31,0.115,32,0.115,33,0.043,49,2.551,123,0.641,124,0.853,132,2.275,136,0.337,157,2.172,158,2.172,159,1.758,160,1.449,167,1.449,179,0.887,191,2.664,202,2.275,231,3.219,236,1.202,237,1.485,250,1.161,374,3.183,376,1.83,391,2.51,392,3.061,393,2.51,394,2.51,395,2.387,396,4.082,397,2.387,398,3.43,452,3.244,570,2.977,649,2.51,833,3.183,847,1.202,1105,2.647,1113,4.153,1114,3.43,1115,3.739,1116,3.739,1117,3.183,1118,3.183,1119,4.153,1120,4.153,1121,4.153,1122,4.153,1123,4.153,1124,3.739,1125,3.739,1126,4.153]],["t/69",[7,0.018,8,0.045,9,0.018,10,0.018,25,0.038,26,0.018,27,0.033,28,0.03,31,0.081,32,0.081,33,0.03,42,2.426,45,2.426,46,2.251,55,2.839,99,2.106,122,0.933,123,0.612,124,0.865,136,0.436,159,1.243,167,1.025,177,3.226,179,0.899,192,1.536,227,1.349,237,0.819,250,1.123,252,2.419,265,1.106,351,1.872,370,1.84,453,2.016,466,1.872,512,1.933,557,1.536,583,1.775,801,4.209,847,1.423,858,3.414,860,3.226,874,1.536,885,2.426,909,1.775,1013,1.872,1021,4.062,1023,2.644,1024,2.644,1025,1.981,1026,2.644,1028,4.886,1029,4.886,1038,4.429,1039,2.644,1040,2.644,1041,3.789,1042,1.981,1043,4.429,1044,2.644,1045,2.644,1046,2.644,1049,2.644,1050,3.476,1051,5.119,1052,2.644,1053,2.251,1054,2.644,1055,2.426,1058,2.644,1059,2.644,1060,2.644,1061,2.106,1064,3.789,1065,4.429,1066,3.789,1067,4.429,1108,1.536,1127,4.062,1128,3.382,1129,2.937,1130,2.644,1131,3.382,1132,5.917,1133,4.846,1134,3.382,1135,3.382,1136,3.382,1137,3.382,1138,3.382,1139,3.382,1140,3.382,1141,3.382,1142,2.937,1143,3.382,1144,2.937,1145,3.382,1146,2.426,1147,4.846,1148,3.382,1149,3.382,1150,2.937,1151,2.937,1152,4.919,1153,3.382,1154,3.382,1155,3.382,1156,3.382]],["t/71",[7,0.028,8,0.045,9,0.028,10,0.028,25,0.038,26,0.028,27,0.035,28,0.047,29,0.979,31,0.127,32,0.127,33,0.047,122,1.074,136,0.46,157,2.396,158,2.396,159,1.939,195,1.659,236,1.325,250,0.904,265,1.724,352,3.51,556,2.604,575,4.678,1037,3.782,1157,5.274,1158,4.124,1159,5.274,1160,5.274,1161,5.274,1162,5.274,1163,5.665,1164,6.523,1165,5.274,1166,6.523,1167,5.274,1168,5.274,1169,5.274,1170,5.274,1171,5.274]],["t/73",[7,0.019,8,0.045,9,0.019,10,0.019,25,0.038,26,0.019,27,0.031,28,0.032,31,0.085,32,0.085,33,0.032,45,2.533,46,3.326,99,2.199,122,0.582,123,0.638,124,0.892,136,0.445,159,1.298,167,1.07,177,3.326,179,0.927,192,2.27,227,2.314,237,0.855,247,1.469,250,1.141,252,1.763,265,1.154,351,1.955,363,1.854,453,2.079,462,1.68,466,1.955,512,1.994,552,2.761,557,1.604,583,1.854,652,1.604,745,1.469,753,2.533,847,1.256,858,3.38,860,4.198,874,1.604,909,1.854,944,1.534,1013,1.955,1015,5.038,1017,4.341,1018,2.35,1019,2.761,1020,3.067,1021,5.096,1023,2.761,1024,2.761,1025,2.068,1026,3.908,1028,4.957,1029,4.957,1035,2.761,1036,3.067,1037,2.533,1038,4.536,1039,3.908,1040,2.761,1041,3.908,1042,2.068,1043,4.536,1044,2.761,1045,2.761,1046,2.761,1048,2.761,1049,2.761,1050,2.533,1051,5.205,1052,2.761,1053,2.35,1054,2.761,1055,2.533,1058,2.761,1059,2.761,1060,2.761,1061,2.199,1062,3.067,1063,2.533,1064,3.908,1065,4.536,1066,3.908,1067,4.536,1070,3.067,1071,5.038,1106,3.067,1142,3.067,1144,3.067,1172,3.531,1173,3.531,1174,3.531,1175,3.531,1176,3.531,1177,3.531,1178,3.531,1179,3.531,1180,3.531,1181,3.531]],["t/75",[7,0.029,8,0.044,9,0.029,10,0.029,25,0.036,26,0.029,27,0.036,28,0.049,31,0.131,32,0.131,33,0.049,123,0.599,124,0.977,132,2.605,136,0.386,175,2.874,179,1.016,191,2.9,192,2.487,250,0.939,265,1.79,351,3.031,392,2.733,394,2.874,395,2.733,397,2.733,745,2.278,847,1.677,908,3.927,909,2.874,910,3.645,1027,3.409,1105,3.031,1108,2.487,1182,4.756,1183,2.874,1184,4.282,1185,4.756,1186,4.756,1187,4.756,1188,4.282]],["t/77",[7,0.027,8,0.044,9,0.027,10,0.027,25,0.034,26,0.027,27,0.027,28,0.045,29,0.932,31,0.121,32,0.121,33,0.045,57,1.262,123,0.568,124,0.896,148,1.262,179,0.932,188,3.636,198,2.281,202,2.389,227,2.003,236,1.262,453,2.089,466,2.78,541,3.342,847,1.262,856,3.927,991,2.389,1033,3.927,1100,4.968,1103,5.685,1184,3.927,1189,5.022,1190,4.362,1191,5.022,1192,3.602,1193,5.022,1194,4.362,1195,4.362,1196,5.022,1197,5.022,1198,4.362,1199,4.362,1200,3.602,1201,5.022,1202,5.022,1203,3.602,1204,5.022,1205,4.362,1206,5.022,1207,5.022,1208,5.022,1209,3.342,1210,5.022,1211,5.022,1212,3.602,1213,5.022,1214,6.327,1215,5.022]],["t/79",[7,0.016,8,0.045,9,0.016,10,0.016,25,0.04,26,0.016,27,0.041,29,0.572,33,0.028,51,3.855,57,1.351,122,0.747,136,0.418,148,1.489,187,2.263,192,1.401,198,2.691,222,2.679,233,1.09,234,1.401,236,0.775,250,0.529,308,1.808,309,2.655,311,2.178,333,2.679,335,3.943,363,1.619,391,1.619,409,3.494,410,2.053,413,1.34,431,3.544,433,3.47,468,4.249,501,2.412,556,1.667,559,1.92,658,3.855,665,2.379,674,3.937,754,2.412,847,1.139,874,1.401,1099,2.212,1103,4.935,1216,3.085,1217,3.085,1218,3.085,1219,3.085,1220,3.577,1221,6.599,1222,5.924,1223,3.085,1224,3.139,1225,3.085,1226,3.085,1227,4.632,1228,6.312,1229,4.632,1230,6.312,1231,2.679,1232,5.374,1233,6.599,1234,3.085,1235,3.085,1236,3.085,1237,4.533,1238,3.943,1239,5.145,1240,4.533,1241,5.924,1242,4.533,1243,3.544,1244,3.937,1245,3.085,1246,3.085,1247,6.599,1248,3.085,1249,3.085,1250,3.085,1251,5.374,1252,3.085,1253,4.533,1254,3.544,1255,3.017,1256,3.085,1257,3.085,1258,3.085,1259,3.085,1260,2.679,1261,3.085,1262,3.085,1263,3.085,1264,6.599,1265,3.085,1266,5.374,1267,3.085,1268,4.533,1269,3.085,1270,2.679,1271,3.085,1272,3.085,1273,3.085,1274,3.085,1275,3.937,1276,3.085,1277,3.085,1278,3.085,1279,3.085,1280,3.085,1281,5.924,1282,3.937,1283,3.085,1284,3.085,1285,3.085,1286,3.085,1287,2.679,1288,3.085,1289,3.937,1290,4.533,1291,3.085,1292,3.085,1293,2.679,1294,3.937,1295,3.085,1296,3.085,1297,2.679,1298,5.374,1299,3.085,1300,3.085]],["t/81",[7,0.02,8,0.045,9,0.02,10,0.02,25,0.041,26,0.02,27,0.028,28,0.034,29,1.21,31,0.091,32,0.091,33,0.034,49,1.584,57,1.638,64,2.506,123,0.473,124,0.679,136,0.269,143,0.94,148,0.957,179,0.706,227,1.519,233,2.303,234,2.393,236,0.957,250,0.903,252,1.9,266,2.731,335,2.534,337,2.731,339,2.731,343,2.393,353,1.584,370,1.48,409,2.107,433,2.23,512,2.101,556,1.4,745,1.584,991,1.811,1010,2.37,1011,2.37,1012,2.37,1082,2.23,1183,1.998,1200,2.731,1220,4.338,1227,2.977,1229,2.977,1231,3.307,1254,4.119,1301,3.807,1302,3.807,1303,5.268,1304,3.807,1305,5.268,1306,3.807,1307,3.807,1308,3.807,1309,3.807,1310,3.307,1311,5.246,1312,3.307,1313,4.575,1314,3.307,1315,5.246,1316,3.307,1317,3.307,1318,3.307,1319,3.307,1320,3.307,1321,3.307,1322,3.307,1323,3.307,1324,3.307,1325,3.307,1326,3.307,1327,2.977,1328,3.307,1329,3.307,1330,2.977,1331,4.575,1332,2.977,1333,2.977,1334,4.575,1335,5.246,1336,4.575,1337,4.575,1338,2.977,1339,3.307,1340,3.307,1341,3.307,1342,3.307,1343,3.307,1344,3.307,1345,3.307,1346,3.307,1347,5.661,1348,5.943,1349,2.977,1350,5.246]],["t/83",[7,0.021,8,0.045,9,0.021,10,0.021,25,0.033,26,0.021,27,0.029,28,0.036,29,0.745,31,0.096,32,0.096,33,0.036,57,1.675,124,0.716,132,1.909,136,0.283,143,0.716,145,1.536,146,2.008,147,1.476,148,1.373,149,1.909,150,1.909,179,0.745,188,3.259,191,1.744,192,1.823,195,1.263,198,2.481,233,1.418,234,1.823,236,1.009,237,1.322,250,0.937,262,3.259,321,3.138,351,2.222,352,2.671,353,1.67,360,2.003,374,2.671,392,3.48,393,2.107,394,2.107,395,2.003,397,2.003,453,1.67,466,2.222,553,3.918,556,1.476,583,2.107,745,1.67,847,1.009,909,2.107,910,2.671,914,3.486,1013,2.222,1014,3.486,1033,4.271,1037,2.879,1082,2.351,1100,4.453,1183,2.107,1190,3.486,1192,2.879,1199,3.486,1200,2.879,1209,4.133,1220,2.671,1349,3.138,1351,4.014,1352,4.014,1353,4.014,1354,4.014,1355,2.879,1356,4.014,1357,4.014,1358,4.014,1359,4.014,1360,4.014,1361,4.014,1362,3.486,1363,4.014,1364,2.671,1365,3.486,1366,4.014,1367,3.486,1368,4.014,1369,4.744,1370,4.014,1371,6.972,1372,4.014,1373,5.393,1374,4.014,1375,4.014,1376,4.014,1377,4.014,1378,3.138,1379,4.014,1380,4.014,1381,4.014,1382,3.138,1383,4.014,1384,4.014,1385,4.014,1386,3.138,1387,5.462,1388,4.014,1389,4.014]],["t/85",[7,0.02,8,0.045,9,0.02,10,0.02,25,0.039,26,0.02,27,0.027,28,0.033,29,1.098,31,0.088,32,0.088,33,0.033,49,1.523,55,2.144,57,1.61,64,2.438,123,0.46,124,0.653,136,0.258,143,0.915,148,0.92,179,0.679,188,2.691,198,2.328,202,2.438,227,1.46,233,2.09,234,2.328,250,0.879,252,1.827,266,2.626,335,2.436,337,2.626,339,2.626,343,2.328,353,1.523,370,1.441,433,2.144,512,2.045,556,1.346,745,1.523,802,3.179,991,1.741,1010,2.279,1011,2.279,1012,2.279,1082,2.144,1100,3.676,1183,1.921,1209,4.49,1220,4.49,1227,2.862,1229,2.862,1254,4.008,1310,3.179,1311,5.137,1312,3.179,1313,4.452,1314,3.179,1315,5.137,1316,3.179,1317,3.179,1318,3.179,1319,3.179,1320,3.179,1321,3.179,1322,3.179,1323,3.179,1324,3.179,1325,3.179,1326,3.179,1327,2.862,1329,3.179,1330,2.862,1331,4.452,1332,2.862,1333,2.862,1334,5.566,1335,6.234,1336,5.137,1337,5.137,1338,2.862,1339,3.179,1340,3.179,1341,3.179,1342,3.179,1343,3.179,1344,3.179,1345,3.179,1346,3.179,1347,5.566,1348,5.859,1349,2.862,1350,5.137,1390,3.661,1391,3.661,1392,3.661,1393,3.661,1394,3.661,1395,3.661,1396,3.661,1397,3.661,1398,3.661]],["t/87",[7,0.021,8,0.045,9,0.021,10,0.021,25,0.04,26,0.021,27,0.021,28,0.035,29,0.717,33,0.035,57,0.972,122,0.637,123,0.478,132,1.839,136,0.273,147,1.421,148,1.53,149,1.839,150,1.839,152,3.118,159,1.421,187,2.657,188,2.029,223,2.573,233,1.366,234,2.418,236,0.972,245,3.358,277,3.358,308,2.124,309,2.264,334,3.023,359,3.023,370,1.086,401,3.371,437,1.839,481,3.023,495,2.418,541,2.573,554,3.315,583,2.029,783,2.573,902,3.358,1050,4.706,1209,4.053,1224,2.533,1238,2.573,1255,3.543,1328,3.358,1355,2.773,1399,6.561,1400,5.324,1401,3.866,1402,2.573,1403,1.93,1404,3.358,1405,4.761,1406,4.163,1407,3.866,1408,3.866,1409,3.866,1410,5.324,1411,5.324,1412,3.358,1413,3.358,1414,3.358,1415,5.324,1416,3.358,1417,3.866,1418,3.866,1419,3.866,1420,5.324,1421,3.866,1422,5.324,1423,3.866,1424,3.866,1425,3.358,1426,3.866,1427,3.866,1428,4.053,1429,5.324,1430,3.866,1431,3.866,1432,3.866,1433,3.358,1434,3.866,1435,3.866,1436,3.866,1437,6.561,1438,3.866,1439,5.324,1440,3.866,1441,5.324,1442,3.866,1443,3.866,1444,3.866,1445,3.866,1446,3.866,1447,5.324,1448,3.866,1449,3.866,1450,3.866,1451,3.866,1452,3.866,1453,6.561,1454,3.866,1455,3.866,1456,3.866]],["t/89",[1,1.629,7,0.019,8,0.045,9,0.012,10,0.012,25,0.037,26,0.012,27,0.037,28,0.02,29,0.421,33,0.02,51,1.629,55,1.33,64,1.707,122,0.907,123,0.4,124,0.405,132,1.081,136,0.509,143,0.902,148,1.118,152,1.33,175,2.653,179,0.421,183,3.479,188,1.192,189,1.629,191,0.987,202,1.081,227,1.432,233,1.945,236,0.571,262,1.884,308,1.432,309,1.33,312,1.414,321,1.776,322,1.192,336,1.973,338,1.973,341,2.806,345,4.781,353,2.103,360,1.791,361,1.629,362,1.629,370,0.638,376,0.869,403,1.4,411,1.791,412,2.806,413,1.559,435,1.973,437,1.081,468,1.629,495,1.63,559,1.414,583,1.192,613,1.414,617,1.973,783,2.389,816,1.973,833,2.961,834,3.479,846,4.781,856,1.776,861,1.973,863,3.864,874,1.032,876,1.973,880,4.391,885,1.629,1003,1.629,1013,1.257,1031,2.574,1053,1.512,1055,3.191,1082,2.102,1099,2.574,1105,1.257,1125,2.806,1130,1.776,1146,1.629,1198,1.973,1200,3.626,1209,3.365,1224,1.081,1364,1.512,1402,3.365,1403,1.134,1405,1.776,1406,1.776,1412,1.973,1413,1.973,1433,1.973,1457,1.973,1458,1.973,1459,2.271,1460,3.589,1461,4.449,1462,2.271,1463,4.449,1464,2.271,1465,4.449,1466,2.271,1467,1.414,1468,6.128,1469,2.271,1470,4.967,1471,2.271,1472,2.271,1473,2.271,1474,1.973,1475,2.271,1476,2.271,1477,2.271,1478,2.271,1479,2.271,1480,2.271,1481,2.271,1482,2.271,1483,3.117,1484,1.973,1485,2.271,1486,1.776,1487,2.271,1488,2.271,1489,1.973,1490,2.271,1491,1.973,1492,1.973,1493,2.271,1494,3.589,1495,2.271,1496,2.271,1497,2.271,1498,2.271,1499,2.271,1500,2.271,1501,3.589,1502,2.271,1503,2.271,1504,3.589,1505,2.271,1506,2.271,1507,2.806,1508,2.271,1509,2.271,1510,4.449,1511,2.271,1512,2.271,1513,2.271,1514,2.271,1515,2.271,1516,2.271,1517,2.271,1518,2.271,1519,2.271,1520,5.055,1521,2.271,1522,2.271,1523,4.391,1524,2.271,1525,2.271,1526,3.479,1527,2.271,1528,1.973,1529,1.973,1530,2.271,1531,2.271,1532,2.271,1533,2.271,1534,2.271,1535,2.271,1536,2.271,1537,3.589,1538,2.271,1539,2.271,1540,2.271,1541,2.271,1542,2.271,1543,2.271,1544,2.271,1545,2.271,1546,2.271,1547,2.271,1548,2.271,1549,2.271,1550,1.629,1551,2.271,1552,3.589,1553,2.271,1554,2.271,1555,2.271,1556,2.271,1557,3.589,1558,2.271,1559,2.271,1560,3.589,1561,3.589,1562,2.271,1563,2.271,1564,3.589,1565,2.271,1566,2.271,1567,2.271,1568,2.271,1569,2.271,1570,2.271,1571,2.271,1572,2.271,1573,2.271,1574,2.271,1575,2.271,1576,2.271,1577,1.776,1578,2.271,1579,2.271,1580,2.271,1581,2.271,1582,2.271,1583,2.271,1584,2.271,1585,1.973,1586,2.271,1587,2.271,1588,2.271,1589,2.271,1590,2.271,1591,3.589,1592,2.271,1593,1.776,1594,2.271,1595,2.271,1596,2.271,1597,2.271,1598,2.271,1599,2.271,1600,4.449,1601,4.781,1602,1.973,1603,2.271,1604,3.589,1605,2.271,1606,2.271,1607,2.271,1608,2.271,1609,2.271,1610,2.271,1611,2.271,1612,2.271,1613,2.271,1614,2.271,1615,3.117,1616,2.271,1617,2.271,1618,2.271,1619,2.271,1620,1.973,1621,2.271,1622,1.973,1623,2.271,1624,1.973,1625,2.271,1626,2.271,1627,2.271,1628,2.271,1629,2.271,1630,2.271,1631,2.271,1632,2.271,1633,2.271,1634,2.271,1635,2.806,1636,2.271,1637,1.629,1638,2.271]],["t/91",[7,0.028,8,0.044,9,0.028,10,0.028,25,0.035,26,0.028,27,0.028,28,0.047,29,0.971,33,0.047,40,4.091,123,0.583,124,0.934,136,0.369,143,0.934,147,1.924,148,1.315,149,2.489,150,2.489,198,2.948,236,1.315,250,0.897,306,4.594,308,2.087,309,3.065,310,4.091,322,2.746,353,2.177,361,3.753,362,3.753,370,1.47,437,2.489,468,3.753,541,3.482,574,2.896,583,2.746,1082,3.065,1130,4.091,1255,3.482,1355,3.753,1403,2.612,1405,4.091,1467,4.041,1523,4.544,1593,4.091,1639,6.491,1640,5.232,1641,4.544,1642,5.232,1643,5.232,1644,3.482,1645,4.544,1646,5.232]],["t/93",[7,0.019,8,0.045,9,0.019,10,0.019,25,0.04,26,0.019,27,0.034,28,0.032,29,0.666,33,0.032,46,2.388,57,1.47,123,0.654,124,0.64,136,0.413,143,0.902,146,1.319,147,1.858,148,1.27,149,1.707,150,1.707,157,1.63,159,1.319,179,0.666,191,1.559,195,1.129,198,2.296,227,1.431,233,1.786,234,2.296,236,0.902,247,1.493,295,3.364,308,2.016,309,2.102,310,2.806,335,2.388,337,2.574,339,2.574,341,2.806,342,3.117,353,2.103,360,1.791,370,1.421,392,2.921,394,1.884,395,1.791,396,2.388,397,1.791,411,1.791,412,2.806,413,1.559,453,2.435,462,2.784,466,3.239,483,3.117,495,1.63,574,1.986,613,2.234,817,3.117,873,3.117,968,3.117,986,4.39,1003,2.574,1192,2.574,1203,2.574,1362,3.117,1367,4.39,1369,4.39,1373,4.39,1402,2.388,1403,1.791,1404,4.39,1414,3.117,1425,3.117,1593,2.806,1602,3.117,1615,3.117,1644,2.388,1645,3.117,1647,5.852,1648,6.353,1649,5.852,1650,6.947,1651,2.806,1652,3.588,1653,3.588,1654,3.588,1655,2.574,1656,6.435,1657,3.588,1658,3.588,1659,5.852,1660,3.588,1661,3.588,1662,3.588,1663,3.588,1664,3.588,1665,3.588,1666,3.588,1667,3.588,1668,2.388,1669,3.588,1670,3.588,1671,3.588,1672,3.588,1673,3.588,1674,5.055,1675,3.117,1676,3.588,1677,3.588,1678,3.588,1679,3.588,1680,3.588,1681,3.588,1682,3.588,1683,5.055,1684,3.588,1685,3.588,1686,3.588,1687,3.588,1688,3.588,1689,3.588,1690,3.588]],["t/95",[7,0.026,8,0.045,9,0.026,10,0.026,25,0.033,26,0.026,27,0.036,28,0.044,29,1.15,31,0.117,32,0.117,33,0.044,57,1.222,124,0.868,158,2.209,159,1.788,160,1.473,179,0.902,202,2.313,227,1.94,231,2.553,233,1.718,250,1.063,379,3.802,389,3.237,563,5.133,745,2.023,766,3.488,911,3.431,966,4.224,1010,3.028,1011,3.028,1012,3.028,1378,3.802,1486,3.802,1507,3.802,1656,4.224,1675,4.224,1691,3.802,1692,5.384,1693,4.863,1694,4.863,1695,4.863,1696,4.863,1697,4.863,1698,4.863,1699,4.863,1700,4.863,1701,4.863,1702,4.863,1703,4.863,1704,3.802,1705,4.863,1706,2.373,1707,4.863,1708,4.863,1709,3.488,1710,6.199,1711,4.863,1712,4.863,1713,3.802]],["t/97",[7,0.022,8,0.045,9,0.022,10,0.022,25,0.038,26,0.022,27,0.038,28,0.038,29,1.042,31,0.1,32,0.1,33,0.038,55,2.449,84,2.783,122,0.689,124,1.002,147,1.537,148,1.051,149,1.989,150,1.989,152,2.449,179,1.042,188,2.948,195,1.316,250,0.717,306,2.603,376,1.601,452,1.899,557,1.899,563,3.738,649,2.195,745,2.336,753,2.999,852,3.27,1010,2.603,1011,2.603,1012,2.603,1018,2.783,1031,2.999,1032,3.632,1224,2.671,1386,3.27,1691,3.27,1704,3.27,1706,1.601,1714,4.182,1715,4.182,1716,3.632,1717,3.632,1718,3.079,1719,4.182,1720,4.182,1721,4.182,1722,4.182,1723,1.899,1724,2.88,1725,4.182,1726,4.877,1727,3.632,1728,4.877,1729,5.616,1730,3.072,1731,3.632,1732,5.616,1733,4.182,1734,2.44,1735,1.899,1736,2.755,1737,4.877,1738,5.507,1739,4.182,1740,1.817,1741,1.817,1742,5.616,1743,4.182,1744,5.616,1745,4.182,1746,4.182,1747,2.44,1748,3.632,1749,2.755,1750,4.182,1751,4.182,1752,4.182,1753,4.182,1754,4.182,1755,4.182,1756,4.182,1757,4.182,1758,4.182,1759,3.632,1760,4.182]],["t/99",[7,0.016,8,0.045,9,0.016,10,0.016,11,1.809,25,0.028,26,0.016,27,0.028,28,0.026,29,0.539,31,0.07,32,0.07,33,0.026,54,3.11,57,1.304,64,2.063,73,2.084,89,2.886,122,0.478,123,0.553,131,1.112,136,0.472,143,1.098,157,1.32,158,1.32,159,1.068,160,0.88,195,1.364,202,1.382,231,1.525,233,1.027,236,0.73,237,0.703,262,1.525,272,4.057,295,2.886,323,2.54,343,1.32,353,1.209,363,1.525,413,1.262,437,1.382,445,1.809,493,1.934,495,1.32,554,2.7,557,1.97,563,4.097,574,1.608,598,1.934,603,2.272,665,1.525,670,2.886,684,3.391,717,2.272,754,2.272,772,2.084,838,2.272,840,2.272,849,2.272,874,1.97,879,3.391,884,2.523,906,1.702,1019,3.391,1158,2.272,1203,3.721,1238,1.934,1364,1.934,1378,2.272,1402,1.934,1470,2.272,1635,3.391,1644,1.934,1692,2.523,1704,2.272,1706,1.112,1717,2.523,1718,2.357,1726,4.506,1730,2.254,1734,2.805,1735,1.32,1736,2.805,1737,2.523,1740,1.262,1741,1.262,1747,1.262,1749,1.262,1761,2.905,1762,2.905,1763,2.905,1764,2.523,1765,2.905,1766,2.905,1767,2.523,1768,2.523,1769,4.336,1770,2.905,1771,2.084,1772,2.905,1773,2.905,1774,2.905,1775,2.905,1776,2.523,1777,5.188,1778,2.905,1779,2.905,1780,2.523,1781,2.905,1782,2.523,1783,2.523,1784,2.276,1785,2.905,1786,4.057,1787,2.523,1788,2.523,1789,2.523,1790,2.523,1791,2.523,1792,3.766,1793,2.523,1794,2.523,1795,2.272,1796,2.272,1797,2.523,1798,2.523,1799,2.905,1800,2.905,1801,2.905,1802,2.905,1803,2.523,1804,2.523,1805,2.523,1806,4.745,1807,2.523,1808,3.766,1809,2.523,1810,3.766,1811,2.523,1812,4.997,1813,2.523,1814,2.523,1815,2.523,1816,2.523,1817,2.523,1818,4.506,1819,2.523,1820,2.523,1821,4.057,1822,2.905,1823,2.905,1824,4.506,1825,2.523,1826,2.523,1827,2.523,1828,2.523,1829,4.506,1830,4.057,1831,2.523,1832,3.391,1833,2.523,1834,2.523,1835,4.506,1836,2.523,1837,2.523,1838,2.523,1839,2.523,1840,2.523,1841,3.766,1842,2.523,1843,2.523,1844,2.523,1845,2.523,1846,2.523,1847,2.523,1848,3.766,1849,2.523,1850,2.523,1851,2.523,1852,2.523,1853,2.523,1854,2.523,1855,2.523,1856,2.905,1857,4.336,1858,2.523,1859,2.905,1860,2.905,1861,2.272,1862,2.905,1863,2.905,1864,2.905,1865,2.523,1866,2.905]],["t/101",[7,0.027,8,0.045,9,0.027,10,0.027,25,0.042,26,0.027,27,0.037,28,0.044,31,0.119,32,0.119,33,0.044,122,0.817,123,0.564,124,0.885,136,0.35,179,1.278,247,2.611,265,1.621,456,5.452,1077,3.133,1110,2.745,1224,2.986,1867,3.301,1868,5.385,1869,4.96,1870,4.308,1871,4.308,1872,3.878,1873,4.96,1874,4.96,1875,4.96,1876,4.96,1877,4.96,1878,4.96,1879,4.96,1880,4.96,1881,4.96,1882,4.96,1883,4.96,1884,6.277,1885,6.277,1886,4.96,1887,4.96,1888,3.557,1889,6.277,1890,3.301,1891,6.277,1892,4.96,1893,4.96]],["t/103",[7,0.021,8,0.045,9,0.021,10,0.021,25,0.041,26,0.021,27,0.036,28,0.036,31,0.096,32,0.096,33,0.036,123,0.645,124,1.106,131,2.085,136,0.282,143,0.972,147,1.47,148,1.005,160,1.211,167,1.877,179,1.011,262,2.098,370,1.123,376,1.53,391,2.098,411,1.995,413,1.737,416,3.126,452,1.816,462,1.902,494,2.867,495,1.816,499,2.867,500,2.867,556,1.47,563,4.429,649,2.098,651,3.126,655,2.661,1077,2.719,1101,3.126,1102,3.126,1108,1.816,1110,3.854,1117,2.661,1118,2.661,1428,2.661,1492,3.472,1637,2.867,1713,4.259,1716,3.472,1865,4.731,1867,2.661,1890,4.124,1894,3.472,1895,3.472,1896,3.472,1897,3.998,1898,3.472,1899,3.472,1900,3.472,1901,3.472,1902,3.472,1903,3.472,1904,3.998,1905,3.472,1906,3.472,1907,3.472,1908,3.998,1909,3.472,1910,3.472,1911,3.472,1912,3.998,1913,5.779,1914,3.472,1915,3.472,1916,3.472,1917,3.472,1918,3.472,1919,3.472,1920,3.472,1921,3.472,1922,3.126,1923,3.472,1924,3.472,1925,3.472,1926,3.998,1927,3.998,1928,3.998,1929,3.998,1930,3.998,1931,3.998,1932,3.998]],["t/105",[7,0.019,8,0.045,9,0.019,10,0.019,25,0.041,26,0.019,27,0.036,28,0.033,31,0.087,32,0.087,33,0.033,42,2.611,57,0.915,84,2.423,122,0.6,123,0.574,124,0.911,133,3.162,136,0.416,143,0.65,147,1.338,148,0.915,167,1.103,179,0.948,247,1.515,265,1.19,334,2.847,343,1.654,370,1.023,376,1.394,391,1.911,452,1.654,512,2.037,649,1.911,858,3.203,1025,2.133,1042,2.133,1053,2.423,1061,2.267,1063,2.611,1077,2.549,1110,2.015,1132,4.435,1146,2.611,1150,3.162,1151,3.162,1622,4.435,1691,2.847,1759,3.162,1867,2.423,1868,3.993,1870,3.162,1871,3.162,1933,6.732,1934,5.106,1935,3.641,1936,3.641,1937,3.641,1938,5.898,1939,5.898,1940,5.106,1941,6.979,1942,6.393,1943,6.979,1944,6.393,1945,3.641,1946,3.641,1947,3.641,1948,3.641,1949,3.162,1950,3.641,1951,4.435,1952,3.162,1953,3.162,1954,3.162,1955,3.162,1956,3.641,1957,3.641,1958,3.641,1959,3.641,1960,5.106,1961,3.641,1962,3.641,1963,2.847,1964,3.641,1965,3.641,1966,5.106,1967,3.641,1968,3.641,1969,3.641,1970,3.641,1971,3.641,1972,3.641,1973,3.641,1974,3.641,1975,3.641,1976,3.641,1977,3.641,1978,5.106,1979,5.106]],["t/107",[7,0.026,8,0.044,9,0.026,10,0.026,25,0.04,26,0.026,27,0.036,28,0.043,31,0.115,32,0.115,33,0.043,122,1.013,136,0.434,145,1.839,147,1.766,148,1.207,159,1.766,187,2.398,265,1.571,266,3.446,322,2.522,353,2.559,376,1.839,452,2.182,453,1.999,556,1.766,582,4.173,583,2.522,597,3.757,649,2.522,665,2.522,833,3.198,847,1.546,923,4.173,1260,4.173,1364,3.198,1644,4.094,1858,5.343,1861,3.757,1868,4.81,1949,4.173,1951,5.343,1952,4.173,1953,4.173,1954,4.173,1955,4.173,1980,4.805,1981,4.805,1982,4.805,1983,4.805,1984,4.805,1985,4.805,1986,4.805,1987,4.805,1988,4.805,1989,4.805,1990,4.173,1991,4.805,1992,4.805,1993,4.805,1994,4.173,1995,3.757,1996,4.805,1997,4.805,1998,6.785,1999,4.173,2000,4.805,2001,4.805,2002,4.805,2003,4.805]],["t/109",[7,0.019,8,0.045,9,0.019,10,0.019,25,0.041,26,0.019,27,0.04,28,0.032,31,0.087,32,0.087,33,0.032,122,1.179,123,0.643,131,1.947,136,0.359,143,1.199,237,1.544,247,2.116,274,4.418,308,2.962,311,2.47,312,2.254,322,3.087,363,2.67,370,1.018,391,3.087,409,2.004,433,4.349,512,2.779,556,1.331,655,2.41,665,2.67,847,0.91,1224,3.196,1403,1.807,1651,3.977,2004,5.88,2005,3.621,2006,3.621,2007,3.621,2008,3.621,2009,3.621,2010,3.621,2011,3.621,2012,3.621,2013,3.621,2014,3.621,2015,3.621,2016,3.621,2017,3.621,2018,3.621,2019,5.087,2020,3.621,2021,3.621,2022,3.621,2023,3.621,2024,3.621,2025,3.621,2026,3.621,2027,3.621,2028,3.621,2029,3.621,2030,3.621,2031,3.621,2032,3.621,2033,3.621,2034,5.88,2035,3.621,2036,3.621,2037,3.621,2038,3.621,2039,6.378,2040,3.621,2041,3.621,2042,3.621,2043,3.621,2044,3.621,2045,3.621,2046,3.621,2047,3.621,2048,3.621,2049,3.621,2050,3.621,2051,3.621,2052,3.621,2053,3.145,2054,3.621,2055,3.621,2056,3.621,2057,3.621,2058,3.621,2059,3.621,2060,3.977,2061,3.621,2062,3.621,2063,3.621,2064,3.621,2065,3.621,2066,3.621,2067,3.621,2068,3.621,2069,3.621,2070,3.621,2071,3.621,2072,3.621,2073,3.621,2074,3.621,2075,3.621,2076,3.621]],["t/111",[7,0.019,8,0.045,9,0.019,10,0.019,25,0.031,26,0.027,27,0.031,28,0.032,31,0.086,32,0.086,33,0.032,122,1.236,123,0.453,136,0.356,140,3.942,143,1.193,147,1.315,148,0.899,149,1.701,150,1.701,187,2.517,195,1.586,227,2.011,234,1.624,247,3.122,250,0.613,265,1.169,306,2.226,308,2.011,311,2.147,312,3.139,363,1.877,370,1.005,390,3.105,403,1.838,409,2.791,413,2.19,559,4.163,731,2.796,758,2.796,858,3.464,860,2.38,897,2.796,1027,2.226,1042,2.094,1077,2.915,1092,5.808,1099,2.565,1108,2.29,1110,3.702,1224,2.398,1243,4.959,1270,3.105,1403,1.785,1577,2.796,1651,2.796,1655,4.796,1890,4.451,2060,2.796,2077,3.105,2078,4.379,2079,3.105,2080,4.567,2081,3.105,2082,4.379,2083,3.105,2084,3.942,2085,4.379,2086,4.379,2087,5.072,2088,3.576,2089,2.796,2090,3.576,2091,3.576,2092,3.576,2093,3.576,2094,3.105,2095,3.576,2096,3.576,2097,3.576,2098,3.105,2099,3.576,2100,3.105,2101,3.105,2102,3.105,2103,3.576,2104,3.576,2105,3.576,2106,3.576,2107,3.576,2108,3.576,2109,3.105,2110,3.105,2111,3.105,2112,3.105,2113,3.105,2114,3.576,2115,3.576,2116,3.576,2117,3.576,2118,3.105,2119,3.576,2120,3.576,2121,3.105,2122,4.379,2123,4.379,2124,3.576,2125,3.105]],["t/113",[7,0.028,8,0.043,9,0.02,10,0.02,25,0.032,26,0.02,27,0.028,28,0.034,31,0.09,32,0.09,33,0.034,49,1.56,122,1.232,123,0.611,131,1.435,143,1.424,227,1.496,306,4.237,308,1.496,311,2.815,312,4.237,361,2.69,363,3.572,370,1.054,401,2.076,409,3.767,462,1.784,517,2.932,559,2.335,703,3.257,730,3.257,731,5.322,783,2.496,834,4.685,996,3.257,1183,1.968,1238,2.496,1403,1.872,1457,3.257,1458,3.257,1577,2.932,1655,5.183,2053,3.257,2060,4.685,2077,3.257,2078,4.527,2079,3.257,2080,2.932,2081,3.257,2082,3.257,2083,3.257,2085,3.257,2086,3.257,2087,6.802,2098,6.276,2100,3.257,2101,5.625,2102,4.527,2109,3.257,2126,5.213,2127,5.213,2128,5.992,2129,3.75,2130,5.213,2131,5.213,2132,3.75,2133,5.213,2134,3.75,2135,3.75,2136,3.75,2137,3.75,2138,3.75,2139,3.75,2140,3.75,2141,3.75,2142,3.75,2143,3.75,2144,5.213,2145,3.75,2146,3.75,2147,3.75,2148,3.75,2149,5.213,2150,3.75,2151,3.75,2152,3.75,2153,3.75,2154,3.75,2155,2.932,2156,3.75,2157,3.75,2158,3.75,2159,3.75,2160,3.75,2161,3.75,2162,3.75,2163,3.75,2164,3.75,2165,3.75]],["t/115",[7,0.025,8,0.045,9,0.025,10,0.025,25,0.042,26,0.025,27,0.04,28,0.043,29,0.881,31,0.114,32,0.114,33,0.043,122,0.782,123,0.64,124,0.847,136,0.335,143,0.847,147,1.745,148,1.193,149,2.258,150,2.258,152,2.781,154,3.712,156,3.712,179,0.881,237,1.149,306,3.8,308,1.894,393,2.492,455,4.123,564,3.712,723,6.55,1010,2.956,1011,2.956,1012,2.956,1063,4.378,1192,3.405,1255,3.16,1386,3.712,2166,4.748,2167,7.368,2168,4.748,2169,4.748,2170,4.748,2171,4.748,2172,4.748,2173,4.748,2174,4.748,2175,4.748,2176,4.748,2177,6.104,2178,4.748,2179,4.748,2180,4.748,2181,4.748,2182,4.748,2183,4.748]],["t/117",[7,0.02,8,0.045,9,0.02,10,0.02,25,0.04,26,0.02,27,0.035,28,0.033,31,0.09,32,0.09,33,0.033,122,1.064,123,0.632,124,1.153,136,0.263,143,0.926,147,1.371,148,0.937,167,1.81,179,1.109,233,1.318,247,3.061,250,0.639,262,1.957,265,1.219,308,1.487,370,1.048,376,1.427,411,1.861,413,1.62,416,2.916,452,1.694,494,2.675,495,1.694,499,2.675,500,2.675,556,1.371,649,1.957,651,2.916,655,2.482,739,3.239,897,2.916,1027,2.322,1077,2.982,1084,3.239,1101,2.916,1102,2.916,1108,2.359,1110,3.759,1117,2.482,1118,2.482,1127,2.675,1243,4.06,1403,1.861,1428,2.482,1637,2.675,1713,4.06,1867,2.482,1872,2.916,1890,4.52,1894,3.239,1895,3.239,1896,3.239,1898,3.239,1899,3.239,1900,3.239,1901,4.51,1902,3.239,1903,3.239,1905,4.51,1906,3.239,1907,3.239,1909,4.51,1910,3.239,1911,3.239,1914,3.239,1915,3.239,1916,3.239,1917,3.239,1918,3.239,1919,3.239,1920,3.239,1921,3.239,1922,2.916,1923,3.239,1924,3.239,1925,3.239,1963,2.916,2080,2.916,2110,5.189,2111,3.239,2112,3.239,2113,3.239,2118,3.239,2121,3.239,2122,4.51,2123,3.239,2125,3.239,2184,3.729,2185,6.46,2186,3.239,2187,3.729]],["t/119",[7,0.027,8,0.045,9,0.027,10,0.027,25,0.04,26,0.027,27,0.034,28,0.046,31,0.123,32,0.123,33,0.046,57,1.291,84,3.42,143,0.917,147,1.889,148,1.291,265,1.68,403,1.617,553,4.603,554,3.199,658,4.603,1022,4.463,1108,2.915,1624,4.463,1867,3.42,1872,4.018,1999,6.079,2188,5.138,2189,6.418,2190,5.138,2191,5.138,2192,5.138,2193,6.999,2194,5.138,2195,6.999,2196,5.138,2197,5.138,2198,5.138,2199,6.999,2200,6.418,2201,5.138]],["t/121",[7,0.022,8,0.045,9,0.022,10,0.022,25,0.04,26,0.022,27,0.036,28,0.036,31,0.097,32,0.097,33,0.036,49,1.687,122,0.906,123,0.494,131,2.105,136,0.509,160,1.228,167,1.228,343,2.498,370,1.754,403,1.276,433,2.375,462,3.184,858,2.969,1163,5.421,1238,2.698,1706,1.552,1718,2.498,1723,2.498,1724,2.498,1730,2.389,1734,2.389,1735,2.498,1736,2.389,1740,2.389,1741,2.389,1747,1.761,1749,2.389,1806,3.886,2202,1.929,2203,1.929,2204,4.054,2205,4.054,2206,5.5,2207,7.379,2208,7.215,2209,4.054,2210,4.054,2211,5.5,2212,6.242,2213,5.5,2214,6.242,2215,4.054,2216,6.693,2217,2.524,2218,2.969,2219,4.054,2220,2.616,2221,2.616,2222,1.929,2223,6.242,2224,1.929,2225,1.929,2226,4.054,2227,1.929,2228,4.054,2229,4.054,2230,2.024,2231,4.054,2232,4.054,2233,4.054]],["t/123",[7,0.023,8,0.044,9,0.023,10,0.023,25,0.037,26,0.023,27,0.035,28,0.039,31,0.105,32,0.105,33,0.039,122,1.256,123,0.619,131,1.667,136,0.506,143,1.279,145,2.477,146,2.379,160,1.319,167,1.319,403,1.37,652,2.621,944,2.507,1706,1.667,1718,2.621,1723,2.621,1724,2.621,1730,2.811,1734,2.507,1735,2.621,1736,2.993,1740,2.507,1741,2.507,1747,1.892,1749,1.892,1784,2.286,2202,2.072,2203,2.072,2217,2.711,2218,3.504,2220,2.745,2221,2.745,2222,2.072,2224,2.072,2225,2.072,2227,2.072,2230,2.173,2234,2.173,2235,2.41,2236,3.582,2237,3.582,2238,2.898,2239,4.355,2240,2.173,2241,3.194,2242,3.813,2243,2.173,2244,3.84,2245,2.898,2246,2.711,2247,3.123,2248,3.123,2249,3.123,2250,3.123,2251,3.405]],["t/125",[7,0.02,8,0.045,9,0.02,10,0.02,25,0.038,26,0.02,27,0.035,28,0.034,31,0.092,32,0.092,33,0.034,122,1.312,123,0.652,131,1.46,136,0.522,143,1.34,145,2.711,146,2.604,160,1.156,167,1.156,403,1.2,652,2.963,944,2.834,1706,1.46,1718,2.396,1723,2.396,1724,2.396,1730,2.627,1734,2.292,1735,2.396,1736,2.834,1740,2.292,1741,2.292,1747,1.657,1749,1.657,1784,2.002,2202,1.815,2203,2.509,2217,2.375,2218,3.617,2220,2.509,2221,2.509,2222,1.815,2224,1.815,2225,1.815,2227,1.815,2234,2.633,2235,2.92,2236,3.92,2237,3.92,2238,3.511,2240,1.904,2241,2.92,2242,3.611,2243,1.904,2244,3.511,2245,2.539,2246,2.375,2247,2.736,2248,2.736,2249,2.736,2250,2.736,2251,2.983,2252,5.275,2253,3.814,2254,3.814,2255,3.814]],["t/127",[7,0.011,8,0.045,9,0.011,10,0.011,25,0.042,26,0.011,27,0.035,28,0.018,31,0.049,32,0.049,33,0.018,89,2.194,106,1.464,123,0.469,131,0.782,136,0.476,143,0.996,145,1.587,146,1.524,160,0.619,191,1.801,195,1.643,202,0.971,223,1.359,233,0.721,234,0.927,237,0.798,279,2.577,322,2.497,323,3.058,328,3.72,359,1.596,362,4.004,376,1.821,437,0.971,445,1.271,547,1.072,556,1.524,557,2.536,564,2.577,598,2.759,620,2.577,652,1.497,665,1.072,753,1.464,772,1.464,911,1.13,944,1.432,991,1.568,1003,1.464,1042,1.931,1114,3.412,1224,3.213,1507,1.596,1526,3.72,1550,1.464,1601,2.863,1706,0.782,1718,1.497,1723,2.536,1724,2.536,1728,1.773,1730,2.982,1734,3.025,1735,2.536,1736,2.934,1738,5.101,1740,2.425,1741,2.425,1747,2.268,1749,1.801,1767,1.773,1768,1.773,1784,2.74,1786,3.72,1796,1.596,1806,1.271,1821,4.593,1832,1.596,1963,2.577,1990,2.863,1995,1.596,2084,2.577,2089,2.577,2202,1.568,2203,0.971,2218,2.656,2220,1.568,2221,1.568,2222,0.971,2224,0.971,2225,0.971,2227,0.971,2230,2.606,2234,1.019,2235,1.13,2236,2.294,2237,2.294,2238,1.359,2240,1.019,2241,1.824,2242,3.8,2243,1.019,2256,2.042,2257,3.296,2258,1.464,2259,2.042,2260,2.042,2261,3.296,2262,1.773,2263,3.296,2264,3.296,2265,3.296,2266,2.863,2267,3.296,2268,3.296,2269,2.042,2270,2.042,2271,3.296,2272,2.042,2273,3.296,2274,2.042,2275,5.874,2276,2.042,2277,2.042,2278,3.296,2279,3.296,2280,3.744,2281,2.042,2282,2.042,2283,2.042,2284,2.042,2285,2.042,2286,4.145,2287,4.757,2288,2.042,2289,2.042,2290,2.042,2291,2.042,2292,3.296,2293,3.296,2294,3.296,2295,2.042,2296,2.042,2297,2.042,2298,2.042,2299,2.042,2300,3.296,2301,3.296,2302,4.145,2303,2.042,2304,2.042,2305,2.042,2306,3.296,2307,2.042,2308,3.296,2309,3.296,2310,2.042,2311,2.042,2312,2.042,2313,3.296,2314,3.296,2315,4.145,2316,2.042,2317,2.042,2318,2.042,2319,2.042,2320,3.296,2321,3.296,2322,2.042,2323,2.042,2324,2.042,2325,2.042,2326,2.042,2327,2.042,2328,2.042,2329,2.042,2330,2.042,2331,2.042,2332,2.042,2333,2.042,2334,2.042,2335,2.042,2336,2.042,2337,3.296,2338,3.296,2339,4.145,2340,2.042,2341,2.042,2342,2.042,2343,2.042,2344,2.042,2345,3.296,2346,3.296,2347,3.296,2348,3.296,2349,2.042,2350,2.042,2351,2.042,2352,2.042,2353,2.042,2354,2.042,2355,2.042,2356,3.296,2357,3.296,2358,2.042,2359,2.042,2360,2.042,2361,2.042,2362,2.042,2363,2.042,2364,2.042,2365,3.296,2366,2.042,2367,2.042,2368,2.042,2369,2.042,2370,2.042,2371,2.042,2372,2.042,2373,1.596,2374,2.042,2375,2.042,2376,2.042,2377,2.042,2378,2.042,2379,2.042,2380,2.042,2381,2.042,2382,2.042,2383,2.042,2384,2.042]],["t/129",[7,0.015,8,0.045,9,0.015,10,0.015,11,1.716,25,0.035,26,0.015,27,0.027,28,0.025,31,0.066,32,0.066,33,0.025,54,1.977,57,1.048,64,1.983,73,1.977,89,2.775,122,1.141,123,0.622,131,1.596,136,0.519,143,1.26,145,1.924,146,1.848,160,0.835,195,0.867,272,3.931,295,2.775,323,2.442,343,1.252,353,1.147,403,0.867,445,2.596,547,1.447,554,2.596,557,2.734,574,1.526,598,1.835,652,1.894,665,1.447,670,2.775,684,3.26,772,1.977,838,2.156,840,2.156,849,2.156,852,2.156,874,1.894,879,3.26,944,1.811,1061,1.716,1158,2.156,1203,3.606,1635,3.26,1644,1.835,1706,1.055,1709,2.99,1718,2.284,1723,1.894,1724,1.894,1730,2.435,1734,2.856,1735,1.894,1736,3.011,1740,1.811,1741,1.811,1747,1.198,1749,1.811,1783,2.394,1784,1.447,1786,3.26,1787,2.394,1788,2.394,1789,2.394,1790,2.394,1791,2.394,1792,3.621,1793,2.394,1794,2.394,1795,2.156,1796,2.156,1797,2.394,1798,2.394,1803,2.394,1804,2.394,1805,2.394,1806,4.704,1807,2.394,1808,3.621,1809,2.394,1810,3.621,1811,2.394,1812,4.868,1813,2.394,1814,2.394,1815,2.394,1816,2.394,1817,2.394,1818,4.366,1819,2.394,1820,2.394,1821,3.931,1824,4.366,1825,2.394,1826,2.394,1827,2.394,1828,2.394,1829,4.366,1830,3.931,1831,2.394,1832,3.26,1833,2.394,1834,2.394,1835,4.366,1836,2.394,1837,2.394,1838,2.394,1839,2.394,1840,2.394,1841,3.621,1842,2.394,1843,2.394,1844,2.394,1845,2.394,1846,2.394,1847,2.394,1848,3.621,1849,2.394,1850,2.394,1851,2.394,1852,2.394,1853,2.394,1854,2.394,1855,2.394,1861,2.156,1994,2.394,2202,1.983,2203,1.312,2218,3.012,2220,1.983,2221,1.983,2222,1.312,2224,1.312,2225,1.312,2227,1.312,2230,1.376,2234,1.376,2235,1.526,2236,2.783,2237,2.783,2238,1.835,2240,1.376,2241,2.308,2242,2.783,2243,1.376,2247,2.99,2248,1.977,2249,1.977,2250,1.977,2258,1.977,2262,2.394,2280,1.977,2373,2.156,2385,3.26,2386,2.757,2387,2.757,2388,2.757,2389,2.757,2390,2.757,2391,2.757,2392,2.394,2393,2.757,2394,2.757]],["t/131",[7,0.02,8,0.045,9,0.02,10,0.02,25,0.038,26,0.02,27,0.035,28,0.034,31,0.09,32,0.09,33,0.034,122,1.162,123,0.469,136,0.424,143,1.071,145,2.298,146,2.207,160,1.14,167,1.14,195,1.645,401,2.084,403,1.184,944,2.271,1706,2.001,1718,2.374,1723,2.946,1724,2.946,1730,3.064,1734,2.818,1735,2.946,1736,3.204,1740,2.818,1741,2.818,1747,2.271,1749,2.271,1784,2.743,1888,2.7,2202,1.791,2203,1.791,2217,3.254,2218,3.355,2220,3.086,2221,3.086,2222,2.486,2224,2.486,2225,2.486,2227,2.486,2230,2.609,2234,1.879,2235,2.084,2236,3.323,2237,3.323,2240,2.609,2241,3.59,2242,4.082,2243,2.609,2244,4.317,2245,3.479,2246,3.254,2395,5.227,2396,3.764,2397,3.764,2398,5.227,2399,3.764,2400,3.764,2401,3.479,2402,3.269,2403,2.505,2404,2.7,2405,3.764,2406,3.764,2407,3.764,2408,2.505,2409,3.269]],["t/133",[7,0.022,8,0.045,9,0.022,10,0.022,25,0.039,26,0.022,27,0.04,28,0.037,31,0.099,32,0.099,33,0.037,122,1.222,123,0.501,136,0.445,143,1.125,145,2.414,146,2.319,160,1.254,167,1.689,401,2.291,403,1.302,652,2.533,944,2.423,1706,1.584,1723,2.533,1724,2.533,1730,2.74,1734,2.423,1735,2.533,1736,2.932,1740,2.423,1741,2.423,1747,1.798,1749,1.798,1784,2.172,1888,2.968,2202,1.969,2203,1.969,2218,3.453,2220,2.653,2221,2.653,2222,1.969,2224,1.969,2225,1.969,2227,1.969,2230,3.148,2234,2.065,2235,2.291,2236,3.491,2237,3.491,2240,2.065,2241,3.087,2242,3.736,2243,2.065,2246,2.576,2401,3.712,2402,4.843,2403,2.754,2404,2.968,2408,2.754,2409,3.594,2410,4.138,2411,4.138,2412,6.749,2413,4.138,2414,6.307,2415,4.138,2416,4.138,2417,4.138,2418,4.138,2419,4.138,2420,4.138,2421,4.138,2422,4.138]],["t/135",[7,0.024,8,0.045,9,0.024,10,0.024,25,0.039,26,0.024,27,0.035,28,0.041,31,0.11,32,0.11,33,0.041,57,1.152,108,3.972,136,0.496,143,1.065,187,2.288,195,1.442,238,3.584,247,1.907,255,3.584,265,1.499,308,1.829,353,1.907,391,2.406,396,3.051,403,1.442,445,2.854,547,2.406,556,1.685,1025,2.685,1077,3.508,1108,2.082,1244,3.982,2423,5.763,2424,3.982,2425,3.982,2426,3.982,2427,5.183,2428,5.968,2429,4.584,2430,3.584,2431,4.584,2432,4.584,2433,4.584,2434,3.584,2435,3.982,2436,5.763,2437,5.763,2438,3.982,2439,3.982,2440,3.982,2441,5.968,2442,4.584,2443,4.584,2444,4.584,2445,4.584,2446,4.584,2447,4.584,2448,4.584,2449,4.584,2450,4.584]],["t/137",[7,0.026,8,0.045,9,0.026,10,0.026,25,0.04,26,0.026,27,0.037,28,0.044,31,0.118,32,0.118,33,0.044,108,4.158,136,0.509,187,2.457,195,1.549,238,3.849,247,2.855,255,3.849,265,1.609,353,2.048,376,1.884,401,2.725,403,1.549,445,3.065,1025,2.884,1077,3.603,1108,2.236,2423,5.961,2424,4.276,2425,4.276,2426,4.276,2427,4.276,2435,4.276,2436,4.276,2437,4.276,2438,4.276,2439,4.276,2440,4.276,2451,4.923,2452,4.923,2453,4.923,2454,4.923,2455,4.923,2456,4.923,2457,4.923,2458,4.923,2459,4.923]],["t/139",[7,0.027,8,0.044,9,0.027,10,0.027,25,0.039,26,0.027,27,0.037,28,0.046,31,0.123,32,0.123,33,0.046,122,1.151,136,0.362,160,1.553,167,1.553,311,2.356,403,1.613,1706,2.676,1718,2.911,1723,2.911,1724,2.911,1730,2.784,1734,2.784,1736,2.226,1740,2.784,1741,2.784,1747,2.226,1748,4.451,1749,2.784,2202,2.438,2203,2.438,2217,3.191,2218,2.438,2220,3.048,2221,3.048,2222,2.438,2224,2.438,2225,2.438,2227,2.438,2230,2.558,2234,2.558,2240,2.558,2243,2.558,2401,3.411,2403,3.411,2408,3.411,2460,4.007]],["t/141",[7,0.024,8,0.044,9,0.024,10,0.024,25,0.037,26,0.024,27,0.035,28,0.04,31,0.108,32,0.108,33,0.04,113,5.131,122,0.968,123,0.402,131,1.715,136,0.524,143,1.171,145,2.512,146,2.413,160,1.358,167,1.358,311,2.162,403,1.41,550,5.131,652,2.671,944,2.554,1706,2.251,1718,2.671,1723,2.671,1724,2.671,1730,2.554,1734,2.554,1735,2.671,1736,1.947,1740,2.554,1741,2.554,1747,1.947,1749,2.554,1806,4.086,2202,2.132,2203,2.132,2217,2.79,2218,3.532,2220,2.797,2221,2.797,2222,2.132,2224,2.132,2225,2.132,2227,2.132,2230,2.237,2234,2.237,2240,2.237,2243,2.237,2401,2.983,2403,2.983,2404,3.214,2408,2.983,2430,5.131,2460,3.504,2461,4.482,2462,3.892,2463,5.107,2464,5.7,2465,3.892]],["t/143",[7,0.021,8,0.045,9,0.021,10,0.021,25,0.039,26,0.021,27,0.033,28,0.036,31,0.095,32,0.095,33,0.036,113,4.83,122,1.181,123,0.487,131,1.521,136,0.535,143,1.279,145,2.365,146,2.271,160,1.204,167,1.204,403,1.25,550,4.83,652,2.806,944,2.684,1706,1.521,1709,3.891,1718,2.464,1723,2.464,1724,2.464,1730,2.684,1734,2.357,1735,3.015,1736,2.883,1740,2.357,1741,2.357,1747,1.726,1749,2.357,1784,2.086,1806,3.846,2202,1.89,2203,1.89,2218,3.605,2220,2.581,2221,2.581,2222,1.89,2224,1.89,2225,1.89,2227,1.89,2230,1.983,2234,1.983,2235,2.199,2236,3.419,2237,3.419,2240,1.983,2241,3.003,2242,3.674,2243,1.983,2244,3.611,2245,2.645,2246,2.474,2258,2.85,2280,2.85,2385,4.242,2401,2.645,2403,2.645,2404,2.85,2408,2.645,2430,4.83,2460,3.107,2462,3.451,2463,4.712,2464,5.365,2465,3.451]],["t/145",[7,0.022,8,0.045,9,0.022,10,0.022,25,0.039,26,0.022,27,0.033,28,0.036,31,0.097,32,0.097,33,0.036,122,1.236,123,0.601,131,1.552,136,0.509,143,1.248,145,2.389,146,2.295,160,1.228,167,1.228,403,1.276,547,2.128,557,2.835,652,2.498,714,3.521,944,2.389,1108,2.498,1416,3.521,1706,1.552,1709,3.945,1718,2.498,1723,2.498,1724,2.498,1730,2.908,1734,2.712,1735,2.498,1736,2.908,1740,2.389,1741,2.389,1747,1.761,1749,1.761,1784,2.128,2202,1.929,2203,1.929,2218,3.432,2220,2.616,2221,2.616,2222,1.929,2224,1.929,2225,1.929,2227,1.929,2230,2.024,2234,2.024,2235,2.244,2236,3.455,2237,3.455,2238,2.698,2240,2.024,2241,3.044,2242,3.705,2243,2.024,2244,3.66,2245,2.698,2246,2.524,2247,2.908,2248,2.908,2249,2.908,2250,2.908,2251,3.17,2258,2.908,2280,2.908,2373,3.17,2385,4.3,2392,3.521,2466,4.054,2467,4.054]],["t/147",[7,0.025,8,0.045,9,0.025,10,0.025,11,2.874,25,0.04,26,0.025,27,0.038,28,0.041,29,0.857,31,0.111,32,0.111,49,2.494,123,0.633,124,0.824,132,2.196,136,0.326,157,2.097,158,2.097,159,1.697,160,1.398,167,1.398,179,0.857,191,2.604,202,2.196,231,3.146,237,1.451,250,1.141,360,2.304,374,3.072,376,1.767,391,2.423,392,2.992,393,2.423,394,2.423,395,2.304,396,3.99,397,2.304,398,3.311,437,2.196,452,3.201,570,2.874,649,2.423,833,3.072,847,1.16,1105,2.555,1113,4.009,1114,3.311,1115,3.609,1116,3.609,1117,3.072,1118,3.072,1119,4.009,1120,4.009,1121,4.009,1122,4.009,1123,4.009,1124,3.609,1125,3.609,1126,4.009,1467,2.874,2468,4.616,2469,4.616,2470,3.609,2471,5.995,2472,4.616,2473,4.616,2474,4.616]],["t/149",[7,0.026,8,0.045,9,0.026,10,0.026,25,0.042,26,0.026,27,0.036,28,0.043,31,0.116,32,0.116,33,0.043,37,4.817,123,0.643,124,1.099,136,0.34,179,1.143,195,1.515,237,1.492,250,1.165,252,2.404,343,2.188,389,3.206,462,2.291,547,2.528,556,1.771,557,2.799,699,4.183,991,2.931,1013,2.666,2434,3.766,2475,4.183,2476,4.816,2477,4.816,2478,4.816,2479,4.816,2480,4.816,2481,4.816,2482,4.816,2483,6.161,2484,4.817,2485,6.161,2486,4.816,2487,4.816,2488,4.816,2489,4.816,2490,4.816,2491,4.816,2492,4.816,2493,4.816,2494,4.816,2495,4.816,2496,4.816,2497,4.816,2498,4.816,2499,4.816,2500,4.816]],["t/151",[7,0.027,8,0.045,9,0.027,10,0.027,25,0.039,26,0.027,27,0.034,28,0.046,31,0.123,32,0.123,33,0.046,124,0.912,136,0.493,179,0.949,195,1.608,237,1.238,250,1.097,252,2.551,311,1.879,343,2.322,389,3.402,512,2.039,547,2.683,858,3.481,991,2.432,1013,2.829,2186,5.556,2434,3.997,2475,4.44,2484,3.997,2501,5.112,2502,5.112,2503,5.112,2504,5.112,2505,5.112,2506,6.397,2507,5.112,2508,5.112,2509,5.112,2510,5.112,2511,5.112,2512,5.112,2513,5.112,2514,5.112]],["t/153",[7,0.026,8,0.045,9,0.037,10,0.026,25,0.038,26,0.026,27,0.033,28,0.044,29,0.905,31,0.117,32,0.117,33,0.044,123,0.558,124,0.87,136,0.344,158,2.214,167,1.477,179,0.905,185,3.812,187,2.433,195,1.534,236,1.225,250,1.065,252,2.433,265,1.594,453,2.028,556,1.792,613,3.035,658,3.496,670,3.245,745,2.028,751,4.234,847,1.225,885,3.496,906,2.855,909,2.559,991,2.319,1035,3.812,1183,2.559,2484,4.855,2515,4.875,2516,4.875,2517,4.875,2518,4.875,2519,4.875,2520,4.875,2521,4.234,2522,4.875,2523,4.875,2524,4.875,2525,4.875,2526,4.875,2527,4.875,2528,4.875,2529,4.875,2530,4.875,2531,4.875,2532,4.875,2533,4.875,2534,4.875,2535,4.875,2536,4.875,2537,4.875]],["t/155",[7,0.028,8,0.044,9,0.028,10,0.028,25,0.035,26,0.028,27,0.035,28,0.047,29,0.971,31,0.126,32,0.126,33,0.047,122,0.862,123,0.583,124,0.934,132,2.489,143,0.934,157,2.377,158,2.377,159,1.924,160,1.585,175,2.746,179,0.971,191,2.82,192,2.377,231,3.407,236,1.315,250,0.897,351,2.896,392,2.612,394,2.746,395,2.612,397,2.612,546,4.544,570,3.257,735,4.544,745,2.177,847,1.631,908,3.753,909,2.746,910,3.482,1027,3.257,1105,2.896,1108,2.377,1124,4.091,1183,2.746,1184,4.091,1185,4.544,1186,4.544,1187,4.544,1188,4.091,2538,5.232,2539,5.232]],["t/157",[7,0.027,8,0.045,9,0.027,10,0.027,25,0.039,26,0.027,27,0.037,28,0.045,29,0.93,31,0.12,32,0.12,33,0.045,123,0.567,124,0.894,132,2.383,148,1.259,175,2.629,179,0.93,191,2.744,192,2.275,198,2.275,236,1.259,237,1.759,250,0.859,265,1.638,353,2.084,360,2.5,370,1.408,393,2.629,441,4.351,442,4.351,584,3.917,847,1.739,909,2.629,927,4.351,928,4.351,929,4.351,930,4.351,931,4.351,932,4.351,933,4.351,934,4.351,938,4.351,1082,2.934,1127,3.593,1922,3.917,2540,7.264,2541,6.317,2542,5.009,2543,5.009]],["t/159",[7,0.028,8,0.044,9,0.028,10,0.028,25,0.038,26,0.028,27,0.035,28,0.047,31,0.126,32,0.126,33,0.047,47,3.772,123,0.585,124,0.938,136,0.371,143,1.162,179,0.976,237,1.79,250,1.117,265,1.719,322,2.761,323,3.081,652,2.389,745,2.709,847,1.322,1077,3.25,1110,2.911,1183,2.761,1888,3.772,1890,3.501,2544,5.26,2545,5.26,2546,5.26,2547,4.113,2548,5.26,2549,5.26,2550,5.26,2551,5.26,2552,5.26,2553,5.26,2554,5.26,2555,5.26,2556,5.26]],["t/161",[7,0.023,8,0.044,9,0.034,10,0.023,25,0.037,26,0.023,27,0.037,28,0.039,31,0.104,32,0.104,33,0.039,57,1.085,122,0.945,123,0.515,124,1.023,136,0.405,148,1.085,152,3.36,157,1.961,179,1.065,187,2.155,189,3.096,195,1.358,198,1.961,203,3.375,233,1.525,234,1.961,237,1.56,250,1.105,308,1.722,309,2.529,311,1.587,360,2.155,393,2.266,437,2.054,453,1.796,492,3.749,541,2.873,547,2.266,548,3.749,556,1.587,847,1.085,874,1.961,1182,3.749,1183,2.266,1205,3.749,1220,4.756,1255,2.873,1327,3.375,1330,3.375,1332,3.375,1333,3.375,1338,3.375,1355,3.096,1364,2.873,1382,3.375,1550,4.114,1771,3.096,2557,4.317,2558,7.146,2559,4.317,2560,4.317,2561,4.317,2562,4.317,2563,4.317,2564,4.317,2565,4.317,2566,4.317,2567,5.737,2568,4.317,2569,4.317,2570,4.317,2571,4.317,2572,6.443,2573,4.317,2574,4.317,2575,4.317,2576,4.317,2577,4.317,2578,4.317,2579,4.317,2580,4.317,2581,5.737,2582,4.317,2583,4.317,2584,5.737,2585,4.317,2586,4.317,2587,4.317,2588,4.317,2589,4.317,2590,4.317,2591,4.317,2592,4.317,2593,4.317,2594,4.317,2595,4.317]],["t/163",[7,0.031,8,0.044,9,0.031,10,0.031,25,0.037,26,0.031,27,0.037,28,0.051,29,1.063,31,0.137,32,0.137,33,0.051,236,1.439,311,2.105,495,2.601,671,4.107,1224,2.724,1239,4.974,1620,4.974,1668,3.812,2596,5.727,2597,5.727,2598,5.727,2599,5.727,2600,5.727,2601,4.974,2602,5.727,2603,5.727,2604,5.727,2605,5.727,2606,5.727,2607,5.727]],["t/165",[7,0.026,8,0.044,9,0.026,10,0.026,25,0.04,26,0.026,27,0.042,28,0.044,29,0.911,31,0.118,32,0.118,33,0.044,236,1.234,311,2.651,403,1.545,410,4.8,411,3.6,433,2.876,495,3.276,911,2.718,1275,4.265,1282,4.265,1287,4.265,1289,4.265,1293,4.265,1294,4.265,1297,4.265,1780,4.265,2155,3.84,2608,4.265,2609,4.911,2610,6.238,2611,7.212,2612,4.911,2613,6.238,2614,4.911,2615,6.238,2616,6.238,2617,4.911,2618,6.238,2619,6.238,2620,4.911,2621,4.911,2622,4.911,2623,4.911,2624,4.911,2625,4.911,2626,4.911,2627,4.911,2628,4.911,2629,4.911]],["t/167",[7,0.024,8,0.044,9,0.032,10,0.024,25,0.04,26,0.024,27,0.04,28,0.041,29,0.839,31,0.109,32,0.109,33,0.041,34,3.927,49,1.881,122,0.745,195,1.423,236,1.136,311,2.174,370,1.852,403,1.423,409,3.274,410,3.937,411,2.952,413,2.57,462,2.814,493,3.937,494,4.242,495,2.687,496,3.927,497,3.927,498,3.927,499,4.242,500,3.243,501,4.625,502,3.927,503,3.243,504,5.137,505,3.927,506,5.137,507,5.137,508,5.137,509,3.927,510,5.137,511,5.137,512,1.804,513,4.625,514,5.137,515,3.927,516,3.927,517,3.536,556,1.662,665,2.374,758,3.536,1025,2.649,1042,2.649,1637,3.243,1641,3.927,2084,3.536,2094,3.927,2630,4.522,2631,4.522,2632,4.522,2633,4.522,2634,4.522,2635,5.915,2636,5.915,2637,4.522,2638,4.522,2639,3.927,2640,3.927,2641,4.522,2642,4.522,2643,4.522,2644,5.915,2645,4.522,2646,4.522,2647,4.522,2648,4.522,2649,4.522,2650,4.522,2651,4.522,2652,4.522,2653,4.522,2654,4.522,2655,4.522,2656,4.522]],["t/169",[7,0.026,8,0.045,9,0.026,10,0.026,25,0.038,26,0.026,27,0.033,28,0.043,29,0.889,31,0.115,32,0.115,33,0.043,57,1.543,236,1.204,250,0.822,311,1.762,360,3.066,370,1.347,411,2.392,413,2.082,493,4.088,495,2.177,577,5.334,671,3.438,766,3.438,903,4.802,911,2.653,1224,2.28,1406,3.748,1428,4.088,1528,5.334,1529,4.163,1668,3.19,1913,4.163,2521,4.163,2601,4.163,2608,4.163,2657,6.142,2658,4.793,2659,4.793,2660,4.793,2661,7.148,2662,4.793,2663,4.793,2664,4.793,2665,4.793,2666,4.793,2667,4.793,2668,4.793,2669,4.793,2670,6.142,2671,4.793,2672,4.793,2673,4.793,2674,4.793,2675,4.793,2676,4.793,2677,4.793,2678,6.142,2679,4.793,2680,4.163,2681,4.793,2682,4.793,2683,4.793]],["t/171",[7,0.026,8,0.044,9,0.026,10,0.026,25,0.041,26,0.026,27,0.033,28,0.043,31,0.115,32,0.115,33,0.043,38,3.757,57,1.207,64,2.286,117,3.757,122,0.791,136,0.479,143,1.098,202,2.286,250,0.824,311,1.766,370,1.35,503,4.412,512,1.916,565,3.757,574,2.659,597,4.81,847,1.207,1018,3.198,1212,3.446,1403,2.398,1467,2.991,1585,4.173,1706,1.839,1771,3.446,2470,3.757,2684,4.805,2685,5.343,2686,5.343,2687,4.805,2688,4.805,2689,6.151,2690,4.805,2691,4.805,2692,7.395,2693,4.805,2694,4.805,2695,4.805,2696,4.173,2697,4.173,2698,4.173,2699,4.173,2700,5.343,2701,4.173,2702,4.173,2703,4.173,2704,5.343,2705,4.173,2706,4.173,2707,4.173,2708,4.173,2709,4.173,2710,4.173,2711,4.805,2712,4.173,2713,4.173,2714,4.173,2715,4.173,2716,4.805,2717,4.805]],["t/173",[1,3.778,7,0.02,8,0.045,9,0.02,10,0.02,25,0.041,26,0.02,27,0.035,28,0.034,31,0.091,32,0.091,33,0.034,38,2.977,57,0.957,64,1.811,77,3.307,117,2.977,122,0.627,136,0.46,143,0.94,202,1.811,237,1.275,311,1.4,322,3.715,323,4.146,354,3.307,370,1.48,503,4.332,512,1.519,557,1.729,574,2.107,652,2.393,717,2.977,847,0.957,874,1.729,1031,2.731,1061,2.37,1127,2.731,1212,2.731,1382,2.977,1403,1.9,1467,3.76,1483,3.307,1484,3.307,1486,2.977,1491,3.307,1526,2.977,1706,1.457,1727,3.307,1731,3.307,1764,3.307,1771,2.731,1782,4.575,2089,2.977,2266,3.307,2470,2.977,2547,4.119,2640,3.307,2680,4.575,2685,3.307,2686,5.246,2696,3.307,2697,3.307,2698,3.307,2699,3.307,2700,4.575,2701,3.307,2702,3.307,2703,3.307,2704,4.575,2705,3.307,2706,3.307,2707,3.307,2708,3.307,2709,3.307,2710,3.307,2712,3.307,2713,3.307,2714,3.307,2715,3.307,2718,3.807,2719,3.807,2720,5.268,2721,3.807,2722,5.268,2723,3.807,2724,5.268,2725,3.807,2726,3.807,2727,3.807,2728,3.807,2729,3.807,2730,6.04,2731,3.807,2732,3.807,2733,3.807,2734,3.807,2735,3.807,2736,3.807,2737,3.807,2738,3.807,2739,3.807,2740,3.807,2741,3.807,2742,3.807,2743,3.807,2744,3.807,2745,3.807,2746,3.807,2747,3.807,2748,3.807,2749,3.807,2750,3.807,2751,5.268,2752,3.807,2753,3.807,2754,3.807,2755,3.807,2756,3.307,2757,3.807,2758,3.807,2759,3.807,2760,3.807,2761,3.807,2762,3.807,2763,3.807,2764,3.807]],["t/175",[7,0.025,8,0.045,9,0.025,10,0.025,25,0.041,26,0.025,27,0.04,28,0.042,29,0.875,31,0.113,32,0.113,33,0.042,40,3.686,49,2.528,122,0.776,123,0.423,136,0.333,143,0.841,175,2.474,187,3.033,236,1.185,237,1.141,265,1.541,374,3.137,376,1.804,391,2.474,392,2.353,393,2.474,395,2.353,397,2.353,398,3.381,403,1.483,452,3.227,453,1.961,512,1.88,649,2.474,665,3.189,847,1.185,858,2.242,1115,4.751,1116,3.686,1117,3.137,1118,3.137,1188,3.686,1194,4.094,1195,4.094,1212,3.381,1365,4.094,1474,4.094,1995,3.686,2155,3.686,2639,4.094,2765,4.714,2766,4.714,2767,4.714,2768,6.077,2769,4.714,2770,4.714,2771,4.714,2772,4.714,2773,4.714,2774,6.077,2775,4.714,2776,4.714,2777,4.714,2778,4.714]],["t/177",[7,0.02,8,0.045,9,0.02,10,0.02,25,0.041,26,0.02,27,0.036,28,0.034,31,0.091,32,0.091,33,0.034,47,2.715,124,0.675,136,0.425,167,1.59,179,0.702,203,2.96,223,2.52,227,1.51,233,1.338,234,2.383,237,1.574,247,1.575,250,1.171,252,2.619,265,1.238,322,1.987,323,2.217,324,3.288,328,5.525,329,4.557,343,1.72,348,3.288,370,1.064,376,1.449,401,3.599,403,1.651,452,1.72,453,1.575,568,2.96,584,2.96,716,3.288,745,1.575,766,2.715,847,1.319,858,2.496,874,2.383,991,2.496,1018,2.52,1077,2.619,1105,2.095,1108,1.72,1110,2.095,1146,2.715,1224,2.496,1402,2.52,1470,2.96,1489,3.288,1550,4.319,1655,2.715,1668,2.52,1830,2.96,2779,3.786,2780,6.502,2781,3.786,2782,3.786,2783,3.786,2784,3.786,2785,3.786,2786,3.786,2787,3.786,2788,3.786,2789,3.786,2790,3.786,2791,3.786,2792,3.786,2793,3.786,2794,3.786,2795,3.786,2796,3.786,2797,3.786,2798,3.786,2799,3.786,2800,3.786,2801,3.786,2802,3.786,2803,6.022,2804,3.786,2805,3.786,2806,6.022,2807,3.786,2808,3.786,2809,3.786,2810,3.786,2811,3.786,2812,3.786,2813,3.786,2814,3.786,2815,3.786,2816,3.786,2817,3.786,2818,3.786,2819,5.247,2820,3.786,2821,3.786,2822,3.786,2823,3.786,2824,3.786,2825,3.786]],["t/179",[7,0.02,8,0.045,9,0.028,10,0.02,25,0.042,26,0.02,27,0.039,28,0.033,31,0.089,32,0.089,33,0.033,49,1.549,55,2.18,123,0.536,124,0.925,136,0.509,143,1.065,179,0.962,195,1.632,237,1.445,247,1.549,250,0.889,360,1.858,411,1.858,413,1.617,462,2.839,493,2.477,495,1.691,570,3.716,574,3.303,671,2.67,783,3.972,847,0.935,991,2.467,1021,2.67,1028,3.719,1029,3.719,1048,2.91,1105,3.89,1114,2.67,1129,3.233,1152,3.233,1428,2.477,1467,2.317,1668,2.477,1776,3.233,1795,4.055,2547,2.91,2756,3.233,2826,3.722,2827,5.186,2828,3.722,2829,3.722,2830,5.186,2831,5.186,2832,5.186,2833,5.186,2834,6.455,2835,3.722,2836,3.722,2837,5.968,2838,5.968,2839,5.186,2840,3.722,2841,3.722,2842,3.722,2843,3.722,2844,3.722,2845,3.722,2846,3.722,2847,5.186,2848,5.186,2849,5.186,2850,5.186,2851,3.722,2852,3.722,2853,3.722,2854,3.722,2855,3.722,2856,3.722,2857,3.722,2858,3.722,2859,3.722,2860,3.722,2861,3.722,2862,3.722]]],"invertedIndex":[["",{"_index":8,"t":{"39":{"position":[[7,1],[33,2],[84,2],[219,1],[281,3],[322,2],[358,2],[411,1],[419,2],[490,1],[495,2],[511,2],[602,1],[618,1],[655,1],[695,1],[707,1],[723,2],[736,1],[752,1],[764,2],[777,1],[789,1],[806,2],[819,1],[836,1],[849,1],[851,2],[929,2],[998,1],[1013,2],[1026,1],[1054,1],[1073,1],[1137,2],[1155,1],[1192,1],[1218,1],[1244,1],[1271,2],[1295,1],[1326,1],[1351,1],[1363,2],[1390,1],[1506,2],[1521,1],[1543,1],[1562,1],[1584,1],[1618,1],[1633,1],[1641,1],[1657,1],[1705,1],[1733,1],[1753,2],[1756,1],[1758,2],[1851,1],[1861,1],[1884,1],[1924,1],[1926,2],[1984,1],[2073,1],[2104,1],[2128,1],[2154,1],[2178,1],[2215,1],[2253,1],[2258,2],[2304,1],[2389,1],[2413,1],[2435,1],[2470,1],[2506,1],[2529,1],[2531,1],[2544,2],[2567,1],[2597,1],[2645,2],[2648,1],[2664,1],[2696,1],[2714,3],[2718,2],[2770,2],[2773,1],[2775,2],[2840,2],[2948,1],[2981,1],[3046,1],[3081,1],[3090,2],[3150,2],[3217,1],[3221,2],[3238,1],[3266,1],[3295,1],[3326,1],[3346,1],[3350,2],[3367,1],[3396,1],[3425,1],[3456,1],[3458,2],[3527,2],[3556,1],[3562,2],[3579,1],[3599,1],[3606,2],[3623,1],[3629,2],[3646,1],[3667,1],[3674,1],[3726,1],[3757,1],[3763,1],[3765,2],[3847,1],[3863,2],[3880,1],[3884,2],[3905,1],[3921,2],[3938,1],[3943,1],[3945,2],[4012,1],[4042,1],[4061,1],[4081,1],[4101,1],[4109,2],[4112,2],[4176,2],[4217,1],[4321,2],[4324,2],[4403,1],[4457,2],[4460,2],[4525,2],[4619,1],[4685,2],[4703,1],[4724,1],[4741,2],[4840,1],[4875,1],[4887,2],[4890,1],[4892,2],[4969,1],[4971,2],[5040,2],[5104,1],[5149,2],[5246,1],[5284,1],[5305,2],[5356,1],[5393,1],[5412,2],[5415,1],[5431,2],[5461,1],[5484,2],[5514,1],[5535,2],[5563,1],[5584,2],[5612,1],[5621,3],[5625,2]]},"41":{"position":[[7,1],[43,1],[108,3],[149,2],[197,1],[272,1],[274,3],[293,1],[295,3],[299,2],[371,1],[377,2],[445,1],[465,1],[467,3],[471,2],[507,1],[514,1],[534,1],[572,1],[574,2],[608,1],[615,1],[632,1],[669,1],[671,2],[701,1],[746,2],[782,1],[850,1],[878,1],[908,1],[956,2],[959,1],[975,1],[991,2],[994,1],[1007,2],[1026,1],[1060,1],[1078,3],[1082,2],[1129,2],[1132,1],[1162,2],[1302,2],[1362,1],[1369,1],[1386,1],[1396,1],[1409,2],[1487,1],[1520,1],[1531,1],[1556,1],[1589,1],[1600,1],[1620,1],[1630,1],[1636,1],[1638,3],[1642,3],[1646,1],[1714,2],[1744,1],[1752,1],[1759,1],[1770,1],[1790,1],[1823,1],[1863,1],[1879,1],[1894,1],[1933,1],[1938,1],[1993,1],[2013,3],[2037,1],[2050,1],[2075,1],[2128,1],[2165,1],[2201,1],[2218,1],[2232,1],[2236,1],[2250,1],[2254,1],[2270,1],[2279,1],[2284,1],[2289,1],[2296,1],[2306,1],[2311,1],[2316,1],[2323,1],[2325,1],[2329,1],[2334,1],[2338,1],[2344,1],[2351,1],[2363,1],[2371,1]]},"43":{"position":[[7,1],[43,1],[85,3],[126,2],[188,1],[254,2],[321,1],[536,1],[544,1],[560,1],[562,1],[592,1],[594,1],[610,2],[630,1],[702,1],[774,1],[840,1],[893,1],[984,2],[1007,1],[1037,1],[1202,1],[1230,1],[1269,1],[1276,1],[1278,2],[1281,1],[1297,1],[1352,1],[1411,3],[1415,2],[1476,2],[1537,2],[1573,1],[1630,2],[1718,1],[1777,3],[1781,1],[1798,1],[1815,2],[1862,1],[1864,1],[1894,1],[1905,1],[1933,1],[1961,1],[1972,1],[1996,1],[2004,1],[2006,1]]},"45":{"position":[[7,1],[43,1],[110,3],[165,1],[246,1],[302,1],[326,1],[387,1],[454,1],[477,1],[520,1],[542,1],[572,1],[642,1],[649,1],[660,1],[674,1],[733,1],[738,1],[743,1],[757,1],[772,1],[777,1],[815,1],[834,1],[858,1],[888,1],[911,1],[939,1],[963,1],[991,2],[994,1],[1020,2],[1028,1],[1037,3],[1053,1],[1112,3],[1137,1],[1206,1],[1261,1],[1284,1],[1319,1]]},"47":{"position":[[7,1],[43,1],[108,3],[375,1],[400,1],[407,2],[479,1],[481,2],[534,1],[536,1],[779,2],[782,2],[813,1],[815,3],[839,1],[874,1],[881,1],[891,1],[902,1],[931,1],[935,1],[988,1],[990,1],[1016,3],[1091,2],[1110,1],[1131,1],[1147,1],[1162,2],[1194,1],[1201,1],[1211,1],[1226,1],[1282,1],[1308,2],[1357,1],[1361,1],[1391,1],[1408,1],[1431,1],[1459,1],[1486,1],[1528,1],[1582,1],[1602,1],[1639,2],[1652,1],[1708,1],[1743,1],[1748,1],[1769,1],[1795,1],[1838,1],[1854,1],[1957,1],[2035,1],[2039,1],[2076,2],[2105,1],[2234,2],[2375,1],[2439,3],[2458,1],[2513,1],[2558,1],[2575,1],[2604,1],[2644,1],[2677,2],[2713,1],[2773,1],[2817,1],[2836,1],[2878,1],[2963,2],[3006,1],[3032,1],[3079,2],[3082,2],[3085,1],[3100,3],[3116,1],[3125,2],[3176,1],[3207,1],[3226,1],[3233,1],[3254,1],[3264,1],[3288,1],[3315,1],[3334,1],[3347,1],[3352,1],[3356,1],[3360,1],[3380,1],[3387,1],[3391,1],[3397,1],[3405,1],[3471,3],[3492,1],[3508,1],[3517,1],[3519,1],[3521,2],[3569,1],[3579,1],[3588,1],[3590,2],[3643,2],[3646,1],[3648,2],[3680,1],[3687,1],[3708,1],[3718,1],[3730,2],[3777,2],[3884,1],[3920,1],[3944,1],[3958,2],[4005,1],[4012,1],[4037,1],[4047,1],[4075,1],[4086,1],[4101,1],[4106,1],[4126,1],[4163,1],[4167,2],[4176,1],[4191,1],[4193,2],[4234,2],[4315,1],[4355,1],[4390,1],[4402,1],[4425,1],[4456,1],[4481,1],[4518,1],[4524,1],[4526,1],[4528,1],[4530,3],[4534,1],[4536,2],[4667,1],[4669,3],[4752,1],[4766,1],[4768,1],[4907,2],[4946,1],[4948,2],[5001,2],[5004,1],[5016,1],[5043,1],[5045,3],[5060,1],[5067,1],[5091,1],[5101,1],[5128,1],[5158,1],[5190,1],[5284,3],[5291,1],[5314,1],[5373,1],[5375,1],[5388,1],[5395,1],[5417,1],[5468,1],[5470,3],[5474,2],[5522,1],[5534,1],[5544,1],[5549,1],[5554,1],[5556,2],[5590,2],[5686,1],[5699,2],[5702,1],[5707,1],[5711,1],[5722,1],[5727,1],[5731,1],[5741,1],[5747,1]]},"49":{"position":[[7,1],[43,1],[108,3],[149,2],[273,2],[299,1],[312,2],[315,1],[333,1],[376,1],[430,1],[510,1],[528,1],[548,1],[569,1],[645,1],[667,1],[686,1],[732,1],[742,1],[758,1],[778,1],[876,1],[896,2],[899,1],[901,2],[923,2],[932,1],[944,2],[956,1],[962,2],[997,1],[1024,1],[1029,1],[1045,1],[1072,1],[1077,1],[1100,1],[1102,1],[1104,1],[1111,1],[1122,1],[1132,1],[1143,1],[1149,2],[1170,1],[1181,1],[1191,1],[1201,1],[1207,2],[1216,1],[1223,1],[1233,1],[1243,1],[1253,1],[1259,2],[1269,1],[1276,1],[1287,1],[1298,1],[1308,1],[1314,2],[1322,2],[1325,2],[1376,1],[1396,1],[1412,1],[1419,1],[1443,1],[1459,1],[1484,1],[1566,1],[1581,1],[1594,3],[1609,1],[1617,1],[1621,1],[1625,1],[1643,1],[1655,1],[1657,1],[1673,1],[1675,1],[1682,1],[1693,1],[1698,2],[1716,1],[1726,1],[1731,2],[1753,1],[1763,1],[1768,2],[1789,1],[1800,1],[1805,2],[1827,1],[1832,2],[1845,2],[1848,2],[1959,1],[2029,2],[2060,1],[2073,1],[2090,1],[2100,1],[2124,1],[2140,1],[2144,1],[2151,1],[2169,2],[2172,2],[2175,2],[2251,2],[2277,1],[2290,2],[2293,1],[2311,1],[2354,1],[2408,1],[2432,1],[2449,1],[2451,3],[2466,1],[2473,1],[2492,1],[2505,1],[2637,1],[2641,1],[2654,1],[2667,1],[2677,1],[2682,1],[2689,1],[2699,1],[2703,1],[2716,1],[2729,1],[2739,1],[2744,1],[2751,1],[2756,2],[2777,1],[2789,1],[2809,2],[2812,1],[2814,2],[2836,2],[2845,1],[2857,2],[2869,1],[2875,2],[2918,2],[2921,1],[2933,1],[2946,1],[2959,1],[2979,2],[3058,1],[3064,1],[3070,1],[3077,1],[3085,3],[3089,2],[3092,2],[3095,2],[3165,2],[3191,1],[3204,2],[3207,1],[3225,1],[3268,1],[3322,1],[3402,1],[3420,1],[3440,1],[3459,1],[3505,1],[3515,1],[3531,1],[3551,1],[3621,1],[3641,2],[3644,1],[3646,2],[3668,2],[3677,1],[3689,2],[3701,1],[3724,1],[3738,1],[3755,1],[3763,1],[3790,1],[3805,1],[3828,1],[3847,1],[3870,1],[3880,2],[4095,2],[4098,2],[4101,2],[4206,2],[4232,1],[4245,2],[4248,1],[4266,1],[4309,1],[4363,1],[4386,1],[4403,1],[4483,1],[4503,1],[4511,2],[4611,1],[4797,1],[4813,2],[4878,1],[4894,1],[5023,2],[5093,2],[5181,1],[5227,1],[5237,1],[5253,1],[5383,1],[5403,2],[5406,1],[5408,2],[5430,2],[5439,1],[5452,2],[5464,1],[5470,2],[5505,1],[5532,1],[5537,1],[5553,1],[5580,1],[5585,1],[5593,2],[5625,1],[5627,1],[5629,1],[5636,1],[5640,1],[5658,1],[5662,1],[5679,1],[5701,1],[5705,1],[5718,2],[5739,1],[5761,1],[5765,1],[5782,1],[5803,1],[5820,2],[5829,1],[5836,1],[5840,1],[5857,1],[5878,1],[5899,1],[5916,2],[5926,1],[5933,1],[5937,1],[5955,1],[5959,1],[5977,1],[5981,1],[5998,1],[6015,2],[6023,2],[6026,2],[6090,1],[6092,1],[6119,1],[6128,2],[6131,2],[6182,1],[6202,1],[6207,2],[6315,1],[6322,1],[6346,1],[6362,1],[6387,1],[6469,1],[6484,1],[6497,3],[6512,1],[6520,1],[6524,1],[6528,1],[6546,1],[6562,1],[6582,1],[6584,1],[6600,1],[6602,1],[6610,1],[6632,1],[6648,2],[6667,1],[6688,1],[6692,1],[6704,2],[6724,1],[6728,1],[6745,1],[6749,1],[6761,2],[6782,1],[6786,1],[6804,1],[6820,2],[6833,2],[6836,2],[6966,1],[6983,2],[7014,1],[7021,1],[7037,1],[7061,1],[7077,1],[7081,1],[7088,1],[7117,1],[7129,1],[7140,1],[7160,1],[7172,1],[7183,1],[7269,2],[7272,2],[7275,2],[7384,2],[7410,1],[7423,2],[7426,1],[7444,1],[7487,1],[7547,1],[7747,1],[7890,1],[7977,1],[7997,2],[8000,1],[8002,2],[8024,2],[8033,1],[8044,2],[8056,1],[8082,1],[8091,2],[8094,2],[8110,1],[8112,1],[8328,2],[8331,2],[8383,2],[8386,1],[8388,2],[8448,2],[8451,1],[8464,3],[8468,3],[8472,3],[8476,1],[8739,2],[8793,1],[8795,2],[8849,3],[8856,2],[8862,3],[8870,2],[8877,3],[8884,2],[8890,3],[8899,1],[8915,1],[8935,1],[8948,1],[8972,1],[8986,2],[9024,3],[9031,1],[9047,1],[9058,1],[9071,1],[9095,1],[9108,1],[9132,1],[9145,1],[9169,1],[9182,1],[9197,2],[9246,1],[9250,2],[9256,1],[9260,2],[9266,1],[9270,2],[9276,1],[9281,1],[9297,1],[9299,2],[9375,1],[9380,1],[9385,1],[9406,1],[9411,1],[9416,1],[9436,1],[9443,2],[9446,1]]},"51":{"position":[[7,1],[43,1],[85,3],[126,2],[173,1],[249,1],[269,1],[284,1],[306,1],[325,1],[344,1],[367,1],[391,1],[399,2],[431,1],[433,3],[448,1],[455,1],[474,1],[487,1],[489,1],[547,2],[571,1],[599,1],[684,1],[724,1],[733,1],[743,1],[759,1],[766,1],[776,1],[792,1],[799,1],[807,2],[903,1],[919,1],[929,1],[949,1],[965,1],[970,1],[982,1],[998,1],[1017,1],[1033,1],[1045,1],[1047,2],[1101,2],[1104,1],[1116,1],[1128,1],[1132,1],[1136,1],[1141,2],[1151,2],[1203,2],[1206,1],[1208,2],[1301,2],[1324,1],[1338,2],[1347,1],[1352,1],[1361,1],[1386,1],[1393,1],[1412,1],[1425,1],[1448,1],[1480,2],[1548,1],[1582,1],[1591,1],[1598,1],[1603,1],[1631,1],[1659,1],[1678,1],[1687,1],[1694,1],[1699,1],[1727,1],[1756,1],[1761,2],[1785,1],[1812,1],[1856,1],[1876,1],[1921,1],[1947,1],[1968,1],[1979,1],[1990,1],[2023,1],[2048,1],[2077,1],[2093,1],[2109,2],[2177,2],[2258,2],[2334,1],[2350,1],[2365,1],[2381,1],[2389,1],[2403,1],[2420,1],[2470,1],[2503,1],[2513,1],[2518,1],[2520,3]]},"53":{"position":[[7,1],[43,1],[108,3],[149,2],[222,1],[238,1],[303,2],[370,1],[399,2],[458,2],[513,1],[532,1],[545,1],[565,1],[597,1],[599,2]]},"55":{"position":[[7,1],[43,1],[108,3],[149,2],[317,2],[417,2],[560,2],[563,1],[565,2],[621,1],[629,2],[701,1],[768,1],[787,1],[804,1],[824,1],[849,1],[878,1],[955,2],[958,2],[961,1],[973,1],[987,2],[1057,1],[1092,1],[1104,1],[1120,3],[1124,3]]},"57":{"position":[[7,1],[43,1],[108,3],[171,1],[173,2],[215,1],[217,1],[228,2],[260,1],[262,1],[332,2],[335,2],[338,2],[341,1],[372,1],[374,1],[440,2],[443,2],[446,3],[450,2],[504,3],[508,2],[640,1],[674,1],[676,2],[723,2],[818,1],[865,2],[934,1],[1014,1],[1033,1],[1047,1],[1067,1],[1117,1],[1143,1],[1186,2],[1189,2],[1192,1],[1230,3],[1234,1],[1268,1],[1270,2],[1308,2],[1400,2],[1495,1],[1542,2],[1611,1],[1689,1],[1708,1],[1722,1],[1742,1],[1792,1],[1818,1],[1861,2],[1864,2],[1867,1],[1887,2],[1966,3],[1970,1]]},"59":{"position":[[7,1],[43,1],[108,3],[149,2],[317,2],[406,1],[452,2],[455,2],[506,2],[589,2],[592,1],[594,2],[664,1],[737,1],[756,1],[773,1],[793,1],[836,1],[901,1],[920,1],[934,1],[954,1],[984,3]]},"61":{"position":[[7,1],[43,1],[108,3],[149,2],[219,1],[278,2],[367,2],[370,1],[372,2],[440,1],[477,2],[536,2],[591,1],[610,1],[623,1],[643,1],[675,3]]},"63":{"position":[[7,1],[43,1],[85,3],[126,2],[177,1],[257,1],[295,1],[348,2],[417,1],[419,3],[440,1],[457,1],[464,1],[483,1],[485,2],[581,1],[666,2],[720,1],[736,1],[744,2],[811,1],[838,1],[866,1],[893,1],[915,2],[1028,1],[1052,2],[1126,1],[1142,1],[1152,1],[1157,2],[1249,1],[1272,2],[1335,1],[1339,1],[1355,1],[1360,2],[1493,1],[1495,2],[1565,1],[1589,1],[1668,1],[1688,1],[1711,1],[1731,1],[1736,2],[1757,2],[1760,1],[1762,2],[1827,1],[1834,1],[1859,1],[1872,1],[1903,2],[1924,1],[1939,2],[1967,1],[1988,2],[2016,1],[2044,1],[2072,1],[2077,2],[2133,1],[2149,1],[2158,2],[2179,1],[2197,1],[2212,1],[2232,1],[2242,1],[2262,1],[2275,1],[2291,1],[2300,2],[2322,1],[2340,1],[2355,1],[2376,1],[2386,1],[2407,1],[2409,1],[2411,3]]},"65":{"position":[[7,1],[43,1],[85,3],[138,2],[251,2],[290,1],[292,3],[314,1],[316,1],[379,2],[392,1],[397,2],[447,1],[488,1],[512,1],[519,2],[569,1],[643,1],[645,2],[712,1],[719,1],[731,1],[749,1],[765,1],[771,2],[825,1],[867,1],[883,1],[903,1],[919,1],[940,1],[956,1],[984,1],[1006,1],[1065,1],[1080,1],[1082,2],[1111,1],[1179,1],[1210,1],[1243,1],[1263,2],[1266,1],[1268,2],[1319,1],[1326,1],[1338,1],[1352,1],[1380,2],[1388,1],[1396,2],[1428,1],[1470,1],[1513,2],[1522,3]]},"67":{"position":[[7,1],[43,1],[108,3],[165,1],[220,2],[258,1],[318,2],[361,1],[368,1],[379,1],[393,1],[452,1],[457,1],[462,1],[476,1],[491,1],[496,1],[529,1],[531,2],[575,1],[594,1],[611,1],[631,1],[636,2],[708,1],[726,1],[749,1],[768,1],[773,2],[825,2],[828,1],[830,2],[855,2],[926,1],[933,1],[942,3]]},"69":{"position":[[7,1],[43,1],[85,3],[140,1],[176,1],[247,3],[280,2],[338,1],[340,3],[363,1],[403,1],[411,1],[429,1],[436,1],[457,1],[459,2],[493,1],[558,2],[644,2],[701,1],[717,1],[725,2],[752,1],[768,1],[795,1],[811,1],[842,1],[858,1],[870,2],[925,1],[941,1],[951,1],[956,2],[1050,1],[1073,2],[1153,1],[1158,1],[1174,1],[1179,1],[1198,1],[1214,1],[1221,2],[1354,1],[1356,2],[1432,1],[1456,1],[1535,1],[1555,1],[1578,1],[1598,1],[1603,2],[1615,1],[1638,2],[1641,1],[1643,2],[1711,1],[1718,1],[1741,1],[1754,1],[1781,1],[1788,1],[1804,1],[1819,1],[1842,2],[1863,1],[1878,2],[1906,1],[1920,1],[1944,2],[1972,1],[1986,1],[2017,1],[2035,1],[2046,2],[2077,1],[2093,1],[2102,2],[2123,1],[2141,1],[2156,1],[2176,1],[2186,1],[2206,1],[2219,1],[2235,1],[2244,2],[2266,1],[2284,1],[2299,1],[2320,1],[2330,1],[2351,1],[2353,1],[2355,2],[2384,2],[2392,3]]},"71":{"position":[[7,1],[43,1],[108,3],[223,2],[226,1],[240,1],[289,1],[304,1],[338,2],[392,1],[439,2],[478,1],[501,2],[504,1],[506,2],[578,1],[585,1],[612,1],[629,2],[648,1],[654,1],[659,1],[666,1],[694,3],[698,3]]},"73":{"position":[[7,1],[43,1],[85,3],[126,2],[169,1],[171,3],[192,1],[209,1],[216,1],[235,1],[237,2],[333,1],[394,2],[481,2],[576,1],[592,1],[600,2],[665,1],[681,1],[708,1],[724,1],[755,1],[771,1],[783,2],[842,1],[844,2],[979,1],[995,1],[1005,1],[1010,2],[1102,1],[1125,2],[1188,1],[1192,1],[1208,1],[1213,2],[1346,1],[1348,2],[1418,1],[1442,1],[1520,1],[1540,1],[1563,1],[1583,1],[1607,2],[1610,1],[1612,2],[1678,1],[1685,1],[1707,1],[1720,1],[1748,2],[1769,1],[1784,2],[1812,1],[1833,2],[1861,1],[1889,1],[1917,1],[1922,2],[1978,1],[1994,1],[2003,2],[2024,1],[2042,1],[2057,1],[2077,1],[2087,1],[2107,1],[2120,1],[2136,1],[2145,2],[2167,1],[2185,1],[2200,1],[2221,1],[2231,1],[2252,1],[2254,1],[2256,3]]},"75":{"position":[[7,1],[43,1],[105,3],[146,2],[201,1],[260,2],[319,2],[374,1],[393,1],[406,1],[426,1],[476,2],[479,1],[481,2],[545,2],[553,3]]},"77":{"position":[[7,1],[43,1],[108,3],[149,2],[229,1],[270,1],[329,2],[390,1],[409,1],[423,1],[443,1],[448,2],[492,1],[504,2],[539,1],[552,2],[655,2],[687,1],[703,2],[735,2],[749,2],[779,2],[840,1],[857,2],[881,2],[890,1]]},"79":{"position":[[7,1],[43,1],[76,1],[100,3],[158,1],[223,2],[267,1],[352,1],[387,1],[545,2],[588,1],[655,2],[729,2],[765,1],[871,3],[894,1],[929,1],[1087,2],[1131,1],[1217,1],[1252,1],[1281,1],[1402,1],[1562,2],[1590,2],[1666,2],[1721,1],[1806,1],[1927,1],[1942,2],[2004,1],[2110,3],[2133,1],[2168,1],[2338,1],[2377,3],[2393,1],[2437,1],[2453,1],[2467,1],[2483,1],[2502,1],[2546,1],[2562,1],[2576,1],[2592,1],[2611,1],[2651,1],[2667,1],[2681,1],[2697,1],[2716,1],[2738,1],[2767,1],[2797,1],[2813,1],[2820,2],[2961,2],[2983,1],[2995,1],[3007,1],[3034,1],[3046,1],[3058,1],[3084,1],[3096,1],[3108,1]]},"81":{"position":[[7,1],[43,1],[108,3],[149,2],[190,1],[261,1],[326,2],[395,1],[449,1],[462,2],[505,1],[585,1],[623,1],[644,2],[706,2],[769,1],[854,1],[944,1],[1024,1],[1026,3],[1052,1],[1054,1],[1104,2],[1118,1],[1125,1],[1135,1],[1150,1],[1198,1],[1242,1],[1262,1],[1277,1],[1297,1],[1301,1],[1307,2],[1358,1],[1540,2],[1591,2],[1636,1],[1638,2],[1713,1],[1723,1],[1808,1],[1843,1],[1857,1],[1878,1],[1910,1],[1915,1],[1939,1],[1953,1],[1979,1],[1994,1],[2015,1],[2022,1],[2037,1],[2054,1],[2056,1],[2082,1],[2096,1],[2121,1],[2131,1],[2146,1],[2167,1],[2192,1],[2206,1],[2232,1],[2242,1],[2257,1],[2274,1]]},"83":{"position":[[7,1],[43,1],[108,3],[149,2],[202,1],[262,2],[321,1],[360,1],[367,1],[378,1],[418,1],[464,1],[486,2],[489,1],[518,1],[520,2],[568,1],[596,2],[709,1],[721,2],[833,1],[846,2],[904,2],[972,2],[998,1],[1012,2],[1079,2],[1133,1],[1146,1],[1151,2],[1201,1],[1218,1],[1246,1],[1276,1],[1400,1],[1418,1],[1488,1],[1490,1],[1515,1],[1517,2],[1550,2],[1598,2],[1656,2],[1669,1],[1694,1],[1712,1],[1761,1],[1784,1],[1802,1],[1863,1],[1879,1],[1887,1],[1889,1]]},"85":{"position":[[7,1],[43,1],[85,3],[126,2],[169,1],[249,1],[287,1],[308,2],[370,2],[433,1],[518,1],[608,1],[688,1],[690,3],[716,1],[718,1],[768,2],[782,1],[789,1],[799,1],[814,1],[881,1],[901,1],[916,1],[936,1],[940,1],[946,2],[997,1],[1023,1],[1043,2],[1052,1],[1087,2],[1133,2],[1314,2],[1339,2],[1373,2],[1403,2],[1440,2],[1474,2],[1506,2],[1531,2],[1566,2],[1597,2],[1635,2],[1686,2],[1731,1],[1733,2],[1808,1],[1818,1],[1903,1],[1938,1],[1952,1],[1973,1],[2005,1],[2010,1],[2034,1],[2048,1],[2074,1],[2089,1],[2110,1],[2117,1],[2132,1],[2149,1],[2151,1],[2177,1],[2191,1],[2216,1],[2226,1],[2241,1],[2262,1],[2287,1],[2301,1],[2327,1],[2337,1],[2352,1],[2369,1]]},"87":{"position":[[7,1],[33,2],[119,1],[184,3],[237,1],[409,1],[425,2],[428,3],[440,1],[456,1],[458,3],[476,1],[515,1],[531,4],[546,1],[562,1],[582,1],[593,2],[633,1],[741,1],[767,1],[774,2],[829,1],[947,1],[962,2],[1018,1],[1048,1],[1081,1],[1112,1],[1144,1],[1157,1],[1184,1],[1225,1],[1249,2],[1383,3],[1395,2],[1403,3],[1422,2],[1430,3],[1450,1],[1504,2],[1507,4],[1512,1],[1514,2],[1568,1],[1574,1],[1595,1],[1601,1],[1617,1],[1619,1],[1621,2],[1652,1],[1671,1],[1722,2],[1725,1],[1924,3]]},"89":{"position":[[7,1],[65,2],[143,2],[222,2],[258,1],[323,3],[364,2],[436,2],[512,2],[591,2],[652,2],[655,2],[725,2],[789,1],[805,1],[816,2],[880,1],[904,2],[991,1],[1012,2],[1081,2],[1105,1],[1145,2],[1206,2],[1251,1],[1264,2],[1267,1],[1269,2],[1381,2],[1486,2],[1552,2],[1576,1],[1627,2],[1630,2],[1693,1],[1794,2],[1797,1],[1832,2],[1863,3],[1882,1],[1894,1],[1896,2],[1932,1],[1963,1],[1965,2],[2034,1],[2106,1],[2108,2],[2158,1],[2180,1],[2335,2],[2338,1],[2340,2],[2391,1],[2443,1],[2445,2],[2496,1],[2545,1],[2594,1],[2647,1],[2676,2],[3069,1],[3071,2],[3141,1],[3271,1],[3273,1],[3275,2],[3308,1],[3347,2],[3463,2],[3533,2],[3536,2],[3579,1],[3599,2],[3668,1],[3677,1],[3681,1],[3688,2],[3718,1],[3734,1],[3752,1],[3759,2],[3827,2],[3871,1],[3890,1],[3923,1],[3994,2],[4052,2],[4097,1],[4154,1],[4166,2],[4192,1],[4234,2],[4237,1],[4239,2],[4279,1],[4291,2],[4325,1],[4338,2],[4404,2],[4407,1],[4422,1],[4444,1],[4494,2],[4504,1],[4511,3],[4515,2],[4588,2],[4591,1],[4610,3],[4617,1],[4653,1],[4667,1],[4674,1],[4707,1],[4720,1],[4722,3],[4726,3],[4766,1],[4821,2],[4824,1],[4852,4],[4869,3],[4891,1],[4947,1],[4974,3],[4992,1],[5013,1],[5107,2],[5110,1],[5125,1],[5142,1],[5161,1],[5182,1],[5199,1],[5218,1],[5243,1],[5285,3],[5307,1],[5415,1],[5421,1],[5462,1],[5468,1],[5496,1],[5551,2],[5554,2]]},"91":{"position":[[7,1],[33,2],[100,2],[136,1],[201,3],[242,2],[276,1],[390,2],[464,1],[487,1],[493,2],[538,1],[550,2],[640,1],[654,2],[722,2],[725,1],[763,3]]},"93":{"position":[[7,1],[43,1],[108,3],[167,1],[205,1],[225,2],[285,1],[299,2],[336,1],[356,1],[441,1],[470,1],[484,1],[498,1],[506,2],[538,1],[612,1],[628,1],[642,1],[656,1],[678,1],[704,1],[873,2],[946,1],[1061,1],[1140,1],[1153,1],[1166,1],[1180,1],[1185,2],[1210,1],[1275,1],[1347,3],[1369,1],[1385,1],[1398,1],[1411,1],[1470,2],[1551,1],[1573,1],[1636,1],[1638,2],[1715,1],[1737,1],[1801,1],[1803,2],[1835,1],[1896,1],[1920,1],[1935,1],[1940,2],[2027,1],[2124,3],[2128,2],[2183,1],[2187,1],[2200,1],[2241,1],[2248,1],[2255,1]]},"95":{"position":[[7,1],[43,1],[85,3],[126,2],[170,1],[249,1],[287,1],[340,2],[468,2],[512,2],[565,1],[567,2],[641,1],[671,1],[693,3],[697,2],[700,3],[712,3],[716,2],[758,2],[790,2],[823,1],[829,2],[866,1],[878,2],[920,1],[922,2],[967,2],[970,1],[1002,2],[1010,1],[1019,3]]},"97":{"position":[[7,1],[33,3],[37,1],[98,2],[111,1],[153,3],[194,2],[238,1],[317,1],[355,1],[408,2],[507,2],[610,2],[643,2],[663,1],[665,1],[820,1],[837,1],[853,1],[868,1],[916,1],[924,1],[939,1],[966,1],[1000,1],[1007,1],[1009,2],[1064,1],[1111,1],[1134,1],[1141,1],[1143,1],[1145,2],[1164,1],[1209,1],[1334,1],[1370,1],[1397,3],[1419,1],[1449,1],[1483,1],[1531,2],[1534,1],[1582,3]]},"99":{"position":[[7,1],[33,3],[37,1],[158,1],[280,1],[301,3],[315,1],[380,3],[511,1],[530,1],[556,1],[587,3],[662,1],[694,1],[740,1],[745,2],[828,2],[897,1],[1056,2],[1157,2],[1229,1],[1240,1],[1268,1],[1291,1],[1347,1],[1413,1],[1468,1],[1479,1],[1506,1],[1641,3],[1652,1],[1695,1],[1709,1],[1719,1],[1790,1],[1828,1],[1872,2],[1885,1],[1905,1],[1941,1],[1999,1],[2046,1],[2073,1],[2080,1],[2088,1],[2132,1],[2152,1],[2169,1],[2176,1],[2188,1],[2197,1],[2201,1],[2210,1],[2224,1],[2349,1],[2358,1],[2368,1],[2374,1],[2380,1],[2400,1],[2426,1],[2438,1],[2461,1],[2489,1],[2496,1],[2505,1],[2514,1],[2516,1],[2531,1],[2548,1],[2550,2],[2585,1],[2587,2],[2697,1],[2749,1],[2758,2],[2785,1],[2819,1],[2847,3],[2872,1],[2913,1],[2925,2],[2978,2],[2981,1],[3004,1],[3027,2],[3036,1],[3042,3],[3046,1]]},"101":{"position":[[7,1],[43,1],[85,3],[135,1],[224,1],[254,1],[317,1],[414,1],[434,1],[460,1],[518,1],[614,1],[634,1],[660,1],[718,1],[769,1],[822,1],[859,1],[886,1],[909,2],[912,1],[920,2],[947,1],[984,1],[1020,1],[1025,1],[1058,1],[1063,1],[1080,3]]},"103":{"position":[[7,1],[43,1],[85,3],[146,1],[167,1],[255,1],[274,1],[284,1],[304,1],[322,1],[378,1],[414,1],[433,1],[450,1],[470,1],[489,1],[625,1],[758,1],[890,1],[1048,1],[1070,1],[1087,1],[1122,2],[1125,2],[1128,1],[1138,1],[1168,1],[1178,1],[1189,1],[1197,3],[1212,1],[1261,1],[1270,1],[1342,3],[1353,1],[1386,1],[1441,2],[1444,1],[1458,2],[1485,1],[1509,2],[1534,2],[1557,1],[1561,1],[1579,1],[1601,1],[1605,1],[1623,1],[1637,2],[1651,1],[1660,1],[1662,1],[1682,1],[1700,1],[1715,1],[1744,1],[1762,1],[1779,1],[1796,1],[1801,1],[1816,1],[1833,1],[1849,1],[1866,1],[1872,3]]},"105":{"position":[[7,1],[43,1],[85,3],[146,1],[174,1],[243,1],[263,1],[322,1],[332,1],[355,1],[365,1],[370,2],[387,1],[389,3],[404,1],[411,1],[422,1],[437,1],[566,1],[582,1],[592,1],[610,1],[632,1],[664,1],[680,1],[705,1],[721,1],[757,1],[773,1],[797,1],[879,1],[906,1],[1006,1],[1123,1],[1174,1],[1208,1],[1262,1],[1368,1],[1412,1],[1483,1],[1513,1],[1543,1],[1683,1],[1698,1],[1847,1],[1859,1],[1882,2],[1885,1],[1893,2],[1913,1],[1920,1],[1943,1],[1958,1],[1989,2],[2009,1],[2026,2],[2056,1],[2081,2],[2111,1],[2143,1],[2173,1],[2193,1],[2213,1],[2231,1],[2238,2],[2291,1],[2303,1],[2314,2],[2331,1],[2351,1],[2362,1],[2378,1],[2390,1],[2406,1],[2421,1],[2433,1],[2444,2],[2462,1],[2482,1],[2493,1],[2510,1],[2522,1],[2539,1],[2541,1],[2543,3]]},"107":{"position":[[7,1],[43,1],[85,3],[146,1],[174,1],[240,1],[344,1],[358,1],[390,1],[480,2],[565,1],[616,1],[702,1],[736,1],[806,1],[857,1],[890,1],[914,2],[917,1],[919,2],[994,2],[1089,2],[1199,1],[1227,1],[1250,1],[1255,1],[1257,3]]},"109":{"position":[[7,1],[43,1],[102,3],[156,1],[219,2],[222,2],[238,4],[243,2],[317,1],[500,1],[526,1],[575,1],[702,1],[726,1],[760,2],[763,2],[781,4],[802,1],[990,1],[1018,1],[1070,1],[1155,3],[1230,1],[1256,1],[1292,2],[1295,2],[1302,4],[1317,1],[1404,1],[1441,2],[1444,2],[1453,4],[1469,1],[1549,1],[1562,1],[1572,1],[1604,2],[1607,2],[1616,4],[1632,1],[1714,3],[1743,1],[1758,1],[1768,1],[1800,2],[1803,1],[1810,4],[1833,1],[2149,2],[2152,2],[2174,4],[2198,1],[2288,3]]},"111":{"position":[[7,1],[43,1],[102,3],[163,1],[193,1],[222,1],[245,2],[341,2],[555,2],[662,2],[934,2],[1028,2],[1275,2],[1318,1],[1376,1],[1382,1],[1395,1],[1401,1],[1416,1],[1421,2],[1480,1],[1515,2],[1518,2],[1521,1],[1556,1],[1576,1],[1622,1],[1643,1],[1689,1],[1710,1],[1731,1],[1752,1],[1773,1],[1794,1],[1801,2],[1804,3],[1826,2],[1829,1],[1837,2],[1944,1],[1962,1],[1973,1],[1991,1],[2015,1],[2033,1],[2044,1],[2062,1],[2086,1],[2104,1],[2114,1],[2132,1],[2157,1],[2175,1],[2185,1],[2203,1],[2228,1],[2246,1],[2257,1],[2275,1],[2316,1],[2324,1],[2331,3]]},"113":{"position":[[7,1],[75,1],[134,3],[190,1],[213,2],[313,2],[326,1],[465,2],[478,1],[618,2],[757,2],[790,2],[960,2],[970,1],[1109,2],[1119,1],[1259,2],[1270,1],[1414,2],[1644,2],[1813,2],[1948,2],[2085,2],[2222,2],[2249,1]]},"115":{"position":[[7,1],[43,1],[85,3],[126,2],[169,1],[176,2],[210,1],[295,2],[298,1],[317,1],[399,1],[437,1],[471,1],[533,1],[552,1],[599,1],[655,1],[690,1],[702,1],[715,1],[727,1],[747,1],[836,1],[907,1],[936,1],[966,1],[1016,2],[1019,1],[1038,1],[1069,1],[1091,1],[1123,1],[1128,3],[1132,3]]},"117":{"position":[[7,1],[43,1],[102,3],[163,1],[184,1],[272,1],[291,1],[301,1],[321,1],[366,1],[402,1],[421,1],[438,1],[458,1],[463,2],[503,1],[610,1],[715,1],[819,1],[984,2],[1027,1],[1085,1],[1104,1],[1117,1],[1137,1],[1177,1],[1196,1],[1228,2],[1231,2],[1234,1],[1257,1],[1274,1],[1283,1],[1290,1],[1307,1],[1315,1],[1317,3],[1332,1],[1381,1],[1390,1],[1462,3],[1473,1],[1506,1],[1556,2],[1559,1],[1573,2],[1600,1],[1624,2],[1649,2],[1672,1],[1676,1],[1694,1],[1716,1],[1720,1],[1738,1],[1752,2],[1825,1],[1843,1],[1854,1],[1872,1],[1896,1],[1914,1],[1925,1],[1943,1],[1967,1],[1985,1],[1995,1],[2013,1],[2038,1],[2056,1],[2066,1],[2084,1],[2106,1],[2114,1],[2121,3]]},"119":{"position":[[7,1],[43,1],[85,3],[146,1],[167,1],[265,1],[357,1],[449,1],[463,1],[481,1],[535,1],[581,1],[592,1],[619,1],[636,1],[663,1],[671,1],[691,2],[694,1],[703,2],[726,1],[740,2],[763,1],[802,1],[807,1],[818,1],[820,3]]},"121":{"position":[[7,1],[43,1],[85,3],[141,1],[186,1],[234,1],[265,1],[289,1],[310,1],[328,1],[386,1],[402,1],[499,1],[515,1],[537,2],[618,1],[634,1],[650,1],[671,2],[685,1],[692,1],[723,1],[746,1],[750,1],[766,1],[807,1],[812,1],[816,1],[849,1],[854,1],[898,1],[903,1],[947,1],[952,1],[969,1],[984,1],[1190,1],[1197,1],[1218,1],[1243,1],[1263,1],[1276,1],[1306,3],[1367,1],[1382,1],[1401,1],[1403,3],[1423,1],[1546,2],[1549,1],[1570,2],[1579,3]]},"123":{"position":[[7,1],[43,1],[85,3],[141,1],[196,2],[218,1],[231,2],[250,2],[280,2],[291,2],[342,2],[371,2],[385,2],[406,2],[417,2],[504,1],[697,1],[704,1],[724,1],[749,1],[769,1],[814,3],[904,1],[919,1],[947,2],[950,1],[952,2],[955,1],[1036,3],[1051,1],[1183,2],[1186,1],[1202,2],[1211,3]]},"125":{"position":[[7,1],[43,1],[85,3],[141,1],[196,2],[218,1],[231,2],[250,2],[280,2],[291,2],[342,2],[371,2],[385,2],[406,2],[417,2],[493,1],[548,2],[570,1],[576,1],[589,2],[601,1],[614,2],[626,1],[639,2],[650,2],[701,2],[730,2],[744,2],[759,2],[770,2],[837,1],[896,1],[1089,1],[1096,1],[1116,1],[1141,1],[1161,1],[1206,3],[1296,1],[1311,1],[1339,2],[1342,1],[1344,2],[1347,1],[1428,3],[1443,1],[1576,2],[1579,1],[1595,2],[1604,3]]},"127":{"position":[[7,1],[43,1],[98,3],[139,2],[173,1],[228,2],[257,2],[273,2],[300,2],[311,2],[362,2],[391,2],[405,2],[426,2],[437,2],[497,2],[563,1],[565,1],[739,1],[746,1],[766,1],[791,1],[811,1],[856,3],[860,2],[934,1],[995,2],[1050,1],[1052,1],[1130,1],[1219,1],[1252,1],[1282,1],[1322,1],[1364,1],[1376,1],[1389,1],[1395,1],[1404,1],[1427,1],[1439,3],[1462,1],[1464,1],[1476,2],[1496,1],[1558,2],[1602,2],[1705,1],[1759,3],[1778,1],[1837,1],[1895,2],[1976,1],[1978,1],[2104,1],[2140,1],[2196,1],[2234,1],[2268,2],[2296,1],[2322,1],[2331,3],[2356,1],[2358,1],[2403,2],[2425,1],[2511,1],[2565,3],[2586,1],[2649,1],[2711,2],[2780,1],[2782,1],[2886,1],[2900,1],[2934,1],[2969,1],[2984,3],[3008,1],[3010,1],[3046,2],[3067,1],[3150,1],[3204,3],[3224,1],[3285,1],[3345,2],[3383,1],[3385,1],[3488,1],[3551,1],[3589,1],[3666,2],[3744,2],[3823,2],[3904,2],[3979,1],[4001,3],[4024,1],[4026,1],[4054,2],[4074,1],[4154,1],[4208,3],[4227,1],[4286,1],[4344,2],[4395,1],[4397,1],[4539,1],[4575,1],[4616,1],[4655,1],[4696,1],[4725,3],[4751,1],[4753,1],[4827,2],[4850,1],[4936,1],[5164,2],[5409,2],[5443,1],[5471,2],[5474,1],[5481,2],[5486,1],[5492,2],[5525,1],[5581,1],[5620,1],[5660,1],[5676,1],[5683,1],[5690,1],[5697,2],[5765,1],[5794,3],[5830,1],[5861,3],[5896,1],[5926,3],[5960,1],[5989,3],[5993,3]]},"129":{"position":[[7,1],[43,1],[85,3],[126,2],[160,1],[215,2],[237,1],[250,2],[269,2],[299,2],[310,2],[361,2],[390,2],[404,2],[425,2],[436,2],[512,1],[514,1],[688,1],[695,1],[715,1],[740,1],[760,1],[805,3],[827,1],[829,1],[975,2],[1076,2],[1148,1],[1159,1],[1187,1],[1210,1],[1280,1],[1335,1],[1346,1],[1373,1],[1508,3],[1519,1],[1562,1],[1576,1],[1586,1],[1638,1],[1676,1],[1720,2],[1733,1],[1753,1],[1789,1],[1847,1],[1894,1],[1921,1],[1928,1],[1936,1],[1980,1],[2000,1],[2017,1],[2024,1],[2036,1],[2045,1],[2049,1],[2058,1],[2072,1],[2197,1],[2206,1],[2216,1],[2222,1],[2228,1],[2248,1],[2274,1],[2286,1],[2309,1],[2337,1],[2344,1],[2353,1],[2362,1],[2364,1],[2379,1],[2396,3],[2415,1],[2417,1],[2494,2],[2497,2],[2585,1],[2645,1],[2654,2],[2701,1],[2766,1],[2875,2],[2909,1],[2937,2],[2940,1],[2947,2],[2952,1],[2984,1],[3030,1],[3056,1],[3064,1],[3070,3]]},"131":{"position":[[7,1],[43,1],[85,3],[141,1],[196,2],[218,1],[231,2],[250,2],[269,2],[299,2],[328,2],[342,2],[358,2],[379,1],[572,1],[579,1],[599,1],[624,1],[644,1],[689,3],[779,1],[794,1],[824,1],[826,2],[829,1],[910,3],[928,1],[1121,1],[1128,1],[1148,1],[1173,1],[1193,1],[1238,3],[1328,1],[1343,1],[1388,2],[1415,1],[1424,1],[1431,1],[1452,2],[1479,1],[1488,1],[1495,1],[1501,1],[1503,2],[1506,1],[1587,3],[1606,1],[1657,1],[1871,2],[1874,1],[1894,2],[1923,1],[1932,3]]},"133":{"position":[[7,1],[43,1],[85,3],[141,1],[196,2],[218,1],[231,2],[250,2],[269,2],[280,2],[331,2],[360,2],[374,2],[389,2],[401,2],[444,1],[638,1],[645,1],[665,1],[690,1],[710,1],[755,3],[851,1],[866,1],[902,1],[904,3],[923,1],[974,1],[1061,4],[1082,1],[1133,1],[1214,4],[1235,1],[1286,1],[1373,4],[1601,2],[1604,1],[1624,2],[1653,1],[1681,1],[1690,3]]},"135":{"position":[[7,1],[43,1],[85,3],[136,1],[141,2],[175,1],[194,1],[196,3],[211,1],[218,1],[229,1],[260,1],[279,1],[293,1],[390,1],[405,1],[447,1],[474,1],[489,1],[523,2],[560,2],[563,1],[571,2],[579,2],[608,1],[615,1],[637,1],[651,1],[665,1],[672,1],[681,1],[699,1],[703,1],[716,1],[730,1],[737,1],[746,1],[752,1],[770,3],[798,1],[884,1],[891,1],[913,1],[951,1],[964,1],[971,1],[993,1],[1075,1],[1077,1]]},"137":{"position":[[7,1],[43,1],[85,3],[136,1],[141,2],[175,1],[181,1],[200,1],[202,3],[217,1],[224,1],[235,1],[266,1],[285,1],[299,1],[396,1],[425,1],[466,1],[490,1],[526,1],[621,2],[624,1],[632,2],[640,2],[669,1],[676,1],[698,1],[712,1],[726,1],[733,1],[742,1],[760,1],[764,1],[777,1],[791,1],[798,1],[807,1],[813,1],[815,3]]},"139":{"position":[[7,1],[43,1],[85,3],[141,1],[196,1],[241,1],[394,1],[408,1],[433,1],[453,1],[498,3],[540,1],[555,1],[583,1],[585,3],[604,1],[725,2],[728,1],[748,2],[757,3]]},"141":{"position":[[7,1],[43,1],[85,3],[141,1],[196,2],[218,1],[230,2],[248,2],[269,2],[280,2],[333,2],[365,2],[385,2],[406,2],[421,2],[463,1],[660,1],[669,1],[691,1],[716,1],[736,1],[781,3],[844,1],[859,1],[880,1],[882,3],[901,1],[1045,2],[1048,1],[1068,2],[1077,3]]},"143":{"position":[[7,1],[43,1],[85,3],[141,1],[196,2],[218,1],[231,2],[250,2],[269,2],[280,2],[333,2],[365,2],[385,2],[406,2],[420,2],[471,2],[500,2],[514,2],[529,2],[541,2],[586,1],[588,1],[806,1],[813,1],[828,1],[850,1],[875,1],[895,1],[940,3],[962,1],[964,1],[1072,1],[1087,1],[1116,1],[1137,3],[1156,1],[1158,1],[1238,2],[1254,1],[1323,1],[1467,2],[1470,1],[1490,2],[1499,3]]},"145":{"position":[[7,1],[43,1],[85,3],[141,1],[196,2],[218,1],[231,2],[250,2],[280,2],[291,2],[342,2],[371,2],[385,2],[406,2],[417,2],[493,1],[495,1],[669,1],[676,1],[696,1],[721,1],[741,1],[786,3],[808,1],[810,1],[917,1],[932,1],[960,1],[973,1],[984,1],[991,1],[993,1],[999,2],[1002,3],[1021,1],[1023,1],[1113,2],[1129,1],[1194,1],[1303,2],[1328,2],[1386,2],[1389,1],[1405,2],[1440,2],[1448,3]]},"147":{"position":[[7,1],[33,2],[122,1],[169,1],[218,1],[288,3],[343,1],[398,2],[436,1],[496,2],[539,1],[546,1],[557,1],[571,1],[630,1],[635,1],[640,1],[654,1],[669,1],[674,1],[707,1],[709,2],[753,1],[772,1],[789,1],[809,1],[814,2],[886,1],[904,1],[927,1],[946,1],[951,2],[1003,2],[1006,1],[1008,2],[1033,2],[1104,1],[1111,1],[1120,3]]},"149":{"position":[[7,1],[43,1],[103,3],[237,2],[240,1],[242,2],[298,1],[300,3],[318,1],[325,1],[336,1],[353,1],[392,1],[434,1],[510,3],[514,1],[530,1],[535,2],[578,1],[682,1],[696,1],[730,1],[742,1],[762,1],[806,2],[849,1],[940,1],[960,1],[974,1],[986,1],[1006,1],[1050,2],[1082,3]]},"151":{"position":[[7,1],[43,1],[103,3],[218,2],[221,1],[223,2],[288,1],[290,3],[308,1],[315,1],[326,1],[342,1],[388,1],[433,1],[442,1],[449,1],[460,1],[462,2],[516,1],[574,1],[590,1],[622,1],[638,1],[705,1],[721,1],[757,1],[773,1],[817,1],[822,1],[859,1],[861,2],[893,3]]},"153":{"position":[[7,1],[43,1],[108,3],[228,2],[231,1],[233,2],[296,1],[298,3],[313,1],[320,1],[331,1],[343,1],[347,1],[352,1],[362,1],[367,2],[500,1],[502,2],[582,2],[596,1],[631,2],[634,1],[699,1],[758,2],[768,1],[787,1],[799,1],[819,1],[866,1],[912,2],[954,2],[957,1],[973,2],[982,3],[986,3]]},"155":{"position":[[7,1],[43,1],[108,3],[149,2],[203,1],[262,2],[321,2],[376,1],[395,1],[408,1],[428,1],[460,2],[512,2],[515,1],[517,2],[566,2],[611,2],[670,2],[677,1],[686,3]]},"157":{"position":[[7,1],[43,1],[108,3],[162,1],[184,1],[268,1],[330,2],[387,1],[415,2],[477,2],[536,1],[555,1],[572,1],[592,1],[628,2],[679,1],[708,1],[748,2],[751,2],[754,1],[765,1],[778,2],[828,1],[839,1],[849,1],[866,3],[888,2],[891,1],[912,2],[921,3]]},"159":{"position":[[7,1],[43,1],[85,3],[126,2],[179,1],[237,2],[263,3],[267,1],[310,1],[372,2],[394,1],[465,2],[512,1],[535,2],[538,1],[546,2],[581,1],[585,1],[629,1],[633,1],[680,2],[714,2],[720,3]]},"161":{"position":[[7,1],[43,1],[105,3],[146,2],[219,1],[380,2],[412,1],[448,1],[462,1],[500,1],[505,2],[560,1],[586,1],[599,2],[647,2],[706,2],[764,2],[821,2],[883,2],[945,2],[1006,2],[1096,1],[1098,2],[1149,2],[1201,1],[1261,2],[1347,1],[1375,2],[1418,1],[1457,1],[1511,1]]},"163":{"position":[[7,1],[43,1],[108,3],[227,2],[230,1],[253,1],[317,1],[369,2],[372,2],[392,1],[415,1],[458,3]]},"165":{"position":[[7,1],[43,1],[108,3],[149,2],[208,1],[499,3],[543,2],[546,1],[560,1],[652,4],[669,1],[755,4],[772,1],[877,4],[894,1],[990,4],[1003,1],[1018,1],[1033,1],[1148,3]]},"167":{"position":[[7,1],[43,1],[108,3],[165,1],[216,1],[234,1],[284,1],[413,2],[554,1],[637,3],[656,1],[752,1],[769,1],[822,1],[1115,3],[1134,1],[1251,1],[1269,1]]},"169":{"position":[[7,1],[43,1],[108,3],[149,2],[215,1],[217,1],[227,1],[252,2],[264,1],[274,2],[277,2],[280,2],[298,2],[301,2],[351,1],[362,1],[405,1],[437,3],[450,1],[460,1],[534,1],[564,1],[582,1],[662,5],[668,2],[686,2],[705,1],[707,2],[776,1],[844,1],[913,1],[915,2],[984,1]]},"171":{"position":[[7,1],[33,2],[73,2],[181,1],[240,3],[310,1],[312,2],[399,1],[419,1],[468,1],[493,1],[508,1],[535,2],[584,1],[784,1],[857,1],[877,1],[913,1],[992,1],[1002,1],[1020,1],[1041,1]]},"173":{"position":[[7,1],[33,2],[67,1],[91,1],[110,2],[153,2],[306,1],[322,1],[324,2],[376,2],[429,1],[472,1],[480,1],[488,1],[490,1],[498,2],[541,1],[550,1],[552,1],[560,2],[576,2],[659,1],[708,1],[731,1],[751,1],[788,1],[986,1],[1028,2],[1083,2],[1144,1],[1170,1],[1180,2],[1229,2],[1296,1],[1301,1],[1303,1],[1513,1],[1515,1],[1527,1],[1586,3],[1649,1],[1697,2],[1765,2],[1833,2],[1925,1],[1975,1],[2054,1],[2064,1]]},"175":{"position":[[7,1],[43,1],[108,3],[165,1],[234,1],[305,1],[312,1],[323,1],[337,1],[373,1],[378,1],[383,1],[397,1],[412,1],[417,1],[438,1],[454,1],[465,1],[498,1],[510,1],[587,1],[631,1],[663,1],[679,1],[713,2],[716,1],[786,1],[884,1],[910,1],[1003,2],[1018,1],[1037,1],[1061,2],[1064,1],[1102,3]]},"177":{"position":[[7,1],[43,1],[85,3],[142,1],[144,1],[198,2],[201,2],[318,1],[377,1],[438,1],[455,2],[543,1],[578,2],[613,1],[635,1],[672,2],[743,1],[784,1],[808,1],[851,2],[898,1],[900,1],[1270,2],[1273,2],[1313,1],[1315,3],[1319,2],[1405,1],[1412,1],[1423,1],[1436,1],[1464,1],[1490,1],[1506,1],[1526,1],[1542,1],[1626,1],[1628,2],[1660,1],[1683,2],[1686,1],[1699,1],[1706,1],[1727,1],[1729,2],[1760,1],[1786,2],[1794,1],[1802,2],[1811,2],[1831,3],[1846,1],[1877,1],[1910,1],[1918,2],[1962,1],[1979,2],[2022,1],[2055,1],[2073,1],[2081,2],[2116,2],[2211,1],[2258,3],[2262,3]]},"179":{"position":[[7,1],[43,1],[85,3],[201,2],[204,1],[206,2],[248,1],[270,1],[302,1],[314,1],[330,1],[340,1],[364,1],[386,1],[418,1],[442,1],[465,1],[494,1],[502,1],[504,1],[526,1],[599,1],[638,1],[642,3],[649,1],[666,1],[734,1],[741,1],[743,2],[770,2],[872,1],[969,1],[1002,1],[1018,1],[1037,1],[1042,1],[1061,1],[1081,1],[1085,1],[1102,1],[1121,1],[1125,1],[1142,1],[1162,1],[1166,1],[1171,2],[1214,1],[1221,1],[1232,1],[1234,2],[1290,1],[1319,1],[1323,1],[1327,1],[1331,1],[1341,1],[1345,1],[1365,1],[1385,1],[1392,2],[1418,1],[1428,1],[1436,1],[1441,1],[1454,1],[1464,1],[1472,1],[1477,1],[1481,1],[1524,1],[1548,1],[1575,1],[1652,3],[1663,1],[1680,1],[1721,1],[1723,3]]}}}],["0",{"_index":136,"t":{"39":{"position":[[2369,3],[2536,2],[2542,1],[3219,1],[3348,1],[3882,1],[3940,2]]},"41":{"position":[[509,2],[610,2],[664,4],[999,2],[1005,1],[1364,2],[1754,2],[1761,2]]},"43":{"position":[[246,2]]},"45":{"position":[[644,2]]},"47":{"position":[[876,2],[1030,2],[1051,2],[1112,2],[1133,2],[1196,2],[1914,2],[3228,2],[3682,2],[4007,2],[4165,1],[5062,2],[5390,2]]},"49":{"position":[[878,2],[1398,2],[1414,2],[1499,2],[1598,2],[1619,1],[1623,1],[1818,2],[1980,3],[2468,2],[2791,2],[3623,2],[3726,1],[3985,3],[4022,2],[4075,3],[4736,2],[4980,2],[5385,2],[6094,3],[6107,3],[6111,3],[6124,3],[6204,2],[6317,2],[6402,2],[6501,2],[6522,1],[6526,1],[6941,3],[7016,2],[7249,3],[7655,2],[7663,2],[7836,2],[7979,2],[8839,1],[9028,2],[9248,1],[9268,1]]},"51":{"position":[[271,2],[327,2],[346,2],[450,2],[532,2],[538,2],[544,2],[1130,1],[1134,1],[1388,2]]},"63":{"position":[[459,2],[1318,1],[1829,2]]},"65":{"position":[[394,2],[714,2],[1321,2]]},"67":{"position":[[363,2]]},"69":{"position":[[431,2],[1106,1],[1617,2],[1713,2]]},"71":{"position":[[480,2],[580,2]]},"73":{"position":[[211,2],[910,1],[948,1],[1680,2]]},"75":{"position":[[85,2]]},"79":{"position":[[790,2],[856,2],[2029,2],[2095,2]]},"81":{"position":[[1120,2]]},"83":{"position":[[362,2]]},"85":{"position":[[784,2]]},"87":{"position":[[701,2]]},"89":{"position":[[3439,2],[3513,2],[3529,3],[3662,2],[3720,2],[4857,5],[4922,3],[4938,3],[4942,4],[5144,3],[5163,5],[5201,3],[5220,5],[5329,3],[5333,2]]},"91":{"position":[[408,2]]},"93":{"position":[[412,2],[596,2],[1439,3]]},"99":{"position":[[742,2],[1487,3],[1665,3],[1869,2],[2154,3],[2171,2],[2396,3]]},"101":{"position":[[888,2]]},"103":{"position":[[1072,2]]},"105":{"position":[[406,2],[1861,2],[1915,2]]},"107":{"position":[[1103,1],[1252,2]]},"109":{"position":[[395,3],[882,3]]},"111":{"position":[[797,2],[1418,2]]},"115":{"position":[[679,2]]},"117":{"position":[[1198,2]]},"121":{"position":[[193,2],[201,2],[204,2],[529,2],[687,2],[809,2]]},"123":{"position":[[364,3],[368,2],[382,2],[399,2],[466,2]]},"125":{"position":[[364,3],[368,2],[382,2],[399,2],[466,2],[723,3],[727,2],[741,2]]},"127":{"position":[[250,3],[254,2],[270,2],[291,2],[384,3],[388,2],[402,2],[419,2],[486,2],[2380,2],[4051,2],[5445,2]]},"129":{"position":[[383,3],[387,2],[401,2],[418,2],[485,2],[1354,3],[1532,3],[1717,2],[2002,3],[2019,2],[2244,3],[2491,2],[2911,2]]},"131":{"position":[[321,3],[325,2],[339,2]]},"133":{"position":[[353,3],[357,2],[371,2]]},"135":{"position":[[138,2],[213,2],[274,4],[610,2]]},"137":{"position":[[138,2],[219,2],[280,4],[671,2]]},"139":{"position":[[218,2]]},"141":{"position":[[359,2],[362,2],[376,2],[382,2],[396,2],[399,2]]},"143":{"position":[[359,2],[362,2],[376,2],[382,2],[396,2],[399,2],[493,3],[497,2],[511,2]]},"145":{"position":[[364,3],[368,2],[382,2],[399,2],[466,2],[1110,2]]},"147":{"position":[[541,2]]},"149":{"position":[[320,2]]},"151":{"position":[[310,2],[444,2],[824,3]]},"153":{"position":[[315,2]]},"159":{"position":[[514,2]]},"161":{"position":[[85,2],[282,2]]},"171":{"position":[[614,2],[626,3],[807,2]]},"173":{"position":[[818,2],[828,3],[1009,2],[1430,2]]},"175":{"position":[[307,2]]},"177":{"position":[[1407,2],[1662,2],[1701,2]]},"179":{"position":[[646,2],[1044,2],[1087,2],[1127,2],[1168,2],[1216,2],[1483,3]]}}}],["0${i",{"_index":2518,"t":{"153":{"position":[[354,7]]}}}],["0)\\nscreen",{"_index":1619,"t":{"89":{"position":[[4926,11]]}}}],["0,0",{"_index":2266,"t":{"127":{"position":[[1188,3],[3520,3]]},"173":{"position":[[350,5]]}}}],["0.0",{"_index":1706,"t":{"95":{"position":[[688,4],[825,3]]},"97":{"position":[[956,4]]},"99":{"position":[[2827,4]]},"121":{"position":[[1295,4]]},"123":{"position":[[803,4]]},"125":{"position":[[1195,4]]},"127":{"position":[[845,4]]},"129":{"position":[[794,4]]},"131":{"position":[[678,4],[1227,4]]},"133":{"position":[[744,4]]},"139":{"position":[[487,4],[567,4],[572,4]]},"141":{"position":[[256,4],[770,4]]},"143":{"position":[[929,4]]},"145":{"position":[[775,4]]},"171":{"position":[[671,7]]},"173":{"position":[[873,7]]}}}],["0.001",{"_index":1810,"t":{"99":{"position":[[1491,7],[2351,6]]},"129":{"position":[[1358,7],[2199,6]]}}}],["0.005",{"_index":1888,"t":{"101":{"position":[[923,6]]},"131":{"position":[[1925,6]]},"133":{"position":[[1683,6]]},"159":{"position":[[549,6]]}}}],["0.01",{"_index":167,"t":{"39":{"position":[[2859,5]]},"45":{"position":[[1023,4]]},"63":{"position":[[1926,5]]},"65":{"position":[[1399,5],[1516,5]]},"67":{"position":[[928,4]]},"69":{"position":[[1865,5]]},"73":{"position":[[1771,5]]},"103":{"position":[[1461,5],[1487,5],[1537,5]]},"105":{"position":[[2011,5]]},"117":{"position":[[1576,5],[1602,5],[1652,5]]},"121":{"position":[[1573,5]]},"123":{"position":[[1205,5]]},"125":{"position":[[1598,5]]},"131":{"position":[[1897,5]]},"133":{"position":[[1627,5],[1655,5]]},"139":{"position":[[751,5]]},"141":{"position":[[1071,5]]},"143":{"position":[[1493,5]]},"145":{"position":[[1408,5]]},"147":{"position":[[1106,4]]},"153":{"position":[[976,5]]},"177":{"position":[[1805,5],[2024,5]]}}}],["0.02",{"_index":1922,"t":{"103":{"position":[[1512,5]]},"117":{"position":[[1627,5]]},"157":{"position":[[915,5]]}}}],["0.025",{"_index":842,"t":{"51":{"position":[[308,6]]}}}],["0.04",{"_index":1713,"t":{"95":{"position":[[1005,4]]},"103":{"position":[[1581,5],[1625,5]]},"117":{"position":[[1696,5],[1740,5]]}}}],["0.05",{"_index":42,"t":{"39":{"position":[[413,5]]},"51":{"position":[[393,5]]},"69":{"position":[[1821,5]]},"105":{"position":[[1896,5]]}}}],["0.06",{"_index":2398,"t":{"131":{"position":[[1417,6],[1481,6]]}}}],["0.1",{"_index":1108,"t":{"65":{"position":[[1383,4]]},"69":{"position":[[2387,4]]},"75":{"position":[[548,4]]},"103":{"position":[[1640,4]]},"111":{"position":[[1840,4],[2326,4]]},"117":{"position":[[1755,4],[2116,4]]},"119":{"position":[[728,4],[765,4]]},"135":{"position":[[574,4]]},"137":{"position":[[635,4]]},"145":{"position":[[995,3],[1443,4]]},"155":{"position":[[673,3]]},"177":{"position":[[1789,4]]}}}],["0.2",{"_index":1146,"t":{"69":{"position":[[1181,4]]},"89":{"position":[[3449,4]]},"105":{"position":[[2233,4]]},"177":{"position":[[2075,5]]}}}],["0.25",{"_index":996,"t":{"59":{"position":[[758,5]]},"113":{"position":[[1737,6]]}}}],["0.3",{"_index":1025,"t":{"63":{"position":[[738,5]]},"69":{"position":[[719,5]]},"73":{"position":[[594,5]]},"105":{"position":[[775,5]]},"135":{"position":[[732,4]]},"137":{"position":[[793,4]]},"167":{"position":[[1203,5]]}}}],["0.35",{"_index":2380,"t":{"127":{"position":[[5685,4]]}}}],["0.4",{"_index":1963,"t":{"105":{"position":[[1545,4]]},"117":{"position":[[1801,5]]},"127":{"position":[[1334,4],[1339,4]]}}}],["0.5",{"_index":195,"t":{"39":{"position":[[4063,5],[4103,5]]},"49":{"position":[[3072,4],[3079,5]]},"51":{"position":[[573,4]]},"65":{"position":[[986,4],[1008,4]]},"71":{"position":[[661,4]]},"83":{"position":[[1696,4]]},"93":{"position":[[2217,5]]},"97":{"position":[[1136,4]]},"99":{"position":[[612,5],[2376,3]]},"111":{"position":[[1097,5],[1920,5]]},"127":{"position":[[1391,3],[2368,4],[3019,4],[5678,4],[5692,4]]},"129":{"position":[[2224,3]]},"131":{"position":[[1426,4],[1490,4]]},"135":{"position":[[667,4]]},"137":{"position":[[728,4]]},"149":{"position":[[684,4]]},"151":{"position":[[775,5]]},"153":{"position":[[868,4]]},"161":{"position":[[257,4]]},"167":{"position":[[1234,5]]},"179":{"position":[[1367,4],[1387,4]]}}}],["0.7",{"_index":852,"t":{"51":{"position":[[601,4]]},"97":{"position":[[968,4]]},"129":{"position":[[3058,5]]}}}],["0.75",{"_index":1003,"t":{"59":{"position":[[922,5]]},"89":{"position":[[3643,5]]},"93":{"position":[[500,5]]},"127":{"position":[[4039,5]]}}}],["0.8",{"_index":1042,"t":{"63":{"position":[[1267,4]]},"69":{"position":[[1068,4]]},"73":{"position":[[1120,4]]},"105":{"position":[[650,4]]},"111":{"position":[[623,5]]},"127":{"position":[[1294,4],[1299,4]]},"167":{"position":[[901,4]]}}}],["0.87",{"_index":1642,"t":{"91":{"position":[[375,5]]}}}],["0.95",{"_index":1153,"t":{"69":{"position":[[1783,4]]}}}],["0.99",{"_index":170,"t":{"39":{"position":[[2950,5],[2983,6],[3048,5],[3083,6]]}}}],["000000",{"_index":509,"t":{"47":{"position":[[2320,10]]},"167":{"position":[[499,10]]}}}],["004620",{"_index":2647,"t":{"167":{"position":[[1027,10]]}}}],["00ff99",{"_index":502,"t":{"47":{"position":[[2222,11]]},"167":{"position":[[401,11]]}}}],["0123456789",{"_index":2478,"t":{"149":{"position":[[355,11]]}}}],["0x0000ff",{"_index":2099,"t":{"111":{"position":[[976,9]]}}}],["0x00ff00",{"_index":128,"t":{"39":{"position":[[2180,9]]},"49":{"position":[[6883,9]]}}}],["0x1099bb",{"_index":2473,"t":{"147":{"position":[[261,9]]}}}],["0x111111",{"_index":1641,"t":{"91":{"position":[[358,9]]},"167":{"position":[[964,11]]}}}],["0x333333",{"_index":1299,"t":{"79":{"position":[[2997,9]]}}}],["0x3333dd",{"_index":2046,"t":{"109":{"position":[[1510,9]]}}}],["0x33ff00",{"_index":2106,"t":{"111":{"position":[[1182,10]]}}}],["0x666666",{"_index":1300,"t":{"79":{"position":[[3048,9]]}}}],["0x808080",{"_index":1143,"t":{"69":{"position":[[860,9]]}}}],["0xaa0000",{"_index":2017,"t":{"109":{"position":[[618,9]]}}}],["0xaa00bb",{"_index":2041,"t":{"109":{"position":[[1357,9]]}}}],["0xfeeb77",{"_index":2127,"t":{"113":{"position":[[363,9],[1007,9]]}}}],["0xff0000",{"_index":140,"t":{"39":{"position":[[2437,9]]},"49":{"position":[[1895,9],[3927,9],[4690,9],[4942,9]]},"111":{"position":[[613,9],[1880,9]]}}}],["0xff00ff",{"_index":2145,"t":{"113":{"position":[[1694,9]]}}}],["0xffbd01",{"_index":2130,"t":{"113":{"position":[[516,9],[1157,9]]}}}],["0xffc2c2",{"_index":2444,"t":{"135":{"position":[[826,10]]}}}],["0xffd900",{"_index":2079,"t":{"111":{"position":[[327,9]]},"113":{"position":[[1482,9]]}}}],["0xffffff",{"_index":363,"t":{"43":{"position":[[1621,8]]},"49":{"position":[[7626,10],[7793,9]]},"65":{"position":[[885,9]]},"73":{"position":[[773,9]]},"79":{"position":[[3098,9]]},"99":{"position":[[564,9]]},"109":{"position":[[362,9],[848,9]]},"111":{"position":[[1578,9]]},"113":{"position":[[655,9],[1307,9],[1848,10],[1985,10],[2122,10]]}}}],["1",{"_index":143,"t":{"39":{"position":[[2508,2]]},"41":{"position":[[1785,2],[1805,2],[1896,2],[1922,2],[2039,2],[2130,2],[2203,2],[2286,2]]},"47":{"position":[[1894,3],[2000,3],[3490,1],[5288,2],[5464,3],[5536,2],[5724,2],[5743,3]]},"49":{"position":[[200,2],[1905,3],[1934,3],[2146,4],[3937,3],[3966,3],[4660,3],[4700,3],[4952,3],[5090,2],[6099,3],[6103,3],[6115,3],[6121,2],[6893,3],[6922,3],[7083,4],[7803,3],[9258,1],[9278,2]]},"51":{"position":[[972,2],[1138,2]]},"81":{"position":[[1303,3],[1912,2]]},"83":{"position":[[1865,2]]},"85":{"position":[[942,3],[2007,2]]},"89":{"position":[[2849,2],[3035,2],[3581,3],[4614,2]]},"91":{"position":[[388,1]]},"93":{"position":[[2166,1],[2172,2]]},"99":{"position":[[1743,2],[1776,4],[2434,3],[2463,3],[2543,4]]},"103":{"position":[[1559,1],[1603,1]]},"105":{"position":[[612,2]]},"109":{"position":[[372,3],[628,3],[858,3],[1367,3],[1520,3]]},"111":{"position":[[337,3],[658,3],[986,3],[1588,3],[1890,3]]},"113":{"position":[[339,1],[373,3],[526,3],[665,3],[901,3],[983,1],[1017,3],[1050,3],[1167,3],[1200,3],[1317,3],[1350,3],[1492,3],[1704,3],[1888,3],[2025,3],[2162,3],[2355,3]]},"115":{"position":[[812,2]]},"117":{"position":[[1674,1],[1718,1]]},"119":{"position":[[804,2]]},"123":{"position":[[379,2],[393,2],[396,2],[402,3],[460,2]]},"125":{"position":[[379,2],[393,2],[396,2],[402,3],[460,2],[738,2],[752,2],[755,3],[813,2]]},"127":{"position":[[399,2],[413,2],[416,2],[422,3],[480,2],[5484,1]]},"129":{"position":[[398,2],[412,2],[415,2],[421,3],[479,2],[1624,4],[2282,3],[2311,3],[2391,4],[2950,1]]},"131":{"position":[[336,2],[350,2],[353,4]]},"133":{"position":[[368,2],[382,2],[385,3]]},"135":{"position":[[886,2],[966,2]]},"141":{"position":[[355,3],[379,2],[402,3]]},"143":{"position":[[355,3],[379,2],[402,3],[508,2],[522,2],[525,3]]},"145":{"position":[[379,2],[393,2],[396,2],[402,3],[460,2]]},"155":{"position":[[578,1]]},"159":{"position":[[683,2],[717,2]]},"171":{"position":[[495,2],[819,3]]},"173":{"position":[[399,1],[425,3]]},"175":{"position":[[574,3]]},"179":{"position":[[304,2],[940,3],[1347,4]]}}}],["1,1",{"_index":2267,"t":{"127":{"position":[[1207,3],[3539,3]]}}}],["1.,0",{"_index":1833,"t":{"99":{"position":[[1978,9]]},"129":{"position":[[1826,9]]}}}],["1.0",{"_index":1749,"t":{"97":{"position":[[951,4],[961,4],[1129,4]]},"99":{"position":[[2416,5]]},"121":{"position":[[1300,5],[1395,5]]},"123":{"position":[[808,5]]},"125":{"position":[[1200,5]]},"127":{"position":[[850,5],[1304,5],[1344,5]]},"129":{"position":[[799,5],[2264,5]]},"131":{"position":[[683,5],[1232,5]]},"133":{"position":[[749,5]]},"139":{"position":[[492,5],[577,5]]},"141":{"position":[[775,5],[874,5]]},"143":{"position":[[934,5],[1131,5]]},"145":{"position":[[780,5]]}}}],["1.0)).xy",{"_index":2227,"t":{"121":{"position":[[1285,9]]},"123":{"position":[[793,9]]},"125":{"position":[[1185,9]]},"127":{"position":[[835,9]]},"129":{"position":[[784,9]]},"131":{"position":[[668,9],[1217,9]]},"133":{"position":[[734,9]]},"139":{"position":[[477,9]]},"141":{"position":[[760,9]]},"143":{"position":[[919,9]]},"145":{"position":[[765,9]]}}}],["1.1",{"_index":1690,"t":{"93":{"position":[[2243,4]]}}}],["1.2",{"_index":1345,"t":{"81":{"position":[[1782,5]]},"85":{"position":[[1877,5]]}}}],["1.25",{"_index":1214,"t":{"77":{"position":[[860,5],[884,5]]}}}],["1.5",{"_index":1929,"t":{"103":{"position":[[1764,4]]}}}],["10",{"_index":556,"t":{"47":{"position":[[3349,2]]},"51":{"position":[[1349,2]]},"71":{"position":[[272,3],[276,4],[650,3]]},"79":{"position":[[2669,3],[2785,3]]},"81":{"position":[[1725,3]]},"83":{"position":[[369,3]]},"85":{"position":[[1820,3]]},"103":{"position":[[1388,3]]},"107":{"position":[[704,3]]},"109":{"position":[[1127,3]]},"117":{"position":[[1508,3]]},"127":{"position":[[1472,3],[5009,4],[5048,4]]},"135":{"position":[[1057,4]]},"149":{"position":[[327,3]]},"153":{"position":[[349,2]]},"161":{"position":[[295,3]]},"167":{"position":[[996,3]]}}}],["100",{"_index":122,"t":{"39":{"position":[[2068,4],[2099,4],[2130,4],[2156,4],[2391,4],[2415,4],[3260,5],[3390,5],[3721,4],[3752,4]]},"41":{"position":[[447,4]]},"43":{"position":[[1609,4]]},"49":{"position":[[512,4],[2410,4],[3404,4],[4365,4],[7658,4],[7839,4],[7844,4]]},"63":{"position":[[1567,4]]},"65":{"position":[[721,4],[1328,4]]},"69":{"position":[[413,4],[1216,4],[1434,4]]},"71":{"position":[[291,4],[306,4]]},"73":{"position":[[1420,4]]},"79":{"position":[[793,4],[2032,4]]},"87":{"position":[[905,4]]},"89":{"position":[[3508,4],[3673,3],[3873,4],[3945,4],[4506,4]]},"97":{"position":[[1235,4]]},"99":{"position":[[2178,4]]},"101":{"position":[[662,4]]},"105":{"position":[[245,4]]},"107":{"position":[[346,4],[360,4]]},"109":{"position":[[474,5],[678,5],[907,5],[963,5],[1185,4],[1205,5],[1384,4]]},"111":{"position":[[429,5],[805,5],[1017,4],[1022,5],[1133,5],[1969,3],[2040,3],[2110,3],[2181,3],[2253,3]]},"113":{"position":[[282,4],[287,5],[434,4],[439,5],[587,4],[592,5],[731,5],[1778,4],[1783,4]]},"115":{"position":[[171,4]]},"117":{"position":[[1850,3],[1921,3],[1991,3],[2062,3]]},"121":{"position":[[188,4],[196,4]]},"123":{"position":[[220,4],[226,4],[239,4],[245,4],[258,4],[263,4],[269,4],[274,5]]},"125":{"position":[[220,4],[226,4],[239,4],[245,4],[258,4],[263,4],[269,4],[274,5],[572,3],[578,4],[584,4],[597,3],[603,4],[609,4],[622,3],[628,4],[633,5]]},"129":{"position":[[239,4],[245,4],[258,4],[264,4],[277,4],[282,4],[288,4],[293,5],[2026,4]]},"131":{"position":[[220,4],[226,4],[239,4],[245,4],[258,4],[263,5]]},"133":{"position":[[220,4],[226,4],[239,4],[245,4],[258,4],[263,5],[1462,5]]},"139":{"position":[[198,4],[208,4],[221,6]]},"141":{"position":[[220,4],[238,4]]},"143":{"position":[[220,4],[226,4],[239,4],[245,4],[258,4],[263,5]]},"145":{"position":[[220,4],[226,4],[239,4],[245,4],[258,4],[263,4],[269,4],[274,5]]},"155":{"position":[[594,4]]},"161":{"position":[[285,4],[290,4]]},"167":{"position":[[236,4]]},"171":{"position":[[970,5]]},"173":{"position":[[2032,5]]},"175":{"position":[[1020,4]]}}}],["100.0",{"_index":2461,"t":{"141":{"position":[[261,7]]}}}],["100.0*sin(uv.x*0.5+time*0.5)*amplitude*1.2",{"_index":2331,"t":{"127":{"position":[[3769,44]]}}}],["1000",{"_index":838,"t":{"51":{"position":[[251,5],[794,4]]},"99":{"position":[[2498,6]]},"129":{"position":[[2346,6]]}}}],["10000",{"_index":1137,"t":{"69":{"position":[[405,5]]}}}],["1099bb",{"_index":236,"t":{"41":{"position":[[80,10]]},"47":{"position":[[80,10]]},"49":{"position":[[80,10]]},"53":{"position":[[80,10]]},"55":{"position":[[80,10]]},"57":{"position":[[80,10]]},"59":{"position":[[80,10]]},"61":{"position":[[80,10]]},"67":{"position":[[80,10]]},"71":{"position":[[80,10]]},"77":{"position":[[80,10]]},"79":{"position":[[90,9]]},"81":{"position":[[80,10]]},"83":{"position":[[80,10]]},"87":{"position":[[173,10]]},"89":{"position":[[312,10]]},"91":{"position":[[190,10]]},"93":{"position":[[97,10]]},"99":{"position":[[352,10]]},"153":{"position":[[80,10]]},"155":{"position":[[80,10]]},"157":{"position":[[80,10]]},"163":{"position":[[80,10]]},"165":{"position":[[80,10]]},"167":{"position":[[80,10]]},"169":{"position":[[80,10]]},"175":{"position":[[80,10]]}}}],["110",{"_index":1622,"t":{"89":{"position":[[4994,4]]},"105":{"position":[[1176,4],[1210,4]]}}}],["1100",{"_index":2457,"t":{"137":{"position":[[528,6]]}}}],["111",{"_index":30,"t":{"39":{"position":[[256,7]]},"45":{"position":[[85,7]]}}}],["115",{"_index":1240,"t":{"79":{"position":[[811,4],[2050,4]]}}}],["12",{"_index":1637,"t":{"89":{"position":[[5587,4]]},"103":{"position":[[1303,3]]},"117":{"position":[[1423,3]]},"167":{"position":[[1111,3]]}}}],["120",{"_index":1243,"t":{"79":{"position":[[834,4],[2073,4]]},"111":{"position":[[832,5],[1940,3],[2153,3],[2224,3]]},"117":{"position":[[1821,3],[2034,3]]}}}],["12px",{"_index":2860,"t":{"179":{"position":[[1614,7]]}}}],["130",{"_index":1242,"t":{"79":{"position":[[820,4],[2059,4]]}}}],["14",{"_index":1416,"t":{"87":{"position":[[527,3]]},"145":{"position":[[986,4]]}}}],["140",{"_index":2135,"t":{"113":{"position":[[726,4]]}}}],["15",{"_index":734,"t":{"49":{"position":[[4388,3]]}}}],["150",{"_index":433,"t":{"47":{"position":[[402,4]]},"79":{"position":[[825,4],[843,4],[2064,4],[2082,4]]},"81":{"position":[[1084,4]]},"85":{"position":[[748,4]]},"109":{"position":[[935,5],[1020,4],[1190,4],[1195,4],[1258,4],[1920,4],[1925,5],[2357,4],[2362,5]]},"121":{"position":[[208,6]]},"165":{"position":[[1005,4]]}}}],["150.0*sin(uv.x*0.75+time*0.75)*amplitude*1.4",{"_index":2333,"t":{"127":{"position":[[3848,46]]}}}],["16",{"_index":783,"t":{"49":{"position":[[7849,4]]},"87":{"position":[[421,3]]},"89":{"position":[[4800,3],[5508,3]]},"113":{"position":[[1788,4]]},"179":{"position":[[316,3],[1039,2],[1223,3]]}}}],["160",{"_index":431,"t":{"47":{"position":[[377,4]]},"49":{"position":[[5441,4]]},"79":{"position":[[802,4],[2041,4]]}}}],["170",{"_index":1281,"t":{"79":{"position":[[2485,4],[2594,4],[2699,4],[2815,4]]}}}],["175",{"_index":1319,"t":{"81":{"position":[[1056,4]]},"85":{"position":[[720,4]]}}}],["18",{"_index":1580,"t":{"89":{"position":[[3665,2]]}}}],["190",{"_index":2196,"t":{"119":{"position":[[465,4]]}}}],["1}.png",{"_index":2504,"t":{"151":{"position":[[390,9]]}}}],["2",{"_index":123,"t":{"39":{"position":[[2075,2],[2106,3],[3728,2],[3759,3]]},"41":{"position":[[1935,2],[2267,2],[2304,1],[2327,1]]},"45":{"position":[[913,2],[965,2],[1263,3],[1321,3]]},"47":{"position":[[1530,3],[1750,2],[2560,3],[2646,3],[2819,3],[2880,3],[4520,3]]},"49":{"position":[[734,2],[744,3],[958,3],[1026,2],[1074,2],[1113,2],[1124,2],[1134,2],[1145,3],[1172,2],[1183,2],[1193,2],[1203,3],[1225,2],[1235,2],[1245,2],[1255,3],[1278,2],[1289,2],[1300,2],[1310,3],[1684,2],[1695,2],[1718,2],[1728,2],[1755,2],[1765,2],[1791,2],[1802,2],[1829,2],[1961,3],[2092,2],[2126,3],[2142,1],[2210,2],[2639,1],[2679,2],[2701,1],[2741,2],[2871,3],[3507,2],[3517,3],[3703,3],[3740,2],[5229,2],[5239,3],[5466,3],[5534,2],[5582,2],[5638,1],[5660,1],[5681,1],[5703,1],[5741,1],[5763,1],[5784,1],[5805,1],[5838,1],[5859,1],[5880,1],[5901,1],[5935,1],[5957,1],[5979,1],[6000,1],[6612,1],[6634,1],[6669,1],[6690,1],[6726,1],[6747,1],[6784,1],[6806,1],[6968,1],[7063,3],[7079,1],[7142,2],[7185,3],[8058,3]]},"51":{"position":[[931,2],[1661,2],[1758,2],[1858,2],[1923,2],[2515,2]]},"53":{"position":[[534,2],[567,2]]},"55":{"position":[[789,2],[826,2]]},"57":{"position":[[1035,2],[1069,2],[1710,2],[1744,2]]},"59":{"position":[[795,2],[956,2]]},"61":{"position":[[612,2],[645,2]]},"63":{"position":[[1154,2],[1322,1],[1337,1],[1357,2],[1690,2],[1733,2],[2074,2]]},"67":{"position":[[596,2],[633,2],[728,2],[770,2]]},"69":{"position":[[953,2],[1110,2],[1155,2],[1176,2],[1557,2],[1600,2]]},"73":{"position":[[1007,2],[1171,1],[1190,1],[1210,2],[1542,2],[1585,3],[1919,2]]},"75":{"position":[[395,2],[428,2]]},"77":{"position":[[411,2],[445,2]]},"81":{"position":[[1264,3],[1299,1]]},"85":{"position":[[903,3],[938,1]]},"87":{"position":[[442,2],[564,2]]},"89":{"position":[[3461,1],[3585,2],[3683,4]]},"91":{"position":[[466,2],[489,3]]},"93":{"position":[[472,2],[630,2],[658,2],[1155,2],[1182,2],[1400,2],[1937,2],[2185,1]]},"99":{"position":[[664,2],[696,3],[1278,4],[1767,5],[1806,3]]},"101":{"position":[[436,2],[636,2]]},"103":{"position":[[276,2],[306,2],[435,2],[472,2],[1803,2],[1835,3]]},"105":{"position":[[334,2],[367,2],[594,2],[2175,2]]},"109":{"position":[[779,1],[1402,1],[1451,1],[1547,1],[1574,3],[1741,1],[1770,3]]},"111":{"position":[[1384,2],[1403,2]]},"113":{"position":[[491,1],[631,1],[1132,1],[1283,1],[1961,1]]},"115":{"position":[[704,2],[729,3],[1071,2],[1125,2]]},"117":{"position":[[293,2],[323,2],[423,2],[460,2],[1106,2],[1139,2]]},"121":{"position":[[291,2],[851,2]]},"123":{"position":[[288,2],[414,2],[463,2],[469,2]]},"125":{"position":[[288,2],[414,2],[463,2],[469,2],[647,2],[767,2],[816,4]]},"127":{"position":[[308,2],[434,2],[483,2],[489,2],[1385,3]]},"129":{"position":[[307,2],[433,2],[482,2],[488,2],[1197,4],[1615,5],[1654,3],[3032,2],[3066,3]]},"131":{"position":[[1433,3],[1497,3]]},"133":{"position":[[277,2],[397,3]]},"141":{"position":[[277,2]]},"143":{"position":[[277,2],[537,3]]},"145":{"position":[[288,2],[414,2],[463,2],[469,2]]},"147":{"position":[[774,2],[811,2],[906,2],[948,2]]},"149":{"position":[[732,2],[764,2],[976,2],[1008,2]]},"153":{"position":[[789,2],[821,2]]},"155":{"position":[[397,2],[430,2]]},"157":{"position":[[557,2],[594,2]]},"159":{"position":[[583,1],[631,1]]},"161":{"position":[[450,2],[502,2]]},"175":{"position":[[467,3]]},"179":{"position":[[640,1],[1329,1],[1343,1]]}}}],["2./length(uv.y*500",{"_index":2334,"t":{"127":{"position":[[3907,19]]}}}],["2.1",{"_index":2646,"t":{"167":{"position":[[923,4]]}}}],["2.2",{"_index":1828,"t":{"99":{"position":[[1887,4]]},"129":{"position":[[1735,4]]}}}],["2.5",{"_index":2054,"t":{"109":{"position":[[1754,3]]}}}],["20",{"_index":247,"t":{"41":{"position":[[373,3]]},"51":{"position":[[286,3],[1326,3]]},"63":{"position":[[442,3]]},"73":{"position":[[194,3]]},"93":{"position":[[1326,3]]},"101":{"position":[[1022,2],[1060,2]]},"105":{"position":[[413,3]]},"109":{"position":[[1686,3],[2260,3]]},"111":{"position":[[1964,3],[1993,4],[2035,3],[2064,4],[2106,3],[2134,4],[2177,3],[2205,4],[2248,3],[2277,4]]},"117":{"position":[[1845,3],[1874,4],[1916,3],[1945,4],[1987,3],[2015,4],[2058,3],[2086,4]]},"135":{"position":[[748,3]]},"137":{"position":[[183,3],[226,3],[809,3]]},"177":{"position":[[1414,3]]},"179":{"position":[[1691,3]]}}}],["200",{"_index":1224,"t":{"79":{"position":[[327,5],[649,5],[1192,5],[1368,4],[1782,5],[1893,4]]},"87":{"position":[[910,4],[915,4]]},"89":{"position":[[3736,4]]},"97":{"position":[[1259,4],[1284,5]]},"101":{"position":[[462,4],[641,4]]},"109":{"position":[[420,5],[447,5],[658,4],[663,4],[668,4]]},"111":{"position":[[859,5],[1128,4]]},"127":{"position":[[265,4],[281,4],[286,4],[294,5],[1742,4],[1755,3],[2548,4],[2561,3],[3187,4],[3200,3],[4191,4],[4204,3]]},"163":{"position":[[417,4]]},"169":{"position":[[946,5]]},"177":{"position":[[1514,4],[1550,4]]}}}],["200.0*sin(uv.x+time)*amplitude*1.6",{"_index":2335,"t":{"127":{"position":[[3929,36]]}}}],["2000",{"_index":859,"t":{"51":{"position":[[761,4],[801,5],[2037,5],[2050,6]]}}}],["220",{"_index":2084,"t":{"111":{"position":[[456,5],[482,5]]},"127":{"position":[[5085,5],[5158,5]]},"167":{"position":[[771,4]]}}}],["240",{"_index":2019,"t":{"109":{"position":[[673,4],[1200,4]]}}}],["25",{"_index":391,"t":{"45":{"position":[[651,3]]},"67":{"position":[[370,3]]},"79":{"position":[[2455,3]]},"103":{"position":[[1375,3]]},"105":{"position":[[1764,3]]},"109":{"position":[[1989,4],[2027,4],[2065,4]]},"135":{"position":[[220,3]]},"147":{"position":[[548,3]]},"175":{"position":[[314,3]]}}}],["25.0",{"_index":1746,"t":{"97":{"position":[[918,5]]}}}],["250",{"_index":2101,"t":{"111":{"position":[[1012,4]]},"113":{"position":[[930,4],[1079,4],[1229,4],[1380,4]]}}}],["2500",{"_index":558,"t":{"47":{"position":[[3382,4]]}}}],["255",{"_index":2704,"t":{"171":{"position":[[661,4],[666,4]]},"173":{"position":[[863,4],[868,4]]}}}],["256",{"_index":2695,"t":{"171":{"position":[[401,4]]}}}],["26",{"_index":2186,"t":{"117":{"position":[[1495,3]]},"151":{"position":[[317,3],[819,2]]}}}],["270",{"_index":2048,"t":{"109":{"position":[[1538,4]]}}}],["272d37",{"_index":1615,"t":{"89":{"position":[[4810,10],[5540,10]]},"93":{"position":[[1283,10]]}}}],["2d",{"_index":878,"t":{"51":{"position":[[1507,2]]}}}],["3",{"_index":131,"t":{"39":{"position":[[2255,2]]},"41":{"position":[[2277,1],[2336,1]]},"47":{"position":[[1745,2],[2037,1],[3317,3]]},"49":{"position":[[2691,2],[2753,2],[3128,2]]},"99":{"position":[[1811,4]]},"103":{"position":[[1702,2],[1798,2]]},"109":{"position":[[1560,1],[1614,1]]},"113":{"position":[[2098,1]]},"121":{"position":[[312,2],[900,2]]},"123":{"position":[[472,3]]},"125":{"position":[[472,4]]},"127":{"position":[[492,4]]},"129":{"position":[[491,4],[1659,4]]},"141":{"position":[[417,3]]},"143":{"position":[[417,2]]},"145":{"position":[[472,4]]}}}],["3./length(uv.y*400",{"_index":2332,"t":{"127":{"position":[[3826,19]]}}}],["30",{"_index":187,"t":{"39":{"position":[[3559,2],[3601,4],[3626,2],[3669,4]]},"79":{"position":[[839,3],[2078,3]]},"87":{"position":[[1570,3],[1597,3]]},"107":{"position":[[859,3]]},"111":{"position":[[1213,4],[1558,3]]},"135":{"position":[[683,3]]},"137":{"position":[[744,3]]},"153":{"position":[[322,3]]},"161":{"position":[[343,3]]},"175":{"position":[[385,3],[419,3]]}}}],["300",{"_index":403,"t":{"45":{"position":[[860,4]]},"65":{"position":[[514,4],[964,4]]},"89":{"position":[[3478,4],[3892,4],[3951,4]]},"111":{"position":[[706,5],[886,5],[1239,5]]},"119":{"position":[[665,5]]},"121":{"position":[[1486,5]]},"123":{"position":[[1109,5]]},"125":{"position":[[1502,5]]},"129":{"position":[[2824,5]]},"131":{"position":[[1720,5]]},"133":{"position":[[1405,5]]},"135":{"position":[[407,4]]},"137":{"position":[[492,4]]},"139":{"position":[[666,5]]},"141":{"position":[[963,5]]},"143":{"position":[[1385,5]]},"145":{"position":[[1252,5]]},"165":{"position":[[1020,4]]},"167":{"position":[[1253,4]]},"175":{"position":[[544,4]]},"177":{"position":[[637,4],[810,4]]}}}],["310",{"_index":2194,"t":{"119":{"position":[[451,4]]}}}],["315",{"_index":1876,"t":{"101":{"position":[[441,4]]}}}],["32",{"_index":2168,"t":{"115":{"position":[[212,3]]}}}],["320",{"_index":1651,"t":{"93":{"position":[[338,4]]},"109":{"position":[[992,4],[1232,4]]},"111":{"position":[[733,5]]}}}],["325",{"_index":1322,"t":{"81":{"position":[[1079,4]]},"85":{"position":[[743,4]]}}}],["35",{"_index":1286,"t":{"79":{"position":[[2564,3]]}}}],["350",{"_index":2060,"t":{"109":{"position":[[1915,4],[2352,4]]},"111":{"position":[[760,5]]},"113":{"position":[[1516,5],[1543,5],[1596,5]]}}}],["36",{"_index":496,"t":{"47":{"position":[[2159,3]]},"167":{"position":[[338,3]]}}}],["360",{"_index":1178,"t":{"73":{"position":[[952,3]]}}}],["370",{"_index":2149,"t":{"113":{"position":[[1915,4],[2257,4]]}}}],["375",{"_index":2063,"t":{"109":{"position":[[1984,4]]}}}],["3].map((i",{"_index":1578,"t":{"89":{"position":[[3588,10]]}}}],["3d",{"_index":877,"t":{"51":{"position":[[1492,2]]}}}],["4",{"_index":462,"t":{"47":{"position":[[1203,2],[2347,2]]},"49":{"position":[[1627,2],[4146,2],[6530,2],[6548,1]]},"65":{"position":[[767,3]]},"73":{"position":[[1175,1]]},"93":{"position":[[428,3],[1994,3],[2014,3]]},"103":{"position":[[1868,3]]},"113":{"position":[[2194,2]]},"121":{"position":[[497,1],[616,1],[648,1],[949,2]]},"149":{"position":[[532,2]]},"167":{"position":[[526,2],[944,2]]},"179":{"position":[[1123,1],[1443,3],[1479,1]]}}}],["4./length(uv.y*300",{"_index":2330,"t":{"127":{"position":[[3747,19]]}}}],["40",{"_index":396,"t":{"45":{"position":[[745,3],[779,3]]},"67":{"position":[[464,3],[498,3]]},"93":{"position":[[1413,3]]},"135":{"position":[[393,3]]},"147":{"position":[[642,3],[676,3]]}}}],["400",{"_index":401,"t":{"45":{"position":[[836,4]]},"65":{"position":[[490,4],[927,4]]},"87":{"position":[[704,4],[709,4],[769,4]]},"113":{"position":[[1570,5]]},"131":{"position":[[1777,5]]},"133":{"position":[[1496,5]]},"137":{"position":[[468,4]]},"177":{"position":[[615,4],[786,4],[1508,3],[1544,3]]}}}],["410",{"_index":1321,"t":{"81":{"position":[[1074,4]]},"85":{"position":[[738,4]]}}}],["420",{"_index":2053,"t":{"109":{"position":[[1732,4]]},"113":{"position":[[2277,4]]}}}],["425",{"_index":2065,"t":{"109":{"position":[[2022,4]]}}}],["430",{"_index":2363,"t":{"127":{"position":[[5122,5]]}}}],["440",{"_index":517,"t":{"47":{"position":[[2434,4]]},"113":{"position":[[1773,4]]},"167":{"position":[[613,4]]}}}],["445",{"_index":1325,"t":{"81":{"position":[[1099,4]]},"85":{"position":[[763,4]]}}}],["45",{"_index":1244,"t":{"79":{"position":[[848,3],[2087,3]]},"135":{"position":[[177,3]]}}}],["450",{"_index":2155,"t":{"113":{"position":[[2189,4]]},"165":{"position":[[1035,4]]},"175":{"position":[[665,4]]}}}],["459",{"_index":2452,"t":{"137":{"position":[[399,4]]}}}],["460",{"_index":2158,"t":{"113":{"position":[[2267,4]]}}}],["465",{"_index":1323,"t":{"81":{"position":[[1089,4]]},"85":{"position":[[753,4]]}}}],["475",{"_index":2067,"t":{"109":{"position":[[2060,4]]}}}],["480",{"_index":2094,"t":{"111":{"position":[[800,4]]},"167":{"position":[[1271,4]]}}}],["4a1850",{"_index":505,"t":{"47":{"position":[[2254,10]]},"167":{"position":[[433,10]]}}}],["5",{"_index":49,"t":{"39":{"position":[[492,2]]},"45":{"position":[[740,2],[774,2]]},"47":{"position":[[883,2],[1840,3],[2282,2],[3358,1]]},"49":{"position":[[4880,2],[7308,2]]},"51":{"position":[[369,2],[1076,1]]},"67":{"position":[[459,2],[493,2]]},"81":{"position":[[1127,2]]},"85":{"position":[[791,2]]},"113":{"position":[[1920,2]]},"121":{"position":[[267,2]]},"147":{"position":[[637,2],[671,2]]},"167":{"position":[[461,2]]},"175":{"position":[[380,2],[414,2]]},"179":{"position":[[1164,1]]}}}],["5./length(uv.y*200",{"_index":2326,"t":{"127":{"position":[[3669,19]]}}}],["50",{"_index":311,"t":{"43":{"position":[[249,4]]},"49":{"position":[[3792,3],[7726,4],[8150,5],[8193,5],[8236,5],[8279,5],[8322,5]]},"51":{"position":[[967,2]]},"79":{"position":[[798,3],[867,3],[2037,3],[2106,3]]},"109":{"position":[[502,3],[528,3],[704,3],[728,3],[1389,3]]},"111":{"position":[[377,4],[403,4],[508,4]]},"113":{"position":[[278,3],[430,3],[583,3],[722,3],[935,4],[1084,4],[1234,4],[1389,4],[1923,4],[2060,4],[2197,4]]},"139":{"position":[[204,3],[214,3]]},"141":{"position":[[226,3],[244,3]]},"151":{"position":[[451,3]]},"161":{"position":[[375,4]]},"163":{"position":[[394,3]]},"165":{"position":[[649,2],[752,2],[874,2],[987,2]]},"167":{"position":[[218,3],[754,3]]},"169":{"position":[[879,3]]},"171":{"position":[[1043,3]]},"173":{"position":[[1902,4]]}}}],["50.0*sin",{"_index":2327,"t":{"127":{"position":[[3691,9]]}}}],["500",{"_index":1585,"t":{"89":{"position":[[3754,4]]},"171":{"position":[[1022,4]]}}}],["5000",{"_index":872,"t":{"51":{"position":[[1144,6]]}}}],["510",{"_index":2152,"t":{"113":{"position":[[2052,4]]}}}],["520",{"_index":2163,"t":{"113":{"position":[[2297,5]]}}}],["55",{"_index":1239,"t":{"79":{"position":[[807,3],[859,3],[2046,3],[2098,3]]},"163":{"position":[[350,3]]}}}],["550",{"_index":1624,"t":{"89":{"position":[[5015,4]]},"119":{"position":[[621,5]]}}}],["570",{"_index":2161,"t":{"113":{"position":[[2287,4]]}}}],["590",{"_index":2162,"t":{"113":{"position":[[2292,4]]}}}],["5x5",{"_index":1113,"t":{"67":{"position":[[330,3]]},"147":{"position":[[508,3]]}}}],["6",{"_index":513,"t":{"47":{"position":[[2377,2],[2400,2]]},"49":{"position":[[8035,2]]},"167":{"position":[[556,2],[579,2]]}}}],["60",{"_index":665,"t":{"49":{"position":[[934,3],[2847,3],[3679,3]]},"79":{"position":[[863,3],[2102,3]]},"99":{"position":[[3038,3]]},"107":{"position":[[892,3]]},"109":{"position":[[1543,3],[1737,3]]},"127":{"position":[[5488,3]]},"129":{"position":[[2954,3]]},"167":{"position":[[1048,3]]},"175":{"position":[[681,3],[1039,3]]}}}],["600",{"_index":559,"t":{"47":{"position":[[3393,3],[3407,4]]},"65":{"position":[[958,3]]},"79":{"position":[[71,4]]},"89":{"position":[[3494,4]]},"111":{"position":[[1397,3],[1645,5],[1712,4],[1754,4],[1796,4]]},"113":{"position":[[2251,5]]}}}],["640",{"_index":2256,"t":{"127":{"position":[[76,4]]}}}],["655",{"_index":1320,"t":{"81":{"position":[[1065,4]]},"85":{"position":[[729,4]]}}}],["685",{"_index":1324,"t":{"81":{"position":[[1094,4]]},"85":{"position":[[758,4]]}}}],["7",{"_index":703,"t":{"49":{"position":[[2434,2]]},"113":{"position":[[2057,2]]}}}],["70",{"_index":2563,"t":{"161":{"position":[[359,3]]}}}],["700",{"_index":2157,"t":{"113":{"position":[[2262,4]]}}}],["730",{"_index":2160,"t":{"113":{"position":[[2282,4]]}}}],["75",{"_index":1254,"t":{"79":{"position":[[1364,3],[1889,3]]},"81":{"position":[[1061,3],[1070,3]]},"85":{"position":[[725,3],[734,3]]}}}],["780",{"_index":2159,"t":{"113":{"position":[[2272,4]]}}}],["8",{"_index":574,"t":{"47":{"position":[[3922,2]]},"91":{"position":[[411,2]]},"93":{"position":[[599,3]]},"99":{"position":[[2392,3]]},"129":{"position":[[2240,3]]},"171":{"position":[[1004,2]]},"173":{"position":[[2066,2]]},"179":{"position":[[1083,1],[1321,1],[1338,2]]}}}],["80",{"_index":1238,"t":{"79":{"position":[[786,3],[830,3],[2025,3],[2069,3]]},"87":{"position":[[548,3]]},"99":{"position":[[584,2]]},"113":{"position":[[1385,3]]},"121":{"position":[[818,3]]}}}],["800",{"_index":1092,"t":{"65":{"position":[[921,3]]},"111":{"position":[[1378,3],[1624,4],[1691,4],[1733,4],[1775,4]]}}}],["9",{"_index":1617,"t":{"89":{"position":[[4863,5]]}}}],["918",{"_index":2451,"t":{"137":{"position":[[177,3]]}}}],["95",{"_index":1241,"t":{"79":{"position":[[816,3],[852,3],[2055,3],[2091,3]]}}}],["999",{"_index":414,"t":{"45":{"position":[[1104,7]]}}}],["a.click",{"_index":387,"t":{"45":{"position":[[484,10]]}}}],["a.download",{"_index":384,"t":{"45":{"position":[[443,10]]}}}],["a.href",{"_index":386,"t":{"45":{"position":[[470,6]]}}}],["a.remove",{"_index":388,"t":{"45":{"position":[[495,11]]}}}],["a1",{"_index":639,"t":{"47":{"position":[[5531,2]]}}}],["a2",{"_index":638,"t":{"47":{"position":[[5515,3],[5546,2]]}}}],["aabb",{"_index":53,"t":{"39":{"position":[[522,4]]}}}],["above",{"_index":203,"t":{"39":{"position":[[4335,5]]},"161":{"position":[[896,5]]},"177":{"position":[[518,5]]}}}],["abs(cos(gl_fragcoord.y",{"_index":2400,"t":{"131":{"position":[[1455,23]]}}}],["abs(sin(gl_fragcoord.x",{"_index":2397,"t":{"131":{"position":[[1391,23]]}}}],["acceess",{"_index":2745,"t":{"173":{"position":[[1275,7]]}}}],["acceleration",{"_index":166,"t":{"39":{"position":[[2843,12],[2872,12],[3168,12],[4758,12],[4999,12],[5171,12]]}}}],["accessed",{"_index":1045,"t":{"63":{"position":[[1430,8]]},"69":{"position":[[1295,8]]},"73":{"position":[[1286,8]]}}}],["achieve",{"_index":1473,"t":{"89":{"position":[[504,7]]}}}],["acolor",{"_index":2463,"t":{"141":{"position":[[556,7],[671,7]]},"143":{"position":[[662,7],[830,7]]}}}],["active",{"_index":2662,"t":{"169":{"position":[[255,8]]}}}],["add",{"_index":233,"t":{"39":{"position":[[5628,3]]},"47":{"position":[[2079,3],[2680,3]]},"55":{"position":[[152,3]]},"59":{"position":[[152,3]]},"65":{"position":[[648,3]]},"79":{"position":[[2823,3]]},"81":{"position":[[329,3],[647,3],[1543,3],[1594,3]]},"83":{"position":[[1154,3]]},"85":{"position":[[311,3],[1638,3],[1689,3]]},"87":{"position":[[1252,3]]},"89":{"position":[[3350,3],[3762,3],[4194,3],[4341,3],[4518,3]]},"93":{"position":[[876,3],[1188,3]]},"95":{"position":[[832,3]]},"99":{"position":[[2590,3]]},"117":{"position":[[466,3]]},"127":{"position":[[5167,3]]},"161":{"position":[[602,3]]},"177":{"position":[[675,3]]}}}],["addattribute('acolor",{"_index":2462,"t":{"141":{"position":[[309,23]]},"143":{"position":[[309,23]]}}}],["addattribute('auvs",{"_index":2235,"t":{"123":{"position":[[320,21]]},"125":{"position":[[320,21],[679,21]]},"127":{"position":[[340,21]]},"129":{"position":[[339,21]]},"131":{"position":[[277,21]]},"133":{"position":[[309,21]]},"143":{"position":[[449,21]]},"145":{"position":[[320,21]]}}}],["addattribute('avertexposition",{"_index":2234,"t":{"123":{"position":[[163,32]]},"125":{"position":[[163,32],[515,32]]},"127":{"position":[[195,32]]},"129":{"position":[[182,32]]},"131":{"position":[[163,32]]},"133":{"position":[[163,32]]},"139":{"position":[[163,32]]},"141":{"position":[[163,32]]},"143":{"position":[[163,32]]},"145":{"position":[[163,32]]}}}],["addattribute('avpos",{"_index":2204,"t":{"121":{"position":[[163,22]]}}}],["addchild",{"_index":2771,"t":{"175":{"position":[[770,8]]}}}],["added",{"_index":1474,"t":{"89":{"position":[[540,5]]},"175":{"position":[[738,5]]}}}],["addeventlistener",{"_index":1482,"t":{"89":{"position":[[728,17]]}}}],["addindex([0",{"_index":2238,"t":{"123":{"position":[[446,13]]},"125":{"position":[[446,13],[799,13]]},"127":{"position":[[466,13]]},"129":{"position":[[465,13]]},"145":{"position":[[446,13]]}}}],["adjust",{"_index":2690,"t":{"171":{"position":[[315,6]]}}}],["advanced",{"_index":2719,"t":{"173":{"position":[[127,8]]}}}],["again",{"_index":1270,"t":{"79":{"position":[[1945,6]]},"111":{"position":[[584,5]]}}}],["aicol",{"_index":2214,"t":{"121":{"position":[[563,8],[1089,6],[1199,6]]}}}],["aipos",{"_index":2212,"t":{"121":{"position":[[441,8],[1067,6],[1278,6]]}}}],["ajax.googleapis.com/ajax/libs/webfont/1/webfont.js",{"_index":2672,"t":{"169":{"position":[[469,56]]}}}],["alien",{"_index":1088,"t":{"65":{"position":[[784,5],[819,5],[1346,5]]}}}],["alien.anchor.x",{"_index":1094,"t":{"65":{"position":[[969,14]]}}}],["alien.anchor.y",{"_index":1095,"t":{"65":{"position":[[991,14]]}}}],["alien.rotation",{"_index":1107,"t":{"65":{"position":[[1365,14]]}}}],["alien.tint",{"_index":1090,"t":{"65":{"position":[[856,10]]}}}],["alien.x",{"_index":1091,"t":{"65":{"position":[[895,7]]}}}],["alien.y",{"_index":1093,"t":{"65":{"position":[[932,7]]}}}],["aliencontainer",{"_index":1079,"t":{"65":{"position":[[432,14]]}}}],["aliencontainer.addchild(alien",{"_index":1097,"t":{"65":{"position":[[1033,31]]}}}],["aliencontainer.cacheasbitmap",{"_index":1104,"t":{"65":{"position":[[1181,28],[1212,30]]}}}],["aliencontainer.rotation",{"_index":1112,"t":{"65":{"position":[[1489,23]]}}}],["aliencontainer.scale.x",{"_index":1109,"t":{"65":{"position":[[1405,22]]}}}],["aliencontainer.scale.y",{"_index":1111,"t":{"65":{"position":[[1447,22]]}}}],["aliencontainer.x",{"_index":1080,"t":{"65":{"position":[[471,16]]}}}],["aliencontainer.y",{"_index":1081,"t":{"65":{"position":[[495,16]]}}}],["alienframes",{"_index":1072,"t":{"65":{"position":[[302,11]]}}}],["alienframes[i",{"_index":1087,"t":{"65":{"position":[[751,13]]}}}],["aliens",{"_index":1071,"t":{"65":{"position":[[270,6],[283,6],[663,6],[1288,6]]},"73":{"position":[[149,6],[162,6],[1250,6]]}}}],["aliens.length",{"_index":1181,"t":{"73":{"position":[[1687,14]]}}}],["aliens.push(alien",{"_index":1096,"t":{"65":{"position":[[1013,19]]}}}],["aliens.push(dude",{"_index":1180,"t":{"73":{"position":[[1301,18]]}}}],["aliens[i",{"_index":1106,"t":{"65":{"position":[[1354,10]]},"73":{"position":[[1722,10]]}}}],["align",{"_index":1668,"t":{"93":{"position":[[1330,6]]},"163":{"position":[[354,6]]},"169":{"position":[[898,6]]},"177":{"position":[[581,5]]},"179":{"position":[[1637,6]]}}}],["allow",{"_index":914,"t":{"55":{"position":[[320,5]]},"83":{"position":[[647,5]]}}}],["allowing",{"_index":76,"t":{"39":{"position":[[893,8]]}}}],["along",{"_index":832,"t":{"49":{"position":[[9220,5]]}}}],["alpha",{"_index":1130,"t":{"69":{"position":[[234,6]]},"89":{"position":[[3442,6]]},"91":{"position":[[368,6]]}}}],["alpha=0.5",{"_index":1753,"t":{"97":{"position":[[1041,9]]}}}],["alpha=0.7",{"_index":1751,"t":{"97":{"position":[[990,9]]}}}],["already",{"_index":936,"t":{"55":{"position":[[1008,7]]},"57":{"position":[[744,7],[1929,7]]}}}],["alternatively",{"_index":1208,"t":{"77":{"position":[[658,14]]}}}],["amount",{"_index":564,"t":{"47":{"position":[[3754,6],[5713,8],[5733,7]]},"115":{"position":[[188,6]]},"127":{"position":[[2038,7],[2360,7]]}}}],["amount+1",{"_index":2299,"t":{"127":{"position":[[2298,10]]}}}],["amplitude",{"_index":2321,"t":{"127":{"position":[[3445,10],[4028,10]]}}}],["anchor",{"_index":909,"t":{"53":{"position":[[422,6]]},"61":{"position":[[500,6]]},"69":{"position":[[569,6]]},"73":{"position":[[405,6]]},"75":{"position":[[283,6]]},"83":{"position":[[868,6]]},"153":{"position":[[737,7]]},"155":{"position":[[285,6]]},"157":{"position":[[437,6]]}}}],["angle",{"_index":205,"t":{"39":{"position":[[4359,5]]},"49":{"position":[[3749,5],[4045,6]]}}}],["anglestart",{"_index":722,"t":{"49":{"position":[[3713,10],[3765,11],[4033,11]]}}}],["angletomouse",{"_index":206,"t":{"39":{"position":[[4390,12]]}}}],["anim",{"_index":2527,"t":{"153":{"position":[[591,4]]}}}],["anim.anchor.set(0.5",{"_index":2533,"t":{"153":{"position":[[824,21]]}}}],["anim.animationspeed",{"_index":2534,"t":{"153":{"position":[[846,19]]}}}],["anim.play",{"_index":2535,"t":{"153":{"position":[[873,12]]}}}],["anim.rotation",{"_index":2537,"t":{"153":{"position":[[959,13]]}}}],["anim.x",{"_index":2531,"t":{"153":{"position":[[761,6]]}}}],["anim.y",{"_index":2532,"t":{"153":{"position":[[792,6]]}}}],["animate",{"_index":158,"t":{"39":{"position":[[2732,7]]},"41":{"position":[[1096,7]]},"47":{"position":[[3604,7],[4962,7]]},"49":{"position":[[8345,7]]},"51":{"position":[[1165,7]]},"67":{"position":[[787,7]]},"71":{"position":[[453,7]]},"95":{"position":[[925,7]]},"99":{"position":[[2939,7]]},"147":{"position":[[965,7]]},"153":{"position":[[915,7]]},"155":{"position":[[474,7]]}}}],["animatedsprite",{"_index":2484,"t":{"149":{"position":[[552,14],[823,14]]},"151":{"position":[[485,14]]},"153":{"position":[[515,14],[639,14]]}}}],["animating",{"_index":2434,"t":{"135":{"position":[[532,9]]},"149":{"position":[[1059,9]]},"151":{"position":[[870,9]]}}}],["animation",{"_index":2373,"t":{"127":{"position":[[5422,11]]},"129":{"position":[[2888,11]]},"145":{"position":[[1316,11]]}}}],["antialias",{"_index":1403,"t":{"87":{"position":[[144,10]]},"89":{"position":[[283,10]]},"91":{"position":[[161,10]]},"93":{"position":[[68,10]]},"109":{"position":[[68,10]]},"111":{"position":[[68,10]]},"113":{"position":[[100,10]]},"117":{"position":[[68,10]]},"171":{"position":[[206,10]]},"173":{"position":[[1552,10]]}}}],["anymore",{"_index":2585,"t":{"161":{"position":[[1123,7]]}}}],["apart",{"_index":79,"t":{"39":{"position":[[947,5]]}}}],["api",{"_index":2686,"t":{"171":{"position":[[69,3],[551,3]]},"173":{"position":[[63,3],[87,3],[1258,4]]}}}],["app",{"_index":26,"t":{"39":{"position":[[215,3]]},"41":{"position":[[39,3]]},"43":{"position":[[39,3]]},"45":{"position":[[39,3]]},"47":{"position":[[39,3]]},"49":{"position":[[39,3]]},"51":{"position":[[39,3]]},"53":{"position":[[39,3]]},"55":{"position":[[39,3]]},"57":{"position":[[39,3]]},"59":{"position":[[39,3]]},"61":{"position":[[39,3]]},"63":{"position":[[39,3]]},"65":{"position":[[39,3]]},"67":{"position":[[39,3]]},"69":{"position":[[39,3]]},"71":{"position":[[39,3]]},"73":{"position":[[39,3]]},"75":{"position":[[39,3]]},"77":{"position":[[39,3]]},"79":{"position":[[39,3]]},"81":{"position":[[39,3]]},"83":{"position":[[39,3]]},"85":{"position":[[39,3]]},"87":{"position":[[115,3]]},"89":{"position":[[254,3]]},"91":{"position":[[132,3]]},"93":{"position":[[39,3]]},"95":{"position":[[39,3]]},"97":{"position":[[107,3]]},"99":{"position":[[311,3]]},"101":{"position":[[39,3]]},"103":{"position":[[39,3]]},"105":{"position":[[39,3]]},"107":{"position":[[39,3]]},"109":{"position":[[39,3]]},"111":{"position":[[39,3],[1482,4]]},"113":{"position":[[71,3]]},"115":{"position":[[39,3]]},"117":{"position":[[39,3]]},"119":{"position":[[39,3]]},"121":{"position":[[39,3]]},"123":{"position":[[39,3]]},"125":{"position":[[39,3]]},"127":{"position":[[39,3]]},"129":{"position":[[39,3]]},"131":{"position":[[39,3]]},"133":{"position":[[39,3]]},"135":{"position":[[39,3]]},"137":{"position":[[39,3]]},"139":{"position":[[39,3]]},"141":{"position":[[39,3]]},"143":{"position":[[39,3]]},"145":{"position":[[39,3]]},"147":{"position":[[214,3]]},"149":{"position":[[39,3]]},"151":{"position":[[39,3]]},"153":{"position":[[39,3]]},"155":{"position":[[39,3]]},"157":{"position":[[39,3]]},"159":{"position":[[39,3]]},"161":{"position":[[39,3]]},"163":{"position":[[39,3]]},"165":{"position":[[39,3]]},"167":{"position":[[39,3]]},"169":{"position":[[39,3]]},"171":{"position":[[177,3]]},"173":{"position":[[1523,3]]},"175":{"position":[[39,3]]},"177":{"position":[[39,3]]},"179":{"position":[[39,3]]}}}],["app.renderer",{"_index":1134,"t":{"69":{"position":[[365,12]]}}}],["app.renderer.events.cursorstyles.default",{"_index":1308,"t":{"81":{"position":[[354,40]]}}}],["app.renderer.events.cursorstyles.hover",{"_index":1309,"t":{"81":{"position":[[410,38]]}}}],["app.renderer.extract.base64(bunnycontainer",{"_index":381,"t":{"45":{"position":[[334,44]]}}}],["app.renderer.generatetexture(circle",{"_index":2176,"t":{"115":{"position":[[749,36]]}}}],["app.renderer.render(app.stage",{"_index":2825,"t":{"177":{"position":[[2180,30]]}}}],["app.renderer.render(brush",{"_index":347,"t":{"43":{"position":[[1325,26]]}}}],["app.renderer.render(container",{"_index":2778,"t":{"175":{"position":[[1066,30]]}}}],["app.renderer.render(gridquad",{"_index":2381,"t":{"127":{"position":[[5735,29]]}}}],["app.renderer.render(line",{"_index":367,"t":{"43":{"position":[[1692,25]]}}}],["app.renderer.render(noisequad",{"_index":2383,"t":{"127":{"position":[[5865,30]]}}}],["app.renderer.render(ripplequad",{"_index":2382,"t":{"127":{"position":[[5798,31]]}}}],["app.renderer.render(wavequad",{"_index":2384,"t":{"127":{"position":[[5930,29]]}}}],["app.renderer.screen",{"_index":1864,"t":{"99":{"position":[[2874,20]]}}}],["app.renderer.screen.height",{"_index":884,"t":{"51":{"position":[[1729,26],[1894,26]]},"99":{"position":[[667,26]]}}}],["app.renderer.screen.width",{"_index":882,"t":{"51":{"position":[[1605,25],[1633,25],[1701,25],[1830,25],[2422,26]]}}}],["app.screen",{"_index":150,"t":{"39":{"position":[[2599,11]]},"41":{"position":[[910,11]]},"43":{"position":[[564,11],[1039,11]]},"45":{"position":[[574,11]]},"83":{"position":[[1278,11]]},"87":{"position":[[1050,11]]},"91":{"position":[[642,11]]},"93":{"position":[[287,11]]},"97":{"position":[[1451,11]]},"111":{"position":[[195,11]]},"115":{"position":[[968,11]]}}}],["app.screen.height",{"_index":124,"t":{"39":{"position":[[2078,18],[3369,18],[3648,18],[3731,18],[3887,17]]},"47":{"position":[[1710,18],[2577,17]]},"53":{"position":[[547,17]]},"55":{"position":[[806,17]]},"57":{"position":[[1049,17],[1724,17]]},"59":{"position":[[775,17],[936,17]]},"61":{"position":[[625,17]]},"63":{"position":[[297,18],[895,19],[1693,17]]},"67":{"position":[[613,17]]},"69":{"position":[[813,18],[1560,17]]},"73":{"position":[[726,18],[1545,17]]},"75":{"position":[[408,17]]},"77":{"position":[[425,17]]},"81":{"position":[[625,18]]},"83":{"position":[[466,19]]},"85":{"position":[[289,18]]},"89":{"position":[[3974,19]]},"91":{"position":[[469,17]]},"93":{"position":[[169,18]]},"95":{"position":[[289,18]]},"97":{"position":[[357,18],[1264,17]]},"101":{"position":[[256,18]]},"103":{"position":[[286,17],[452,17],[1355,17]]},"105":{"position":[[337,17],[1515,18]]},"115":{"position":[[439,18]]},"117":{"position":[[303,17],[440,17],[1119,17],[1475,17]]},"147":{"position":[[791,17]]},"149":{"position":[[744,17],[988,17]]},"151":{"position":[[640,18]]},"153":{"position":[[801,17]]},"155":{"position":[[410,17]]},"157":{"position":[[574,17]]},"159":{"position":[[446,18]]},"161":{"position":[[464,18],[1459,18]]},"177":{"position":[[179,18]]},"179":{"position":[[1063,17],[1144,17]]}}}],["app.screen.width",{"_index":179,"t":{"39":{"position":[[3240,17],[3581,17],[3829,17]]},"47":{"position":[[1917,17],[2049,17]]},"53":{"position":[[515,16]]},"55":{"position":[[770,16]]},"57":{"position":[[1016,16],[1691,16]]},"59":{"position":[[739,16],[903,16]]},"61":{"position":[[593,16]]},"63":{"position":[[259,17],[840,18],[1651,16]]},"67":{"position":[[577,16]]},"69":{"position":[[770,17],[1518,16]]},"73":{"position":[[683,17],[1503,16]]},"75":{"position":[[376,16]]},"77":{"position":[[392,16]]},"81":{"position":[[587,17]]},"83":{"position":[[420,18]]},"85":{"position":[[251,17]]},"89":{"position":[[3956,17]]},"93":{"position":[[207,17]]},"95":{"position":[[251,17]]},"97":{"position":[[319,17],[1240,16]]},"101":{"position":[[226,17],[416,17],[616,17]]},"103":{"position":[[257,16],[416,16]]},"105":{"position":[[305,16],[1485,17]]},"115":{"position":[[401,17]]},"117":{"position":[[274,16],[404,16],[1087,16]]},"147":{"position":[[755,16]]},"149":{"position":[[698,17],[942,17]]},"151":{"position":[[592,17]]},"153":{"position":[[770,16]]},"155":{"position":[[378,16]]},"157":{"position":[[538,16]]},"159":{"position":[[428,17]]},"161":{"position":[[414,17],[1420,17]]},"177":{"position":[[153,17]]},"179":{"position":[[1020,16],[1104,16]]}}}],["app.stage",{"_index":334,"t":{"43":{"position":[[1051,9]]},"87":{"position":[[1673,11]]},"105":{"position":[[1574,9]]}}}],["app.stage.addchild",{"_index":333,"t":{"43":{"position":[[916,19]]},"79":{"position":[[2836,19]]}}}],["app.stage.addchild(aliencontainer",{"_index":1083,"t":{"65":{"position":[[581,35]]}}}],["app.stage.addchild(anim",{"_index":2536,"t":{"153":{"position":[[886,25]]}}}],["app.stage.addchild(arc",{"_index":2043,"t":{"109":{"position":[[1416,24]]}}}],["app.stage.addchild(arc2",{"_index":2049,"t":{"109":{"position":[[1578,25]]}}}],["app.stage.addchild(arc3",{"_index":2055,"t":{"109":{"position":[[1774,25]]}}}],["app.stage.addchild(background",{"_index":1012,"t":{"63":{"position":[[316,31]]},"81":{"position":[[674,31]]},"85":{"position":[[338,31]]},"95":{"position":[[308,31]]},"97":{"position":[[376,31]]},"115":{"position":[[350,31]]}}}],["app.stage.addchild(basictext",{"_index":2634,"t":{"167":{"position":[[241,30]]}}}],["app.stage.addchild(beatifulrect",{"_index":2076,"t":{"109":{"position":[[2392,33]]}}}],["app.stage.addchild(bezier",{"_index":2022,"t":{"109":{"position":[[732,27]]}}}],["app.stage.addchild(bezier2",{"_index":2038,"t":{"109":{"position":[[1263,28]]}}}],["app.stage.addchild(bg",{"_index":1872,"t":{"101":{"position":[[275,23]]},"117":{"position":[[326,23]]},"119":{"position":[[229,23]]}}}],["app.stage.addchild(bitmapfonttext",{"_index":2607,"t":{"163":{"position":[[422,35]]}}}],["app.stage.addchild(bottom",{"_index":540,"t":{"47":{"position":[[2935,27]]}}}],["app.stage.addchild(bunny",{"_index":910,"t":{"53":{"position":[[570,26]]},"61":{"position":[[648,26]]},"75":{"position":[[431,26]]},"83":{"position":[[1174,26]]},"155":{"position":[[433,26]]}}}],["app.stage.addchild(button",{"_index":1338,"t":{"81":{"position":[[1563,27]]},"85":{"position":[[1658,27]]},"161":{"position":[[619,27]]}}}],["app.stage.addchild(character",{"_index":933,"t":{"55":{"position":[[891,30]]},"157":{"position":[[597,30]]}}}],["app.stage.addchild(combinequad",{"_index":2372,"t":{"127":{"position":[[5376,32]]}}}],["app.stage.addchild(container",{"_index":649,"t":{"49":{"position":[[388,30],[2366,30],[3280,30],[4321,30],[7499,30]]},"67":{"position":[[189,30]]},"97":{"position":[[1290,30]]},"103":{"position":[[999,30]]},"105":{"position":[[198,30]]},"107":{"position":[[198,30]]},"117":{"position":[[953,30]]},"147":{"position":[[367,30]]},"175":{"position":[[189,30]]}}}],["app.stage.addchild(coordinates",{"_index":1625,"t":{"89":{"position":[[5020,32]]}}}],["app.stage.addchild(description",{"_index":1638,"t":{"89":{"position":[[5592,32]]}}}],["app.stage.addchild(displacementsprite",{"_index":1953,"t":{"105":{"position":[[1065,39]]},"107":{"position":[[753,39]]}}}],["app.stage.addchild(dude",{"_index":1048,"t":{"63":{"position":[[1467,25]]},"73":{"position":[[1320,25]]},"179":{"position":[[1487,25]]}}}],["app.stage.addchild(egg",{"_index":1005,"t":{"59":{"position":[[959,24]]}}}],["app.stage.addchild(explosion",{"_index":2514,"t":{"151":{"position":[[828,30]]}}}],["app.stage.addchild(fast",{"_index":2500,"t":{"149":{"position":[[1024,25]]}}}],["app.stage.addchild(flower",{"_index":998,"t":{"59":{"position":[[798,27]]}}}],["app.stage.addchild(focus",{"_index":2178,"t":{"115":{"position":[[864,26]]}}}],["app.stage.addchild(g",{"_index":2433,"t":{"135":{"position":[[500,22]]}}}],["app.stage.addchild(goback",{"_index":979,"t":{"57":{"position":[[1747,27]]}}}],["app.stage.addchild(gonext",{"_index":960,"t":{"57":{"position":[[1072,27]]}}}],["app.stage.addchild(graphics",{"_index":2109,"t":{"111":{"position":[[1245,29]]},"113":{"position":[[2407,29]]}}}],["app.stage.addchild(gridcontainer",{"_index":2368,"t":{"127":{"position":[[5233,34]]}}}],["app.stage.addchild(help",{"_index":1918,"t":{"103":{"position":[[1392,25]]},"117":{"position":[[1512,25]]}}}],["app.stage.addchild(littledudes",{"_index":1878,"t":{"101":{"position":[[467,32]]}}}],["app.stage.addchild(littlerobot",{"_index":1883,"t":{"101":{"position":[[667,32]]}}}],["app.stage.addchild(mask",{"_index":2198,"t":{"119":{"position":[[489,24]]}}}],["app.stage.addchild(new",{"_index":1405,"t":{"87":{"position":[[239,22],[478,22],[635,22]]},"89":{"position":[[3310,22]]},"91":{"position":[[278,22]]}}}],["app.stage.addchild(noisecontainer",{"_index":2370,"t":{"127":{"position":[[5305,35]]}}}],["app.stage.addchild(outputsprite",{"_index":2788,"t":{"177":{"position":[[688,33]]}}}],["app.stage.addchild(pixi.sprite.from('https://pixijs.com/assets/bunny.png",{"_index":1665,"t":{"93":{"position":[[948,76]]}}}],["app.stage.addchild(plane",{"_index":1162,"t":{"71":{"position":[[311,26]]}}}],["app.stage.addchild(quad",{"_index":2250,"t":{"123":{"position":[[1134,25]]},"125":{"position":[[1527,25]]},"129":{"position":[[2849,25]]},"145":{"position":[[1277,25]]}}}],["app.stage.addchild(realpath",{"_index":2015,"t":{"109":{"position":[[532,29]]}}}],["app.stage.addchild(realpath2",{"_index":2031,"t":{"109":{"position":[[1025,30]]}}}],["app.stage.addchild(rectandhole",{"_index":2070,"t":{"109":{"position":[[2116,32]]}}}],["app.stage.addchild(redsquare",{"_index":235,"t":{"39":{"position":[[5641,29]]}}}],["app.stage.addchild(reelcontainer",{"_index":480,"t":{"47":{"position":[[1604,34]]}}}],["app.stage.addchild(richtext",{"_index":2643,"t":{"167":{"position":[[776,29]]}}}],["app.stage.addchild(ring",{"_index":1961,"t":{"105":{"position":[[1377,25]]}}}],["app.stage.addchild(ripplecontainer",{"_index":2369,"t":{"127":{"position":[[5268,36]]}}}],["app.stage.addchild(rope",{"_index":260,"t":{"41":{"position":[[806,25]]}}}],["app.stage.addchild(screenshottext",{"_index":423,"t":{"45":{"position":[[1325,34]]}}}],["app.stage.addchild(skewtext",{"_index":2656,"t":{"167":{"position":[[1276,29]]}}}],["app.stage.addchild(slider",{"_index":1662,"t":{"93":{"position":[[820,27]]}}}],["app.stage.addchild(slow",{"_index":2493,"t":{"149":{"position":[[780,25]]}}}],["app.stage.addchild(snakecontainer",{"_index":2458,"t":{"137":{"position":[[535,35]]}}}],["app.stage.addchild(sprite",{"_index":1212,"t":{"77":{"position":[[793,27]]},"171":{"position":[[1047,27]]},"173":{"position":[[2069,27]]},"175":{"position":[[685,27]]}}}],["app.stage.addchild(sprites",{"_index":1131,"t":{"69":{"position":[[251,28]]}}}],["app.stage.addchild(star.sprite",{"_index":854,"t":{"51":{"position":[[633,32]]}}}],["app.stage.addchild(strip",{"_index":2429,"t":{"135":{"position":[[412,26]]}}}],["app.stage.addchild(stuffcontainer",{"_index":2792,"t":{"177":{"position":[[815,35]]}}}],["app.stage.addchild(text",{"_index":1776,"t":{"99":{"position":[[700,25]]},"179":{"position":[[1695,25]]}}}],["app.stage.addchild(text1",{"_index":2626,"t":{"165":{"position":[[1040,26]]}}}],["app.stage.addchild(text2",{"_index":2627,"t":{"165":{"position":[[1067,26]]}}}],["app.stage.addchild(text3",{"_index":2628,"t":{"165":{"position":[[1094,26]]}}}],["app.stage.addchild(text4",{"_index":2629,"t":{"165":{"position":[[1121,26]]}}}],["app.stage.addchild(textsample",{"_index":2683,"t":{"169":{"position":[[952,31]]}}}],["app.stage.addchild(thing",{"_index":2111,"t":{"111":{"position":[[1341,26]]},"117":{"position":[[1050,26]]}}}],["app.stage.addchild(tilingsprite",{"_index":2552,"t":{"159":{"position":[[468,33]]}}}],["app.stage.addchild(title",{"_index":1672,"t":{"93":{"position":[[1443,26]]}}}],["app.stage.addchild(top",{"_index":539,"t":{"47":{"position":[[2910,24]]}}}],["app.stage.addchild(triangle",{"_index":2460,"t":{"139":{"position":[[672,29]]},"141":{"position":[[992,29]]},"143":{"position":[[1414,29]]}}}],["app.stage.addchild(triangle2",{"_index":2407,"t":{"131":{"position":[[1807,29]]}}}],["app.stage.addchild(triangle3",{"_index":2421,"t":{"133":{"position":[[1526,29]]}}}],["app.stage.addchild(triangles",{"_index":2232,"t":{"121":{"position":[[1492,30]]}}}],["app.stage.addchild(videosprite",{"_index":2595,"t":{"161":{"position":[[1478,32]]}}}],["app.stage.addchild(wavecontainer",{"_index":2371,"t":{"127":{"position":[[5341,34]]}}}],["app.stage.addeventlistener('pointermove",{"_index":1645,"t":{"91":{"position":[[676,41]]},"93":{"position":[[1585,41]]}}}],["app.stage.eventmode",{"_index":147,"t":{"39":{"position":[[2547,19]]},"41":{"position":[[858,19]]},"43":{"position":[[987,19]]},"45":{"position":[[522,19]]},"65":{"position":[[549,19]]},"83":{"position":[[1226,19]]},"87":{"position":[[998,19]]},"91":{"position":[[518,19]]},"93":{"position":[[1553,19],[1717,19]]},"97":{"position":[[1463,19]]},"103":{"position":[[126,19]]},"105":{"position":[[126,19]]},"107":{"position":[[126,19]]},"111":{"position":[[143,19]]},"115":{"position":[[916,19]]},"117":{"position":[[143,19]]},"119":{"position":[[126,19]]}}}],["app.stage.filterarea",{"_index":1863,"t":{"99":{"position":[[2851,20]]}}}],["app.stage.filters",{"_index":1865,"t":{"99":{"position":[[2895,17]]},"103":{"position":[[1030,17],[1150,17]]}}}],["app.stage.hitarea",{"_index":149,"t":{"39":{"position":[[2579,17]]},"41":{"position":[[890,17]]},"43":{"position":[[1019,17]]},"45":{"position":[[554,17]]},"83":{"position":[[1258,17]]},"87":{"position":[[1030,17]]},"91":{"position":[[622,17]]},"93":{"position":[[267,17]]},"97":{"position":[[1431,17]]},"111":{"position":[[175,17]]},"115":{"position":[[948,17]]}}}],["app.stage.name",{"_index":1419,"t":{"87":{"position":[[567,14]]}}}],["app.stage.off('pointermove",{"_index":1388,"t":{"83":{"position":[[1804,28]]}}}],["app.stage.on('mousemove",{"_index":151,"t":{"39":{"position":[[2611,25]]},"41":{"position":[[922,25]]}}}],["app.stage.on('pointerdown",{"_index":390,"t":{"45":{"position":[[586,27]]},"111":{"position":[[1487,27]]}}}],["app.stage.on('pointermove",{"_index":1386,"t":{"83":{"position":[[1720,27]]},"97":{"position":[[1495,27]]},"115":{"position":[[980,27]]}}}],["app.stage.on('pointertap",{"_index":1102,"t":{"65":{"position":[[1123,26]]},"103":{"position":[[1095,26]]},"117":{"position":[[1201,26]]}}}],["app.stage.on('pointerup",{"_index":1372,"t":{"83":{"position":[[1290,25]]}}}],["app.stage.on('pointerupoutside",{"_index":1374,"t":{"83":{"position":[[1328,32]]}}}],["app.stage.removeeventlistener('pointermove",{"_index":1679,"t":{"93":{"position":[[1747,44]]}}}],["app.start",{"_index":389,"t":{"45":{"position":[[507,12]]},"65":{"position":[[1067,12]]},"95":{"position":[[907,12]]},"149":{"position":[[1069,12]]},"151":{"position":[[880,12]]}}}],["app.stop",{"_index":379,"t":{"45":{"position":[[304,11]]},"65":{"position":[[126,11]]},"95":{"position":[[384,11]]}}}],["app.ticker.add",{"_index":265,"t":{"41":{"position":[[1111,17]]},"63":{"position":[[1739,17]]},"65":{"position":[[1245,17]]},"69":{"position":[[1620,17]]},"71":{"position":[[483,17]]},"73":{"position":[[1589,17]]},"75":{"position":[[458,17]]},"101":{"position":[[891,17]]},"105":{"position":[[1864,17]]},"107":{"position":[[896,17]]},"111":{"position":[[1808,17]]},"117":{"position":[[1538,17]]},"119":{"position":[[673,17]]},"135":{"position":[[542,17]]},"137":{"position":[[603,17]]},"153":{"position":[[936,17]]},"157":{"position":[[870,17]]},"159":{"position":[[517,17]]},"175":{"position":[[1043,17]]},"177":{"position":[[1665,17]]}}}],["app.ticker.add((delta",{"_index":160,"t":{"39":{"position":[[2747,22]]},"45":{"position":[[968,22]]},"47":{"position":[[3620,22],[4978,22]]},"49":{"position":[[8360,22]]},"51":{"position":[[1180,22]]},"67":{"position":[[802,22]]},"95":{"position":[[944,22]]},"99":{"position":[[2955,22]]},"103":{"position":[[1418,22]]},"121":{"position":[[1523,22]]},"123":{"position":[[1160,22]]},"125":{"position":[[1553,22]]},"127":{"position":[[5448,22]]},"129":{"position":[[2914,22]]},"131":{"position":[[1848,22]]},"133":{"position":[[1578,22]]},"139":{"position":[[702,22]]},"141":{"position":[[1022,22]]},"143":{"position":[[1444,22]]},"145":{"position":[[1363,22]]},"147":{"position":[[980,22]]},"155":{"position":[[489,22]]}}}],["appears",{"_index":1359,"t":{"83":{"position":[[767,7]]}}}],["application",{"_index":1692,"t":{"95":{"position":[[348,11],[888,11]]},"99":{"position":[[852,11]]}}}],["applied",{"_index":161,"t":{"39":{"position":[[2778,7]]}}}],["apply",{"_index":1501,"t":{"89":{"position":[[1174,5],[1272,5]]}}}],["arc",{"_index":2039,"t":{"109":{"position":[[1298,3],[1313,3],[1447,3],[1610,3]]}}}],["arc.arc(600",{"_index":2042,"t":{"109":{"position":[[1371,12]]}}}],["arc.linestyle(5",{"_index":2040,"t":{"109":{"position":[[1340,16]]}}}],["arc2",{"_index":2044,"t":{"109":{"position":[[1464,4]]}}}],["arc2.arc(650",{"_index":2047,"t":{"109":{"position":[[1524,13]]}}}],["arc2.linestyle(6",{"_index":2045,"t":{"109":{"position":[[1492,17]]}}}],["arc3",{"_index":2050,"t":{"109":{"position":[[1627,4]]}}}],["arc3.arc(650",{"_index":2052,"t":{"109":{"position":[[1718,13]]}}}],["arc3.linetexturestyle",{"_index":2051,"t":{"109":{"position":[[1655,23]]}}}],["arcradius",{"_index":733,"t":{"49":{"position":[[4376,9],[4751,11],[4995,11]]}}}],["area",{"_index":468,"t":{"47":{"position":[[1342,5]]},"79":{"position":[[1108,4],[1585,4],[2523,6],[2744,6]]},"89":{"position":[[4006,4]]},"91":{"position":[[580,4]]}}}],["areas",{"_index":1262,"t":{"79":{"position":[[1679,5]]}}}],["arguments",{"_index":1701,"t":{"95":{"position":[[593,10]]}}}],["arial",{"_index":494,"t":{"47":{"position":[[2140,8]]},"103":{"position":[[1284,8]]},"117":{"position":[[1404,8]]},"167":{"position":[[319,8],[857,8]]}}}],["around",{"_index":133,"t":{"39":{"position":[[2281,6]]},"105":{"position":[[2258,6]]}}}],["arr",{"_index":288,"t":{"41":{"position":[[1739,4]]}}}],["arr.length",{"_index":290,"t":{"41":{"position":[[1772,10],[1792,10]]}}}],["arr[k",{"_index":291,"t":{"41":{"position":[[1815,7]]}}}],["array",{"_index":252,"t":{"41":{"position":[[489,6],[1856,6],[1899,6],[1925,7],[2107,7],[2148,8],[2181,7],[2206,8]]},"63":{"position":[[361,5]]},"69":{"position":[[293,5],[1266,5]]},"73":{"position":[[1257,5]]},"81":{"position":[[1608,5]]},"85":{"position":[[1703,5]]},"149":{"position":[[255,5]]},"151":{"position":[[236,5]]},"153":{"position":[[246,5]]},"177":{"position":[[864,5],[1286,5]]}}}],["article",{"_index":13,"t":{"39":{"position":[[59,7]]}}}],["asset",{"_index":918,"t":{"55":{"position":[[462,5],[498,5]]}}}],["assets",{"_index":737,"t":{"49":{"position":[[4544,6]]},"55":{"position":[[160,6],[330,6]]},"57":{"position":[[252,7],[364,7],[687,6],[1301,6],[1407,6]]},"59":{"position":[[160,6],[329,6]]}}}],["async",{"_index":377,"t":{"45":{"position":[[270,5]]},"53":{"position":[[185,5],[200,5],[612,5]]},"55":{"position":[[949,5]]},"57":{"position":[[149,5],[642,5],[1180,5],[1236,5],[1855,5]]}}}],["attribute",{"_index":2218,"t":{"121":{"position":[[1030,9],[1052,9],[1074,9]]},"123":{"position":[[203,9],[310,9],[349,9],[436,9],[550,9],[582,9]]},"125":{"position":[[203,9],[310,9],[349,9],[436,9],[555,9],[669,9],[708,9],[789,9],[942,9],[974,9]]},"127":{"position":[[235,9],[330,9],[369,9],[456,9],[592,9],[624,9]]},"129":{"position":[[222,9],[329,9],[368,9],[455,9],[541,9],[573,9]]},"131":{"position":[[203,9],[306,9],[425,9],[457,9],[974,9],[1006,9]]},"133":{"position":[[203,9],[299,9],[338,9],[420,9],[491,9],[523,9]]},"139":{"position":[[287,9]]},"141":{"position":[[203,9],[299,9],[340,9],[440,9],[509,9],[541,9]]},"143":{"position":[[203,9],[299,9],[340,9],[439,9],[478,9],[560,9],[615,9],[647,9],[670,9]]},"145":{"position":[[203,9],[310,9],[349,9],[436,9],[522,9],[554,9]]}}}],["audio",{"_index":2581,"t":{"161":{"position":[[961,5],[991,5]]}}}],["auto",{"_index":1678,"t":{"93":{"position":[[1739,7]]}}}],["autostart",{"_index":2475,"t":{"149":{"position":[[68,10]]},"151":{"position":[[68,10]]}}}],["auvs",{"_index":2241,"t":{"123":{"position":[[597,5],[706,5]]},"125":{"position":[[989,5],[1098,5]]},"127":{"position":[[639,5],[748,5]]},"129":{"position":[[588,5],[697,5]]},"131":{"position":[[472,5],[581,5],[1021,5],[1130,5]]},"133":{"position":[[538,5],[647,5]]},"143":{"position":[[685,5],[815,5]]},"145":{"position":[[569,5],[678,5]]}}}],["auxiliar",{"_index":922,"t":{"55":{"position":[[568,8]]}}}],["avertexposition",{"_index":2240,"t":{"123":{"position":[[565,16]]},"125":{"position":[[957,16]]},"127":{"position":[[607,16]]},"129":{"position":[[556,16]]},"131":{"position":[[440,16],[989,16]]},"133":{"position":[[506,16]]},"139":{"position":[[302,16]]},"141":{"position":[[524,16]]},"143":{"position":[[630,16]]},"145":{"position":[[537,16]]}}}],["avoid",{"_index":2756,"t":{"173":{"position":[[1738,5]]},"179":{"position":[[754,5]]}}}],["avpos",{"_index":2219,"t":{"121":{"position":[[1045,6]]}}}],["await",{"_index":380,"t":{"45":{"position":[[328,5]]},"53":{"position":[[152,5],[240,5]]},"55":{"position":[[1059,5]]},"57":{"position":[[453,5],[820,5],[1497,5]]}}}],["awaited",{"_index":905,"t":{"53":{"position":[[335,7]]}}}],["away",{"_index":212,"t":{"39":{"position":[[4548,4]]},"51":{"position":[[2286,4]]},"61":{"position":[[172,4]]}}}],["axes",{"_index":1570,"t":{"89":{"position":[[3365,5]]}}}],["axis",{"_index":895,"t":{"51":{"position":[[2153,4]]}}}],["b",{"_index":113,"t":{"39":{"position":[[1882,1],[1920,3]]},"141":{"position":[[374,1],[394,1],[415,1]]},"143":{"position":[[374,1],[394,1],[415,1]]}}}],["b.scale.set(math.abs(sin",{"_index":720,"t":{"49":{"position":[[3033,24]]}}}],["back",{"_index":185,"t":{"39":{"position":[[3513,4]]},"57":{"position":[[1906,4]]},"153":{"position":[[538,4]]}}}],["background",{"_index":29,"t":{"39":{"position":[[244,11]]},"41":{"position":[[68,11]]},"43":{"position":[[619,10],[936,11]]},"47":{"position":[[68,11]]},"49":{"position":[[68,11]]},"53":{"position":[[68,11]]},"55":{"position":[[68,11],[352,10],[427,10]]},"57":{"position":[[68,11],[540,10]]},"59":{"position":[[68,11]]},"61":{"position":[[68,11]]},"63":{"position":[[142,10],[166,10]]},"67":{"position":[[68,11]]},"71":{"position":[[68,11]]},"77":{"position":[[68,11]]},"79":{"position":[[78,11]]},"81":{"position":[[68,11],[474,13],[494,10],[651,10]]},"83":{"position":[[68,11]]},"85":{"position":[[138,13],[158,10],[315,10]]},"87":{"position":[[161,11]]},"89":{"position":[[300,11]]},"91":{"position":[[178,11]]},"93":{"position":[[85,11]]},"95":{"position":[[136,10],[159,10]]},"97":{"position":[[204,10],[227,10]]},"99":{"position":[[340,11]]},"115":{"position":[[306,10]]},"147":{"position":[[249,11]]},"153":{"position":[[68,11]]},"155":{"position":[[68,11]]},"157":{"position":[[68,11]]},"163":{"position":[[68,11]]},"165":{"position":[[68,11]]},"167":{"position":[[68,11]]},"169":{"position":[[68,11]]},"175":{"position":[[68,11]]}}}],["background.filters",{"_index":1711,"t":{"95":{"position":[[847,18]]}}}],["background.height",{"_index":1011,"t":{"63":{"position":[[277,17]]},"81":{"position":[[605,17]]},"85":{"position":[[269,17]]},"95":{"position":[[269,17]]},"97":{"position":[[337,17]]},"115":{"position":[[419,17]]}}}],["background.mask",{"_index":2179,"t":{"115":{"position":[[891,15]]}}}],["background.width",{"_index":1010,"t":{"63":{"position":[[240,16]]},"81":{"position":[[568,16]]},"85":{"position":[[232,16]]},"95":{"position":[[232,16]]},"97":{"position":[[300,16]]},"115":{"position":[[382,16]]}}}],["backgroundalpha",{"_index":1182,"t":{"75":{"position":[[68,16]]},"161":{"position":[[68,16]]}}}],["backgroundcolor",{"_index":373,"t":{"45":{"position":[[68,16]]}}}],["backout",{"_index":640,"t":{"47":{"position":[[5559,7]]}}}],["backout(0.5",{"_index":561,"t":{"47":{"position":[[3449,13]]}}}],["backout(amount",{"_index":643,"t":{"47":{"position":[[5670,15]]}}}],["ball",{"_index":704,"t":{"49":{"position":[[2500,4],[2885,4]]}}}],["ball.anchor.set(0.5",{"_index":706,"t":{"49":{"position":[[2565,21]]}}}],["ball.position.set",{"_index":708,"t":{"49":{"position":[[2613,18]]}}}],["ballamount",{"_index":702,"t":{"49":{"position":[[2421,10],[2475,11],[2656,10],[2718,10],[2948,10]]}}}],["balls",{"_index":700,"t":{"49":{"position":[[2221,6],[2443,5]]}}}],["balls.foreach((b",{"_index":713,"t":{"49":{"position":[[2897,17]]}}}],["balls.push(ball",{"_index":711,"t":{"49":{"position":[[2759,17]]}}}],["base",{"_index":650,"t":{"49":{"position":[[425,4],[3317,4],[4398,4]]}}}],["base.height",{"_index":654,"t":{"49":{"position":[[536,11],[3428,11],[4491,11]]}}}],["base.mask",{"_index":660,"t":{"49":{"position":[[748,9],[3521,9],[4787,9]]}}}],["base.width",{"_index":653,"t":{"49":{"position":[[517,10],[3409,10],[4472,10]]}}}],["based",{"_index":11,"t":{"39":{"position":[[36,5]]},"41":{"position":[[1668,5]]},"47":{"position":[[3761,5]]},"99":{"position":[[899,8]]},"129":{"position":[[831,7]]},"147":{"position":[[56,5]]}}}],["basespeed",{"_index":841,"t":{"51":{"position":[[296,9],[1363,11]]}}}],["basetexture",{"_index":2730,"t":{"173":{"position":[[448,12],[522,12],[1718,11]]}}}],["basetexture.format",{"_index":2751,"t":{"173":{"position":[[1433,19],[1453,19]]}}}],["basetexture.premultiplyalpha",{"_index":2749,"t":{"173":{"position":[[1365,30]]}}}],["basetexture.type",{"_index":2752,"t":{"173":{"position":[[1473,17]]}}}],["basetextures",{"_index":2758,"t":{"173":{"position":[[1790,12]]}}}],["basic",{"_index":52,"t":{"39":{"position":[[516,5]]},"47":{"position":[[5477,5]]}}}],["basic/container",{"_index":2468,"t":{"147":{"position":[[65,16]]}}}],["basically",{"_index":752,"t":{"49":{"position":[[5053,9]]}}}],["basictext",{"_index":2630,"t":{"167":{"position":[[155,9]]}}}],["basictext.x",{"_index":2632,"t":{"167":{"position":[[204,11]]}}}],["basictext.y",{"_index":2633,"t":{"167":{"position":[[222,11]]}}}],["bc",{"_index":1848,"t":{"99":{"position":[[2365,2],[2477,4]]},"129":{"position":[[2213,2],[2325,4]]}}}],["beatifulrect",{"_index":2071,"t":{"109":{"position":[[2185,12]]}}}],["beatifulrect.beginfill(0xff0000",{"_index":2073,"t":{"109":{"position":[[2292,33]]}}}],["beatifulrect.drawrect(80",{"_index":2074,"t":{"109":{"position":[[2326,25]]}}}],["beatifulrect.endfill",{"_index":2075,"t":{"109":{"position":[[2368,23]]}}}],["beatifulrect.linetexturestyle",{"_index":2072,"t":{"109":{"position":[[2221,31]]}}}],["become",{"_index":2773,"t":{"175":{"position":[[822,6]]}}}],["before",{"_index":766,"t":{"49":{"position":[[6275,6]]},"95":{"position":[[773,6]]},"169":{"position":[[175,6]]},"177":{"position":[[2149,6]]}}}],["beginfill(0",{"_index":1424,"t":{"87":{"position":[[674,13]]}}}],["beginfill(0x0",{"_index":2559,"t":{"161":{"position":[[241,15]]}}}],["beginfill(0x272d37",{"_index":1652,"t":{"93":{"position":[[378,20]]}}}],["beginfill(0xff0000",{"_index":2171,"t":{"115":{"position":[[493,20]]}}}],["beginfill(0xffffff",{"_index":309,"t":{"43":{"position":[[210,20]]},"79":{"position":[[1303,20],[1828,20]]},"87":{"position":[[869,20]]},"89":{"position":[[3622,20]]},"91":{"position":[[317,20]]},"93":{"position":[[560,20]]},"161":{"position":[[310,20]]}}}],["being",{"_index":1174,"t":{"73":{"position":[[536,5]]}}}],["best",{"_index":1845,"t":{"99":{"position":[[2321,4]]},"129":{"position":[[2169,4]]}}}],["better",{"_index":565,"t":{"47":{"position":[[3794,6]]},"49":{"position":[[4518,6],[4571,6]]},"171":{"position":[[345,6]]}}}],["between",{"_index":46,"t":{"39":{"position":[[451,7],[533,7],[1784,7],[4146,7],[5032,7]]},"63":{"position":[[1310,7]]},"69":{"position":[[1098,7]]},"73":{"position":[[902,7],[1163,7]]},"93":{"position":[[2157,7]]}}}],["bezier",{"_index":2004,"t":{"109":{"position":[[225,6],[568,6],[766,6]]}}}],["bezier.beziercurveto(100",{"_index":2018,"t":{"109":{"position":[[632,25]]}}}],["bezier.linestyle(5",{"_index":2016,"t":{"109":{"position":[[598,19]]}}}],["bezier.position.x",{"_index":2020,"t":{"109":{"position":[[684,17]]}}}],["bezier.position.y",{"_index":2021,"t":{"109":{"position":[[708,17]]}}}],["bezier2",{"_index":2032,"t":{"109":{"position":[[1062,7]]}}}],["bezier2.beziercurveto(0",{"_index":2035,"t":{"109":{"position":[[1159,24]]}}}],["bezier2.linetexturestyle",{"_index":2033,"t":{"109":{"position":[[1093,26]]}}}],["bezier2.position.x",{"_index":2036,"t":{"109":{"position":[[1211,18]]}}}],["bezier2.position.y",{"_index":2037,"t":{"109":{"position":[[1237,18]]}}}],["bg",{"_index":1867,"t":{"101":{"position":[[132,2]]},"103":{"position":[[164,2]]},"105":{"position":[[1409,2]]},"117":{"position":[[181,2]]},"119":{"position":[[164,2]]}}}],["bg.alpha",{"_index":1962,"t":{"105":{"position":[[1534,8]]}}}],["bg.anchor.set(0.5",{"_index":1894,"t":{"103":{"position":[[230,19]]},"117":{"position":[[247,19]]}}}],["bg.height",{"_index":1871,"t":{"101":{"position":[[244,9]]},"105":{"position":[[1503,9]]}}}],["bg.rotation",{"_index":1919,"t":{"103":{"position":[[1446,11]]},"117":{"position":[[1561,11]]}}}],["bg.width",{"_index":1870,"t":{"101":{"position":[[215,8]]},"105":{"position":[[1474,8]]}}}],["bg.x",{"_index":1895,"t":{"103":{"position":[[250,4]]},"117":{"position":[[267,4]]}}}],["bg.y",{"_index":1896,"t":{"103":{"position":[[279,4]]},"117":{"position":[[296,4]]}}}],["bgfront",{"_index":1898,"t":{"103":{"position":[[481,7]]},"117":{"position":[[495,7]]}}}],["bgfront.anchor.set(0.5",{"_index":1899,"t":{"103":{"position":[[558,24]]},"117":{"position":[[572,24]]}}}],["bgfront.rotation",{"_index":1920,"t":{"103":{"position":[[1467,16]]},"117":{"position":[[1582,16]]}}}],["big",{"_index":2693,"t":{"171":{"position":[[374,3]]}}}],["bigger",{"_index":1363,"t":{"83":{"position":[[921,7]]}}}],["bit",{"_index":352,"t":{"43":{"position":[[1450,3]]},"63":{"position":[[932,3]]},"65":{"position":[[1304,3]]},"71":{"position":[[543,3]]},"83":{"position":[[917,3]]}}}],["bitmap",{"_index":2600,"t":{"163":{"position":[[276,7]]}}}],["bitmapfonttext",{"_index":2598,"t":{"163":{"position":[[238,14]]}}}],["bitmapfonttext.x",{"_index":2605,"t":{"163":{"position":[[375,16]]}}}],["bitmapfonttext.y",{"_index":2606,"t":{"163":{"position":[[398,16]]}}}],["black",{"_index":1422,"t":{"87":{"position":[[608,5],[743,6]]}}}],["blackbox",{"_index":1423,"t":{"87":{"position":[[624,8]]}}}],["blackbox.addchild(new",{"_index":1430,"t":{"87":{"position":[[831,21]]}}}],["blackbox.eventmode",{"_index":1435,"t":{"87":{"position":[[1093,18]]}}}],["blackbox.name",{"_index":1426,"t":{"87":{"position":[[727,13]]}}}],["blackbox.x",{"_index":1427,"t":{"87":{"position":[[756,10]]}}}],["blackbox].foreach((object",{"_index":1451,"t":{"87":{"position":[[1695,26]]}}}],["blend",{"_index":1032,"t":{"63":{"position":[[988,5]]},"97":{"position":[[1012,5]]}}}],["blendmode",{"_index":257,"t":{"41":{"position":[[757,9]]}}}],["blur",{"_index":455,"t":{"47":{"position":[[1054,5],[3740,4],[3843,4]]},"115":{"position":[[183,4]]}}}],["bluramount",{"_index":1889,"t":{"101":{"position":[[936,10],[1027,13]]}}}],["bluramount2",{"_index":1891,"t":{"101":{"position":[[972,11],[1065,14]]}}}],["blurfilter1",{"_index":1884,"t":{"101":{"position":[[706,11],[824,14]]}}}],["blurfilter1.blur",{"_index":1892,"t":{"101":{"position":[[1003,16]]}}}],["blurfilter2",{"_index":1885,"t":{"101":{"position":[[757,11],[861,14]]}}}],["blurfilter2.blur",{"_index":1893,"t":{"101":{"position":[[1041,16]]}}}],["blursize",{"_index":2167,"t":{"115":{"position":[[201,8],[535,9],[554,9],[692,9],[717,9]]}}}],["bold",{"_index":500,"t":{"47":{"position":[[2196,7]]},"103":{"position":[[1319,7]]},"117":{"position":[[1439,7]]},"167":{"position":[[375,7]]}}}],["both",{"_index":163,"t":{"39":{"position":[[2805,4],[5188,4]]},"59":{"position":[[368,4]]},"65":{"position":[[1094,4]]}}}],["bottom",{"_index":482,"t":{"47":{"position":[[1654,6],[1950,6]]},"49":{"position":[[562,6],[1262,6],[1734,6],[1771,6],[5919,6],[6707,6],[6764,6]]}}}],["bottom.addchild(playtext",{"_index":527,"t":{"47":{"position":[[2650,26]]}}}],["bottom.addlistener('pointerdown",{"_index":544,"t":{"47":{"position":[[3045,33]]}}}],["bottom.beginfill(0",{"_index":490,"t":{"47":{"position":[[1980,19]]}}}],["bottom.cursor",{"_index":543,"t":{"47":{"position":[[3018,13]]}}}],["bottom.drawrect(0",{"_index":491,"t":{"47":{"position":[[2004,18]]}}}],["bottom.eventmode",{"_index":542,"t":{"47":{"position":[[2989,16]]}}}],["bottom.height",{"_index":657,"t":{"49":{"position":[[653,13]]}}}],["bottom.width",{"_index":656,"t":{"49":{"position":[[632,12]]}}}],["boundary",{"_index":1460,"t":{"89":{"position":[[114,8],[1025,8]]}}}],["bounding",{"_index":1049,"t":{"63":{"position":[[1507,8]]},"69":{"position":[[1368,8]]},"73":{"position":[[1360,8]]}}}],["bounds",{"_index":1063,"t":{"63":{"position":[[2112,9]]},"73":{"position":[[1957,9]]},"105":{"position":[[256,6]]},"115":{"position":[[648,6],[815,8]]}}}],["bounds.height",{"_index":1944,"t":{"105":{"position":[[723,14],[2447,14],[2495,14],[2524,14]]}}}],["bounds.width",{"_index":1942,"t":{"105":{"position":[[682,13],[2317,13],[2364,13],[2392,13]]}}}],["bounds.x",{"_index":1978,"t":{"105":{"position":[[2293,9],[2353,8]]}}}],["bounds.y",{"_index":1979,"t":{"105":{"position":[[2423,9],[2484,8]]}}}],["bounds1",{"_index":60,"t":{"39":{"position":[[610,7]]}}}],["bounds1.height",{"_index":72,"t":{"39":{"position":[[821,14]]}}}],["bounds1.width",{"_index":68,"t":{"39":{"position":[[738,13]]}}}],["bounds1.x",{"_index":65,"t":{"39":{"position":[[685,9],[726,9]]}}}],["bounds1.y",{"_index":69,"t":{"39":{"position":[[767,9],[809,9]]}}}],["bounds2",{"_index":62,"t":{"39":{"position":[[647,7]]}}}],["bounds2.height",{"_index":71,"t":{"39":{"position":[[791,14]]}}}],["bounds2.width",{"_index":67,"t":{"39":{"position":[[709,13]]}}}],["bounds2.x",{"_index":66,"t":{"39":{"position":[[697,9],[754,9]]}}}],["bounds2.y",{"_index":70,"t":{"39":{"position":[[779,9],[838,10]]}}}],["bourke",{"_index":810,"t":{"49":{"position":[[8523,6]]}}}],["box",{"_index":1050,"t":{"63":{"position":[[1516,3]]},"69":{"position":[[1377,3],[1381,3]]},"73":{"position":[[1369,3]]},"87":{"position":[[614,3],[750,5],[789,3],[956,5]]}}}],["boxes",{"_index":1408,"t":{"87":{"position":[[306,5]]}}}],["break",{"_index":684,"t":{"49":{"position":[[1648,6],[6575,6]]},"99":{"position":[[2482,6],[2507,6]]},"129":{"position":[[2330,6],[2355,6]]}}}],["bring",{"_index":1509,"t":{"89":{"position":[[1389,5]]}}}],["brings",{"_index":2523,"t":{"153":{"position":[[530,7]]}}}],["brt",{"_index":2765,"t":{"175":{"position":[[506,3]]}}}],["brush",{"_index":307,"t":{"43":{"position":[[170,5],[182,5]]}}}],["brush.position.set(x",{"_index":346,"t":{"43":{"position":[[1299,21]]}}}],["buffer",{"_index":1163,"t":{"71":{"position":[[349,6],[385,6]]},"121":{"position":[[321,6],[450,7],[572,7]]}}}],["buffer.data.length",{"_index":1168,"t":{"71":{"position":[[587,19]]}}}],["buffer.data[i",{"_index":1169,"t":{"71":{"position":[[614,14]]}}}],["buffer.data[instanceoffset",{"_index":2216,"t":{"121":{"position":[[780,26],[822,26],[871,26],[920,26]]}}}],["buffer.update",{"_index":1171,"t":{"71":{"position":[[668,16]]}}}],["buffers",{"_index":2818,"t":{"177":{"position":[[1823,7]]}}}],["build",{"_index":445,"t":{"47":{"position":[[785,5],[1165,5],[1642,5]]},"99":{"position":[[2761,5]]},"127":{"position":[[142,5]]},"129":{"position":[[129,5],[2657,5]]},"135":{"position":[[144,5]]},"137":{"position":[[144,5]]}}}],["builds",{"_index":436,"t":{"47":{"position":[[433,6]]}}}],["bunch",{"_index":1084,"t":{"65":{"position":[[654,5]]},"117":{"position":[[472,5]]}}}],["bundle",{"_index":949,"t":{"57":{"position":[[715,7],[733,6]]}}}],["bundles",{"_index":943,"t":{"57":{"position":[[219,8],[511,7]]}}}],["bunnies",{"_index":1115,"t":{"67":{"position":[[342,7]]},"147":{"position":[[520,7]]},"175":{"position":[[726,7],[814,7]]}}}],["bunny",{"_index":392,"t":{"45":{"position":[[668,5]]},"53":{"position":[[364,5]]},"61":{"position":[[434,5]]},"67":{"position":[[387,5],[646,5]]},"75":{"position":[[195,5]]},"83":{"position":[[541,5],[562,5],[610,5],[798,5],[1071,7]]},"93":{"position":[[880,5],[940,5],[1266,8]]},"147":{"position":[[565,5],[824,5]]},"155":{"position":[[197,5]]},"175":{"position":[[331,5]]}}}],["bunny's",{"_index":1362,"t":{"83":{"position":[[860,7]]},"93":{"position":[[1837,7]]}}}],["bunny.anchor.set(0.5",{"_index":394,"t":{"45":{"position":[[702,22]]},"53":{"position":[[435,22]]},"61":{"position":[[513,22]]},"67":{"position":[[421,22]]},"75":{"position":[[296,22]]},"83":{"position":[[881,22]]},"93":{"position":[[1109,22]]},"147":{"position":[[599,22]]},"155":{"position":[[298,22]]}}}],["bunny.cursor",{"_index":1361,"t":{"83":{"position":[[820,12]]}}}],["bunny.eventmode",{"_index":1357,"t":{"83":{"position":[[693,15]]}}}],["bunny.on('pointerdown",{"_index":1368,"t":{"83":{"position":[[1034,23]]}}}],["bunny.rotation",{"_index":1188,"t":{"75":{"position":[[530,14]]},"155":{"position":[[655,14]]},"175":{"position":[[423,14]]}}}],["bunny.scale.set(3",{"_index":1367,"t":{"83":{"position":[[952,19]]},"93":{"position":[[1089,19],[2223,17]]}}}],["bunny.texture.basetexture.scalemode",{"_index":1666,"t":{"93":{"position":[[1025,35]]}}}],["bunny.x",{"_index":395,"t":{"45":{"position":[[725,7]]},"53":{"position":[[505,7]]},"61":{"position":[[583,7]]},"67":{"position":[[444,7]]},"75":{"position":[[366,7]]},"83":{"position":[[1125,7]]},"93":{"position":[[1132,7]]},"147":{"position":[[622,7]]},"155":{"position":[[368,7]]},"175":{"position":[[365,7]]}}}],["bunny.y",{"_index":397,"t":{"45":{"position":[[749,7]]},"53":{"position":[[537,7]]},"61":{"position":[[615,7]]},"67":{"position":[[468,7]]},"75":{"position":[[398,7]]},"83":{"position":[[1138,7]]},"93":{"position":[[1158,7]]},"147":{"position":[[646,7]]},"155":{"position":[[400,7]]},"175":{"position":[[389,7]]}}}],["bunnycontainer",{"_index":375,"t":{"45":{"position":[[231,14],[1360,16]]}}}],["bunnycontainer.addchild(bunny",{"_index":399,"t":{"45":{"position":[[783,31]]}}}],["bunnycontainer.height",{"_index":407,"t":{"45":{"position":[[941,21]]}}}],["bunnycontainer.pivot.x",{"_index":404,"t":{"45":{"position":[[865,22]]}}}],["bunnycontainer.pivot.y",{"_index":406,"t":{"45":{"position":[[916,22]]}}}],["bunnycontainer.rotation",{"_index":408,"t":{"45":{"position":[[996,23]]}}}],["bunnycontainer.width",{"_index":405,"t":{"45":{"position":[[890,20]]}}}],["bunnycontainer.x",{"_index":400,"t":{"45":{"position":[[817,16]]}}}],["bunnycontainer.y",{"_index":402,"t":{"45":{"position":[[841,16]]}}}],["button",{"_index":1220,"t":{"79":{"position":[[242,6],[563,6],[1641,6]]},"81":{"position":[[1143,6],[1319,6],[1370,6],[1598,6]]},"83":{"position":[[729,6]]},"85":{"position":[[807,6],[958,6],[1036,6],[1136,6],[1693,6]]},"161":{"position":[[161,6],[212,6],[396,6],[536,6],[1116,6]]}}}],["button.anchor.set(0.5",{"_index":1329,"t":{"81":{"position":[[1209,23]]},"85":{"position":[[848,23]]}}}],["button.cursor",{"_index":1327,"t":{"81":{"position":[[1184,13]]},"85":{"position":[[1009,13]]},"161":{"position":[[572,13]]}}}],["button.destroy",{"_index":2586,"t":{"161":{"position":[[1131,17]]}}}],["button.eventmode",{"_index":1333,"t":{"81":{"position":[[1341,16]]},"85":{"position":[[980,16]]},"161":{"position":[[543,16]]}}}],["button.height",{"_index":2566,"t":{"161":{"position":[[485,14]]}}}],["button.on('pointertap",{"_index":2583,"t":{"161":{"position":[[1035,23]]}}}],["button.width",{"_index":2565,"t":{"161":{"position":[[434,13]]}}}],["button.x",{"_index":1330,"t":{"81":{"position":[[1233,8]]},"85":{"position":[[872,8]]},"161":{"position":[[403,8]]}}}],["button.y",{"_index":1332,"t":{"81":{"position":[[1268,8]]},"85":{"position":[[907,8]]},"161":{"position":[[453,8]]}}}],["buttonpositions",{"_index":1318,"t":{"81":{"position":[[1036,15]]},"85":{"position":[[700,15]]}}}],["buttonpositions[i",{"_index":1331,"t":{"81":{"position":[[1244,17],[1279,17]]},"85":{"position":[[883,17],[918,17]]}}}],["buttons",{"_index":1317,"t":{"81":{"position":[[1016,7]]},"85":{"position":[[680,7]]}}}],["buttons.push(button",{"_index":1339,"t":{"81":{"position":[[1614,21]]},"85":{"position":[[1709,21]]}}}],["buttons[0].scale.set(1.2",{"_index":1341,"t":{"81":{"position":[[1666,26]]},"85":{"position":[[1761,26]]}}}],["buttons[2].rotation",{"_index":1342,"t":{"81":{"position":[[1693,19]]},"85":{"position":[[1788,19]]}}}],["buttons[3].scale.set(0.8",{"_index":1343,"t":{"81":{"position":[[1729,26]]},"85":{"position":[[1824,26]]}}}],["buttons[4].rotation",{"_index":1346,"t":{"81":{"position":[[1788,19]]},"85":{"position":[[1883,19]]}}}],["buttons[4].scale.set(0.8",{"_index":1344,"t":{"81":{"position":[[1756,25]]},"85":{"position":[[1851,25]]}}}],["cache",{"_index":937,"t":{"55":{"position":[[1032,6]]}}}],["calclight(p",{"_index":1852,"t":{"99":{"position":[[2440,12]]},"129":{"position":[[2288,12]]}}}],["calclight(vec3",{"_index":1807,"t":{"99":{"position":[[1441,14]]},"129":{"position":[[1308,14]]}}}],["calculate",{"_index":106,"t":{"39":{"position":[[1761,9],[4115,9],[4744,9],[4974,9]]},"49":{"position":[[965,9],[5473,9]]},"51":{"position":[[810,9],[1764,9]]},"127":{"position":[[2148,11]]}}}],["calculatebounds",{"_index":1537,"t":{"89":{"position":[[2124,15],[2140,17]]}}}],["calculated",{"_index":566,"t":{"47":{"position":[[3804,10]]}}}],["calculates",{"_index":73,"t":{"39":{"position":[[854,10]]},"49":{"position":[[5122,10]]},"99":{"position":[[1083,10]]},"129":{"position":[[1002,10]]}}}],["calculation",{"_index":1805,"t":{"99":{"position":[[1423,12]]},"129":{"position":[[1290,12]]}}}],["call",{"_index":800,"t":{"49":{"position":[[8391,4]]},"53":{"position":[[602,4]]}}}],["calling",{"_index":919,"t":{"55":{"position":[[473,7]]}}}],["calls",{"_index":2743,"t":{"173":{"position":[[1194,5]]}}}],["cam",{"_index":1824,"t":{"99":{"position":[[1786,3],[1927,5],[2212,4]]},"129":{"position":[[1634,3],[1775,5],[2060,4]]}}}],["camera",{"_index":863,"t":{"51":{"position":[[885,7]]},"89":{"position":[[183,6],[493,7],[859,7]]}}}],["camera\\'s",{"_index":1535,"t":{"89":{"position":[[2057,9]]}}}],["cameraz",{"_index":839,"t":{"51":{"position":[[261,7],[768,7],[1330,7],[1450,8],[1559,8]]}}}],["cant",{"_index":1731,"t":{"97":{"position":[[613,4]]},"173":{"position":[[1239,4]]}}}],["canvas",{"_index":1467,"t":{"89":{"position":[[240,7]]},"91":{"position":[[118,7],[573,6]]},"147":{"position":[[115,6]]},"171":{"position":[[412,6]]},"173":{"position":[[589,7],[652,6],[1491,8]]},"179":{"position":[[840,6]]}}}],["canvas.getcontext('2d",{"_index":2699,"t":{"171":{"position":[[510,24]]},"173":{"position":[[753,24]]}}}],["canvas.height",{"_index":2697,"t":{"171":{"position":[[479,13]]},"173":{"position":[[717,13]]}}}],["canvas.transfercontroltooffscreen",{"_index":2472,"t":{"147":{"position":[[171,36]]}}}],["canvas.width",{"_index":2696,"t":{"171":{"position":[[455,12]]},"173":{"position":[[695,12]]}}}],["canvas2d",{"_index":2685,"t":{"171":{"position":[[51,8],[542,8]]},"173":{"position":[[69,8]]}}}],["capture",{"_index":1594,"t":{"89":{"position":[[4044,7]]}}}],["careful",{"_index":2760,"t":{"173":{"position":[[1824,8]]}}}],["cb(delta",{"_index":804,"t":{"49":{"position":[[8453,10]]}}}],["cells",{"_index":2189,"t":{"119":{"position":[[259,5],[514,7]]}}}],["cells.mask",{"_index":2197,"t":{"119":{"position":[[470,10]]}}}],["cells.scale.set(1.5",{"_index":2191,"t":{"119":{"position":[[324,21]]}}}],["center",{"_index":191,"t":{"39":{"position":[[3969,6]]},"51":{"position":[[2136,6],[2169,7],[2306,7]]},"53":{"position":[[402,6],[484,6]]},"61":{"position":[[480,6],[562,6]]},"67":{"position":[[556,6],[639,6]]},"75":{"position":[[263,6],[345,6]]},"83":{"position":[[849,6]]},"89":{"position":[[5388,6]]},"93":{"position":[[1337,9]]},"127":{"position":[[1178,6],[2174,6],[3510,6]]},"147":{"position":[[734,6],[817,6]]},"155":{"position":[[265,6],[347,6]]},"157":{"position":[[418,6],[503,6]]}}}],["centerd",{"_index":1139,"t":{"69":{"position":[[600,7]]}}}],["centered",{"_index":1173,"t":{"73":{"position":[[436,8]]}}}],["chachicle",{"_index":2610,"t":{"165":{"position":[[210,10],[626,12]]}}}],["change",{"_index":613,"t":{"47":{"position":[[4848,7]]},"51":{"position":[[1050,6]]},"63":{"position":[[969,6]]},"89":{"position":[[470,6]]},"93":{"position":[[1246,6]]},"153":{"position":[[712,6]]}}}],["changed",{"_index":873,"t":{"51":{"position":[[1241,7]]},"93":{"position":[[905,7]]}}}],["changes",{"_index":221,"t":{"39":{"position":[[4988,7],[5160,7]]}}}],["character",{"_index":927,"t":{"55":{"position":[[691,9]]},"157":{"position":[[377,9]]}}}],["character.anchor.set(0.5",{"_index":928,"t":{"55":{"position":[[729,26]]},"157":{"position":[[450,26]]}}}],["character.cursor",{"_index":932,"t":{"55":{"position":[[861,16]]},"157":{"position":[[691,16]]}}}],["character.eventmode",{"_index":931,"t":{"55":{"position":[[829,19]]},"157":{"position":[[659,19]]}}}],["character.on('pointertap",{"_index":934,"t":{"55":{"position":[[922,26]]},"157":{"position":[[721,26]]}}}],["character.rotation",{"_index":2543,"t":{"157":{"position":[[893,18]]}}}],["character.texture",{"_index":938,"t":{"55":{"position":[[1039,17]]},"157":{"position":[[810,17]]}}}],["character.x",{"_index":929,"t":{"55":{"position":[[756,11]]},"157":{"position":[[524,11]]}}}],["character.y",{"_index":930,"t":{"55":{"position":[[792,11]]},"157":{"position":[[560,11]]}}}],["chars",{"_index":1616,"t":{"89":{"position":[[4826,6]]}}}],["check",{"_index":54,"t":{"39":{"position":[[527,5],[3093,5]]},"49":{"position":[[8798,5]]},"99":{"position":[[194,5],[1150,6]]},"129":{"position":[[1069,6]]}}}],["checks",{"_index":1271,"t":{"79":{"position":[[1977,6]]}}}],["child",{"_index":1475,"t":{"89":{"position":[[551,7]]}}}],["children",{"_index":2774,"t":{"175":{"position":[[829,8],[900,9]]}}}],["choice",{"_index":2732,"t":{"173":{"position":[[568,7]]}}}],["circle",{"_index":306,"t":{"43":{"position":[[137,6]]},"91":{"position":[[57,6],[256,6],[269,6],[614,7]]},"97":{"position":[[982,7]]},"111":{"position":[[1038,6]]},"113":{"position":[[760,6],[800,7],[841,6],[963,6],[1112,6]]},"115":{"position":[[149,6],[464,6]]}}}],["circle.filters",{"_index":2173,"t":{"115":{"position":[[584,14]]}}}],["circle.position.copyfrom(e.global",{"_index":1646,"t":{"91":{"position":[[727,35]]}}}],["circle.position.set(app.screen.width",{"_index":1643,"t":{"91":{"position":[[427,36]]}}}],["clamped",{"_index":1685,"t":{"93":{"position":[[1983,7]]}}}],["class",{"_index":1483,"t":{"89":{"position":[[746,5],[1993,5]]},"173":{"position":[[261,5]]}}}],["cleaner",{"_index":1779,"t":{"99":{"position":[[796,7]]}}}],["clear",{"_index":348,"t":{"43":{"position":[[1369,6],[1580,8],[1735,6]]},"177":{"position":[[2244,6]]}}}],["clears",{"_index":2824,"t":{"177":{"position":[[2130,6]]}}}],["click",{"_index":1099,"t":{"65":{"position":[[1105,5]]},"79":{"position":[[1630,5]]},"89":{"position":[[4522,5],[5470,5]]},"111":{"position":[[1429,5]]}}}],["click/tap",{"_index":2567,"t":{"161":{"position":[[663,9],[912,9]]}}}],["clipinput(k",{"_index":287,"t":{"41":{"position":[[1726,12],[1881,12],[1908,11],[2167,13],[2189,11]]}}}],["code",{"_index":814,"t":{"49":{"position":[[8673,4]]}}}],["col",{"_index":1841,"t":{"99":{"position":[[2128,3],[2422,3]]},"129":{"position":[[1976,3],[2270,3]]}}}],["colliding",{"_index":219,"t":{"39":{"position":[[4918,9]]}}}],["collision",{"_index":75,"t":{"39":{"position":[[882,10],[5074,9]]}}}],["collisionpush",{"_index":225,"t":{"39":{"position":[[5090,13]]}}}],["collisionpush.x",{"_index":228,"t":{"39":{"position":[[5229,16],[5339,16]]}}}],["collisionpush.y",{"_index":229,"t":{"39":{"position":[[5267,16],[5376,16]]}}}],["collisionresponse(greensquare",{"_index":226,"t":{"39":{"position":[[5106,30]]}}}],["collisionresponse(object1",{"_index":80,"t":{"39":{"position":[[962,26]]}}}],["color",{"_index":362,"t":{"43":{"position":[[1614,6]]},"89":{"position":[[3432,6]]},"91":{"position":[[351,6]]},"127":{"position":[[2228,5],[2324,6],[2894,5],[2928,5],[2948,7],[4548,5]]}}}],["color.rgb",{"_index":2297,"t":{"127":{"position":[[2258,9]]}}}],["color1",{"_index":2271,"t":{"127":{"position":[[1275,6],[1397,6]]}}}],["color2",{"_index":2273,"t":{"127":{"position":[[1315,6],[1406,7]]}}}],["colorsize",{"_index":2208,"t":{"121":{"position":[[300,9],[404,13],[517,11],[580,10],[636,11],[768,11]]}}}],["combination",{"_index":2344,"t":{"127":{"position":[[4353,11]]}}}],["combinequad",{"_index":2358,"t":{"127":{"position":[[4924,11]]}}}],["combinequad.position.set(430",{"_index":2364,"t":{"127":{"position":[[5128,29]]}}}],["combines",{"_index":1098,"t":{"65":{"position":[[1085,8]]}}}],["combineshader",{"_index":2357,"t":{"127":{"position":[[4836,13],[4962,15]]}}}],["combineuniforms",{"_index":2356,"t":{"127":{"position":[[4735,15],[4900,17]]}}}],["complete",{"_index":614,"t":{"47":{"position":[[4866,9]]}}}],["completed",{"_index":1699,"t":{"95":{"position":[[531,9]]}}}],["completely",{"_index":972,"t":{"57":{"position":[[1418,10]]}}}],["completion",{"_index":646,"t":{"49":{"position":[[222,11]]}}}],["connect",{"_index":1481,"t":{"89":{"position":[[708,7]]}}}],["connects",{"_index":356,"t":{"43":{"position":[[1484,8]]}}}],["const",{"_index":25,"t":{"39":{"position":[[209,5],[391,5],[471,5],[604,5],[641,5],[1056,5],[1140,5],[1274,5],[1366,5],[1509,5],[1604,5],[1853,5],[1876,5],[1966,5],[2288,5],[2511,5],[3982,5],[4194,5],[4384,5],[4594,5],[4688,5],[5084,5]]},"41":{"position":[[33,5],[178,5],[257,5],[278,5],[353,5],[430,5],[452,5],[690,5],[1388,5],[1478,5],[1547,5],[2042,5],[2067,5],[2157,5],[2223,5],[2241,5]]},"43":{"position":[[33,5],[176,5],[310,5],[538,5],[576,5],[613,5],[682,5],[754,5],[814,5]]},"45":{"position":[[33,5],[151,5],[225,5],[316,5],[379,5],[662,5],[1041,5],[1116,5]]},"47":{"position":[[33,5],[358,5],[382,5],[515,5],[801,5],[819,5],[893,5],[977,5],[1213,5],[1695,5],[1844,5],[1944,5],[2093,5],[2443,5],[2696,5],[3256,5],[3276,5],[3321,5],[3369,5],[3710,5],[4039,5],[4063,5],[4652,5],[4754,5],[5006,5],[5030,5],[5093,5],[5116,5]]},"49":{"position":[[33,5],[276,5],[317,5],[419,5],[499,5],[556,5],[675,5],[989,5],[1037,5],[1085,5],[1445,5],[1474,5],[1659,5],[2254,5],[2295,5],[2397,5],[2415,5],[2437,5],[2494,5],[2923,5],[3168,5],[3209,5],[3311,5],[3391,5],[3448,5],[3707,5],[3743,5],[3777,5],[3796,5],[3838,5],[4209,5],[4250,5],[4352,5],[4370,5],[4392,5],[4592,5],[4863,5],[4883,5],[5170,5],[5497,5],[5545,5],[5610,5],[6348,5],[6377,5],[6586,5],[7387,5],[7428,5],[7530,5],[7731,5],[8097,5],[8917,5],[9049,5],[9123,5],[9367,5],[9398,5]]},"51":{"position":[[33,5],[155,5],[232,5],[274,5],[290,5],[349,5],[372,5],[419,5],[476,5],[893,5],[934,5],[1414,5],[1540,5],[1797,5],[1861,5],[1926,5],[2003,5]]},"53":{"position":[[33,5],[224,5],[358,5]]},"55":{"position":[[33,5],[685,5]]},"57":{"position":[[33,5],[193,5],[795,5],[921,5],[1472,5],[1598,5]]},"59":{"position":[[33,5],[384,5],[651,5],[826,5]]},"61":{"position":[[33,5],[198,5],[428,5]]},"63":{"position":[[33,5],[160,5],[401,5],[423,5],[570,5],[1541,5],[1572,5],[1861,5]]},"65":{"position":[[33,5],[277,5],[296,5],[426,5],[733,5],[813,5],[1340,5]]},"67":{"position":[[33,5],[149,5],[244,5],[381,5]]},"69":{"position":[[33,5],[126,5],[324,5],[344,5],[482,5],[1408,5],[1439,5],[1743,5]]},"71":{"position":[[33,5],[228,5],[379,5]]},"73":{"position":[[33,5],[156,5],[175,5],[322,5],[1394,5],[1425,5],[1709,5]]},"75":{"position":[[33,5],[189,5]]},"77":{"position":[[33,5],[257,5]]},"79":{"position":[[33,5],[141,5],[249,5],[570,5],[1113,5],[1264,5],[1703,5],[1788,5],[2326,5],[2381,5],[2490,5],[2599,5],[2704,5]]},"81":{"position":[[33,5],[172,5],[245,5],[488,5],[749,5],[830,5],[920,5],[1010,5],[1030,5],[1137,5]]},"83":{"position":[[33,5],[188,5],[556,5]]},"85":{"position":[[33,5],[152,5],[413,5],[494,5],[584,5],[674,5],[694,5],[801,5]]},"87":{"position":[[109,5],[225,5],[445,5],[462,5],[618,5],[814,5],[1146,5],[1167,5],[1201,5]]},"89":{"position":[[248,5],[2160,5],[2522,5],[2568,5],[3292,5],[3567,5],[4409,5],[4873,5],[5112,5],[5169,5],[5289,5]]},"91":{"position":[[126,5],[263,5]]},"93":{"position":[[33,5],[149,5],[188,5],[318,5],[343,5],[525,5],[934,5],[1198,5],[1898,5],[2175,5]]},"95":{"position":[[33,5],[153,5]]},"97":{"position":[[101,5],[221,5],[646,5],[1148,5],[1321,5]]},"99":{"position":[[305,5],[519,5],[882,5]]},"101":{"position":[[33,5],[126,5],[299,5],[500,5],[700,5],[751,5],[930,5],[966,5]]},"103":{"position":[[33,5],[158,5],[309,5],[362,5],[475,5],[612,5],[745,5],[878,5],[1201,5],[1645,5]]},"105":{"position":[[33,5],[158,5],[229,5],[250,5],[373,5],[424,5],[881,5],[981,5],[1251,5],[1403,5],[1945,5]]},"107":{"position":[[33,5],[158,5],[229,5],[365,5],[591,5]]},"109":{"position":[[33,5],[143,5],[302,5],[562,5],[786,5],[1056,5],[1307,5],[1458,5],[1621,5],[1815,5],[2179,5]]},"111":{"position":[[33,5],[207,5],[1306,5]]},"113":{"position":[[65,5],[175,5],[2238,5]]},"115":{"position":[[33,5],[156,5],[195,5],[300,5],[458,5],[642,5],[733,5],[824,5]]},"117":{"position":[[33,5],[175,5],[350,5],[489,5],[597,5],[702,5],[807,5],[1015,5],[1321,5]]},"119":{"position":[[33,5],[158,5],[253,5],[346,5],[522,5]]},"121":{"position":[[33,5],[126,5],[270,5],[294,5],[315,5],[725,5],[971,5],[1407,5]]},"123":{"position":[[33,5],[126,5],[491,5],[1040,5]]},"125":{"position":[[33,5],[126,5],[477,5],[821,5],[883,5],[1432,5]]},"127":{"position":[[33,5],[158,5],[547,5],[914,5],[1028,5],[1443,5],[1479,5],[1687,5],[1763,5],[1817,5],[1952,5],[2335,5],[2406,5],[2491,5],[2569,5],[2627,5],[2757,5],[2988,5],[3049,5],[3131,5],[3208,5],[3264,5],[3361,5],[4005,5],[4057,5],[4136,5],[4212,5],[4266,5],[4370,5],[4729,5],[4830,5],[4918,5]]},"129":{"position":[[33,5],[145,5],[496,5],[809,5],[2400,5],[2688,5],[2755,5]]},"131":{"position":[[33,5],[126,5],[366,5],[914,5],[1591,5],[1641,5]]},"133":{"position":[[33,5],[126,5],[430,5],[908,5],[1066,5],[1219,5]]},"135":{"position":[[33,5],[158,5],[181,5],[281,5],[439,5]]},"137":{"position":[[33,5],[158,5],[187,5],[287,5],[404,5]]},"139":{"position":[[33,5],[126,5],[228,5],[589,5]]},"141":{"position":[[33,5],[126,5],[450,5],[886,5]]},"143":{"position":[[33,5],[126,5],[570,5],[944,5],[1141,5],[1241,5],[1308,5]]},"145":{"position":[[33,5],[126,5],[477,5],[790,5],[1006,5],[1116,5],[1183,5]]},"147":{"position":[[109,5],[158,5],[208,5],[327,5],[422,5],[559,5]]},"149":{"position":[[33,5],[283,5],[338,5],[378,5],[423,5],[516,5],[567,5],[838,5]]},"151":{"position":[[33,5],[264,5],[328,5],[500,5]]},"153":{"position":[[33,5],[283,5],[333,5],[585,5]]},"155":{"position":[[33,5],[191,5]]},"157":{"position":[[33,5],[170,5],[248,5],[371,5]]},"159":{"position":[[33,5],[165,5],[375,5]]},"161":{"position":[[33,5],[206,5],[1187,5],[1329,5]]},"163":{"position":[[33,5],[232,5]]},"165":{"position":[[33,5],[548,5],[657,5],[760,5],[882,5]]},"167":{"position":[[33,5],[149,5],[272,5],[641,5],[806,5],[1119,5]]},"169":{"position":[[33,5],[353,5],[574,5],[759,5]]},"171":{"position":[[171,5],[385,5],[406,5],[498,5],[574,5],[859,5],[900,5]]},"173":{"position":[[474,5],[535,5],[646,5],[741,5],[778,5],[1290,5],[1517,5],[1627,5],[1907,5],[1962,5]]},"175":{"position":[[33,5],[149,5],[220,5],[325,5],[500,5],[578,5],[618,5]]},"177":{"position":[[33,5],[126,5],[417,5],[524,5],[722,5],[885,5],[1301,5],[1425,5],[1749,5],[1835,5]]},"179":{"position":[[33,5],[233,5],[261,5],[332,5],[410,5],[488,5],[515,5],[588,5],[1004,5],[1047,5],[1090,5],[1130,5],[1279,5],[1513,5]]}}}],["construct",{"_index":1576,"t":{"89":{"position":[[3539,9]]}}}],["constructor",{"_index":1486,"t":{"89":{"position":[[791,13]]},"95":{"position":[[746,11]]},"173":{"position":[[308,13]]}}}],["contain",{"_index":2580,"t":{"161":{"position":[[953,7]]}}}],["container",{"_index":452,"t":{"47":{"position":[[992,10]]},"49":{"position":[[323,9],[2301,9],[3215,9],[4256,9],[7434,9]]},"65":{"position":[[416,9]]},"67":{"position":[[155,9],[539,9],[668,9],[844,10]]},"97":{"position":[[1154,9]]},"103":{"position":[[368,9]]},"105":{"position":[[164,9]]},"107":{"position":[[164,9]]},"117":{"position":[[356,9]]},"147":{"position":[[333,9],[717,9],[846,9],[1022,10]]},"175":{"position":[[155,9],[751,9],[845,10],[867,9]]},"177":{"position":[[1384,9]]}}}],["container.addchild(ball",{"_index":707,"t":{"49":{"position":[[2587,25]]}}}],["container.addchild(base",{"_index":663,"t":{"49":{"position":[[814,25],[3559,25],[5261,25]]}}}],["container.addchild(bg",{"_index":1964,"t":{"105":{"position":[[1550,23]]}}}],["container.addchild(bgfront",{"_index":1900,"t":{"103":{"position":[[583,28]]},"117":{"position":[[901,27]]}}}],["container.addchild(bottom",{"_index":662,"t":{"49":{"position":[[786,27]]}}}],["container.addchild(bunny",{"_index":1116,"t":{"67":{"position":[[502,26]]},"147":{"position":[[680,26]]},"175":{"position":[[471,26]]}}}],["container.addchild(edge",{"_index":761,"t":{"49":{"position":[[5321,25]]}}}],["container.addchild(flag",{"_index":1981,"t":{"107":{"position":[[311,25]]}}}],["container.addchild(halfcircle",{"_index":787,"t":{"49":{"position":[[7935,31]]}}}],["container.addchild(light1",{"_index":1908,"t":{"103":{"position":[[850,27]]}}}],["container.addchild(light2",{"_index":1904,"t":{"103":{"position":[[717,27]]}}}],["container.addchild(maggot",{"_index":1937,"t":{"105":{"position":[[521,27]]}}}],["container.addchild(mask",{"_index":664,"t":{"49":{"position":[[840,25],[3585,25],[5347,25]]}}}],["container.addchild(panda",{"_index":1912,"t":{"103":{"position":[[972,26]]}}}],["container.addchild(rectangle",{"_index":786,"t":{"49":{"position":[[7904,30]]}}}],["container.addchild(roundingmask",{"_index":760,"t":{"49":{"position":[[5287,33]]}}}],["container.filterarea",{"_index":1757,"t":{"97":{"position":[[1188,20]]}}}],["container.filters",{"_index":1759,"t":{"97":{"position":[[1401,17]]},"105":{"position":[[1105,17]]}}}],["container.height",{"_index":1123,"t":{"67":{"position":[[751,16]]},"147":{"position":[[929,16]]}}}],["container.mask",{"_index":2185,"t":{"117":{"position":[[1162,14],[1239,17],[1259,14],[1292,14]]}}}],["container.pivot.x",{"_index":1120,"t":{"67":{"position":[[690,17]]},"147":{"position":[[868,17]]}}}],["container.pivot.y",{"_index":1122,"t":{"67":{"position":[[731,17]]},"147":{"position":[[909,17]]}}}],["container.position",{"_index":648,"t":{"49":{"position":[[357,18],[2335,18],[3249,18],[4290,18],[7468,18]]}}}],["container.rotation",{"_index":1126,"t":{"67":{"position":[[906,18]]},"147":{"position":[[1084,18]]}}}],["container.width",{"_index":1121,"t":{"67":{"position":[[710,15]]},"147":{"position":[[888,15]]}}}],["container.x",{"_index":1117,"t":{"67":{"position":[[563,11]]},"103":{"position":[[402,11]]},"117":{"position":[[390,11]]},"147":{"position":[[741,11]]},"175":{"position":[[1006,11]]}}}],["container.y",{"_index":1118,"t":{"67":{"position":[[599,11]]},"103":{"position":[[438,11]]},"117":{"position":[[426,11]]},"147":{"position":[[777,11]]},"175":{"position":[[1025,11]]}}}],["containspoint",{"_index":1546,"t":{"89":{"position":[[2356,13]]}}}],["containspoint(point",{"_index":1547,"t":{"89":{"position":[[2370,20]]}}}],["content",{"_index":1470,"t":{"89":{"position":[[392,7],[525,7],[632,7],[823,7],[1073,7],[2094,11],[2455,7],[5362,7]]},"99":{"position":[[292,8]]},"177":{"position":[[2160,7]]}}}],["content's",{"_index":1510,"t":{"89":{"position":[[1414,9],[1670,9],[3103,9]]}}}],["contentbounds",{"_index":1538,"t":{"89":{"position":[[2166,13]]}}}],["contentbounds.height",{"_index":1545,"t":{"89":{"position":[[2313,21]]}}}],["contentbounds.width",{"_index":1544,"t":{"89":{"position":[[2292,20]]}}}],["contentbounds.x",{"_index":1542,"t":{"89":{"position":[[2258,16]]}}}],["contentbounds.y",{"_index":1543,"t":{"89":{"position":[[2275,16]]}}}],["contents",{"_index":1472,"t":{"89":{"position":[[443,8]]}}}],["continue",{"_index":763,"t":{"49":{"position":[[6054,8],[6241,8]]}}}],["control",{"_index":1036,"t":{"63":{"position":[[1094,7]]},"73":{"position":[[825,7]]}}}],["cool",{"_index":2651,"t":{"167":{"position":[[1159,6]]}}}],["coordinate",{"_index":861,"t":{"51":{"position":[[854,10]]},"89":{"position":[[3354,10]]}}}],["coordinates",{"_index":833,"t":{"49":{"position":[[9335,11]]},"67":{"position":[[678,11]]},"89":{"position":[[4879,11],[4959,14],[5342,11]]},"107":{"position":[[1052,12]]},"147":{"position":[[856,11]]}}}],["coordinates.text",{"_index":1631,"t":{"89":{"position":[[5226,16]]}}}],["coordinates.x",{"_index":1621,"t":{"89":{"position":[[4978,13]]}}}],["coordinates.y",{"_index":1623,"t":{"89":{"position":[[4999,13]]}}}],["coords",{"_index":1504,"t":{"89":{"position":[[1216,6],[1402,6]]}}}],["copymousedata",{"_index":1500,"t":{"89":{"position":[[1157,13]]}}}],["cordon",{"_index":184,"t":{"39":{"position":[[3497,7]]}}}],["corners",{"_index":685,"t":{"49":{"position":[[1665,7],[2041,7],[6592,7],[6995,7]]}}}],["corners.length",{"_index":695,"t":{"49":{"position":[[2075,14]]}}}],["corners[i",{"_index":697,"t":{"49":{"position":[[2130,9],[7067,9]]}}}],["correspond",{"_index":271,"t":{"41":{"position":[[1326,10]]}}}],["count",{"_index":1077,"t":{"65":{"position":[[386,5],[1390,5]]},"101":{"position":[[880,5],[914,5]]},"103":{"position":[[1064,5],[1631,5]]},"105":{"position":[[1853,5],[1887,5]]},"111":{"position":[[1410,5],[1831,5],[2318,5]]},"117":{"position":[[1190,5],[1746,5],[2108,5]]},"135":{"position":[[130,5],[565,5],[674,6],[739,6]]},"137":{"position":[[130,5],[626,5],[735,6],[800,6]]},"159":{"position":[[506,5],[540,5]]},"177":{"position":[[1654,5],[1796,5]]}}}],["courier",{"_index":2859,"t":{"179":{"position":[[1589,8]]}}}],["cover",{"_index":1592,"t":{"89":{"position":[[4011,5]]}}}],["covered",{"_index":1263,"t":{"79":{"position":[[1685,7]]}}}],["covers",{"_index":483,"t":{"47":{"position":[[1661,6]]},"93":{"position":[[244,6]]}}}],["crawl",{"_index":1977,"t":{"105":{"position":[[2272,5]]}}}],["create",{"_index":250,"t":{"41":{"position":[[474,6],[577,6],[674,6]]},"43":{"position":[[257,6]]},"47":{"position":[[484,6]]},"51":{"position":[[402,6]]},"53":{"position":[[306,6]]},"55":{"position":[[632,6]]},"57":{"position":[[868,6],[1545,6]]},"59":{"position":[[597,6]]},"61":{"position":[[181,6],[375,6]]},"63":{"position":[[129,6],[351,6],[488,6],[1055,6],[1275,6],[1498,6]]},"65":{"position":[[400,6],[774,6]]},"67":{"position":[[223,6],[321,6],[871,6]]},"69":{"position":[[283,6],[462,6],[873,6],[1076,6],[1359,6]]},"71":{"position":[[550,6]]},"73":{"position":[[240,6],[786,6],[847,6],[1128,6],[1351,6]]},"75":{"position":[[149,6]]},"79":{"position":[[658,6]]},"81":{"position":[[465,6],[709,6]]},"83":{"position":[[152,6],[523,6]]},"85":{"position":[[129,6],[373,6]]},"91":{"position":[[245,6]]},"95":{"position":[[129,6],[570,6]]},"97":{"position":[[197,6]]},"111":{"position":[[1284,6]]},"117":{"position":[[993,6]]},"147":{"position":[[401,6],[499,6],[1049,6]]},"149":{"position":[[245,6],[538,6],[809,6]]},"151":{"position":[[226,6],[465,6]]},"153":{"position":[[236,6],[505,6]]},"155":{"position":[[152,6]]},"157":{"position":[[333,6]]},"159":{"position":[[129,6],[240,6]]},"161":{"position":[[149,6],[1152,6],[1264,6]]},"169":{"position":[[710,6]]},"171":{"position":[[558,6]]},"177":{"position":[[204,6],[458,6],[854,6],[1276,6],[1326,6]]},"179":{"position":[[209,6],[1237,6]]}}}],["createbunny",{"_index":1352,"t":{"83":{"position":[[380,12]]}}}],["createbunny(x",{"_index":1353,"t":{"83":{"position":[[500,14]]}}}],["created",{"_index":2782,"t":{"177":{"position":[[510,7]]}}}],["creategradtexture",{"_index":2689,"t":{"171":{"position":[[290,19],[879,20]]}}}],["creates",{"_index":2538,"t":{"155":{"position":[[614,7]]}}}],["creating",{"_index":1715,"t":{"97":{"position":[[81,8]]}}}],["crop",{"_index":2834,"t":{"179":{"position":[[521,4],[601,5],[713,5],[919,5]]}}}],["cross",{"_index":1834,"t":{"99":{"position":[[2012,6]]},"129":{"position":[[1860,6]]}}}],["crosterian",{"_index":2619,"t":{"165":{"position":[[426,11],[963,13]]}}}],["css",{"_index":1301,"t":{"81":{"position":[[152,3]]}}}],["ctx",{"_index":2698,"t":{"171":{"position":[[504,3]]},"173":{"position":[[747,3]]}}}],["ctx.createlineargradient(0",{"_index":2701,"t":{"171":{"position":[[586,27]]},"173":{"position":[[790,27]]}}}],["ctx.fillrect(0",{"_index":2710,"t":{"171":{"position":[[791,15]]},"173":{"position":[[993,15]]}}}],["ctx.fillstyle",{"_index":2709,"t":{"171":{"position":[[770,13]]},"173":{"position":[[972,13]]}}}],["cubic",{"_index":275,"t":{"41":{"position":[[1434,5],[1648,5]]}}}],["cubicinterpolation(array",{"_index":294,"t":{"41":{"position":[[1949,25]]}}}],["cubicinterpolation(historyx",{"_index":281,"t":{"41":{"position":[[1489,28]]}}}],["cubicinterpolation(historyy",{"_index":283,"t":{"41":{"position":[[1558,28]]}}}],["current",{"_index":358,"t":{"43":{"position":[[1525,7]]}}}],["currenttargetname",{"_index":1441,"t":{"87":{"position":[[1207,17],[1364,18]]}}}],["currenttexture",{"_index":2781,"t":{"177":{"position":[[423,14]]}}}],["cursor",{"_index":1200,"t":{"77":{"position":[[518,6]]},"81":{"position":[[340,6]]},"83":{"position":[[760,6]]},"89":{"position":[[1912,6],[1923,8],[2067,6],[4306,6]]}}}],["cursor(value",{"_index":1532,"t":{"89":{"position":[[2020,13]]}}}],["curve",{"_index":274,"t":{"41":{"position":[[1423,5]]},"109":{"position":[[232,5],[773,5]]}}}],["custom",{"_index":1231,"t":{"79":{"position":[[548,6]]},"81":{"position":[[333,6]]}}}],["customuniform",{"_index":1705,"t":{"95":{"position":[[673,14]]}}}],["cyan",{"_index":2706,"t":{"171":{"position":[[701,8]]},"173":{"position":[[903,8]]}}}],["d",{"_index":1818,"t":{"99":{"position":[[1650,1],[1692,2],[2222,1]]},"129":{"position":[[1517,1],[1559,2],[2070,1]]}}}],["d.y",{"_index":1849,"t":{"99":{"position":[[2370,3]]},"129":{"position":[[2218,3]]}}}],["d8",{"_index":2828,"t":{"179":{"position":[[267,2]]}}}],["d8.isvertical(rotate",{"_index":2830,"t":{"179":{"position":[[342,21],[420,21]]}}}],["data",{"_index":1378,"t":{"83":{"position":[[1545,4]]},"95":{"position":[[665,5]]},"99":{"position":[[867,4]]}}}],["date.now",{"_index":615,"t":{"47":{"position":[[4895,11],[5018,11]]}}}],["days",{"_index":2525,"t":{"153":{"position":[[561,4]]}}}],["deacceleration",{"_index":162,"t":{"39":{"position":[[2786,14]]}}}],["default",{"_index":1031,"t":{"63":{"position":[[980,7]]},"89":{"position":[[643,8],[1278,7]]},"97":{"position":[[521,7]]},"173":{"position":[[501,7]]}}}],["defaulticon",{"_index":1303,"t":{"81":{"position":[[178,11],[397,12]]}}}],["deg",{"_index":864,"t":{"51":{"position":[[899,3]]}}}],["degrees",{"_index":1179,"t":{"73":{"position":[[956,7]]}}}],["delta",{"_index":231,"t":{"39":{"position":[[5463,6],[5516,6],[5565,6],[5614,6]]},"45":{"position":[[1030,6]]},"49":{"position":[[888,7],[926,5],[2801,7],[2839,5],[3633,7],[3671,5],[5395,7],[5433,5],[7989,7],[8027,5]]},"51":{"position":[[1341,5]]},"67":{"position":[[862,5],[935,6]]},"95":{"position":[[1012,6]]},"99":{"position":[[3030,5]]},"147":{"position":[[1040,5],[1113,6]]},"155":{"position":[[569,5],[679,6]]}}}],["demo",{"_index":2684,"t":{"171":{"position":[[41,4]]}}}],["denominator",{"_index":828,"t":{"49":{"position":[[8923,11],[9011,12],[9110,12],[9184,12]]}}}],["depending",{"_index":896,"t":{"51":{"position":[[2195,9],[2265,9]]}}}],["depends",{"_index":569,"t":{"47":{"position":[[3848,7]]}}}],["derived",{"_index":1536,"t":{"89":{"position":[[2077,7]]}}}],["description",{"_index":1633,"t":{"89":{"position":[[5295,11]]}}}],["description.position.set(110",{"_index":1636,"t":{"89":{"position":[[5557,29]]}}}],["designated",{"_index":1370,"t":{"83":{"position":[[1105,10]]}}}],["desktop",{"_index":1206,"t":{"77":{"position":[[611,8]]}}}],["desyrel",{"_index":2604,"t":{"163":{"position":[[329,10]]}}}],["detect",{"_index":581,"t":{"47":{"position":[[4196,6]]}}}],["detection",{"_index":23,"t":{"39":{"position":[[191,9]]}}}],["determine",{"_index":812,"t":{"49":{"position":[[8577,9]]}}}],["determined",{"_index":587,"t":{"47":{"position":[[4270,10]]}}}],["determines",{"_index":244,"t":{"41":{"position":[[314,10],[389,10]]}}}],["development/collision",{"_index":22,"t":{"39":{"position":[[169,21]]}}}],["devices",{"_index":1722,"t":{"97":{"position":[[446,7]]}}}],["diamond",{"_index":2843,"t":{"179":{"position":[[790,7]]}}}],["different",{"_index":55,"t":{"39":{"position":[[545,9]]},"47":{"position":[[491,9]]},"69":{"position":[[647,9],[666,9]]},"85":{"position":[[1123,9]]},"89":{"position":[[212,9]]},"97":{"position":[[623,9]]},"179":{"position":[[827,9]]}}}],["dir",{"_index":762,"t":{"49":{"position":[[6038,3]]}}}],["direction",{"_index":177,"t":{"39":{"position":[[3189,9],[4129,9],[4370,9]]},"49":{"position":[[6215,9]]},"63":{"position":[[1199,9]]},"69":{"position":[[889,9],[998,9]]},"73":{"position":[[863,9],[1052,9]]}}}],["disable",{"_index":1529,"t":{"89":{"position":[[1975,7]]},"169":{"position":[[290,7]]}}}],["disjoint",{"_index":1462,"t":{"89":{"position":[[153,8]]}}}],["displacementfilter",{"_index":1951,"t":{"105":{"position":[[987,18],[1125,21]]},"107":{"position":[[597,18],[808,21]]}}}],["displacementfilter.padding",{"_index":1986,"t":{"107":{"position":[[675,26]]}}}],["displacementfilter.scale.x",{"_index":1954,"t":{"105":{"position":[[1147,26]]},"107":{"position":[[830,26]]}}}],["displacementfilter.scale.y",{"_index":1955,"t":{"105":{"position":[[1181,26]]},"107":{"position":[[863,26]]}}}],["displacementsprite",{"_index":1949,"t":{"105":{"position":[[887,18]]},"107":{"position":[[371,18]]}}}],["displacementsprite.anchor.set(0.5",{"_index":1956,"t":{"105":{"position":[[1215,35]]}}}],["displacementsprite.position",{"_index":1987,"t":{"107":{"position":[[708,27]]}}}],["displacementsprite.position.set(eventdata.data.global.x",{"_index":1969,"t":{"105":{"position":[[1706,55]]}}}],["displacementsprite.texture.basetexture.wrapmode",{"_index":1985,"t":{"107":{"position":[[517,47]]}}}],["displacementsprite.width",{"_index":2003,"t":{"107":{"position":[[1201,25]]}}}],["displacementsprite.x",{"_index":1998,"t":{"107":{"position":[[1065,23],[1177,21],[1229,20]]}}}],["dist(p",{"_index":1812,"t":{"99":{"position":[[1545,6],[1584,6],[1623,6],[2226,8]]},"129":{"position":[[1412,6],[1451,6],[1490,6],[2074,8]]}}}],["dist(p+eps.xxy).x",{"_index":1816,"t":{"99":{"position":[[1603,17]]},"129":{"position":[[1470,17]]}}}],["dist(p+eps.xyx).x",{"_index":1814,"t":{"99":{"position":[[1564,17]]},"129":{"position":[[1431,17]]}}}],["dist(p+eps.yxx).x",{"_index":1811,"t":{"99":{"position":[[1525,17]]},"129":{"position":[[1392,17]]}}}],["dist(vec3",{"_index":1791,"t":{"99":{"position":[[1216,9]]},"129":{"position":[[1135,9]]}}}],["distance",{"_index":89,"t":{"39":{"position":[[1146,8],[1328,9],[1353,9],[1775,8]]},"51":{"position":[[940,8],[1000,9],[1035,9]]},"99":{"position":[[1059,8],[2270,8]]},"127":{"position":[[2160,8],[2187,8]]},"129":{"position":[[978,8],[2118,8]]}}}],["distancebetweentwopoints",{"_index":214,"t":{"39":{"position":[[4621,25]]}}}],["distancebetweentwopoints(p1",{"_index":109,"t":{"39":{"position":[[1818,28]]}}}],["distancecenter",{"_index":888,"t":{"51":{"position":[[1932,14],[2405,14]]}}}],["distances",{"_index":1790,"t":{"99":{"position":[[1200,10]]},"129":{"position":[[1119,10]]}}}],["distancescale",{"_index":890,"t":{"51":{"position":[[2009,13],[2079,13],[2336,13],[2367,13]]}}}],["distmouseredsquare",{"_index":213,"t":{"39":{"position":[[4600,18],[4705,18]]}}}],["document.body.append(a",{"_index":383,"t":{"45":{"position":[[418,24]]}}}],["document.body.appendchild(app.view",{"_index":33,"t":{"39":{"position":[[285,36]]},"41":{"position":[[112,36]]},"43":{"position":[[89,36]]},"45":{"position":[[114,36]]},"47":{"position":[[112,36]]},"49":{"position":[[112,36]]},"51":{"position":[[89,36]]},"53":{"position":[[112,36]]},"55":{"position":[[112,36]]},"57":{"position":[[112,36]]},"59":{"position":[[112,36]]},"61":{"position":[[112,36]]},"63":{"position":[[89,36]]},"65":{"position":[[89,36]]},"67":{"position":[[112,36]]},"69":{"position":[[89,36]]},"71":{"position":[[112,36]]},"73":{"position":[[89,36]]},"75":{"position":[[109,36]]},"77":{"position":[[112,36]]},"79":{"position":[[104,36]]},"81":{"position":[[112,36]]},"83":{"position":[[112,36]]},"85":{"position":[[89,36]]},"87":{"position":[[188,36]]},"89":{"position":[[327,36]]},"91":{"position":[[205,36]]},"93":{"position":[[112,36]]},"95":{"position":[[89,36]]},"97":{"position":[[157,36]]},"99":{"position":[[384,36]]},"101":{"position":[[89,36]]},"103":{"position":[[89,36]]},"105":{"position":[[89,36]]},"107":{"position":[[89,36]]},"109":{"position":[[106,36]]},"111":{"position":[[106,36]]},"113":{"position":[[138,36]]},"115":{"position":[[89,36]]},"117":{"position":[[106,36]]},"119":{"position":[[89,36]]},"121":{"position":[[89,36]]},"123":{"position":[[89,36]]},"125":{"position":[[89,36]]},"127":{"position":[[102,36]]},"129":{"position":[[89,36]]},"131":{"position":[[89,36]]},"133":{"position":[[89,36]]},"135":{"position":[[89,36]]},"137":{"position":[[89,36]]},"139":{"position":[[89,36]]},"141":{"position":[[89,36]]},"143":{"position":[[89,36]]},"145":{"position":[[89,36]]},"149":{"position":[[107,36]]},"151":{"position":[[107,36]]},"153":{"position":[[112,36]]},"155":{"position":[[112,36]]},"157":{"position":[[112,36]]},"159":{"position":[[89,36]]},"161":{"position":[[109,36]]},"163":{"position":[[112,36]]},"165":{"position":[[112,36]]},"167":{"position":[[112,36]]},"169":{"position":[[112,36]]},"171":{"position":[[244,36]]},"173":{"position":[[1590,36]]},"175":{"position":[[112,36]]},"177":{"position":[[89,36]]},"179":{"position":[[89,36]]}}}],["document.body.appendchild(canvas",{"_index":2474,"t":{"147":{"position":[[292,34]]}}}],["document.createelement('a",{"_index":382,"t":{"45":{"position":[[389,28]]}}}],["document.createelement('canvas",{"_index":2470,"t":{"147":{"position":[[124,33]]},"171":{"position":[[421,33]]},"173":{"position":[[661,33]]}}}],["document.createelement('script",{"_index":2667,"t":{"169":{"position":[[364,33]]}}}],["document.getelementsbytagname('script')[0",{"_index":2676,"t":{"169":{"position":[[584,43]]}}}],["document.location.protocol",{"_index":2669,"t":{"169":{"position":[[407,29]]}}}],["doesn't",{"_index":2137,"t":{"113":{"position":[[848,7]]}}}],["doesnt",{"_index":2842,"t":{"179":{"position":[[778,6]]}}}],["doing",{"_index":1763,"t":{"99":{"position":[[92,5]]}}}],["don't",{"_index":189,"t":{"39":{"position":[[3801,5]]},"49":{"position":[[8657,5]]},"89":{"position":[[464,5]]},"161":{"position":[[1101,5]]}}}],["done",{"_index":164,"t":{"39":{"position":[[2819,4]]},"47":{"position":[[3530,4]]}}}],["dont",{"_index":2724,"t":{"173":{"position":[[362,4],[600,4]]}}}],["dot",{"_index":1820,"t":{"99":{"position":[[1669,4]]},"129":{"position":[[1536,4]]}}}],["dotrice",{"_index":2615,"t":{"165":{"position":[[342,8],[845,8]]}}}],["down",{"_index":1519,"t":{"89":{"position":[[1656,4]]}}}],["downloaded",{"_index":950,"t":{"57":{"position":[[752,10],[1937,10]]}}}],["downstream",{"_index":1496,"t":{"89":{"position":[[1053,10]]}}}],["dragging",{"_index":342,"t":{"43":{"position":[[1193,8],[1286,10],[1896,8],[1963,8]]},"93":{"position":[[1646,8]]}}}],["dragtarget",{"_index":1371,"t":{"83":{"position":[[1207,10],[1405,12],[1701,10],[1789,12],[1868,10]]}}}],["dragtarget.alpha",{"_index":1389,"t":{"83":{"position":[[1846,16]]}}}],["dragtarget.parent.tolocal(event.global",{"_index":1376,"t":{"83":{"position":[[1420,39]]}}}],["dragtarget.position",{"_index":1377,"t":{"83":{"position":[[1466,21]]}}}],["draw",{"_index":1655,"t":{"93":{"position":[[509,4]]},"111":{"position":[[344,4],[665,4],[937,4],[1031,4],[1451,4]]},"113":{"position":[[793,4],[1417,4],[1647,4],[1816,4],[1951,4],[2088,4],[2225,4]]},"177":{"position":[[273,4]]}}}],["drawcircle(0",{"_index":310,"t":{"43":{"position":[[231,14]]},"91":{"position":[[393,14]]},"93":{"position":[[581,14]]}}}],["drawcircle(radius",{"_index":2172,"t":{"115":{"position":[[514,18]]}}}],["drawing",{"_index":350,"t":{"43":{"position":[[1433,7]]}}}],["drawn",{"_index":314,"t":{"43":{"position":[[297,5],[1506,5]]}}}],["drawrect(0",{"_index":1425,"t":{"87":{"position":[[688,12]]},"93":{"position":[[399,12]]}}}],["drawrect(100",{"_index":1431,"t":{"87":{"position":[[890,14]]}}}],["drawrect(starbutton3.x",{"_index":1252,"t":{"79":{"position":[[1324,24]]}}}],["drawrect(starbutton4.x",{"_index":1267,"t":{"79":{"position":[[1849,24]]}}}],["drawroundedrect(0",{"_index":2560,"t":{"161":{"position":[[262,19]]}}}],["drawstar(0",{"_index":1579,"t":{"89":{"position":[[3649,12]]}}}],["dropshadow",{"_index":507,"t":{"47":{"position":[[2285,11]]},"167":{"position":[[464,11],[866,11]]}}}],["dropshadowalpha",{"_index":2645,"t":{"167":{"position":[[884,16]]}}}],["dropshadowangle",{"_index":511,"t":{"47":{"position":[[2350,16]]},"167":{"position":[[529,16],[906,16]]}}}],["dropshadowblur",{"_index":510,"t":{"47":{"position":[[2331,15]]},"167":{"position":[[510,15],[928,15]]}}}],["dropshadowcolor",{"_index":508,"t":{"47":{"position":[[2303,16]]},"167":{"position":[[482,16],[947,16]]}}}],["dropshadowdistance",{"_index":514,"t":{"47":{"position":[[2380,19]]},"167":{"position":[[559,19],[976,19]]}}}],["dude",{"_index":1021,"t":{"63":{"position":[[576,4],[696,4],[769,4],[1216,4],[1305,4],[1383,4],[1867,4]]},"69":{"position":[[488,4],[1244,4],[1749,4]]},"73":{"position":[[328,4],[511,4],[624,4],[1069,4],[1158,4],[1236,4],[1715,4]]},"179":{"position":[[1285,4]]}}}],["dude.anchor.set(0.5",{"_index":1023,"t":{"63":{"position":[[644,21]]},"69":{"position":[[622,21]]},"73":{"position":[[459,21]]}}}],["dude.blendmode",{"_index":1034,"t":{"63":{"position":[[1013,14]]}}}],["dude.direction",{"_index":1038,"t":{"63":{"position":[[1111,14],[1888,14],[2047,14]]},"69":{"position":[[910,14],[1827,14],[2020,14]]},"73":{"position":[[964,14],[1733,14],[1892,14]]}}}],["dude.offset",{"_index":1147,"t":{"69":{"position":[[1186,11],[1806,12]]}}}],["dude.rotation",{"_index":1060,"t":{"63":{"position":[[2030,13]]},"69":{"position":[[2003,13]]},"73":{"position":[[1875,13]]}}}],["dude.scale.set(0.8",{"_index":1024,"t":{"63":{"position":[[701,18]]},"69":{"position":[[682,18]]},"73":{"position":[[557,18]]}}}],["dude.scale.x",{"_index":2855,"t":{"179":{"position":[[1352,12]]}}}],["dude.scale.y",{"_index":1152,"t":{"69":{"position":[[1768,12],[1922,14],[1988,14]]},"179":{"position":[[1372,12]]}}}],["dude.speed",{"_index":1043,"t":{"63":{"position":[[1324,10],[1969,11],[2018,11]]},"69":{"position":[[1142,10],[1908,11],[1974,11]]},"73":{"position":[[1177,10],[1814,11],[1863,11]]}}}],["dude.texture.rotate",{"_index":2858,"t":{"179":{"position":[[1550,24]]}}}],["dude.tint",{"_index":1142,"t":{"69":{"position":[[832,9]]},"73":{"position":[[745,9]]}}}],["dude.turningspeed",{"_index":1041,"t":{"63":{"position":[[1231,17],[1906,17]]},"69":{"position":[[1032,17],[1845,17]]},"73":{"position":[[1084,17],[1751,17]]}}}],["dude.x",{"_index":1028,"t":{"63":{"position":[[804,6],[1932,6],[2125,7],[2151,6],[2189,7],[2234,6]]},"69":{"position":[[745,6],[1871,6],[2069,7],[2095,6],[2133,7],[2178,6]]},"73":{"position":[[658,6],[1777,6],[1970,7],[1996,6],[2034,7],[2079,6]]},"179":{"position":[[1411,6],[1665,7]]}}}],["dude.y",{"_index":1029,"t":{"63":{"position":[[859,6],[1981,6],[2267,7],[2293,6],[2332,7],[2378,6]]},"69":{"position":[[788,6],[1937,6],[2211,7],[2237,6],[2276,7],[2322,6]]},"73":{"position":[[701,6],[1826,6],[2112,7],[2138,6],[2177,7],[2223,6]]},"179":{"position":[[1447,6],[1682,6]]}}}],["dudearray",{"_index":1016,"t":{"63":{"position":[[407,9],[1397,9]]}}}],["dudearray.length",{"_index":1056,"t":{"63":{"position":[[1836,17]]}}}],["dudearray.push(dude",{"_index":1047,"t":{"63":{"position":[[1445,21]]}}}],["dudearray[i",{"_index":1057,"t":{"63":{"position":[[1874,13]]}}}],["dudebounds",{"_index":1052,"t":{"63":{"position":[[1578,10]]},"69":{"position":[[1445,10]]},"73":{"position":[[1431,10]]}}}],["dudebounds.height",{"_index":1067,"t":{"63":{"position":[[2303,18],[2357,18],[2388,18]]},"69":{"position":[[2247,18],[2301,18],[2332,18]]},"73":{"position":[[2148,18],[2202,18],[2233,18]]}}}],["dudebounds.width",{"_index":1065,"t":{"63":{"position":[[2161,17],[2214,17],[2244,17]]},"69":{"position":[[2105,17],[2158,17],[2188,17]]},"73":{"position":[[2006,17],[2059,17],[2089,17]]}}}],["dudebounds.x",{"_index":1064,"t":{"63":{"position":[[2135,13],[2199,12]]},"69":{"position":[[2079,13],[2143,12]]},"73":{"position":[[1980,13],[2044,12]]}}}],["dudebounds.y",{"_index":1066,"t":{"63":{"position":[[2277,13],[2342,12]]},"69":{"position":[[2221,13],[2286,12]]},"73":{"position":[[2122,13],[2187,12]]}}}],["dudeboundspadding",{"_index":1051,"t":{"63":{"position":[[1547,17],[1612,18],[1632,18],[1670,17],[1713,17]]},"69":{"position":[[1414,17],[1479,18],[1499,18],[1537,17],[1580,17]]},"73":{"position":[[1400,17],[1464,18],[1484,18],[1522,17],[1565,17]]}}}],["dudes",{"_index":1015,"t":{"63":{"position":[[395,5],[1535,5],[1785,5],[2089,5]]},"73":{"position":[[1388,5],[1635,5],[1934,5]]}}}],["dxcenter",{"_index":886,"t":{"51":{"position":[[1803,8],[1970,8],[2493,9]]}}}],["dycenter",{"_index":887,"t":{"51":{"position":[[1867,8],[1981,8],[1992,10]]}}}],["dynamic",{"_index":2779,"t":{"177":{"position":[[240,7]]}}}],["dynamically",{"_index":2542,"t":{"157":{"position":[[781,11]]}}}],["e",{"_index":1523,"t":{"89":{"position":[[1828,3],[4400,3],[4584,3],[5103,3]]},"91":{"position":[[718,3]]}}}],["e.currenttarget.name",{"_index":1442,"t":{"87":{"position":[[1227,21]]}}}],["e.global.x",{"_index":1627,"t":{"89":{"position":[[5127,14]]}}}],["e.global.y",{"_index":1628,"t":{"89":{"position":[[5148,12]]}}}],["e.screen.x",{"_index":1629,"t":{"89":{"position":[[5184,14]]}}}],["e.screen.y",{"_index":1630,"t":{"89":{"position":[[5205,12]]}}}],["e.target.name",{"_index":1440,"t":{"87":{"position":[[1186,14]]}}}],["e.type",{"_index":1438,"t":{"87":{"position":[[1159,7]]}}}],["each",{"_index":223,"t":{"39":{"position":[[5043,4]]},"49":{"position":[[6066,4],[8414,4]]},"87":{"position":[[394,4]]},"127":{"position":[[1624,4]]},"177":{"position":[[1739,4]]}}}],["easier",{"_index":1365,"t":{"83":{"position":[[937,6]]},"175":{"position":[[961,6]]}}}],["easily",{"_index":1044,"t":{"63":{"position":[[1423,6]]},"69":{"position":[[1288,6]]},"73":{"position":[[1279,6]]}}}],["easing",{"_index":606,"t":{"47":{"position":[[4722,7],[4834,7]]},"51":{"position":[[1218,7],[1259,6]]}}}],["easy",{"_index":2589,"t":{"161":{"position":[[1323,5]]}}}],["edge",{"_index":719,"t":{"49":{"position":[[3027,5],[4820,4],[4889,4]]}}}],["edge.drawroundedrect(0",{"_index":749,"t":{"49":{"position":[[4956,23]]}}}],["edge.endfill",{"_index":750,"t":{"49":{"position":[[5007,15]]}}}],["edge.linestyle(linesize",{"_index":748,"t":{"49":{"position":[[4917,24]]}}}],["edge.mask",{"_index":759,"t":{"49":{"position":[[5243,9]]}}}],["edges",{"_index":279,"t":{"41":{"position":[[1471,6]]},"49":{"position":[[4167,6],[5163,6]]},"127":{"position":[[1196,5],[3528,5]]}}}],["effect",{"_index":2306,"t":{"127":{"position":[[2721,7],[3354,6]]}}}],["egg",{"_index":999,"t":{"59":{"position":[[832,3]]}}}],["egg.anchor.set(0.5",{"_index":1001,"t":{"59":{"position":[[874,20]]}}}],["egg.x",{"_index":1002,"t":{"59":{"position":[[895,5]]}}}],["egg.y",{"_index":1004,"t":{"59":{"position":[[928,5]]}}}],["egghead",{"_index":916,"t":{"55":{"position":[[404,12],[1094,9]]},"57":{"position":[[382,10]]},"59":{"position":[[439,12],[487,8]]}}}],["egghead.png",{"_index":1073,"t":{"65":{"position":[[318,14]]}}}],["elements",{"_index":2777,"t":{"175":{"position":[[980,8]]}}}],["ellipse",{"_index":2142,"t":{"113":{"position":[[1262,7]]}}}],["embedded",{"_index":1781,"t":{"99":{"position":[[834,8]]}}}],["empty",{"_index":1078,"t":{"65":{"position":[[410,5]]}}}],["enable",{"_index":1355,"t":{"83":{"position":[[599,6]]},"87":{"position":[[965,6]]},"91":{"position":[[496,6]]},"161":{"position":[[508,6]]}}}],["enabled",{"_index":1913,"t":{"103":{"position":[[1079,7],[1130,7],[1140,9],[1170,7]]},"169":{"position":[[678,7]]}}}],["end",{"_index":686,"t":{"49":{"position":[[1835,3]]}}}],["endfill",{"_index":1255,"t":{"79":{"position":[[1373,11],[1898,11]]},"87":{"position":[[714,12],[920,12]]},"91":{"position":[[414,12]]},"115":{"position":[[572,11]]},"161":{"position":[[299,10]]}}}],["enough",{"_index":970,"t":{"57":{"position":[[1330,6]]}}}],["eps",{"_index":1809,"t":{"99":{"position":[[1475,3]]},"129":{"position":[[1342,3]]}}}],["eps.xxy).x",{"_index":1817,"t":{"99":{"position":[[1630,10]]},"129":{"position":[[1497,10]]}}}],["eps.xyx).x",{"_index":1815,"t":{"99":{"position":[[1591,11]]},"129":{"position":[[1458,11]]}}}],["eps.yxx).x",{"_index":1813,"t":{"99":{"position":[[1552,11]]},"129":{"position":[[1419,11]]}}}],["equivalent",{"_index":1177,"t":{"73":{"position":[[934,10]]}}}],["error('the",{"_index":1534,"t":{"89":{"position":[[2046,10]]}}}],["eslint",{"_index":1528,"t":{"89":{"position":[[1968,6]]},"169":{"position":[[283,6],[671,6]]}}}],["etc",{"_index":2530,"t":{"153":{"position":[[754,3]]}}}],["even",{"_index":1261,"t":{"79":{"position":[[1669,4]]}}}],["event",{"_index":152,"t":{"39":{"position":[[2637,7]]},"41":{"position":[[948,7]]},"87":{"position":[[1256,5],[1326,5]]},"89":{"position":[[1019,5]]},"97":{"position":[[1523,7]]},"115":{"position":[[1008,7]]},"161":{"position":[[673,5],[922,5]]}}}],["event.data",{"_index":1385,"t":{"83":{"position":[[1671,11]]}}}],["event.global.x",{"_index":154,"t":{"39":{"position":[[2666,15]]},"41":{"position":[[1028,15]]},"115":{"position":[[1040,14]]}}}],["event.global.y",{"_index":156,"t":{"39":{"position":[[2698,15]]},"41":{"position":[[1062,15]]},"115":{"position":[[1093,14]]}}}],["eventboundary",{"_index":1480,"t":{"89":{"position":[[689,14]]}}}],["eventdata.data.global.y",{"_index":1970,"t":{"105":{"position":[[1768,25]]}}}],["events",{"_index":1209,"t":{"77":{"position":[[695,7]]},"83":{"position":[[686,6],[981,6],[1027,6]]},"85":{"position":[[1060,6],[1103,6],[1143,7],[1332,6],[1524,6]]},"87":{"position":[[67,6],[88,6],[384,6]]},"89":{"position":[[136,6],[600,6],[1046,6],[1649,6]]}}}],["everywhere",{"_index":1433,"t":{"87":{"position":[[986,11]]},"89":{"position":[[4067,11]]}}}],["exact",{"_index":1788,"t":{"99":{"position":[[1168,5]]},"129":{"position":[[1087,5]]}}}],["example",{"_index":437,"t":{"47":{"position":[[444,8]]},"49":{"position":[[5039,7],[5082,7]]},"57":{"position":[[185,7]]},"63":{"position":[[944,8]]},"87":{"position":[[41,7]]},"89":{"position":[[73,7]]},"91":{"position":[[46,8]]},"99":{"position":[[220,7]]},"127":{"position":[[1678,8]]},"147":{"position":[[41,7]]},"161":{"position":[[755,8]]}}}],["examples",{"_index":3,"t":{"37":{"position":[[29,8],[66,9]]},"49":{"position":[[8715,8]]}}}],["except",{"_index":755,"t":{"49":{"position":[[5096,6]]}}}],["exception",{"_index":2841,"t":{"179":{"position":[[760,9]]}}}],["explaining",{"_index":2,"t":{"37":{"position":[[18,10]]}}}],["explosion",{"_index":2506,"t":{"151":{"position":[[475,9],[506,9]]}}}],["explosion.anchor.set(0.5",{"_index":2510,"t":{"151":{"position":[[659,26]]}}}],["explosion.gotoandplay(math.random",{"_index":2513,"t":{"151":{"position":[[781,35]]}}}],["explosion.rotation",{"_index":2511,"t":{"151":{"position":[[686,18]]}}}],["explosion.scale.set(0.75",{"_index":2512,"t":{"151":{"position":[[732,24]]}}}],["explosion.x",{"_index":2508,"t":{"151":{"position":[[562,11]]}}}],["explosion.y",{"_index":2509,"t":{"151":{"position":[[610,11]]}}}],["explosiontextures",{"_index":2502,"t":{"151":{"position":[[270,17]]}}}],["explosiontextures.push(texture",{"_index":2505,"t":{"151":{"position":[[400,32]]}}}],["extends",{"_index":1484,"t":{"89":{"position":[[762,7]]},"173":{"position":[[284,7]]}}}],["extra",{"_index":552,"t":{"47":{"position":[[3282,5],[3362,6],[3399,5]]},"63":{"position":[[1067,5]]},"73":{"position":[[798,5]]}}}],["extras",{"_index":1458,"t":{"89":{"position":[[56,8]]},"113":{"position":[[56,8]]}}}],["factor",{"_index":293,"t":{"41":{"position":[[1848,7],[1872,6]]}}}],["fake",{"_index":2755,"t":{"173":{"position":[[1713,4]]}}}],["false",{"_index":343,"t":{"43":{"position":[[1204,6],[1376,6],[1404,6],[1742,6],[1770,6],[1974,6]]},"47":{"position":[[3118,6],[3581,6]]},"49":{"position":[[4052,7],[8638,5],[8908,6],[9040,6],[9290,6]]},"81":{"position":[[1955,6],[2208,6]]},"85":{"position":[[2050,6],[2303,6]]},"99":{"position":[[2751,6]]},"105":{"position":[[1370,6]]},"121":{"position":[[472,6],[591,6]]},"129":{"position":[[2647,6]]},"149":{"position":[[79,6]]},"151":{"position":[[79,6]]},"177":{"position":[[2251,6]]}}}],["families",{"_index":2660,"t":{"169":{"position":[[229,9]]}}}],["far",{"_index":211,"t":{"39":{"position":[[4544,3]]},"51":{"position":[[2282,3]]}}}],["fast",{"_index":37,"t":{"39":{"position":[[365,4]]},"51":{"position":[[2212,4]]},"149":{"position":[[818,4],[844,4]]}}}],["fast.anchor.set(0.5",{"_index":2494,"t":{"149":{"position":[[886,21]]}}}],["fast.play",{"_index":2499,"t":{"149":{"position":[[1011,12]]}}}],["fast.scale.set(scaling",{"_index":2495,"t":{"149":{"position":[[908,24]]}}}],["fast.width",{"_index":2497,"t":{"149":{"position":[[962,11]]}}}],["fast.x",{"_index":2496,"t":{"149":{"position":[[933,6]]}}}],["fast.y",{"_index":2498,"t":{"149":{"position":[[979,6]]}}}],["featured",{"_index":6,"t":{"37":{"position":[[57,8]]}}}],["feedback",{"_index":1602,"t":{"89":{"position":[[4360,8]]},"93":{"position":[[1655,8]]}}}],["fetch('https://pixijs.com/assets/pixi",{"_index":1694,"t":{"95":{"position":[[396,37]]}}}],["ffffff",{"_index":501,"t":{"47":{"position":[[2210,11]]},"79":{"position":[[2367,9]]},"167":{"position":[[389,11],[1006,12]]}}}],["figure",{"_index":204,"t":{"39":{"position":[[4344,6],[4463,6]]}}}],["file",{"_index":1780,"t":{"99":{"position":[[823,4]]},"165":{"position":[[171,5]]}}}],["files",{"_index":985,"t":{"57":{"position":[[1919,5]]}}}],["fill",{"_index":413,"t":{"45":{"position":[[1098,5]]},"47":{"position":[[2204,5]]},"49":{"position":[[2032,4],[6986,4]]},"79":{"position":[[2361,5]]},"89":{"position":[[4804,5],[5534,5]]},"93":{"position":[[1277,5]]},"99":{"position":[[558,5]]},"103":{"position":[[1327,5]]},"111":{"position":[[254,4],[564,4]]},"117":{"position":[[1447,5]]},"167":{"position":[[383,5],[1000,5]]},"169":{"position":[[883,5]]},"179":{"position":[[1622,5]]}}}],["filter",{"_index":563,"t":{"47":{"position":[[3745,6]]},"95":{"position":[[504,7],[585,7],[634,6],[739,6],[840,6],[868,9],[937,6]]},"97":{"position":[[1327,6],[1421,9]]},"99":{"position":[[504,6],[2611,7],[2771,6],[2778,6],[2915,9]]},"103":{"position":[[315,6],[1050,9],[1180,8],[1664,7]]}}}],["filter.uniforms.customuniform",{"_index":1710,"t":{"95":{"position":[[793,29],[972,29]]}}}],["filter.uniforms.mouse.copyfrom(event.global",{"_index":1760,"t":{"97":{"position":[[1536,45]]}}}],["filter.uniforms.time",{"_index":1866,"t":{"99":{"position":[[2983,20]]}}}],["filtered",{"_index":2307,"t":{"127":{"position":[[2741,8]]}}}],["filters",{"_index":1716,"t":{"97":{"position":[[90,7]]},"103":{"position":[[1250,7]]}}}],["filters/bg_depth_blur.jpg",{"_index":1869,"t":{"101":{"position":[[186,28]]}}}],["filters/depth_blur_dudes.jpg",{"_index":1874,"t":{"101":{"position":[[368,31]]}}}],["filters/depth_blur_moby.jpg",{"_index":1880,"t":{"101":{"position":[[569,30]]}}}],["filters/displace.png",{"_index":1950,"t":{"105":{"position":[[957,23]]}}}],["filters/displacement_map_repeat.jpg",{"_index":1984,"t":{"107":{"position":[[441,38]]}}}],["filters/flag.png",{"_index":1980,"t":{"107":{"position":[[291,19]]}}}],["filters/ring.png",{"_index":1958,"t":{"105":{"position":[[1313,19]]}}}],["filters/shader.frag",{"_index":1695,"t":{"95":{"position":[[434,21]]}}}],["final",{"_index":2343,"t":{"127":{"position":[[4347,5]]}}}],["finally",{"_index":1026,"t":{"63":{"position":[[747,7],[1363,7]]},"69":{"position":[[1224,7]]},"73":{"position":[[603,7],[1216,7]]}}}],["find",{"_index":672,"t":{"49":{"position":[[1328,4],[6134,4]]}}}],["finish",{"_index":1693,"t":{"95":{"position":[[377,6]]}}}],["first",{"_index":1507,"t":{"89":{"position":[[1301,5],[5402,5]]},"95":{"position":[[780,5]]},"127":{"position":[[998,5]]}}}],["fit",{"_index":467,"t":{"47":{"position":[[1331,3]]}}}],["fixed",{"_index":771,"t":{"49":{"position":[[7329,5]]}}}],["flag",{"_index":923,"t":{"55":{"position":[[577,4]]},"107":{"position":[[235,4]]}}}],["flag.filters",{"_index":1989,"t":{"107":{"position":[[793,12]]}}}],["flag.position",{"_index":1988,"t":{"107":{"position":[[738,14]]}}}],["flag.x",{"_index":1982,"t":{"107":{"position":[[337,6]]}}}],["flag.y",{"_index":1983,"t":{"107":{"position":[[351,6]]}}}],["flash",{"_index":2526,"t":{"153":{"position":[[569,6]]}}}],["flexibility",{"_index":2776,"t":{"175":{"position":[[936,11]]}}}],["flight",{"_index":869,"t":{"51":{"position":[[1057,6]]}}}],["float",{"_index":1734,"t":{"97":{"position":[[683,6],[796,5]]},"99":{"position":[[1044,5],[1231,5],[1283,5],[1338,5],[1875,5],[2144,5]]},"121":{"position":[[1023,6],[1329,6]]},"123":{"position":[[543,6],[837,6]]},"125":{"position":[[935,6],[1229,6]]},"127":{"position":[[585,6],[1072,6],[1106,5],[1998,6],[2032,5],[2054,5],[2181,5],[2802,6],[2836,5],[2888,5],[3405,6],[3439,5],[3464,5],[4417,6]]},"129":{"position":[[534,6],[904,6],[963,5],[1150,5],[1202,5],[1723,5],[1992,5]]},"131":{"position":[[418,6],[712,6],[967,6],[1261,6]]},"133":{"position":[[484,6],[778,6]]},"139":{"position":[[280,6],[521,6]]},"141":{"position":[[502,6],[804,6]]},"143":{"position":[[608,6],[984,6]]},"145":{"position":[[515,6],[830,6],[893,5]]}}}],["float32array(geometry.instancecount",{"_index":2210,"t":{"121":{"position":[[350,35]]}}}],["floor(p.x)+floor(p.y",{"_index":1793,"t":{"99":{"position":[[1242,22]]},"129":{"position":[[1161,22]]}}}],["floor(uv*zoom",{"_index":2270,"t":{"127":{"position":[[1254,15]]}}}],["flower",{"_index":992,"t":{"59":{"position":[[657,6]]}}}],["flower.anchor.set(0.5",{"_index":994,"t":{"59":{"position":[[704,23]]}}}],["flower.x",{"_index":995,"t":{"59":{"position":[[728,8]]}}}],["flower.y",{"_index":997,"t":{"59":{"position":[[764,8]]}}}],["flowertop",{"_index":940,"t":{"55":{"position":[[1106,13]]},"57":{"position":[[270,12]]}}}],["flowertop.png",{"_index":1074,"t":{"65":{"position":[[333,16]]}}}],["focus",{"_index":2177,"t":{"115":{"position":[[830,5],[909,6]]}}}],["focus.height",{"_index":2183,"t":{"115":{"position":[[1110,12]]}}}],["focus.position.x",{"_index":2180,"t":{"115":{"position":[[1021,16]]}}}],["focus.position.y",{"_index":2182,"t":{"115":{"position":[[1074,16]]}}}],["focus.width",{"_index":2181,"t":{"115":{"position":[[1057,11]]}}}],["follow",{"_index":1639,"t":{"91":{"position":[[69,6],[657,6]]}}}],["font",{"_index":2608,"t":{"165":{"position":[[166,4]]},"169":{"position":[[320,4]]}}}],["font/desyrel.xml').then",{"_index":2597,"t":{"163":{"position":[[200,26]]}}}],["fontfamily",{"_index":411,"t":{"45":{"position":[[1076,11]]},"47":{"position":[[2128,11]]},"89":{"position":[[4768,11],[5512,11]]},"93":{"position":[[1294,11]]},"103":{"position":[[1272,11]]},"117":{"position":[[1392,11]]},"165":{"position":[[614,11],[720,11],[833,11],[951,11]]},"167":{"position":[[307,11],[845,11]]},"169":{"position":[[846,11]]},"179":{"position":[[1577,11]]}}}],["fontname",{"_index":1620,"t":{"89":{"position":[[4949,9]]},"163":{"position":[[319,9]]}}}],["fonts",{"_index":2601,"t":{"163":{"position":[[284,5]]},"169":{"position":[[169,5]]}}}],["fontsize",{"_index":495,"t":{"47":{"position":[[2149,9]]},"87":{"position":[[411,9],[517,9]]},"89":{"position":[[4790,9],[5498,9]]},"93":{"position":[[1316,9]]},"99":{"position":[[574,9]]},"103":{"position":[[1293,9]]},"117":{"position":[[1413,9]]},"163":{"position":[[340,9]]},"165":{"position":[[639,9],[742,9],[864,9],[977,9]]},"167":{"position":[[328,9],[1038,9]]},"169":{"position":[[869,9]]},"179":{"position":[[1604,9]]}}}],["fontstyle",{"_index":497,"t":{"47":{"position":[[2163,10]]},"167":{"position":[[342,10]]}}}],["fontweight",{"_index":499,"t":{"47":{"position":[[2184,11]]},"103":{"position":[[1307,11]]},"117":{"position":[[1427,11]]},"167":{"position":[[363,11],[1052,11]]}}}],["forced",{"_index":1725,"t":{"97":{"position":[[481,6]]}}}],["forces",{"_index":920,"t":{"55":{"position":[[486,6]]}}}],["foreach((event",{"_index":1521,"t":{"89":{"position":[[1776,17]]}}}],["forward",{"_index":1829,"t":{"99":{"position":[[1897,7],[1960,8],[2023,10]]},"129":{"position":[[1745,7],[1808,8],[1871,10]]}}}],["found",{"_index":765,"t":{"49":{"position":[[6269,5]]}}}],["fov",{"_index":840,"t":{"51":{"position":[[280,3],[1593,4],[1689,4]]},"99":{"position":[[1881,3]]},"129":{"position":[[1729,3]]}}}],["fov*forward",{"_index":1839,"t":{"99":{"position":[[2090,14]]},"129":{"position":[[1938,14]]}}}],["fragment",{"_index":1726,"t":{"97":{"position":[[491,8],[583,8]]},"99":{"position":[[748,8],[888,8],[2809,9]]}}}],["fragmentcombinesrc",{"_index":2345,"t":{"127":{"position":[[4376,18],[4880,19]]}}}],["fragmentgridsrc",{"_index":2264,"t":{"127":{"position":[[1034,15],[1526,16]]}}}],["fragmentnoisesrc",{"_index":2308,"t":{"127":{"position":[[2763,16],[3097,17]]}}}],["fragmentripplesrc",{"_index":2293,"t":{"127":{"position":[[1958,17],[2455,18]]}}}],["fragmentsrc",{"_index":2385,"t":{"129":{"position":[[815,11],[2731,12]]},"143":{"position":[[950,11],[1284,12]]},"145":{"position":[[796,11],[1159,12]]}}}],["fragmentwavesrc",{"_index":2320,"t":{"127":{"position":[[3367,15],[4104,16]]}}}],["frame",{"_index":570,"t":{"47":{"position":[[3859,5]]},"65":{"position":[[800,5]]},"67":{"position":[[878,5]]},"147":{"position":[[1056,5]]},"155":{"position":[[622,5]]},"179":{"position":[[496,5],[706,6],[912,6]]}}}],["framekey",{"_index":2477,"t":{"149":{"position":[[344,8]]}}}],["framename",{"_index":1086,"t":{"65":{"position":[[739,9]]}}}],["framentsource",{"_index":1703,"t":{"95":{"position":[[619,14]]}}}],["frames",{"_index":2516,"t":{"153":{"position":[[289,6]]}}}],["frames.push(pixi.texture.from(`rollsequence00${val}.png",{"_index":2522,"t":{"153":{"position":[[440,59]]}}}],["friend",{"_index":1354,"t":{"83":{"position":[[547,8]]}}}],["fruits",{"_index":2794,"t":{"177":{"position":[[891,6]]}}}],["fruits.length",{"_index":2808,"t":{"177":{"position":[[1466,16]]}}}],["fullscreen",{"_index":2592,"t":{"161":{"position":[[1389,10]]}}}],["fun",{"_index":1185,"t":{"75":{"position":[[493,4]]},"155":{"position":[[529,4]]}}}],["function",{"_index":57,"t":{"39":{"position":[[563,8],[953,8],[1809,8],[4528,8]]},"41":{"position":[[1717,8],[1825,8],[1940,8]]},"43":{"position":[[519,8],[1238,8],[1866,8],[1935,8]]},"45":{"position":[[276,8]]},"47":{"position":[[453,8],[3128,8],[3155,8],[3544,8],[4568,9],[4673,8],[5497,8],[5567,8],[5661,8]]},"49":{"position":[[8742,8]]},"51":{"position":[[686,8],[1266,8]]},"53":{"position":[[191,8],[206,8],[618,8]]},"57":{"position":[[155,8],[648,8],[1242,8]]},"65":{"position":[[617,8],[1160,8]]},"77":{"position":[[821,8]]},"79":{"position":[[2964,8],[3009,8],[3060,8]]},"81":{"position":[[1819,8],[1917,8],[2058,8],[2169,8]]},"83":{"position":[[491,8],[1373,8],[1492,8],[1763,8]]},"85":{"position":[[1914,8],[2012,8],[2153,8],[2264,8]]},"87":{"position":[[1124,8]]},"93":{"position":[[1528,8],[1693,8],[1877,8]]},"95":{"position":[[541,8]]},"99":{"position":[[1068,9],[2289,8],[2553,8]]},"105":{"position":[[1649,8]]},"119":{"position":[[564,8]]},"129":{"position":[[987,9],[2137,8]]},"135":{"position":[[774,8]]},"161":{"position":[[1073,8]]},"169":{"position":[[339,11],[689,8]]},"171":{"position":[[281,8]]},"173":{"position":[[143,9]]}}}],["functions",{"_index":806,"t":{"49":{"position":[[8485,9]]}}}],["funtion",{"_index":636,"t":{"47":{"position":[[5488,8]]}}}],["further",{"_index":17,"t":{"39":{"position":[[95,7],[3818,7]]}}}],["g",{"_index":2430,"t":{"135":{"position":[[445,1]]},"141":{"position":[[371,2],[391,2],[412,2]]},"143":{"position":[[371,2],[391,2],[412,2]]}}}],["g.beginfill(0xff0022",{"_index":2448,"t":{"135":{"position":[[995,22]]}}}],["g.clear",{"_index":2442,"t":{"135":{"position":[[800,10]]}}}],["g.drawcircle(points[i].x",{"_index":2449,"t":{"135":{"position":[[1018,25]]}}}],["g.endfill",{"_index":2450,"t":{"135":{"position":[[1062,12]]}}}],["g.linestyle(2",{"_index":2443,"t":{"135":{"position":[[811,14]]}}}],["g.lineto(points[i].x",{"_index":2447,"t":{"135":{"position":[[915,21]]}}}],["g.moveto(points[0].x",{"_index":2445,"t":{"135":{"position":[[837,21]]}}}],["g.x",{"_index":2431,"t":{"135":{"position":[[470,3]]}}}],["g.y",{"_index":2432,"t":{"135":{"position":[[485,3]]}}}],["game",{"_index":21,"t":{"39":{"position":[[164,4]]},"57":{"position":[[349,5],[605,5],[1388,4]]}}}],["generate",{"_index":2265,"t":{"127":{"position":[[1132,10],[2106,10]]}}}],["generated",{"_index":1019,"t":{"63":{"position":[[546,9]]},"73":{"position":[[298,9]]},"99":{"position":[[110,9],[282,9]]}}}],["generates",{"_index":2263,"t":{"127":{"position":[[1010,9],[2729,9]]}}}],["generatespinner1",{"_index":647,"t":{"49":{"position":[[282,16]]}}}],["generatespinner1(new",{"_index":790,"t":{"49":{"position":[[8114,20]]}}}],["generatespinner2",{"_index":701,"t":{"49":{"position":[[2260,16]]}}}],["generatespinner2(new",{"_index":792,"t":{"49":{"position":[[8156,20]]}}}],["generatespinner3",{"_index":721,"t":{"49":{"position":[[3174,16]]}}}],["generatespinner3(new",{"_index":794,"t":{"49":{"position":[[8199,20]]}}}],["generatespinner4",{"_index":732,"t":{"49":{"position":[[4215,16]]}}}],["generatespinner4(new",{"_index":796,"t":{"49":{"position":[[8242,20]]}}}],["generatespinner5",{"_index":774,"t":{"49":{"position":[[7393,16]]}}}],["generatespinner5(new",{"_index":798,"t":{"49":{"position":[[8285,20]]}}}],["geometry",{"_index":2202,"t":{"121":{"position":[[132,8]]},"123":{"position":[[132,8]]},"125":{"position":[[132,8]]},"127":{"position":[[148,9],[164,8]]},"129":{"position":[[135,9],[151,8]]},"131":{"position":[[132,8]]},"133":{"position":[[132,8]]},"139":{"position":[[132,8]]},"141":{"position":[[132,8]]},"143":{"position":[[132,8]]},"145":{"position":[[132,8]]}}}],["geometry.addattribute",{"_index":2211,"t":{"121":{"position":[[418,22],[540,22]]}}}],["geometry.instancecount",{"_index":2206,"t":{"121":{"position":[[242,22],[694,23]]}}}],["geometry.instanced",{"_index":2205,"t":{"121":{"position":[[215,18]]}}}],["geometry2",{"_index":2252,"t":{"125":{"position":[[483,9],[870,12]]}}}],["geometry3",{"_index":2253,"t":{"125":{"position":[[827,9]]}}}],["gettangent(k",{"_index":292,"t":{"41":{"position":[[1834,13],[2077,14],[2115,12]]}}}],["give",{"_index":77,"t":{"39":{"position":[[908,4]]},"173":{"position":[[1266,4]]}}}],["given",{"_index":107,"t":{"39":{"position":[[1796,5]]}}}],["gives",{"_index":2775,"t":{"175":{"position":[[917,5]]}}}],["gl",{"_index":2746,"t":{"173":{"position":[[1298,2]]}}}],["gl.pixelstorei(gl.unpack_premultiply_alpha_webgl",{"_index":2748,"t":{"173":{"position":[[1315,49]]}}}],["gl.teximage2d(basetexture.target",{"_index":2750,"t":{"173":{"position":[[1396,33]]}}}],["gl_fragcolor",{"_index":1747,"t":{"97":{"position":[[926,12],[1051,12]]},"99":{"position":[[2518,12]]},"121":{"position":[[1369,12]]},"123":{"position":[[906,12]]},"125":{"position":[[1298,12]]},"127":{"position":[[1414,12],[2309,12],[2956,12],[3966,12],[4683,12]]},"129":{"position":[[2366,12]]},"131":{"position":[[781,12],[1330,12]]},"133":{"position":[[853,12]]},"139":{"position":[[542,12]]},"141":{"position":[[846,12]]},"143":{"position":[[1074,12]]},"145":{"position":[[919,12]]}}}],["gl_fragcolor.g",{"_index":2399,"t":{"131":{"position":[[1437,14]]}}}],["gl_fragcolor.r",{"_index":2396,"t":{"131":{"position":[[1373,14]]}}}],["gl_position",{"_index":2224,"t":{"121":{"position":[[1206,11]]},"123":{"position":[[712,11]]},"125":{"position":[[1104,11]]},"127":{"position":[[754,11]]},"129":{"position":[[703,11]]},"131":{"position":[[587,11],[1136,11]]},"133":{"position":[[653,11]]},"139":{"position":[[396,11]]},"141":{"position":[[679,11]]},"143":{"position":[[838,11]]},"145":{"position":[[684,11]]}}}],["global",{"_index":345,"t":{"43":{"position":[[1261,7]]},"89":{"position":[[1209,6],[1395,6],[4833,11],[5118,6],[5245,8]]}}}],["global}\\nscreen",{"_index":1632,"t":{"89":{"position":[[5254,18]]}}}],["gltexture",{"_index":2731,"t":{"173":{"position":[[461,10]]}}}],["gltexture.height",{"_index":2742,"t":{"173":{"position":[[1153,16]]}}}],["gltexture.width",{"_index":2741,"t":{"173":{"position":[[1128,15]]}}}],["gltextures",{"_index":2762,"t":{"173":{"position":[[1861,11]]}}}],["go",{"_index":984,"t":{"57":{"position":[[1903,2]]}}}],["goback",{"_index":974,"t":{"57":{"position":[[1604,6]]}}}],["goback.anchor.set(0.5",{"_index":976,"t":{"57":{"position":[[1656,23]]}}}],["goback.cursor",{"_index":981,"t":{"57":{"position":[[1804,13]]}}}],["goback.destroy",{"_index":983,"t":{"57":{"position":[[1869,17]]}}}],["goback.eventmode",{"_index":980,"t":{"57":{"position":[[1775,16]]}}}],["goback.on('pointertap",{"_index":982,"t":{"57":{"position":[[1831,23]]}}}],["goback.x",{"_index":977,"t":{"57":{"position":[[1680,8]]}}}],["goback.y",{"_index":978,"t":{"57":{"position":[[1713,8]]}}}],["going",{"_index":582,"t":{"47":{"position":[[4203,5]]},"107":{"position":[[1146,5]]}}}],["gonext",{"_index":955,"t":{"57":{"position":[[927,6]]}}}],["gonext.anchor.set(0.5",{"_index":957,"t":{"57":{"position":[[981,23]]}}}],["gonext.cursor",{"_index":962,"t":{"57":{"position":[[1129,13]]}}}],["gonext.destroy",{"_index":964,"t":{"57":{"position":[[1194,17]]}}}],["gonext.eventmode",{"_index":961,"t":{"57":{"position":[[1100,16]]}}}],["gonext.on('pointertap",{"_index":963,"t":{"57":{"position":[[1156,23]]}}}],["gonext.x",{"_index":958,"t":{"57":{"position":[[1005,8]]}}}],["gonext.y",{"_index":959,"t":{"57":{"position":[[1038,8]]}}}],["good",{"_index":1204,"t":{"77":{"position":[[590,5]]}}}],["google",{"_index":2657,"t":{"169":{"position":[[162,6],[219,7]]}}}],["gpu",{"_index":2734,"t":{"173":{"position":[[642,3]]}}}],["grab",{"_index":1366,"t":{"83":{"position":[[947,4]]}}}],["gradbasetexture",{"_index":2753,"t":{"173":{"position":[[1633,15]]}}}],["gradbasetexture.setsize(500",{"_index":2763,"t":{"173":{"position":[[1873,28]]}}}],["gradient",{"_index":503,"t":{"47":{"position":[[2237,8]]},"167":{"position":[[416,8]]},"171":{"position":[[60,8],[565,8]]},"173":{"position":[[78,8],[379,8],[1807,9]]}}}],["gradientresource",{"_index":2722,"t":{"173":{"position":[[267,16],[1676,20]]}}}],["gradtexture",{"_index":2712,"t":{"171":{"position":[[865,11]]},"173":{"position":[[1913,11]]}}}],["graph",{"_index":1463,"t":{"89":{"position":[[168,6],[458,5],[1686,6]]}}}],["graphics",{"_index":1577,"t":{"89":{"position":[[3558,8]]},"111":{"position":[[213,8]]},"113":{"position":[[181,8]]}}}],["graphics.beginfill(0x3500fa",{"_index":2164,"t":{"113":{"position":[[2326,28]]}}}],["graphics.beginfill(0x35cc5a",{"_index":2147,"t":{"113":{"position":[[1859,28]]}}}],["graphics.beginfill(0x55335a",{"_index":2153,"t":{"113":{"position":[[2133,28]]}}}],["graphics.beginfill(0x650a5a",{"_index":2128,"t":{"113":{"position":[[377,29],[1021,28],[1708,28]]}}}],["graphics.beginfill(0xaa4f08",{"_index":2133,"t":{"113":{"position":[[669,29],[1321,28]]}}}],["graphics.beginfill(0xc34288",{"_index":2131,"t":{"113":{"position":[[530,29],[1171,28]]}}}],["graphics.beginfill(0xde3249",{"_index":2126,"t":{"113":{"position":[[226,29],[872,28]]}}}],["graphics.beginfill(0xff3300",{"_index":2077,"t":{"111":{"position":[[274,29]]},"113":{"position":[[1430,29]]}}}],["graphics.beginfill(0xff700b",{"_index":2088,"t":{"111":{"position":[[629,28]]}}}],["graphics.beginfill(0xffcc5a",{"_index":2150,"t":{"113":{"position":[[1996,28]]}}}],["graphics.beginfill(0xffff0b",{"_index":2103,"t":{"111":{"position":[[1068,28]]}}}],["graphics.beziercurveto",{"_index":2117,"t":{"111":{"position":[[1651,23]]}}}],["graphics.closepath",{"_index":2086,"t":{"111":{"position":[[513,21],[892,21]]},"113":{"position":[[1602,21]]}}}],["graphics.drawcircle(100",{"_index":2139,"t":{"113":{"position":[[905,24]]}}}],["graphics.drawcircle(250",{"_index":2140,"t":{"113":{"position":[[1054,24]]}}}],["graphics.drawcircle(400",{"_index":2141,"t":{"113":{"position":[[1204,24]]}}}],["graphics.drawcircle(470",{"_index":2104,"t":{"111":{"position":[[1103,24]]}}}],["graphics.drawellipse(600",{"_index":2143,"t":{"113":{"position":[[1354,25]]}}}],["graphics.drawpolygon(path",{"_index":2165,"t":{"113":{"position":[[2359,27]]}}}],["graphics.drawrect(200",{"_index":2129,"t":{"113":{"position":[[407,22]]}}}],["graphics.drawrect(350",{"_index":2132,"t":{"113":{"position":[[560,22]]}}}],["graphics.drawrect(50",{"_index":2100,"t":{"111":{"position":[[990,21]]},"113":{"position":[[256,21]]}}}],["graphics.drawrect(530",{"_index":2134,"t":{"113":{"position":[[699,22]]}}}],["graphics.drawroundedrect(50",{"_index":2146,"t":{"113":{"position":[[1744,28]]}}}],["graphics.drawstar(280",{"_index":2151,"t":{"113":{"position":[[2029,22]]}}}],["graphics.drawstar(360",{"_index":2148,"t":{"113":{"position":[[1892,22]]}}}],["graphics.drawstar(470",{"_index":2154,"t":{"113":{"position":[[2166,22]]}}}],["graphics.endfill",{"_index":2087,"t":{"111":{"position":[[535,19],[914,19],[1139,19]]},"113":{"position":[[293,19],[445,19],[598,19],[737,19],[940,19],[1089,19],[1239,19],[1394,19],[1624,19],[1793,19],[1928,19],[2065,19],[2202,19],[2387,19]]}}}],["graphics.linestyle(0",{"_index":2102,"t":{"111":{"position":[[1045,22]]},"113":{"position":[[767,22],[2303,22]]}}}],["graphics.linestyle(10",{"_index":2078,"t":{"111":{"position":[[304,22],[590,22]]},"113":{"position":[[493,22],[1134,22]]}}}],["graphics.linestyle(2",{"_index":2098,"t":{"111":{"position":[[954,21]]},"113":{"position":[[341,21],[633,21],[985,21],[1285,21],[1672,21],[1826,21],[1963,21]]}}}],["graphics.linestyle(20",{"_index":2105,"t":{"111":{"position":[[1159,22]]}}}],["graphics.linestyle(4",{"_index":2144,"t":{"113":{"position":[[1460,21],[2100,21]]}}}],["graphics.linestyle(math.random",{"_index":2115,"t":{"111":{"position":[[1523,32]]}}}],["graphics.lineto(100",{"_index":2083,"t":{"111":{"position":[[408,20]]},"113":{"position":[[1549,20]]}}}],["graphics.lineto(210",{"_index":2097,"t":{"111":{"position":[[865,20]]}}}],["graphics.lineto(250",{"_index":2082,"t":{"111":{"position":[[382,20],[435,20]]},"113":{"position":[[1522,20]]}}}],["graphics.lineto(330",{"_index":2095,"t":{"111":{"position":[[811,20]]}}}],["graphics.lineto(410",{"_index":2096,"t":{"111":{"position":[[838,20]]}}}],["graphics.lineto(450",{"_index":2091,"t":{"111":{"position":[[712,20]]}}}],["graphics.lineto(50",{"_index":2085,"t":{"111":{"position":[[462,19],[488,19]]},"113":{"position":[[1576,19]]}}}],["graphics.lineto(570",{"_index":2092,"t":{"111":{"position":[[739,20]]}}}],["graphics.lineto(600",{"_index":2108,"t":{"111":{"position":[[1218,20]]}}}],["graphics.moveto(210",{"_index":2090,"t":{"111":{"position":[[685,20]]}}}],["graphics.moveto(30",{"_index":2107,"t":{"111":{"position":[[1193,19]]}}}],["graphics.moveto(50",{"_index":2081,"t":{"111":{"position":[[357,19]]},"113":{"position":[[1496,19]]}}}],["graphics.moveto(math.random",{"_index":2116,"t":{"111":{"position":[[1592,29]]}}}],["graphics.quadraticcurveto(600",{"_index":2093,"t":{"111":{"position":[[766,30]]}}}],["grd",{"_index":2700,"t":{"171":{"position":[[580,3],[786,4]]},"173":{"position":[[784,3],[988,4]]}}}],["grd.addcolorstop(0",{"_index":2702,"t":{"171":{"position":[[630,19]]},"173":{"position":[[832,19]]}}}],["grd.addcolorstop(0.3",{"_index":2705,"t":{"171":{"position":[[679,21]]},"173":{"position":[[881,21]]}}}],["grd.addcolorstop(0.7",{"_index":2707,"t":{"171":{"position":[[710,21]]},"173":{"position":[[912,21]]}}}],["grd.addcolorstop(1",{"_index":2708,"t":{"171":{"position":[[740,19]]},"173":{"position":[[942,19]]}}}],["green",{"_index":117,"t":{"39":{"position":[[1933,5],[3111,5],[3468,5]]},"171":{"position":[[760,9]]},"173":{"position":[[962,9]]}}}],["greensquare",{"_index":119,"t":{"39":{"position":[[1972,11],[5671,13]]}}}],["greensquare.acceleration",{"_index":129,"t":{"39":{"position":[[2190,24]]}}}],["greensquare.acceleration.set",{"_index":230,"t":{"39":{"position":[[5308,29]]}}}],["greensquare.acceleration.set(greensquare.acceleration.x",{"_index":172,"t":{"39":{"position":[[2990,55]]}}}],["greensquare.acceleration.x",{"_index":180,"t":{"39":{"position":[[3268,26],[3298,27],[5434,26]]}}}],["greensquare.acceleration.y",{"_index":173,"t":{"39":{"position":[[3054,26],[3398,26],[3428,27],[5487,26]]}}}],["greensquare.height",{"_index":126,"t":{"39":{"position":[[2135,18]]}}}],["greensquare.mass",{"_index":130,"t":{"39":{"position":[[2236,16],[5248,18],[5286,18]]}}}],["greensquare.position.set((app.screen.width",{"_index":121,"t":{"39":{"position":[[2023,42],[3676,42]]}}}],["greensquare.tint",{"_index":127,"t":{"39":{"position":[[2161,16]]}}}],["greensquare.width",{"_index":125,"t":{"39":{"position":[[2110,17]]}}}],["greensquare.x",{"_index":178,"t":{"39":{"position":[[3202,14],[3224,13],[3540,15],[3565,13],[5417,13]]}}}],["greensquare.y",{"_index":181,"t":{"39":{"position":[[3331,14],[3353,13],[3609,13],[3632,13],[5470,13]]}}}],["grid",{"_index":1114,"t":{"67":{"position":[[334,4]]},"127":{"position":[[1022,5],[1152,5],[1917,4],[2126,5]]},"147":{"position":[[512,4]]},"179":{"position":[[1406,4]]}}}],["gridcontainer",{"_index":2289,"t":{"127":{"position":[[1823,13]]}}}],["gridcontainer.addchild(gridquad",{"_index":2290,"t":{"127":{"position":[[1861,33]]}}}],["gridcontainer.position.set(10",{"_index":2359,"t":{"127":{"position":[[4978,30]]}}}],["gridh",{"_index":2850,"t":{"179":{"position":[[1136,5],[1466,5]]}}}],["gridquad",{"_index":2288,"t":{"127":{"position":[[1769,8]]}}}],["gridquad.shader.uniforms.zoom",{"_index":2374,"t":{"127":{"position":[[5495,29]]}}}],["gridshader",{"_index":2279,"t":{"127":{"position":[[1485,10],[1804,12]]}}}],["gridtexture",{"_index":2286,"t":{"127":{"position":[[1693,11],[2390,12],[5782,11]]}}}],["griduniforms",{"_index":2278,"t":{"127":{"position":[[1449,12],[1543,14]]}}}],["gridw",{"_index":2849,"t":{"179":{"position":[[1096,5],[1430,5]]}}}],["growing",{"_index":1446,"t":{"87":{"position":[[1535,7]]}}}],["guv",{"_index":2269,"t":{"127":{"position":[[1248,3]]}}}],["guv.y",{"_index":2277,"t":{"127":{"position":[[1378,6]]}}}],["h",{"_index":1795,"t":{"99":{"position":[[1289,1]]},"129":{"position":[[1208,1]]},"179":{"position":[[338,1],[584,3]]}}}],["h2",{"_index":1799,"t":{"99":{"position":[[1344,2]]}}}],["hack",{"_index":2840,"t":{"179":{"position":[[746,4]]}}}],["half",{"_index":1844,"t":{"99":{"position":[[2258,4]]},"129":{"position":[[2106,4]]}}}],["halfcircle",{"_index":775,"t":{"49":{"position":[[7536,10],[7892,11]]}}}],["halfcircle.arc(0",{"_index":778,"t":{"49":{"position":[[7637,17]]}}}],["halfcircle.beginfill(0xff0000",{"_index":776,"t":{"49":{"position":[[7570,31]]}}}],["halfcircle.endfill",{"_index":779,"t":{"49":{"position":[[7676,21]]}}}],["halfcircle.linestyle(2",{"_index":777,"t":{"49":{"position":[[7602,23]]}}}],["halfcircle.position.set(50",{"_index":780,"t":{"49":{"position":[[7698,27]]}}}],["halfcircle.rotation",{"_index":788,"t":{"49":{"position":[[8062,19]]}}}],["halfhandlewidth",{"_index":1683,"t":{"93":{"position":[[1904,15],[2107,16]]}}}],["hand",{"_index":1199,"t":{"77":{"position":[[513,4]]},"83":{"position":[[755,4]]}}}],["handle",{"_index":1656,"t":{"93":{"position":[[518,6],[531,6],[717,6],[1236,6],[1509,6],[1673,6],[1860,6],[1947,6],[2141,6]]},"95":{"position":[[515,6]]}}}],["handle's",{"_index":1680,"t":{"93":{"position":[[1817,8]]}}}],["handle.cursor",{"_index":1661,"t":{"93":{"position":[[690,13]]}}}],["handle.eventmode",{"_index":1660,"t":{"93":{"position":[[661,16]]}}}],["handle.width",{"_index":1684,"t":{"93":{"position":[[1922,12]]}}}],["handle.x",{"_index":1659,"t":{"93":{"position":[[633,8],[2018,8],[2189,10]]}}}],["handle.y",{"_index":1657,"t":{"93":{"position":[[603,8]]}}}],["handler",{"_index":435,"t":{"47":{"position":[[425,7],[3535,8]]},"89":{"position":[[4545,7]]}}}],["handlers",{"_index":1597,"t":{"89":{"position":[[4204,8]]}}}],["handling",{"_index":802,"t":{"49":{"position":[[8401,8]]},"85":{"position":[[1114,8]]}}}],["happens",{"_index":2738,"t":{"173":{"position":[[1063,7]]}}}],["hasn't",{"_index":917,"t":{"55":{"position":[[443,6]]}}}],["having",{"_index":736,"t":{"49":{"position":[[4537,6]]}}}],["header",{"_index":528,"t":{"47":{"position":[[2684,6]]}}}],["headertext",{"_index":529,"t":{"47":{"position":[[2702,10]]}}}],["headertext.height",{"_index":537,"t":{"47":{"position":[[2859,18]]}}}],["headertext.width",{"_index":535,"t":{"47":{"position":[[2799,17]]}}}],["headertext.x",{"_index":533,"t":{"47":{"position":[[2760,12]]}}}],["headertext.y",{"_index":536,"t":{"47":{"position":[[2823,12]]}}}],["height",{"_index":323,"t":{"43":{"position":[[553,6],[603,6]]},"99":{"position":[[1098,6],[2282,6]]},"127":{"position":[[68,7],[1747,7],[2553,7],[3192,7],[4196,7]]},"129":{"position":[[1017,6],[2130,6]]},"159":{"position":[[303,6]]},"173":{"position":[[342,7],[407,6],[543,6],[733,7],[1019,8],[1172,7]]},"177":{"position":[[171,7]]}}}],["heightmaps",{"_index":1846,"t":{"99":{"position":[[2330,11]]},"129":{"position":[[2178,11]]}}}],["helmlok.png",{"_index":1075,"t":{"65":{"position":[[350,14]]}}}],["help",{"_index":1914,"t":{"103":{"position":[[1207,4]]},"117":{"position":[[1327,4]]}}}],["help.x",{"_index":1917,"t":{"103":{"position":[[1379,6]]},"117":{"position":[[1499,6]]}}}],["help.y",{"_index":1916,"t":{"103":{"position":[[1346,6]]},"117":{"position":[[1466,6]]}}}],["helper",{"_index":805,"t":{"49":{"position":[[8478,6]]}}}],["here",{"_index":1,"t":{"37":{"position":[[13,4]]},"57":{"position":[[1278,4]]},"89":{"position":[[175,5]]},"173":{"position":[[118,4],[1700,4]]}}}],["highp",{"_index":1733,"t":{"97":{"position":[[677,5]]}}}],["history",{"_index":251,"t":{"41":{"position":[[481,7],[1192,7],[1342,8]]}}}],["historysize",{"_index":243,"t":{"41":{"position":[[302,11],[359,11],[516,12],[1533,13],[1602,13]]}}}],["historyx",{"_index":241,"t":{"41":{"position":[[263,8]]}}}],["historyx.pop",{"_index":267,"t":{"41":{"position":[[1200,15]]}}}],["historyx.push(0",{"_index":253,"t":{"41":{"position":[[536,17]]}}}],["historyx.unshift(mouseposition.x",{"_index":268,"t":{"41":{"position":[[1216,34]]}}}],["historyy",{"_index":242,"t":{"41":{"position":[[284,8]]}}}],["historyy.pop",{"_index":269,"t":{"41":{"position":[[1251,15]]}}}],["historyy.push(0",{"_index":254,"t":{"41":{"position":[[554,17]]}}}],["historyy.unshift(mouseposition.y",{"_index":270,"t":{"41":{"position":[[1267,34]]}}}],["hit",{"_index":51,"t":{"39":{"position":[[507,3]]},"49":{"position":[[1480,3],[1560,5],[1583,4],[6256,3],[6383,3],[6463,5],[6486,4]]},"79":{"position":[[1104,3],[1581,3],[2740,3]]},"89":{"position":[[4002,3]]}}}],["hit.x",{"_index":683,"t":{"49":{"position":[[1611,5],[6514,5]]}}}],["hitarea",{"_index":1232,"t":{"79":{"position":[[555,7],[667,7],[1952,7]]}}}],["hitareas",{"_index":1257,"t":{"79":{"position":[[1593,8]]}}}],["hits",{"_index":862,"t":{"51":{"position":[[876,4]]}}}],["hitting",{"_index":767,"t":{"49":{"position":[[6282,7]]}}}],["holder",{"_index":1070,"t":{"65":{"position":[[254,6]]},"73":{"position":[[129,6]]}}}],["hole",{"_index":2056,"t":{"109":{"position":[[1805,4]]}}}],["hover",{"_index":1328,"t":{"81":{"position":[[1200,8]]},"87":{"position":[[74,5]]}}}],["hovericon",{"_index":1305,"t":{"81":{"position":[[251,9],[451,10]]}}}],["http",{"_index":2671,"t":{"169":{"position":[[462,6]]}}}],["http://paulbourke.net/geometry/pointlineplane",{"_index":811,"t":{"49":{"position":[[8530,46]]}}}],["https",{"_index":2670,"t":{"169":{"position":[[441,8],[452,7]]}}}],["https://developer.mozilla.org/en",{"_index":2687,"t":{"171":{"position":[[76,32]]}}}],["https://en.wikipedia.org/wiki/bΓ©zier_curve",{"_index":2006,"t":{"109":{"position":[[259,42]]}}}],["https://github.com/bfred",{"_index":2575,"t":{"161":{"position":[[835,24]]}}}],["https://github.com/createjs/tweenjs/blob/master/src/tweenjs/ease.js",{"_index":642,"t":{"47":{"position":[[5593,67]]}}}],["https://github.com/osuushi/smooth.js",{"_index":286,"t":{"41":{"position":[[1677,36]]}}}],["https://github.com/pixijs/pixi.js/blob/dev/packages/core/src/textures/resources/baseimageresource.js#l54",{"_index":2721,"t":{"173":{"position":[[156,104]]}}}],["https://github.com/pixijs/pixi.js/pull/7381",{"_index":1514,"t":{"89":{"position":[[1508,43]]}}}],["https://github.com/pixijs/pixi.js/wiki/v5",{"_index":1714,"t":{"97":{"position":[[39,41]]}}}],["https://pixijs.com/assets/bg_grass.jpg",{"_index":316,"t":{"43":{"position":[[366,42]]}}}],["https://pixijs.com/assets/bg_rotate.jpg",{"_index":318,"t":{"43":{"position":[[431,43]]}}}],["https://pixijs.com/assets/egghead.png",{"_index":425,"t":{"47":{"position":[[168,40]]},"55":{"position":[[275,41]]},"57":{"position":[[399,40]]},"59":{"position":[[275,41]]}}}],["https://pixijs.com/assets/flowertop.png",{"_index":426,"t":{"47":{"position":[[209,42]]},"55":{"position":[[204,43]]},"57":{"position":[[289,42]]},"59":{"position":[[204,43]]}}}],["https://pixijs.com/assets/helmlok.png",{"_index":427,"t":{"47":{"position":[[252,40]]}}}],["https://pixijs.com/assets/rt_object_01.png",{"_index":2795,"t":{"177":{"position":[[902,45]]}}}],["https://pixijs.com/assets/rt_object_02.png",{"_index":2796,"t":{"177":{"position":[[948,45]]}}}],["https://pixijs.com/assets/rt_object_03.png",{"_index":2797,"t":{"177":{"position":[[994,45]]}}}],["https://pixijs.com/assets/rt_object_04.png",{"_index":2798,"t":{"177":{"position":[[1040,45]]}}}],["https://pixijs.com/assets/rt_object_05.png",{"_index":2799,"t":{"177":{"position":[[1086,45]]}}}],["https://pixijs.com/assets/rt_object_06.png",{"_index":2800,"t":{"177":{"position":[[1132,45]]}}}],["https://pixijs.com/assets/rt_object_07.png",{"_index":2801,"t":{"177":{"position":[[1178,45]]}}}],["https://pixijs.com/assets/rt_object_08.png",{"_index":2802,"t":{"177":{"position":[[1224,45]]}}}],["https://pixijs.com/assets/skully.png",{"_index":428,"t":{"47":{"position":[[293,39]]}}}],["https://pixijs.com/assets/webfont",{"_index":2611,"t":{"165":{"position":[[221,34],[287,34],[361,34],[438,34]]}}}],["https://spicyyoghurt.com/tutorials/html5",{"_index":19,"t":{"39":{"position":[[112,40]]}}}],["https://www.shadertoy.com/view/wtlswx",{"_index":1783,"t":{"99":{"position":[[917,37]]},"129":{"position":[[848,37]]}}}],["huge",{"_index":2001,"t":{"107":{"position":[[1160,4]]}}}],["icons",{"_index":1302,"t":{"81":{"position":[[166,5]]}}}],["id",{"_index":1792,"t":{"99":{"position":[[1237,2],[1265,2]]},"129":{"position":[[1156,2],[1184,2]]}}}],["ids",{"_index":2793,"t":{"177":{"position":[[879,5]]}}}],["if(d.x",{"_index":1847,"t":{"99":{"position":[[2342,6]]},"129":{"position":[[2190,6]]}}}],["if(t",{"_index":1854,"t":{"99":{"position":[[2491,4]]},"129":{"position":[[2339,4]]}}}],["ignore",{"_index":1258,"t":{"79":{"position":[[1602,6]]}}}],["image",{"_index":745,"t":{"49":{"position":[[4848,5]]},"63":{"position":[[522,5]]},"65":{"position":[[689,5]]},"73":{"position":[[274,5]]},"75":{"position":[[177,5]]},"81":{"position":[[738,5]]},"83":{"position":[[177,5]]},"85":{"position":[[402,5]]},"95":{"position":[[147,5]]},"97":{"position":[[215,5],[1034,6]]},"153":{"position":[[272,5]]},"155":{"position":[[180,5]]},"159":{"position":[[154,5],[325,5]]},"177":{"position":[[873,5]]}}}],["images",{"_index":2694,"t":{"171":{"position":[[378,6]]}}}],["imagetoreveal",{"_index":326,"t":{"43":{"position":[[688,13],[948,14]]}}}],["imagetoreveal.mask",{"_index":332,"t":{"43":{"position":[[874,18]]}}}],["implementation",{"_index":1506,"t":{"89":{"position":[[1286,14]]}}}],["import",{"_index":7,"t":{"39":{"position":[[0,6]]},"41":{"position":[[0,6]]},"43":{"position":[[0,6]]},"45":{"position":[[0,6]]},"47":{"position":[[0,6]]},"49":{"position":[[0,6]]},"51":{"position":[[0,6]]},"53":{"position":[[0,6]]},"55":{"position":[[0,6]]},"57":{"position":[[0,6]]},"59":{"position":[[0,6]]},"61":{"position":[[0,6]]},"63":{"position":[[0,6]]},"65":{"position":[[0,6]]},"67":{"position":[[0,6]]},"69":{"position":[[0,6]]},"71":{"position":[[0,6]]},"73":{"position":[[0,6]]},"75":{"position":[[0,6]]},"77":{"position":[[0,6]]},"79":{"position":[[0,6]]},"81":{"position":[[0,6]]},"83":{"position":[[0,6]]},"85":{"position":[[0,6]]},"87":{"position":[[0,6]]},"89":{"position":[[0,6],[33,6]]},"91":{"position":[[0,6]]},"93":{"position":[[0,6]]},"95":{"position":[[0,6]]},"97":{"position":[[0,6]]},"99":{"position":[[0,6]]},"101":{"position":[[0,6]]},"103":{"position":[[0,6]]},"105":{"position":[[0,6]]},"107":{"position":[[0,6]]},"109":{"position":[[0,6]]},"111":{"position":[[0,6]]},"113":{"position":[[0,6],[33,6]]},"115":{"position":[[0,6]]},"117":{"position":[[0,6]]},"119":{"position":[[0,6]]},"121":{"position":[[0,6]]},"123":{"position":[[0,6]]},"125":{"position":[[0,6]]},"127":{"position":[[0,6]]},"129":{"position":[[0,6]]},"131":{"position":[[0,6]]},"133":{"position":[[0,6]]},"135":{"position":[[0,6]]},"137":{"position":[[0,6]]},"139":{"position":[[0,6]]},"141":{"position":[[0,6]]},"143":{"position":[[0,6]]},"145":{"position":[[0,6]]},"147":{"position":[[0,6]]},"149":{"position":[[0,6]]},"151":{"position":[[0,6]]},"153":{"position":[[0,6]]},"155":{"position":[[0,6]]},"157":{"position":[[0,6]]},"159":{"position":[[0,6]]},"161":{"position":[[0,6]]},"163":{"position":[[0,6]]},"165":{"position":[[0,6]]},"167":{"position":[[0,6]]},"169":{"position":[[0,6]]},"171":{"position":[[0,6]]},"173":{"position":[[0,6]]},"175":{"position":[[0,6]]},"177":{"position":[[0,6]]},"179":{"position":[[0,6]]}}}],["important",{"_index":1030,"t":{"63":{"position":[[922,9]]}}}],["impulse",{"_index":44,"t":{"39":{"position":[[438,7],[916,7],[1610,7],[1697,7],[1725,7]]}}}],["impulsepower",{"_index":48,"t":{"39":{"position":[[477,12],[1620,12]]}}}],["in/zoom",{"_index":1609,"t":{"89":{"position":[[4533,7]]}}}],["include",{"_index":2663,"t":{"169":{"position":[[304,7]]}}}],["increment",{"_index":1155,"t":{"69":{"position":[[2358,9]]}}}],["independent",{"_index":1124,"t":{"67":{"position":[[884,11]]},"147":{"position":[[1062,11]]},"155":{"position":[[628,11]]}}}],["info",{"_index":2735,"t":{"173":{"position":[[1036,4]]}}}],["information",{"_index":2005,"t":{"109":{"position":[[246,12]]}}}],["inherits",{"_index":2529,"t":{"153":{"position":[[654,8]]}}}],["init",{"_index":903,"t":{"53":{"position":[[215,6],[627,7]]},"57":{"position":[[164,6],[1972,7]]},"169":{"position":[[266,7],[698,6]]}}}],["initial",{"_index":856,"t":{"51":{"position":[[715,8],[735,7]]},"77":{"position":[[340,7]]},"89":{"position":[[4298,7]]}}}],["inline",{"_index":2577,"t":{"161":{"position":[[870,6]]}}}],["inner",{"_index":2166,"t":{"115":{"position":[[129,5]]}}}],["input",{"_index":1767,"t":{"99":{"position":[[179,5]]},"127":{"position":[[1925,5]]}}}],["inputsize",{"_index":1729,"t":{"97":{"position":[[548,11],[751,10]]}}}],["inputsize.xy",{"_index":1743,"t":{"97":{"position":[[855,12]]}}}],["inside",{"_index":902,"t":{"53":{"position":[[175,6]]},"87":{"position":[[793,6]]}}}],["instanceof",{"_index":1135,"t":{"69":{"position":[[378,10]]}}}],["instanceoffset",{"_index":2215,"t":{"121":{"position":[[731,14]]}}}],["instantly",{"_index":952,"t":{"57":{"position":[[784,10],[1461,10]]}}}],["int",{"_index":1842,"t":{"99":{"position":[[2163,3]]},"129":{"position":[[2011,3]]}}}],["interact",{"_index":36,"t":{"39":{"position":[[349,8]]}}}],["interactive",{"_index":1082,"t":{"65":{"position":[[537,11]]},"81":{"position":[[1326,14]]},"83":{"position":[[622,14]]},"85":{"position":[[965,14]]},"89":{"position":[[4180,11],[4252,11]]},"91":{"position":[[588,12]]},"157":{"position":[[647,11]]}}}],["interactivity",{"_index":541,"t":{"47":{"position":[[2974,14]]},"77":{"position":[[461,13]]},"87":{"position":[[972,13]]},"91":{"position":[[503,14]]},"161":{"position":[[515,13]]}}}],["intercept",{"_index":807,"t":{"49":{"position":[[8500,9]]}}}],["interleave",{"_index":2239,"t":{"123":{"position":[[476,14]]}}}],["interpolate",{"_index":313,"t":{"43":{"position":[[281,11]]}}}],["interpolation",{"_index":276,"t":{"41":{"position":[[1440,13],[1654,13]]}}}],["intersect",{"_index":813,"t":{"49":{"position":[[8663,9]]}}}],["intersect(0",{"_index":678,"t":{"49":{"position":[[1486,12],[6389,12]]}}}],["intersect(x1",{"_index":820,"t":{"49":{"position":[[8751,13]]}}}],["intersecting",{"_index":673,"t":{"49":{"position":[[1337,12],[6143,12]]}}}],["intersection",{"_index":674,"t":{"49":{"position":[[1363,12],[1568,12],[6169,12],[6471,12],[8591,12],[9207,12],[9354,12]]},"79":{"position":[[732,12],[1964,12]]}}}],["intersection.y",{"_index":694,"t":{"49":{"position":[[2012,16],[7145,14],[7217,16]]}}}],["introduction",{"_index":0,"t":{"37":{"position":[[0,12]]}}}],["inverse",{"_index":1502,"t":{"89":{"position":[[1180,7]]}}}],["inversed",{"_index":2323,"t":{"127":{"position":[[3624,8]]}}}],["ios",{"_index":2736,"t":{"173":{"position":[[1041,3]]}}}],["ios10",{"_index":2578,"t":{"161":{"position":[[886,5]]}}}],["ios9",{"_index":2570,"t":{"161":{"position":[[767,4]]}}}],["isegghead",{"_index":925,"t":{"55":{"position":[[611,9],[963,9],[975,11]]}}}],["isflower",{"_index":2540,"t":{"157":{"position":[[153,8],[756,8],[767,10],[830,8]]}}}],["it's",{"_index":1364,"t":{"83":{"position":[[932,4]]},"89":{"position":[[387,4]]},"99":{"position":[[2629,4]]},"107":{"position":[[1110,4]]},"161":{"position":[[1313,4]]}}}],["it/iphone",{"_index":2576,"t":{"161":{"position":[[860,9]]}}}],["italic",{"_index":498,"t":{"47":{"position":[[2174,9]]},"167":{"position":[[353,9]]}}}],["item",{"_index":2806,"t":{"177":{"position":[[1431,4],[1744,4],[1755,4]]}}}],["item.anchor.set(0.5",{"_index":2811,"t":{"177":{"position":[[1555,21]]}}}],["item.rotation",{"_index":2817,"t":{"177":{"position":[[1772,13]]}}}],["item.x",{"_index":2809,"t":{"177":{"position":[[1483,6]]}}}],["item.y",{"_index":2810,"t":{"177":{"position":[[1519,6]]}}}],["items",{"_index":2803,"t":{"177":{"position":[[1295,5],[1307,5],[1338,5]]}}}],["items.length",{"_index":2815,"t":{"177":{"position":[[1708,13]]}}}],["items.push(item",{"_index":2813,"t":{"177":{"position":[[1608,17]]}}}],["items[i",{"_index":2816,"t":{"177":{"position":[[1762,9]]}}}],["iterate",{"_index":1054,"t":{"63":{"position":[[1765,7]]},"69":{"position":[[1646,7]]},"73":{"position":[[1615,7]]}}}],["itself",{"_index":716,"t":{"49":{"position":[[3000,6]]},"177":{"position":[[293,6]]}}}],["ix",{"_index":280,"t":{"41":{"position":[[1484,2],[1622,3]]}}}],["iy",{"_index":282,"t":{"41":{"position":[[1553,2],[1632,3]]}}}],["i}.ase",{"_index":2479,"t":{"149":{"position":[[367,10]]}}}],["j",{"_index":461,"t":{"47":{"position":[[1192,1],[1199,1],[1206,4],[1359,1],[4003,1],[4010,1],[4032,4],[4103,2]]}}}],["javascript",{"_index":20,"t":{"39":{"position":[[153,10]]}}}],["jonlepage",{"_index":773,"t":{"49":{"position":[[7353,9]]}}}],["k",{"_index":289,"t":{"41":{"position":[[1749,2],[1757,1],[1767,2],[1788,1],[2048,1],[2220,2]]}}}],["keep",{"_index":2000,"t":{"107":{"position":[[1129,4]]}}}],["knock",{"_index":118,"t":{"39":{"position":[[1954,5]]}}}],["know",{"_index":2725,"t":{"173":{"position":[[367,4]]}}}],["larger",{"_index":1992,"t":{"107":{"position":[[980,6]]}}}],["lastdrawnpoint",{"_index":344,"t":{"43":{"position":[[1215,14],[1556,16],[1783,14],[1800,14],[1981,14]]}}}],["lastdrawnpoint.set(x",{"_index":368,"t":{"43":{"position":[[1836,21]]}}}],["lastdrawnpoint.y",{"_index":365,"t":{"43":{"position":[[1659,17]]}}}],["later",{"_index":1046,"t":{"63":{"position":[[1439,5]]},"69":{"position":[[1304,5]]},"73":{"position":[[1295,5]]}}}],["left",{"_index":671,"t":{"49":{"position":[[1317,4],[1778,4],[1812,5],[6018,4],[6655,5],[6714,4]]},"163":{"position":[[361,7]]},"169":{"position":[[905,7]]},"179":{"position":[[1644,7]]}}}],["length",{"_index":772,"t":{"49":{"position":[[7335,6],[8832,6]]},"99":{"position":[[1143,6]]},"127":{"position":[[2198,7]]},"129":{"position":[[1062,6]]}}}],["length(mouse",{"_index":1745,"t":{"97":{"position":[[889,13]]}}}],["lerp",{"_index":635,"t":{"47":{"position":[[5483,4]]}}}],["lerp(a1",{"_index":637,"t":{"47":{"position":[[5506,8]]}}}],["lerp(t.propertybeginvalue",{"_index":625,"t":{"47":{"position":[[5192,26]]}}}],["let's",{"_index":1027,"t":{"63":{"position":[[755,5]]},"65":{"position":[[1271,5]]},"75":{"position":[[498,5]]},"111":{"position":[[1278,5]]},"117":{"position":[[987,5]]},"155":{"position":[[534,5]]}}}],["lets",{"_index":1175,"t":{"73":{"position":[[611,4]]}}}],["library",{"_index":602,"t":{"47":{"position":[[4625,7]]}}}],["light",{"_index":1804,"t":{"99":{"position":[[1415,7]]},"129":{"position":[[1282,7]]}}}],["light1",{"_index":1905,"t":{"103":{"position":[[751,6]]},"117":{"position":[[708,6],[937,7]]}}}],["light1.anchor.set(0.5",{"_index":1907,"t":{"103":{"position":[[826,23]]},"117":{"position":[[783,23]]}}}],["light1.rotation",{"_index":1921,"t":{"103":{"position":[[1493,15]]},"117":{"position":[[1608,15]]}}}],["light2",{"_index":1901,"t":{"103":{"position":[[618,6]]},"117":{"position":[[603,6],[929,7]]}}}],["light2.anchor.set(0.5",{"_index":1903,"t":{"103":{"position":[[693,23]]},"117":{"position":[[678,23]]}}}],["light2.rotation",{"_index":1923,"t":{"103":{"position":[[1518,15]]},"117":{"position":[[1633,15]]}}}],["lighter",{"_index":2648,"t":{"167":{"position":[[1064,10]]}}}],["limit",{"_index":2309,"t":{"127":{"position":[[2842,6],[3012,6]]}}}],["line",{"_index":312,"t":{"43":{"position":[[266,4],[316,4],[1548,4],[1575,4]]},"49":{"position":[[5596,4],[6236,4],[6294,4],[8495,4],[8617,4]]},"89":{"position":[[1988,4]]},"109":{"position":[[2155,4]]},"111":{"position":[[263,4],[573,4]]},"113":{"position":[[328,4],[480,4],[972,4],[1121,4],[1272,4]]}}}],["lineal",{"_index":2613,"t":{"165":{"position":[[279,7],[732,9]]}}}],["linejoin",{"_index":2635,"t":{"167":{"position":[[618,9],[1075,9]]}}}],["lines",{"_index":758,"t":{"49":{"position":[[5154,5],[8651,5],[8819,5],[8989,5]]},"111":{"position":[[1463,5]]},"167":{"position":[[725,7]]}}}],["linesize",{"_index":747,"t":{"49":{"position":[[4869,8],[5642,9],[5664,9],[5685,9],[5707,10],[5745,9],[5767,9],[5788,9],[5809,10],[5842,9],[5863,9],[5884,9],[5905,10],[5939,9],[5961,9],[5983,9],[6004,10],[6616,9],[6638,9],[6673,9],[6694,9],[6730,9],[6751,9],[6788,9],[6810,9],[6972,10],[7131,8],[7174,8]]}}}],["linestyle",{"_index":361,"t":{"43":{"position":[[1589,12]]},"89":{"position":[[3419,12]]},"91":{"position":[[338,12]]},"113":{"position":[[816,9]]}}}],["lineto(0",{"_index":1573,"t":{"89":{"position":[[3483,10]]}}}],["lineto(36",{"_index":2562,"t":{"161":{"position":[[347,11]]}}}],["lineto(70",{"_index":2564,"t":{"161":{"position":[[363,11]]}}}],["lineto(700",{"_index":1575,"t":{"89":{"position":[[3516,12]]}}}],["lineto(x",{"_index":366,"t":{"43":{"position":[[1677,10]]}}}],["links",{"_index":5,"t":{"37":{"position":[[48,5]]}}}],["linting",{"_index":818,"t":{"49":{"position":[[8724,7]]}}}],["listen",{"_index":157,"t":{"39":{"position":[[2721,6]]},"41":{"position":[[1085,6]]},"47":{"position":[[3593,6],[4951,6]]},"49":{"position":[[8334,6]]},"51":{"position":[[1154,6]]},"67":{"position":[[776,6]]},"71":{"position":[[442,6]]},"93":{"position":[[1473,6]]},"99":{"position":[[2928,6]]},"147":{"position":[[954,6]]},"155":{"position":[[463,6]]},"161":{"position":[[650,6]]}}}],["little",{"_index":351,"t":{"43":{"position":[[1443,6]]},"63":{"position":[[1528,6]]},"65":{"position":[[1297,6]]},"69":{"position":[[1393,6]]},"73":{"position":[[1381,6]]},"75":{"position":[[523,6]]},"83":{"position":[[534,6]]},"155":{"position":[[559,6]]}}}],["littledudes",{"_index":1873,"t":{"101":{"position":[[305,11]]}}}],["littledudes.filters",{"_index":1886,"t":{"101":{"position":[[802,19]]}}}],["littledudes.x",{"_index":1875,"t":{"101":{"position":[[400,13]]}}}],["littledudes.y",{"_index":1877,"t":{"101":{"position":[[446,13]]}}}],["littlerobot",{"_index":1879,"t":{"101":{"position":[[506,11]]}}}],["littlerobot.filters",{"_index":1887,"t":{"101":{"position":[[839,19]]}}}],["littlerobot.x",{"_index":1881,"t":{"101":{"position":[[600,13]]}}}],["littlerobot.y",{"_index":1882,"t":{"101":{"position":[[646,13]]}}}],["load",{"_index":911,"t":{"55":{"position":[[170,4],[340,4],[438,4],[481,4],[507,4]]},"57":{"position":[[237,5],[703,4],[1349,4]]},"59":{"position":[[170,4],[320,4]]},"65":{"position":[[141,4]]},"95":{"position":[[369,4],[526,4]]},"127":{"position":[[863,4]]},"165":{"position":[[152,4]]},"169":{"position":[[152,4]]}}}],["loaded",{"_index":906,"t":{"53":{"position":[[343,6]]},"55":{"position":[[450,6],[670,6]]},"57":{"position":[[526,6],[906,6],[1429,6],[1583,6]]},"59":{"position":[[377,6],[635,6]]},"61":{"position":[[413,6]]},"99":{"position":[[809,6]]},"153":{"position":[[412,6]]}}}],["loader",{"_index":2521,"t":{"153":{"position":[[433,6]]},"169":{"position":[[325,6]]}}}],["loader/chachicle.ttf",{"_index":2612,"t":{"165":{"position":[[256,22]]}}}],["loader/crosterian.woff2",{"_index":2620,"t":{"165":{"position":[[473,25]]}}}],["loader/dotrice",{"_index":2617,"t":{"165":{"position":[[396,14]]}}}],["loader/lineal.otf",{"_index":2614,"t":{"165":{"position":[[322,19]]}}}],["loading",{"_index":1006,"t":{"61":{"position":[[158,7]]}}}],["loadscreenassets",{"_index":953,"t":{"57":{"position":[[801,16],[1478,16]]}}}],["local",{"_index":1119,"t":{"67":{"position":[[662,5]]},"147":{"position":[[840,5]]}}}],["located",{"_index":1634,"t":{"89":{"position":[[5373,7]]}}}],["logical",{"_index":588,"t":{"47":{"position":[[4291,7]]}}}],["logs",{"_index":1399,"t":{"87":{"position":[[49,4],[451,4],[1272,4],[1525,4]]}}}],["logs.join('\\n",{"_index":1450,"t":{"87":{"position":[[1654,16]]}}}],["logs.length",{"_index":1447,"t":{"87":{"position":[[1555,12],[1582,12]]}}}],["logs.push",{"_index":1445,"t":{"87":{"position":[[1452,11]]}}}],["logs.push(`${currenttargetname",{"_index":1443,"t":{"87":{"position":[[1277,31]]}}}],["logs.shift",{"_index":1448,"t":{"87":{"position":[[1603,13]]}}}],["logtext",{"_index":1415,"t":{"87":{"position":[[468,7],[1631,7]]}}}],["logtext.text",{"_index":1449,"t":{"87":{"position":[[1639,12]]}}}],["logtext.x",{"_index":1418,"t":{"87":{"position":[[552,9]]}}}],["logtext.y",{"_index":1417,"t":{"87":{"position":[[536,9]]}}}],["long",{"_index":245,"t":{"41":{"position":[[329,4]]},"87":{"position":[[1547,4]]}}}],["look",{"_index":354,"t":{"43":{"position":[[1465,4]]},"173":{"position":[[113,4]]}}}],["looking",{"_index":893,"t":{"51":{"position":[[2120,7]]}}}],["loop",{"_index":168,"t":{"39":{"position":[[2891,4]]}}}],["lot",{"_index":2639,"t":{"167":{"position":[[690,3]]},"175":{"position":[[929,3]]}}}],["m",{"_index":298,"t":{"41":{"position":[[2073,1]]}}}],["m[0",{"_index":302,"t":{"41":{"position":[[2318,4]]}}}],["m[1",{"_index":304,"t":{"41":{"position":[[2365,5]]}}}],["made",{"_index":222,"t":{"39":{"position":[[5027,4]]},"79":{"position":[[1648,4]]}}}],["maggot",{"_index":1934,"t":{"105":{"position":[[430,6],[1951,6]]}}}],["maggot.anchor.set(0.5",{"_index":1936,"t":{"105":{"position":[[497,23]]}}}],["maggot.direction",{"_index":1938,"t":{"105":{"position":[[549,16],[1972,16],[2146,16]]}}}],["maggot.original",{"_index":1946,"t":{"105":{"position":[[781,15]]}}}],["maggot.original.copyfrom(maggot.scale",{"_index":1947,"t":{"105":{"position":[[817,39]]}}}],["maggot.original.x",{"_index":1976,"t":{"105":{"position":[[2195,17]]}}}],["maggot.rotation",{"_index":1974,"t":{"105":{"position":[[2127,15]]}}}],["maggot.scale.set(1",{"_index":1945,"t":{"105":{"position":[[738,18]]}}}],["maggot.scale.x",{"_index":1975,"t":{"105":{"position":[[2178,14]]}}}],["maggot.speed",{"_index":1939,"t":{"105":{"position":[[597,12],[2058,13],[2113,13]]}}}],["maggot.turnspeed",{"_index":1940,"t":{"105":{"position":[[615,16],[1992,16]]}}}],["maggot.x",{"_index":1941,"t":{"105":{"position":[[655,8],[2017,8],[2281,9],[2305,8],[2341,9],[2380,8]]}}}],["maggot.y",{"_index":1943,"t":{"105":{"position":[[696,8],[2072,8],[2411,9],[2435,8],[2472,9],[2512,8]]}}}],["maggots",{"_index":1132,"t":{"69":{"position":[[330,7],[657,8],[1123,7],[1258,7],[1400,7],[2058,7]]},"105":{"position":[[379,7],[2250,7]]}}}],["maggots.length",{"_index":1150,"t":{"69":{"position":[[1720,15]]},"105":{"position":[[1922,15]]}}}],["maggots.push(dude",{"_index":1148,"t":{"69":{"position":[[1310,19]]}}}],["maggots.push(maggot",{"_index":1948,"t":{"105":{"position":[[857,21]]}}}],["maggots[i",{"_index":1151,"t":{"69":{"position":[[1756,11]]},"105":{"position":[[1960,11]]}}}],["magically",{"_index":2519,"t":{"153":{"position":[[370,9]]}}}],["main",{"_index":1741,"t":{"97":{"position":[[813,6]]},"99":{"position":[[1702,6]]},"121":{"position":[[1183,6],[1360,6]]},"123":{"position":[[690,6],[897,6]]},"125":{"position":[[1082,6],[1289,6]]},"127":{"position":[[732,6],[1123,6],[2097,6],[2879,6],[3481,6],[4532,6]]},"129":{"position":[[681,6],[1569,6]]},"131":{"position":[[565,6],[772,6],[1114,6],[1321,6]]},"133":{"position":[[631,6],[844,6]]},"139":{"position":[[387,6],[533,6]]},"141":{"position":[[653,6],[837,6]]},"143":{"position":[[799,6],[1065,6]]},"145":{"position":[[662,6],[910,6]]}}}],["make",{"_index":353,"t":{"43":{"position":[[1457,4]]},"65":{"position":[[522,4]]},"81":{"position":[[1310,4]]},"83":{"position":[[907,4]]},"85":{"position":[[949,4]]},"89":{"position":[[3830,4],[3997,4],[4169,4],[4242,4]]},"91":{"position":[[553,4]]},"93":{"position":[[228,4],[302,4]]},"99":{"position":[[2619,4]]},"107":{"position":[[483,4],[952,4]]},"129":{"position":[[2500,4]]},"135":{"position":[[582,4]]},"137":{"position":[[643,4]]},"157":{"position":[[631,4]]}}}],["makegamescreen",{"_index":965,"t":{"57":{"position":[[1212,17],[1251,16]]}}}],["makeloadscreen",{"_index":948,"t":{"57":{"position":[[622,17],[657,16],[1948,17]]}}}],["makes",{"_index":1995,"t":{"107":{"position":[[1013,5]]},"127":{"position":[[1935,5]]},"175":{"position":[[952,5]]}}}],["manifest",{"_index":941,"t":{"57":{"position":[[176,8],[478,9]]}}}],["manifestexample",{"_index":942,"t":{"57":{"position":[[199,15],[488,15]]}}}],["map",{"_index":876,"t":{"51":{"position":[[1483,3]]},"89":{"position":[[1042,3]]}}}],["margin",{"_index":484,"t":{"47":{"position":[[1701,6],[1771,7],[1935,8],[2041,7],[2067,8],[2597,6]]}}}],["mask",{"_index":658,"t":{"49":{"position":[[681,4],[760,5],[780,5],[1858,4],[3138,5],[3454,4],[3533,5],[3553,5],[3890,4],[5026,4],[5137,4],[5176,4],[5255,5],[6049,4],[6846,4]]},"79":{"position":[[1095,5],[1572,4],[1698,4]]},"119":{"position":[[352,4],[483,5]]},"153":{"position":[[745,4]]}}}],["mask.anchor.set(0.5",{"_index":2192,"t":{"119":{"position":[[420,21]]}}}],["mask.arc(0",{"_index":729,"t":{"49":{"position":[[4010,11]]}}}],["mask.beginfill(0xff0000",{"_index":690,"t":{"49":{"position":[[1909,24],[3941,24],[6897,24]]}}}],["mask.clear",{"_index":688,"t":{"49":{"position":[[1863,13],[3895,13],[6851,13]]}}}],["mask.endfill",{"_index":698,"t":{"49":{"position":[[2153,15],[4079,15],[7253,15]]}}}],["mask.linestyle(2",{"_index":689,"t":{"49":{"position":[[1877,17],[3909,17],[6865,17]]}}}],["mask.lineto(0",{"_index":692,"t":{"49":{"position":[[1965,14],[4060,14],[7234,14]]}}}],["mask.lineto(corners[i",{"_index":696,"t":{"49":{"position":[[2102,21],[7039,21]]}}}],["mask.lineto(intersection.x",{"_index":693,"t":{"49":{"position":[[1984,27],[7090,26],[7189,27]]}}}],["mask.lineto(x1",{"_index":728,"t":{"49":{"position":[[3989,15]]}}}],["mask.moveto(0",{"_index":691,"t":{"49":{"position":[[1938,14],[3970,14],[6926,14],[6945,14]]}}}],["mask.position.set(size",{"_index":659,"t":{"49":{"position":[[709,22],[3482,22],[5204,22]]}}}],["mask.x",{"_index":2193,"t":{"119":{"position":[[442,6],[696,6],[718,7]]}}}],["mask.y",{"_index":2195,"t":{"119":{"position":[[456,6],[733,6],[755,7]]}}}],["masking",{"_index":739,"t":{"49":{"position":[[4583,8]]},"117":{"position":[[1370,7]]}}}],["masks",{"_index":1259,"t":{"79":{"position":[[1609,6]]}}}],["mat3",{"_index":2220,"t":{"121":{"position":[[1104,4],[1136,4]]},"123":{"position":[[611,4],[643,4]]},"125":{"position":[[1003,4],[1035,4]]},"127":{"position":[[653,4],[685,4]]},"129":{"position":[[602,4],[634,4]]},"131":{"position":[[486,4],[518,4],[1035,4],[1067,4]]},"133":{"position":[[552,4],[584,4]]},"139":{"position":[[327,4],[359,4]]},"141":{"position":[[572,4],[604,4]]},"143":{"position":[[699,4],[731,4]]},"145":{"position":[[583,4],[615,4]]}}}],["match",{"_index":817,"t":{"49":{"position":[[8704,5]]},"93":{"position":[[1968,5]]}}}],["matches",{"_index":1235,"t":{"79":{"position":[[680,7]]}}}],["math",{"_index":808,"t":{"49":{"position":[[8510,4]]}}}],["math.abs(e.deltay",{"_index":1607,"t":{"89":{"position":[[4459,20]]}}}],["math.abs(mask.x",{"_index":2201,"t":{"119":{"position":[[773,16]]}}}],["math.atan2",{"_index":207,"t":{"39":{"position":[[4405,11]]}}}],["math.atan2(dycenter",{"_index":901,"t":{"51":{"position":[[2472,20]]}}}],["math.cos((i",{"_index":2440,"t":{"135":{"position":[[718,11]]},"137":{"position":[[779,11]]}}}],["math.cos(anglestart",{"_index":725,"t":{"49":{"position":[[3807,20]]}}}],["math.cos(angletomouse",{"_index":217,"t":{"39":{"position":[[4817,22]]}}}],["math.cos(count",{"_index":1890,"t":{"101":{"position":[[949,16]]},"103":{"position":[[1607,15],[1717,16],[1746,15]]},"111":{"position":[[1975,15],[2017,15],[2116,15],[2159,15],[2259,15]]},"117":{"position":[[1722,15],[1856,15],[1898,15],[1997,15],[2040,15]]},"159":{"position":[[635,16]]}}}],["math.cos(deg",{"_index":866,"t":{"51":{"position":[[984,13]]}}}],["math.cos(dude.direction",{"_index":1059,"t":{"63":{"position":[[1991,24]]},"69":{"position":[[1947,24]]},"73":{"position":[[1836,24]]}}}],["math.cos(i",{"_index":709,"t":{"49":{"position":[[2643,10]]}}}],["math.cos(maggot.direction",{"_index":1973,"t":{"105":{"position":[[2084,26]]}}}],["math.cos(phase",{"_index":666,"t":{"49":{"position":[[999,14],[5507,14]]}}}],["math.floor(i",{"_index":398,"t":{"45":{"position":[[759,12]]},"67":{"position":[[478,12]]},"147":{"position":[[656,12]]},"175":{"position":[[399,12]]}}}],["math.floor(math.random",{"_index":553,"t":{"47":{"position":[[3290,24]]},"63":{"position":[[813,24],[868,24]]},"83":{"position":[[393,24],[439,24]]},"119":{"position":[[594,24],[638,24]]}}}],["math.floor(t",{"_index":297,"t":{"41":{"position":[[2052,14]]}}}],["math.hypot(a",{"_index":116,"t":{"39":{"position":[[1906,13]]}}}],["math.max(0",{"_index":891,"t":{"51":{"position":[[2025,11]]}}}],["math.max(halfhandlewidth",{"_index":1687,"t":{"93":{"position":[[2029,25]]}}}],["math.min",{"_index":1688,"t":{"93":{"position":[[2055,9]]}}}],["math.min(1",{"_index":621,"t":{"47":{"position":[[5130,11]]}}}],["math.min(15",{"_index":1606,"t":{"89":{"position":[[4446,12]]}}}],["math.min(symbol_size",{"_index":472,"t":{"47":{"position":[[1410,20],[4404,20]]}}}],["math.pi",{"_index":512,"t":{"47":{"position":[[2367,7]]},"49":{"position":[[947,8],[1016,7],[1064,7],[2669,7],[2731,7],[2860,8],[2961,7],[3692,8],[3730,7],[5455,8],[5524,7],[5572,7],[7666,9],[8047,8]]},"51":{"position":[[921,7],[2505,7]]},"63":{"position":[[1144,7],[2064,7]]},"69":{"position":[[943,7],[2037,8]]},"73":{"position":[[997,7],[1909,7]]},"81":{"position":[[1715,7],[1810,8]]},"85":{"position":[[1810,7],[1905,8]]},"105":{"position":[[584,7],[2165,7]]},"109":{"position":[[1393,8],[1406,9],[1551,8],[1564,7],[1745,8],[1760,7]]},"151":{"position":[[723,8]]},"167":{"position":[[546,7]]},"171":{"position":[[994,7]]},"173":{"position":[[2056,7]]},"175":{"position":[[456,8]]}}}],["math.random",{"_index":858,"t":{"51":{"position":[[745,13],[778,13],[905,13],[951,13]]},"63":{"position":[[722,13],[1128,13],[1251,13],[1341,13]]},"65":{"position":[[869,13],[905,13],[942,13]]},"69":{"position":[[703,13],[754,13],[797,13],[844,13],[927,13],[1052,13],[1160,13],[1200,13]]},"73":{"position":[[578,13],[667,13],[710,13],[757,13],[981,13],[1104,13],[1194,13]]},"105":{"position":[[568,13],[634,13],[666,13],[707,13],[759,13]]},"111":{"position":[[1562,13],[1629,13],[1675,13],[1696,13],[1717,13],[1738,13],[1759,13],[1780,13]]},"121":{"position":[[856,14],[905,14],[954,14]]},"151":{"position":[[576,13],[624,13],[707,13],[759,13]]},"175":{"position":[[440,13]]},"177":{"position":[[1492,13],[1528,13]]}}}],["math.round((app.screen.width",{"_index":419,"t":{"45":{"position":[[1208,28]]}}}],["math.round((bottom.width",{"_index":522,"t":{"47":{"position":[[2515,24]]}}}],["math.round((margin",{"_index":525,"t":{"47":{"position":[[2606,18],[2838,18]]}}}],["math.round((symbol_size",{"_index":476,"t":{"47":{"position":[[1488,23],[4483,23]]}}}],["math.round((top.width",{"_index":534,"t":{"47":{"position":[[2775,21]]}}}],["math.round(app.screen.width",{"_index":487,"t":{"47":{"position":[[1797,27]]}}}],["math.round(screenshottext.height",{"_index":422,"t":{"45":{"position":[[1286,32]]}}}],["math.sign(e.deltay",{"_index":1605,"t":{"89":{"position":[[4424,19]]}}}],["math.sin((i",{"_index":2438,"t":{"135":{"position":[[653,11]]},"137":{"position":[[714,11]]}}}],["math.sin((timer",{"_index":1170,"t":{"71":{"position":[[632,15]]}}}],["math.sin(anglestart",{"_index":727,"t":{"49":{"position":[[3849,20]]}}}],["math.sin(angletomouse",{"_index":218,"t":{"39":{"position":[[4852,22]]}}}],["math.sin(count",{"_index":1110,"t":{"65":{"position":[[1430,16],[1472,16]]},"101":{"position":[[986,16]]},"103":{"position":[[1563,15],[1684,15],[1781,14],[1818,14],[1851,14]]},"105":{"position":[[2215,15]]},"111":{"position":[[1946,15],[2046,15],[2088,15],[2187,15],[2230,15]]},"117":{"position":[[1678,15],[1827,15],[1927,15],[1969,15],[2068,15]]},"159":{"position":[[587,16]]},"177":{"position":[[2057,15]]}}}],["math.sin(deg",{"_index":868,"t":{"51":{"position":[[1019,13]]}}}],["math.sin(dude.direction",{"_index":1058,"t":{"63":{"position":[[1942,24]]},"69":{"position":[[1881,24]]},"73":{"position":[[1787,24]]}}}],["math.sin(i",{"_index":710,"t":{"49":{"position":[[2705,10],[2935,10]]}}}],["math.sin(maggot.direction",{"_index":1972,"t":{"105":{"position":[[2029,26]]}}}],["math.sin(phase",{"_index":667,"t":{"49":{"position":[[1047,14],[5555,14]]}}}],["math.sin(tick",{"_index":1154,"t":{"69":{"position":[[1790,13]]}}}],["math.sin(time",{"_index":2379,"t":{"127":{"position":[[5662,13]]}}}],["math.sin(time)*5+10",{"_index":2375,"t":{"127":{"position":[[5527,20]]}}}],["math.sqrt",{"_index":90,"t":{"39":{"position":[[1157,10]]}}}],["math.sqrt(dxcenter",{"_index":889,"t":{"51":{"position":[[1949,18]]}}}],["matrix",{"_index":1492,"t":{"89":{"position":[[917,6]]},"103":{"position":[[1653,6]]}}}],["matrix[1",{"_index":1926,"t":{"103":{"position":[[1672,9]]}}}],["matrix[2",{"_index":1927,"t":{"103":{"position":[[1705,9]]}}}],["matrix[3",{"_index":1928,"t":{"103":{"position":[[1734,9]]}}}],["matrix[4",{"_index":1930,"t":{"103":{"position":[[1769,9]]}}}],["matrix[5",{"_index":1931,"t":{"103":{"position":[[1806,9]]}}}],["matrix[6",{"_index":1932,"t":{"103":{"position":[[1839,9]]}}}],["max",{"_index":1819,"t":{"99":{"position":[[1660,4]]},"129":{"position":[[1527,4]]}}}],["maybe",{"_index":4,"t":{"37":{"position":[[42,5]]}}}],["mean",{"_index":1358,"t":{"83":{"position":[[746,4]]}}}],["means",{"_index":1476,"t":{"89":{"position":[[594,5]]}}}],["mediump",{"_index":1723,"t":{"97":{"position":[[460,7]]},"121":{"position":[[1015,7],[1321,7]]},"123":{"position":[[535,7],[829,7]]},"125":{"position":[[927,7],[1221,7]]},"127":{"position":[[577,7],[1064,7],[1990,7],[2794,7],[3397,7],[4409,7]]},"129":{"position":[[526,7],[896,7]]},"131":{"position":[[410,7],[704,7],[959,7],[1253,7]]},"133":{"position":[[476,7],[770,7]]},"139":{"position":[[272,7],[513,7]]},"141":{"position":[[494,7],[796,7]]},"143":{"position":[[600,7],[976,7]]},"145":{"position":[[507,7],[822,7]]}}}],["memories",{"_index":2524,"t":{"153":{"position":[[543,8]]}}}],["memory",{"_index":2740,"t":{"173":{"position":[[1121,6]]}}}],["merged",{"_index":1515,"t":{"89":{"position":[[1558,7]]}}}],["mesh",{"_index":1768,"t":{"99":{"position":[[204,4]]},"127":{"position":[[1665,4]]}}}],["meshes",{"_index":2282,"t":{"127":{"position":[[1582,6]]}}}],["method",{"_index":2772,"t":{"175":{"position":[[779,6]]}}}],["methods",{"_index":1531,"t":{"89":{"position":[[1999,7]]}}}],["middle",{"_index":186,"t":{"39":{"position":[[3530,6]]}}}],["mind",{"_index":567,"t":{"47":{"position":[[3828,4]]}}}],["mipmap",{"_index":1859,"t":{"99":{"position":[[2661,7]]}}}],["mipmapping",{"_index":2389,"t":{"129":{"position":[[2537,11]]}}}],["mirrors",{"_index":2853,"t":{"179":{"position":[[1195,7]]}}}],["mix(ripple",{"_index":2354,"t":{"127":{"position":[[4698,11]]}}}],["mobile",{"_index":1205,"t":{"77":{"position":[[600,6]]},"161":{"position":[[733,6]]}}}],["mod(guv.x",{"_index":2276,"t":{"127":{"position":[[1366,9]]}}}],["mod(id",{"_index":1794,"t":{"99":{"position":[[1270,7]]},"129":{"position":[[1189,7]]}}}],["mode",{"_index":1033,"t":{"63":{"position":[[994,4]]},"77":{"position":[[158,4]]},"83":{"position":[[271,4],[736,4]]}}}],["modified",{"_index":815,"t":{"49":{"position":[[8678,8]]}}}],["modify",{"_index":1040,"t":{"63":{"position":[[1188,6]]},"69":{"position":[[987,6]]},"73":{"position":[[1041,6]]}}}],["monster",{"_index":531,"t":{"47":{"position":[[2735,7]]}}}],["more",{"_index":717,"t":{"49":{"position":[[3014,4]]},"99":{"position":[[232,4]]},"173":{"position":[[1856,4]]}}}],["mount",{"_index":1420,"t":{"87":{"position":[[596,5],[777,5]]}}}],["mouse",{"_index":188,"t":{"39":{"position":[[3775,5],[4158,5],[4562,5]]},"41":{"position":[[1176,5]]},"65":{"position":[[1099,5]]},"77":{"position":[[584,5],[681,5],[738,5]]},"83":{"position":[[670,5],[814,5],[992,5]]},"85":{"position":[[1046,5],[1321,5]]},"87":{"position":[[284,5]]},"89":{"position":[[5423,5]]},"97":{"position":[[731,6],[1372,6]]}}}],["mouse.xy",{"_index":1755,"t":{"97":{"position":[[1083,9]]}}}],["mousecoords",{"_index":144,"t":{"39":{"position":[[2517,11],[4647,12]]}}}],["mousecoords.x",{"_index":153,"t":{"39":{"position":[[2650,13],[3849,13],[3866,13],[4235,13]]}}}],["mousecoords.y",{"_index":155,"t":{"39":{"position":[[2682,13],[3907,13],[3924,13],[4278,13]]}}}],["mouseposition",{"_index":261,"t":{"41":{"position":[[836,13],[961,13],[977,13],[1137,16]]}}}],["mouseposition.x",{"_index":263,"t":{"41":{"position":[[1010,15]]}}}],["mouseposition.y",{"_index":264,"t":{"41":{"position":[[1044,15]]}}}],["move",{"_index":132,"t":{"39":{"position":[[2276,4]]},"53":{"position":[[461,4]]},"61":{"position":[[539,4]]},"67":{"position":[[534,4]]},"75":{"position":[[322,4]]},"83":{"position":[[1082,4]]},"87":{"position":[[273,5]]},"89":{"position":[[484,4]]},"147":{"position":[[712,4]]},"155":{"position":[[324,4]]},"157":{"position":[[480,4]]}}}],["moved",{"_index":1681,"t":{"93":{"position":[[1870,6]]}}}],["movement",{"_index":1037,"t":{"63":{"position":[[1102,8]]},"71":{"position":[[557,9]]},"73":{"position":[[833,8]]},"83":{"position":[[1622,8]]}}}],["movementspeed",{"_index":41,"t":{"39":{"position":[[397,13],[4726,14]]}}}],["moves",{"_index":40,"t":{"39":{"position":[[385,5],[3129,5]]},"91":{"position":[[103,5]]},"175":{"position":[[877,6]]}}}],["moveto",{"_index":1574,"t":{"89":{"position":[[3499,8]]}}}],["moveto(0",{"_index":1572,"t":{"89":{"position":[[3466,10]]}}}],["moveto(36",{"_index":2561,"t":{"161":{"position":[[331,11]]}}}],["moveto(lastdrawnpoint.x",{"_index":364,"t":{"43":{"position":[[1633,25]]}}}],["moving",{"_index":897,"t":{"51":{"position":[[2224,7]]},"111":{"position":[[1293,6]]},"117":{"position":[[1002,6]]}}}],["mr",{"_index":1186,"t":{"75":{"position":[[511,2]]},"155":{"position":[[547,2]]}}}],["much",{"_index":1778,"t":{"99":{"position":[[791,4]]}}}],["multiple",{"_index":2640,"t":{"167":{"position":[[716,8]]},"173":{"position":[[1781,8]]}}}],["multiply",{"_index":715,"t":{"49":{"position":[[2982,8]]}}}],["multitouch",{"_index":1380,"t":{"83":{"position":[[1587,10]]}}}],["n",{"_index":1635,"t":{"89":{"position":[[5417,3],[5464,3]]},"99":{"position":[[1504,1],[1678,6]]},"129":{"position":[[1371,1],[1545,6]]}}}],["name",{"_index":944,"t":{"57":{"position":[[231,5],[264,5],[343,5],[376,5]]},"63":{"position":[[528,4]]},"65":{"position":[[806,6]]},"73":{"position":[[280,4]]},"123":{"position":[[213,4],[359,4]]},"125":{"position":[[213,4],[359,4],[565,4],[718,4]]},"127":{"position":[[245,4],[379,4]]},"129":{"position":[[232,4],[378,4]]},"131":{"position":[[213,4],[316,4]]},"133":{"position":[[213,4],[348,4]]},"141":{"position":[[213,4],[350,4]]},"143":{"position":[[213,4],[350,4],[488,4]]},"145":{"position":[[213,4],[359,4]]}}}],["need",{"_index":1771,"t":{"99":{"position":[[263,4]]},"161":{"position":[[1107,4]]},"171":{"position":[[340,4]]},"173":{"position":[[605,4]]}}}],["needs",{"_index":2726,"t":{"173":{"position":[[388,5]]}}}],["nest",{"_index":1479,"t":{"89":{"position":[[676,4]]}}}],["nested",{"_index":1459,"t":{"89":{"position":[[107,6]]}}}],["new",{"_index":27,"t":{"39":{"position":[[221,3],[1035,3],[1075,3],[1297,3],[1392,3],[1681,3],[1986,3],[2217,3],[2306,3],[2472,3],[4014,3],[4219,3]]},"41":{"position":[[45,3],[703,3]]},"43":{"position":[[45,3],[190,3],[323,3],[842,3],[1818,3]]},"45":{"position":[[45,3],[248,3],[676,3],[1055,3],[1139,3]]},"47":{"position":[[45,3],[841,3],[904,3],[1060,3],[1228,3],[1856,3],[1959,3],[2107,3],[2460,3],[2715,3]]},"49":{"position":[[45,3],[335,3],[688,3],[2313,3],[3227,3],[3461,3],[4268,3],[4613,3],[4896,3],[5183,3],[7446,3],[7549,3],[7749,3]]},"51":{"position":[[45,3],[499,3]]},"53":{"position":[[45,3],[315,3]]},"55":{"position":[[45,3],[641,3],[703,3]]},"57":{"position":[[45,3],[877,3],[936,3],[1554,3],[1613,3]]},"59":{"position":[[45,3],[606,3]]},"61":{"position":[[45,3],[384,3]]},"63":{"position":[[45,3],[138,3],[497,3],[1591,3]]},"65":{"position":[[45,3],[449,3]]},"67":{"position":[[45,3],[167,3],[232,3],[395,3]]},"69":{"position":[[45,3],[142,3],[471,3],[1458,3]]},"71":{"position":[[45,3],[242,3]]},"73":{"position":[[45,3],[249,3],[1444,3]]},"75":{"position":[[45,3],[158,3]]},"77":{"position":[[45,3]]},"79":{"position":[[45,3],[269,3],[590,3],[767,3],[1133,3],[1283,3],[1723,3],[1808,3],[2006,3],[2340,3],[2395,3],[2504,3],[2613,3],[2718,3]]},"81":{"position":[[45,3],[1152,3]]},"83":{"position":[[45,3],[570,3]]},"85":{"position":[[45,3],[816,3]]},"87":{"position":[[121,3]]},"89":{"position":[[260,3],[882,3],[993,3],[1107,3],[2042,3],[2679,3],[3399,3],[3602,3],[3925,3],[4893,3],[5309,3]]},"91":{"position":[[138,3]]},"93":{"position":[[45,3],[358,3],[540,3],[1212,3]]},"95":{"position":[[45,3],[581,3],[643,3]]},"97":{"position":[[113,3],[1166,3],[1211,3],[1336,3],[1379,3]]},"99":{"position":[[317,3],[532,3],[2787,3]]},"101":{"position":[[45,3],[720,3],[771,3]]},"103":{"position":[[45,3],[324,3],[380,3],[1214,3]]},"105":{"position":[[45,3],[176,3],[265,3],[799,3],[1008,3]]},"107":{"position":[[45,3],[176,3],[618,3]]},"109":{"position":[[45,3],[319,3],[577,3],[804,3],[1072,3],[1319,3],[1471,3],[1634,3],[1835,3],[2200,3]]},"111":{"position":[[45,3],[224,3],[1320,3]]},"113":{"position":[[77,3],[192,3]]},"115":{"position":[[45,3],[319,3],[473,3],[601,4],[657,3],[838,3]]},"117":{"position":[[45,3],[368,3],[1029,3],[1334,3]]},"119":{"position":[[45,3],[537,3]]},"121":{"position":[[45,3],[143,3],[330,3],[1425,3]]},"123":{"position":[[45,3],[143,3],[1053,3]]},"125":{"position":[[45,3],[143,3],[495,3],[1445,3]]},"127":{"position":[[45,3],[175,3],[1780,3],[1839,3],[2588,3],[2651,3],[3226,3],[3287,3],[4229,3],[4288,3],[4938,3]]},"129":{"position":[[45,3],[162,3],[2768,3]]},"131":{"position":[[45,3],[143,3],[1608,3],[1659,3]]},"133":{"position":[[45,3],[143,3],[925,3],[949,3],[1084,3],[1108,3],[1237,3],[1261,3]]},"135":{"position":[[45,3],[295,3],[449,3]]},"137":{"position":[[45,3],[301,3],[427,3]]},"139":{"position":[[45,3],[143,3],[606,3]]},"141":{"position":[[45,3],[143,3],[903,3]]},"143":{"position":[[45,3],[143,3],[1325,3]]},"145":{"position":[[45,3],[143,3],[1196,3]]},"147":{"position":[[220,3],[345,3],[410,3],[573,3]]},"149":{"position":[[45,3],[580,3],[851,3]]},"151":{"position":[[45,3],[518,3]]},"153":{"position":[[45,3],[598,3]]},"155":{"position":[[45,3],[161,3]]},"157":{"position":[[45,3],[342,3],[389,3]]},"159":{"position":[[45,3],[396,3]]},"161":{"position":[[45,3],[221,3],[1273,3],[1349,3]]},"163":{"position":[[45,3],[255,3]]},"165":{"position":[[45,3],[562,3],[593,3],[671,3],[699,3],[774,3],[812,3],[896,3],[930,3]]},"167":{"position":[[45,3],[167,3],[286,3],[658,3],[824,3],[1136,3]]},"169":{"position":[[45,3],[778,3]]},"171":{"position":[[183,3],[915,3]]},"173":{"position":[[1529,3],[1651,3],[1927,3],[1977,3]]},"175":{"position":[[45,3],[167,3],[339,3],[512,3],[589,3],[633,3]]},"177":{"position":[[45,3],[467,3],[545,3],[745,3],[1929,3]]},"179":{"position":[[45,3],[528,3],[668,3],[874,3],[1246,3],[1292,3],[1526,3],[1598,5]]}}}],["next",{"_index":1530,"t":{"89":{"position":[[1983,4]]}}}],["nicer",{"_index":355,"t":{"43":{"position":[[1470,5]]}}}],["noise",{"_index":1786,"t":{"99":{"position":[[1029,6],[2601,5],[2832,6]]},"127":{"position":[[2750,6],[2867,6],[3024,6],[4610,5]]},"129":{"position":[[948,6],[2419,6]]}}}],["noisecontainer",{"_index":2317,"t":{"127":{"position":[[3270,14]]}}}],["noisecontainer.addchild(noisequad",{"_index":2318,"t":{"127":{"position":[[3309,35]]}}}],["noisecontainer.position.set(10",{"_index":2361,"t":{"127":{"position":[[5053,31]]}}}],["noisequad",{"_index":2316,"t":{"127":{"position":[[3214,9]]}}}],["noisequad.shader.uniforms.limit",{"_index":2378,"t":{"127":{"position":[[5628,31]]}}}],["noiseshader",{"_index":2314,"t":{"127":{"position":[[3055,11],[3250,13]]}}}],["noisetexture",{"_index":2315,"t":{"127":{"position":[[3137,12],[4791,13],[5913,12]]}}}],["noiseuniforms",{"_index":2313,"t":{"127":{"position":[[2994,13],[3115,15]]}}}],["none",{"_index":827,"t":{"49":{"position":[[8807,4]]}}}],["normal",{"_index":2851,"t":{"179":{"position":[[1174,6]]}}}],["normalize",{"_index":1203,"t":{"77":{"position":[[564,9]]},"93":{"position":[[2131,9]]},"99":{"position":[[1508,10],[1907,10],[2001,10]]},"129":{"position":[[1375,10],[1755,10],[1849,10]]}}}],["normalize(cross",{"_index":1831,"t":{"99":{"position":[[1943,16]]},"129":{"position":[[1791,16]]}}}],["normalize(vec3",{"_index":1836,"t":{"99":{"position":[[2048,15]]},"129":{"position":[[1896,15]]}}}],["normalized",{"_index":1390,"t":{"85":{"position":[[1071,10]]}}}],["note",{"_index":1717,"t":{"97":{"position":[[411,5]]},"99":{"position":[[46,4]]}}}],["now",{"_index":568,"t":{"47":{"position":[[3839,3],[5012,3],[5142,4]]},"55":{"position":[[512,4]]},"177":{"position":[[1322,3]]}}}],["null",{"_index":262,"t":{"41":{"position":[[852,5],[2017,5]]},"43":{"position":[[1232,5],[1998,5]]},"47":{"position":[[3463,5],[3510,6]]},"49":{"position":[[1378,5],[6184,5]]},"83":{"position":[[1220,5],[1460,5],[1881,5]]},"89":{"position":[[2843,5],[3029,5]]},"99":{"position":[[513,5]]},"103":{"position":[[1191,5]]},"117":{"position":[[1309,5]]}}}],["number",{"_index":1039,"t":{"63":{"position":[[1165,6]]},"69":{"position":[[964,6]]},"73":{"position":[[895,6],[1018,6]]}}}],["number(math.sin(time",{"_index":2394,"t":{"129":{"position":[[3035,20]]}}}],["numbers",{"_index":2002,"t":{"107":{"position":[[1165,8]]}}}],["object",{"_index":610,"t":{"47":{"position":[[4770,7]]},"49":{"position":[[9311,6]]}}}],["object.addeventlistener('pointerenter",{"_index":1452,"t":{"87":{"position":[[1727,39]]}}}],["object.addeventlistener('pointerleave",{"_index":1454,"t":{"87":{"position":[[1777,39]]}}}],["object.addeventlistener('pointerout",{"_index":1456,"t":{"87":{"position":[[1876,37]]}}}],["object.addeventlistener('pointerover",{"_index":1455,"t":{"87":{"position":[[1827,38]]}}}],["object.assign(pixi.sprite.from('t1",{"_index":325,"t":{"43":{"position":[[632,37]]}}}],["object.assign(pixi.sprite.from('t2",{"_index":327,"t":{"43":{"position":[[704,37]]}}}],["object1",{"_index":81,"t":{"39":{"position":[[1003,9]]}}}],["object1.acceleration.x",{"_index":95,"t":{"39":{"position":[[1408,22]]}}}],["object1.acceleration.y",{"_index":97,"t":{"39":{"position":[[1457,22]]}}}],["object1.getbounds",{"_index":61,"t":{"39":{"position":[[620,20]]}}}],["object1.mass",{"_index":104,"t":{"39":{"position":[[1643,13]]}}}],["object1.x",{"_index":86,"t":{"39":{"position":[[1103,10],[1181,10],[1207,10]]}}}],["object1.y",{"_index":88,"t":{"39":{"position":[[1126,10],[1233,10],[1259,11]]}}}],["object2",{"_index":59,"t":{"39":{"position":[[593,8],[989,8],[1016,9]]}}}],["object2.acceleration.x",{"_index":96,"t":{"39":{"position":[[1433,23]]}}}],["object2.acceleration.y",{"_index":98,"t":{"39":{"position":[[1482,23]]}}}],["object2.getbounds",{"_index":63,"t":{"39":{"position":[[657,20]]}}}],["object2.mass",{"_index":105,"t":{"39":{"position":[[1659,14]]}}}],["object2.x",{"_index":85,"t":{"39":{"position":[[1091,9],[1168,10],[1194,10]]}}}],["object2.y",{"_index":87,"t":{"39":{"position":[[1114,9],[1220,10],[1246,10]]}}}],["object[property",{"_index":612,"t":{"47":{"position":[[4808,17]]}}}],["objects",{"_index":35,"t":{"39":{"position":[[341,7],[463,7],[939,7]]}}}],["offscreencanvas",{"_index":2469,"t":{"147":{"position":[[92,16]]}}}],["offset",{"_index":1990,"t":{"107":{"position":[[922,6]]},"127":{"position":[[1158,8],[3490,8]]}}}],["offsets",{"_index":2325,"t":{"127":{"position":[[3648,8]]}}}],["offsetx",{"_index":2847,"t":{"179":{"position":[[1010,7],[1420,7]]}}}],["offsety",{"_index":2848,"t":{"179":{"position":[[1053,7],[1456,7]]}}}],["old",{"_index":1721,"t":{"97":{"position":[[442,3]]}}}],["on('mousedown",{"_index":1391,"t":{"85":{"position":[[1342,16]]}}}],["on('mousemove",{"_index":1965,"t":{"105":{"position":[[1584,16]]}}}],["on('mouseout",{"_index":1395,"t":{"85":{"position":[[1477,15]]}}}],["on('mouseover",{"_index":1394,"t":{"85":{"position":[[1443,16]]}}}],["on('mouseup",{"_index":1392,"t":{"85":{"position":[[1376,14]]}}}],["on('mouseupoutside",{"_index":1393,"t":{"85":{"position":[[1406,21]]}}}],["on('pointerdown",{"_index":335,"t":{"43":{"position":[[1061,18]]},"79":{"position":[[411,18],[953,18],[1428,18],[2192,18]]},"81":{"position":[[1377,18]]},"85":{"position":[[1151,18]]},"93":{"position":[[724,18]]}}}],["on('pointermove",{"_index":340,"t":{"43":{"position":[[1156,18]]}}}],["on('pointerout",{"_index":1229,"t":{"79":{"position":[[499,17],[1041,17],[1516,17],[2280,17]]},"81":{"position":[[1508,17]]},"85":{"position":[[1282,17]]}}}],["on('pointerover",{"_index":1227,"t":{"79":{"position":[[452,18],[994,18],[1469,18],[2233,18]]},"81":{"position":[[1475,18]]},"85":{"position":[[1249,18]]}}}],["on('pointerup",{"_index":337,"t":{"43":{"position":[[1093,16]]},"81":{"position":[[1410,16]]},"85":{"position":[[1184,16]]},"93":{"position":[[756,16]]}}}],["on('pointerupoutside",{"_index":339,"t":{"43":{"position":[[1121,23]]},"81":{"position":[[1439,23]]},"85":{"position":[[1213,23]]},"93":{"position":[[784,23]]}}}],["on('touchend",{"_index":1397,"t":{"85":{"position":[[1569,15]]}}}],["on('touchendoutside",{"_index":1398,"t":{"85":{"position":[[1600,22]]}}}],["on('touchmove",{"_index":1967,"t":{"105":{"position":[[1616,16]]}}}],["on('touchstart",{"_index":1396,"t":{"85":{"position":[[1534,17]]}}}],["onassetsloaded",{"_index":434,"t":{"47":{"position":[[410,14],[462,16]]},"65":{"position":[[626,16]]}}}],["onassetsloaded(perlin",{"_index":1856,"t":{"99":{"position":[[2562,22]]}}}],["onbuttondown",{"_index":1334,"t":{"81":{"position":[[1396,13],[1828,14]]},"85":{"position":[[1170,13],[1359,13],[1552,13],[1923,14]]}}}],["onbuttonout",{"_index":1337,"t":{"81":{"position":[[1526,13],[2178,13]]},"85":{"position":[[1300,13],[1493,12],[2273,13]]}}}],["onbuttonover",{"_index":1336,"t":{"81":{"position":[[1494,13],[2067,14]]},"85":{"position":[[1268,13],[1460,13],[2162,14]]}}}],["onbuttonup",{"_index":1335,"t":{"81":{"position":[[1427,11],[1463,11],[1926,12]]},"85":{"position":[[1201,11],[1237,11],[1391,11],[1428,11],[1585,11],[1623,11],[2021,12]]}}}],["once",{"_index":986,"t":{"59":{"position":[[363,4]]},"93":{"position":[[1504,4],[1664,4]]}}}],["onchange",{"_index":607,"t":{"47":{"position":[[4730,9],[4856,9]]}}}],["onclick",{"_index":1103,"t":{"65":{"position":[[1150,9],[1169,9]]},"77":{"position":[[645,9],[725,9],[769,9],[830,9]]},"79":{"position":[[430,8],[972,8],[1447,8],[2211,8],[2973,9]]}}}],["oncomplete",{"_index":608,"t":{"47":{"position":[[4740,11],[4876,11]]}}}],["ondrag",{"_index":1674,"t":{"93":{"position":[[1627,8],[1792,8]]}}}],["ondrag(e",{"_index":1682,"t":{"93":{"position":[[1886,9]]}}}],["ondragend",{"_index":1373,"t":{"83":{"position":[[1316,11],[1361,11],[1772,11]]},"93":{"position":[[773,10],[808,11]]}}}],["ondragend(e",{"_index":1677,"t":{"93":{"position":[[1702,12]]}}}],["ondragmove",{"_index":1387,"t":{"83":{"position":[[1748,12],[1833,12]]}}}],["ondragmove(event",{"_index":1375,"t":{"83":{"position":[[1382,17]]}}}],["ondragstart",{"_index":1369,"t":{"83":{"position":[[1058,12],[1501,13]]},"93":{"position":[[743,12],[1537,13]]}}}],["one",{"_index":359,"t":{"43":{"position":[[1533,3]]},"87":{"position":[[810,3]]},"127":{"position":[[894,3]]}}}],["onevent",{"_index":1453,"t":{"87":{"position":[[1767,9],[1817,9],[1866,9],[1914,9]]}}}],["onevent(e",{"_index":1436,"t":{"87":{"position":[[1133,10]]}}}],["onloaded(data",{"_index":1700,"t":{"95":{"position":[[550,14]]}}}],["onplayvideo",{"_index":2584,"t":{"161":{"position":[[1059,13],[1082,13]]}}}],["onpointermove",{"_index":1966,"t":{"105":{"position":[[1601,14],[1633,15]]}}}],["onpointermove(eventdata",{"_index":1968,"t":{"105":{"position":[[1658,24]]}}}],["onpointerout",{"_index":1230,"t":{"79":{"position":[[517,13],[1059,13],[1534,13],[2298,13],[3069,14]]}}}],["onpointerover",{"_index":1228,"t":{"79":{"position":[[471,14],[1013,14],[1488,14],[2252,14],[3018,15]]}}}],["ontick",{"_index":789,"t":{"49":{"position":[[8103,6]]}}}],["ontick.foreach((cb",{"_index":803,"t":{"49":{"position":[[8428,19]]}}}],["onto",{"_index":1466,"t":{"89":{"position":[[231,4]]}}}],["opt",{"_index":1196,"t":{"77":{"position":[[451,3]]}}}],["optimal",{"_index":1762,"t":{"99":{"position":[[77,7]]}}}],["options",{"_index":34,"t":{"39":{"position":[[325,7]]},"167":{"position":[[697,7]]}}}],["order",{"_index":1400,"t":{"87":{"position":[[58,5],[323,5]]}}}],["original",{"_index":816,"t":{"49":{"position":[[8692,8]]},"89":{"position":[[937,8]]}}}],["out",{"_index":183,"t":{"39":{"position":[[3486,3],[4351,3],[4470,3]]},"43":{"position":[[1425,3]]},"89":{"position":[[4541,3],[4661,5],[5490,5]]}}}],["outcolor",{"_index":2275,"t":{"127":{"position":[[1355,8],[1429,9],[3580,8],[3657,8],[3735,8],[3814,8],[3895,8]]}}}],["outdir",{"_index":764,"t":{"49":{"position":[[6083,6],[6555,6]]}}}],["outdir[0",{"_index":769,"t":{"49":{"position":[[7119,9]]}}}],["outdir[1",{"_index":770,"t":{"49":{"position":[[7162,9]]}}}],["outdir[i",{"_index":768,"t":{"49":{"position":[[6564,10]]}}}],["outer",{"_index":1421,"t":{"87":{"position":[[602,5]]}}}],["outline",{"_index":2138,"t":{"113":{"position":[[864,7]]}}}],["output",{"_index":2285,"t":{"127":{"position":[[1646,6]]}}}],["outputframe",{"_index":1739,"t":{"97":{"position":[[775,12]]}}}],["outputframe.xy",{"_index":1744,"t":{"97":{"position":[[870,15],[1095,15]]}}}],["outputframe.zw",{"_index":1756,"t":{"97":{"position":[[1113,15]]}}}],["outputsprite",{"_index":2783,"t":{"177":{"position":[[530,12]]}}}],["outputsprite.anchor.set(0.5",{"_index":2787,"t":{"177":{"position":[[642,29]]}}}],["outputsprite.scale.set(1",{"_index":2823,"t":{"177":{"position":[[2030,24]]}}}],["outputsprite.texture",{"_index":2820,"t":{"177":{"position":[[1941,20]]}}}],["outputsprite.x",{"_index":2785,"t":{"177":{"position":[[598,14]]}}}],["outputsprite.y",{"_index":2786,"t":{"177":{"position":[[620,14]]}}}],["over",{"_index":583,"t":{"47":{"position":[[4209,4]]},"63":{"position":[[1221,4]]},"69":{"position":[[1022,4]]},"73":{"position":[[1074,4]]},"83":{"position":[[789,4]]},"87":{"position":[[297,4]]},"89":{"position":[[5435,4]]},"91":{"position":[[109,4]]},"107":{"position":[[1115,4]]}}}],["override",{"_index":1499,"t":{"89":{"position":[[1148,8]]}}}],["p",{"_index":272,"t":{"41":{"position":[[1394,1],[2163,1]]},"99":{"position":[[1226,2],[1456,2],[2195,1]]},"129":{"position":[[1145,2],[1323,2],[2043,1]]}}}],["p.x",{"_index":284,"t":{"41":{"position":[[1616,3]]}}}],["p.y",{"_index":285,"t":{"41":{"position":[[1626,3]]}}}],["p.y)*0.04).r*5.1",{"_index":1798,"t":{"99":{"position":[[1320,17]]},"129":{"position":[[1239,17]]}}}],["p.z,id",{"_index":1803,"t":{"99":{"position":[[1404,8]]},"129":{"position":[[1271,8]]}}}],["p1.x",{"_index":111,"t":{"39":{"position":[[1863,4]]}}}],["p1.y",{"_index":114,"t":{"39":{"position":[[1886,4]]}}}],["p2",{"_index":110,"t":{"39":{"position":[[1847,3]]}}}],["p2.x",{"_index":112,"t":{"39":{"position":[[1870,5]]}}}],["p2.y",{"_index":115,"t":{"39":{"position":[[1893,5]]}}}],["p[0",{"_index":301,"t":{"41":{"position":[[2291,4]]}}}],["p[1",{"_index":303,"t":{"41":{"position":[[2346,4]]}}}],["padding",{"_index":1933,"t":{"105":{"position":[[235,7],[286,8],[296,8],[324,7],[357,7]]}}}],["panda",{"_index":1909,"t":{"103":{"position":[[884,5]]},"117":{"position":[[813,5],[945,7]]}}}],["panda.anchor.set(0.5",{"_index":1911,"t":{"103":{"position":[[949,22]]},"117":{"position":[[878,22]]}}}],["panda.scale.x",{"_index":1924,"t":{"103":{"position":[[1543,13]]},"117":{"position":[[1658,13]]}}}],["panda.scale.y",{"_index":1925,"t":{"103":{"position":[[1587,13]]},"117":{"position":[[1702,13]]}}}],["parallel",{"_index":829,"t":{"49":{"position":[[8999,8]]}}}],["particular",{"_index":1383,"t":{"83":{"position":[[1639,10]]}}}],["pass",{"_index":1526,"t":{"89":{"position":[[1899,4],[2111,4],[2343,4]]},"127":{"position":[[1004,5],[1629,4],[1905,5],[4365,4]]},"173":{"position":[[327,4]]}}}],["passes",{"_index":2257,"t":{"127":{"position":[[539,7],[5711,6]]}}}],["path",{"_index":1183,"t":{"75":{"position":[[183,5]]},"81":{"position":[[744,4]]},"83":{"position":[[183,4]]},"85":{"position":[[408,4]]},"113":{"position":[[2244,4]]},"153":{"position":[[278,4]]},"155":{"position":[[186,4]]},"159":{"position":[[160,4]]},"161":{"position":[[1182,4]]}}}],["paths",{"_index":1085,"t":{"65":{"position":[[695,5]]}}}],["paul",{"_index":809,"t":{"49":{"position":[[8518,4]]}}}],["people",{"_index":2739,"t":{"173":{"position":[[1091,6]]}}}],["per",{"_index":2759,"t":{"173":{"position":[[1803,3]]}}}],["performance",{"_index":735,"t":{"49":{"position":[[4525,11]]},"155":{"position":[[599,11]]}}}],["performant",{"_index":1770,"t":{"99":{"position":[[237,10]]}}}],["perlin",{"_index":1857,"t":{"99":{"position":[[2594,6],[2839,7]]}}}],["perlin.basetexture.mipmap",{"_index":1862,"t":{"99":{"position":[[2723,25]]}}}],["perlin.basetexture.wrapmode",{"_index":1860,"t":{"99":{"position":[[2669,27]]}}}],["perlinnoise",{"_index":2259,"t":{"127":{"position":[[870,11]]}}}],["perlintexture",{"_index":2261,"t":{"127":{"position":[[920,13],[3031,14]]}}}],["phase",{"_index":620,"t":{"47":{"position":[[5122,5],[5277,6]]},"49":{"position":[[870,5],[911,5],[917,5],[938,5],[2783,5],[2824,5],[2830,5],[2851,5],[2971,7],[3615,5],[3656,5],[3662,5],[3683,5],[3757,5],[5377,5],[5418,5],[5424,5],[5446,5],[7971,5],[8012,5],[8018,5],[8038,5],[8084,6]]},"127":{"position":[[2060,6],[2373,6]]}}}],["phases",{"_index":2365,"t":{"127":{"position":[[5175,6],[5202,6]]}}}],["physics",{"_index":24,"t":{"39":{"position":[[201,7]]}}}],["pi*2",{"_index":1176,"t":{"73":{"position":[[916,4]]}}}],["pixel",{"_index":2727,"t":{"173":{"position":[[401,5]]}}}],["pixelation",{"_index":1190,"t":{"77":{"position":[[193,10]]},"83":{"position":[[280,10]]}}}],["pixels",{"_index":1997,"t":{"107":{"position":[[1038,6]]}}}],["pixi",{"_index":9,"t":{"39":{"position":[[12,4]]},"41":{"position":[[12,4]]},"43":{"position":[[12,4]]},"45":{"position":[[12,4]]},"47":{"position":[[12,4]]},"49":{"position":[[12,4],[8710,4]]},"51":{"position":[[12,4]]},"53":{"position":[[12,4]]},"55":{"position":[[12,4]]},"57":{"position":[[12,4]]},"59":{"position":[[12,4]]},"61":{"position":[[12,4]]},"63":{"position":[[12,4]]},"65":{"position":[[12,4]]},"67":{"position":[[12,4]]},"69":{"position":[[12,4]]},"71":{"position":[[12,4]]},"73":{"position":[[12,4]]},"75":{"position":[[12,4]]},"77":{"position":[[12,4]]},"79":{"position":[[12,4]]},"81":{"position":[[12,4]]},"83":{"position":[[12,4]]},"85":{"position":[[12,4]]},"87":{"position":[[12,4]]},"89":{"position":[[12,4]]},"91":{"position":[[12,4]]},"93":{"position":[[12,4]]},"95":{"position":[[12,4]]},"97":{"position":[[12,4]]},"99":{"position":[[12,4]]},"101":{"position":[[12,4]]},"103":{"position":[[12,4]]},"105":{"position":[[12,4]]},"107":{"position":[[12,4]]},"109":{"position":[[12,4]]},"111":{"position":[[12,4]]},"113":{"position":[[12,4]]},"115":{"position":[[12,4]]},"117":{"position":[[12,4]]},"119":{"position":[[12,4]]},"121":{"position":[[12,4]]},"123":{"position":[[12,4]]},"125":{"position":[[12,4]]},"127":{"position":[[12,4]]},"129":{"position":[[12,4]]},"131":{"position":[[12,4]]},"133":{"position":[[12,4]]},"135":{"position":[[12,4]]},"137":{"position":[[12,4]]},"139":{"position":[[12,4]]},"141":{"position":[[12,4]]},"143":{"position":[[12,4]]},"145":{"position":[[12,4]]},"147":{"position":[[12,4]]},"149":{"position":[[12,4]]},"151":{"position":[[12,4]]},"153":{"position":[[12,4],[428,4],[687,4]]},"155":{"position":[[12,4]]},"157":{"position":[[12,4]]},"159":{"position":[[12,4]]},"161":{"position":[[12,4],[806,4],[970,5]]},"163":{"position":[[12,4]]},"165":{"position":[[12,4]]},"167":{"position":[[12,4],[196,7]]},"169":{"position":[[12,4]]},"171":{"position":[[12,4]]},"173":{"position":[[12,4]]},"175":{"position":[[12,4]]},"177":{"position":[[12,4]]},"179":{"position":[[12,4],[773,4]]}}}],["pixi.animatedsprite(explosiontextures",{"_index":2507,"t":{"151":{"position":[[522,39]]}}}],["pixi.animatedsprite(frames",{"_index":2528,"t":{"153":{"position":[[602,28]]}}}],["pixi.animatedsprite(textures",{"_index":2485,"t":{"149":{"position":[[584,30],[855,30]]}}}],["pixi.application",{"_index":28,"t":{"39":{"position":[[225,18]]},"41":{"position":[[49,18]]},"43":{"position":[[49,18]]},"45":{"position":[[49,18]]},"47":{"position":[[49,18]]},"49":{"position":[[49,18]]},"51":{"position":[[49,18]]},"53":{"position":[[49,18]]},"55":{"position":[[49,18]]},"57":{"position":[[49,18]]},"59":{"position":[[49,18]]},"61":{"position":[[49,18]]},"63":{"position":[[49,18]]},"65":{"position":[[49,18]]},"67":{"position":[[49,18]]},"69":{"position":[[49,18]]},"71":{"position":[[49,18]]},"73":{"position":[[49,18]]},"75":{"position":[[49,18]]},"77":{"position":[[49,18]]},"81":{"position":[[49,18]]},"83":{"position":[[49,18]]},"85":{"position":[[49,18]]},"87":{"position":[[125,18]]},"89":{"position":[[264,18]]},"91":{"position":[[142,18]]},"93":{"position":[[49,18]]},"95":{"position":[[49,18]]},"97":{"position":[[117,18]]},"99":{"position":[[321,18]]},"101":{"position":[[49,18]]},"103":{"position":[[49,18]]},"105":{"position":[[49,18]]},"107":{"position":[[49,18]]},"109":{"position":[[49,18]]},"111":{"position":[[49,18]]},"113":{"position":[[81,18]]},"115":{"position":[[49,18]]},"117":{"position":[[49,18]]},"119":{"position":[[49,18]]},"121":{"position":[[49,18]]},"123":{"position":[[49,18]]},"125":{"position":[[49,18]]},"127":{"position":[[49,18]]},"129":{"position":[[49,18]]},"131":{"position":[[49,18]]},"133":{"position":[[49,18]]},"135":{"position":[[49,18]]},"137":{"position":[[49,18]]},"139":{"position":[[49,18]]},"141":{"position":[[49,18]]},"143":{"position":[[49,18]]},"145":{"position":[[49,18]]},"147":{"position":[[224,18]]},"149":{"position":[[49,18]]},"151":{"position":[[49,18]]},"153":{"position":[[49,18]]},"155":{"position":[[49,18]]},"157":{"position":[[49,18]]},"159":{"position":[[49,18]]},"161":{"position":[[49,18]]},"163":{"position":[[49,18]]},"165":{"position":[[49,18]]},"167":{"position":[[49,18]]},"169":{"position":[[49,18]]},"171":{"position":[[187,18]]},"173":{"position":[[1533,18]]},"175":{"position":[[49,18]]},"177":{"position":[[49,18]]},"179":{"position":[[49,18]]}}}],["pixi.application(800",{"_index":1216,"t":{"79":{"position":[[49,21]]}}}],["pixi.assets.add('egghead",{"_index":913,"t":{"55":{"position":[[248,26]]},"59":{"position":[[248,26]]}}}],["pixi.assets.add('flowertop",{"_index":912,"t":{"55":{"position":[[175,28]]},"59":{"position":[[175,28]]}}}],["pixi.assets.add('t1",{"_index":315,"t":{"43":{"position":[[344,21]]}}}],["pixi.assets.add('t2",{"_index":317,"t":{"43":{"position":[[409,21]]}}}],["pixi.assets.addbundle('fonts",{"_index":2609,"t":{"165":{"position":[[177,30]]}}}],["pixi.assets.backgroundload(['flowertop",{"_index":915,"t":{"55":{"position":[[363,40]]}}}],["pixi.assets.backgroundloadbundle(['load",{"_index":947,"t":{"57":{"position":[[556,39]]}}}],["pixi.assets.init",{"_index":946,"t":{"57":{"position":[[459,18]]}}}],["pixi.assets.load",{"_index":424,"t":{"47":{"position":[[149,18]]}}}],["pixi.assets.load('egghead').then((texture",{"_index":921,"t":{"55":{"position":[[517,42]]}}}],["pixi.assets.load('https://pixijs.com/assets/bg_grass.jpg').then((grasstexture",{"_index":2169,"t":{"115":{"position":[[216,78]]}}}],["pixi.assets.load('https://pixijs.com/assets/bg_grass.jpg').then((texture",{"_index":1157,"t":{"71":{"position":[[149,73]]}}}],["pixi.assets.load('https://pixijs.com/assets/bitmap",{"_index":2596,"t":{"163":{"position":[[149,50]]}}}],["pixi.assets.load('https://pixijs.com/assets/bunny.png",{"_index":904,"t":{"53":{"position":[[246,56]]},"61":{"position":[[221,56]]}}}],["pixi.assets.load('https://pixijs.com/assets/flowertop.png').then((texture",{"_index":2826,"t":{"179":{"position":[[126,74]]}}}],["pixi.assets.load('https://pixijs.com/assets/perlin.jpg').then(onassetsloaded",{"_index":1772,"t":{"99":{"position":[[421,78]]}}}],["pixi.assets.load('https://pixijs.com/assets/spritesheet/0123456789.json').then((spritesheet",{"_index":2476,"t":{"149":{"position":[[144,92]]}}}],["pixi.assets.load('https://pixijs.com/assets/spritesheet/fighter.json').then",{"_index":2515,"t":{"153":{"position":[[149,78]]}}}],["pixi.assets.load('https://pixijs.com/assets/spritesheet/mc.json').then",{"_index":2501,"t":{"151":{"position":[[144,73]]}}}],["pixi.assets.load('https://pixijs.com/assets/spritesheet/monsters.json",{"_index":1069,"t":{"65":{"position":[[156,71]]}}}],["pixi.assets.load(['flowertop",{"_index":988,"t":{"59":{"position":[[408,30]]}}}],["pixi.assets.load(['t1",{"_index":319,"t":{"43":{"position":[[475,23]]}}}],["pixi.assets.load(isegghead",{"_index":939,"t":{"55":{"position":[[1065,26]]}}}],["pixi.assets.loadbundle('fonts').then",{"_index":2621,"t":{"165":{"position":[[503,39]]}}}],["pixi.assets.loadbundle('game",{"_index":973,"t":{"57":{"position":[[1503,28]]}}}],["pixi.assets.loadbundle('load",{"_index":954,"t":{"57":{"position":[[826,28]]}}}],["pixi.baserendertexture(300",{"_index":2766,"t":{"175":{"position":[[516,27]]}}}],["pixi.basetexture(new",{"_index":2754,"t":{"173":{"position":[[1655,20]]}}}],["pixi.bitmapfont.from('coordinates",{"_index":1614,"t":{"89":{"position":[[4730,35]]}}}],["pixi.bitmaptext",{"_index":2599,"t":{"163":{"position":[[259,16]]}}}],["pixi.bitmaptext('global",{"_index":1618,"t":{"89":{"position":[[4897,24]]}}}],["pixi.blend_modes.add",{"_index":259,"t":{"41":{"position":[[784,21]]},"63":{"position":[[1030,21]]}}}],["pixi.buffer(new",{"_index":2209,"t":{"121":{"position":[[334,15]]}}}],["pixi.container",{"_index":376,"t":{"45":{"position":[[252,17]]},"47":{"position":[[845,17],[908,17]]},"49":{"position":[[339,17],[2317,17],[3231,17],[4272,17],[7450,17]]},"65":{"position":[[453,17]]},"67":{"position":[[171,17]]},"89":{"position":[[886,17]]},"97":{"position":[[1170,17]]},"103":{"position":[[384,17]]},"105":{"position":[[180,17]]},"107":{"position":[[180,17]]},"117":{"position":[[372,17]]},"127":{"position":[[1843,17],[2655,17],[3291,17],[4292,17]]},"137":{"position":[[431,17]]},"147":{"position":[[349,17]]},"175":{"position":[[171,17]]},"177":{"position":[[749,17]]}}}],["pixi.displayobject",{"_index":1485,"t":{"89":{"position":[[770,18]]}}}],["pixi.eventboundary(this.content",{"_index":1498,"t":{"89":{"position":[[1111,33]]}}}],["pixi.eventboundary.prototype.copymousedata.call(this.boundary",{"_index":1508,"t":{"89":{"position":[[1307,62]]}}}],["pixi.filter(null",{"_index":1704,"t":{"95":{"position":[[647,17]]},"97":{"position":[[1340,17]]},"99":{"position":[[2791,17]]}}}],["pixi.filters.blurfilter",{"_index":456,"t":{"47":{"position":[[1064,26]]},"101":{"position":[[724,26],[775,26]]}}}],["pixi.filters.blurfilter(blursize",{"_index":2174,"t":{"115":{"position":[[606,35]]}}}],["pixi.filters.colormatrixfilter",{"_index":1897,"t":{"103":{"position":[[328,33]]}}}],["pixi.filters.displacementfilter(displacementsprite",{"_index":1952,"t":{"105":{"position":[[1012,52]]},"107":{"position":[[622,52]]}}}],["pixi.geometry",{"_index":2203,"t":{"121":{"position":[[147,15]]},"123":{"position":[[147,15]]},"125":{"position":[[147,15],[499,15]]},"127":{"position":[[179,15]]},"129":{"position":[[166,15]]},"131":{"position":[[147,15]]},"133":{"position":[[147,15]]},"139":{"position":[[147,15]]},"141":{"position":[[147,15]]},"143":{"position":[[147,15]]},"145":{"position":[[147,15]]}}}],["pixi.geometry.merge([geometry",{"_index":2254,"t":{"125":{"position":[[839,30]]}}}],["pixi.graphics",{"_index":308,"t":{"43":{"position":[[194,15],[327,16]]},"47":{"position":[[1860,16],[1963,16]]},"49":{"position":[[692,16],[3465,16],[4617,16],[4900,16],[5187,16],[7553,16],[7753,16]]},"79":{"position":[[1287,15],[1812,15]]},"87":{"position":[[658,15],[853,15]]},"89":{"position":[[3403,15],[3606,15]]},"91":{"position":[[301,15]]},"93":{"position":[[362,15],[544,15]]},"109":{"position":[[323,16],[581,16],[808,16],[1076,16],[1323,16],[1475,16],[1638,16],[1839,16],[2204,16]]},"111":{"position":[[228,16],[1324,16]]},"113":{"position":[[196,16]]},"115":{"position":[[477,15]]},"117":{"position":[[1033,16]]},"135":{"position":[[453,16]]},"161":{"position":[[225,15]]}}}],["pixi.groupd8",{"_index":2829,"t":{"179":{"position":[[272,13]]}}}],["pixi.js",{"_index":10,"t":{"39":{"position":[[22,10]]},"41":{"position":[[22,10]]},"43":{"position":[[22,10]]},"45":{"position":[[22,10]]},"47":{"position":[[22,10]]},"49":{"position":[[22,10]]},"51":{"position":[[22,10]]},"53":{"position":[[22,10]]},"55":{"position":[[22,10]]},"57":{"position":[[22,10]]},"59":{"position":[[22,10]]},"61":{"position":[[22,10]]},"63":{"position":[[22,10]]},"65":{"position":[[22,10]]},"67":{"position":[[22,10]]},"69":{"position":[[22,10]]},"71":{"position":[[22,10]]},"73":{"position":[[22,10]]},"75":{"position":[[22,10]]},"77":{"position":[[22,10]]},"79":{"position":[[22,10]]},"81":{"position":[[22,10]]},"83":{"position":[[22,10]]},"85":{"position":[[22,10]]},"87":{"position":[[22,10]]},"89":{"position":[[22,10]]},"91":{"position":[[22,10]]},"93":{"position":[[22,10]]},"95":{"position":[[22,10]]},"97":{"position":[[22,10]]},"99":{"position":[[22,10]]},"101":{"position":[[22,10]]},"103":{"position":[[22,10]]},"105":{"position":[[22,10]]},"107":{"position":[[22,10]]},"109":{"position":[[22,10]]},"111":{"position":[[22,10]]},"113":{"position":[[22,10]]},"115":{"position":[[22,10]]},"117":{"position":[[22,10]]},"119":{"position":[[22,10]]},"121":{"position":[[22,10]]},"123":{"position":[[22,10]]},"125":{"position":[[22,10]]},"127":{"position":[[22,10]]},"129":{"position":[[22,10]]},"131":{"position":[[22,10]]},"133":{"position":[[22,10]]},"135":{"position":[[22,10]]},"137":{"position":[[22,10]]},"139":{"position":[[22,10]]},"141":{"position":[[22,10]]},"143":{"position":[[22,10]]},"145":{"position":[[22,10]]},"147":{"position":[[22,10]]},"149":{"position":[[22,10]]},"151":{"position":[[22,10]]},"153":{"position":[[22,10]]},"155":{"position":[[22,10]]},"157":{"position":[[22,10]]},"159":{"position":[[22,10]]},"161":{"position":[[22,10]]},"163":{"position":[[22,10]]},"165":{"position":[[22,10]]},"167":{"position":[[22,10]]},"169":{"position":[[22,10]]},"171":{"position":[[22,10]]},"173":{"position":[[22,10]]},"175":{"position":[[22,10]]},"177":{"position":[[22,10]]},"179":{"position":[[22,10]]}}}],["pixi.matrix",{"_index":1494,"t":{"89":{"position":[[997,14],[2683,14]]}}}],["pixi.mesh(geometry",{"_index":2230,"t":{"121":{"position":[[1429,19]]},"123":{"position":[[1057,19]]},"127":{"position":[[1784,19],[2592,19],[3230,19],[4233,19],[4942,19]]},"129":{"position":[[2772,19]]},"131":{"position":[[1612,19],[1663,19]]},"133":{"position":[[929,19],[1088,19],[1241,19]]},"139":{"position":[[610,19]]},"141":{"position":[[907,19]]},"143":{"position":[[1329,19]]},"145":{"position":[[1200,19]]}}}],["pixi.mesh(geometry3",{"_index":2255,"t":{"125":{"position":[[1449,20]]}}}],["pixi.particlecontainer(10000",{"_index":1128,"t":{"69":{"position":[[146,29]]}}}],["pixi.point",{"_index":84,"t":{"39":{"position":[[1079,11],[1301,11],[1396,11],[1685,11],[4018,11],[4223,11]]},"43":{"position":[[1822,13]]},"97":{"position":[[1383,13]]},"105":{"position":[[803,13]]},"119":{"position":[[541,13]]}}}],["pixi.point(0",{"_index":82,"t":{"39":{"position":[[1039,14],[2221,14],[2476,14]]},"41":{"position":[[650,13]]}}}],["pixi.point(160",{"_index":793,"t":{"49":{"position":[[8177,15]]}}}],["pixi.point(270",{"_index":795,"t":{"49":{"position":[[8220,15]]}}}],["pixi.point(380",{"_index":797,"t":{"49":{"position":[[8263,15]]}}}],["pixi.point(490",{"_index":799,"t":{"49":{"position":[[8306,15]]}}}],["pixi.point(50",{"_index":791,"t":{"49":{"position":[[8135,14]]}}}],["pixi.point(i",{"_index":2424,"t":{"135":{"position":[[247,12]]},"137":{"position":[[253,12]]}}}],["pixi.polygon",{"_index":1237,"t":{"79":{"position":[[771,14],[2010,14]]}}}],["pixi.program.from",{"_index":2411,"t":{"133":{"position":[[446,19]]}}}],["pixi.rectangle",{"_index":1053,"t":{"63":{"position":[[1595,15]]},"69":{"position":[[1462,15]]},"73":{"position":[[1448,15]]},"89":{"position":[[3929,15]]},"105":{"position":[[269,15]]}}}],["pixi.rectangle(0",{"_index":2175,"t":{"115":{"position":[[661,17]]}}}],["pixi.rectangle(100",{"_index":1758,"t":{"97":{"position":[[1215,19]]}}}],["pixi.rectangle(texture.frame.x",{"_index":2835,"t":{"179":{"position":[[532,31]]}}}],["pixi.renderer",{"_index":1136,"t":{"69":{"position":[[389,13]]}}}],["pixi.rendertexture(brt",{"_index":2769,"t":{"175":{"position":[[593,24]]}}}],["pixi.rendertexture.create",{"_index":2287,"t":{"127":{"position":[[1707,27],[2513,27],[3152,27],[4156,27]]}}}],["pixi.rendertexture.create(stagesize",{"_index":329,"t":{"43":{"position":[[776,37]]},"177":{"position":[[320,37],[379,37]]}}}],["pixi.resource",{"_index":2723,"t":{"173":{"position":[[292,13]]}}}],["pixi.scale_modes.linear",{"_index":2767,"t":{"175":{"position":[[549,24]]}}}],["pixi.scale_modes.nearest",{"_index":1192,"t":{"77":{"position":[[231,25]]},"83":{"position":[[323,25]]},"93":{"position":[[1063,25]]},"115":{"position":[[786,25]]}}}],["pixi.settings.scale_mode",{"_index":1191,"t":{"77":{"position":[[204,24]]}}}],["pixi.shader(program",{"_index":2414,"t":{"133":{"position":[[953,20],[1112,20],[1265,20]]}}}],["pixi.shader.from",{"_index":2217,"t":{"121":{"position":[[986,18]]},"123":{"position":[[506,18]]},"125":{"position":[[898,18]]},"131":{"position":[[381,18],[930,18]]},"139":{"position":[[243,18]]},"141":{"position":[[465,18]]}}}],["pixi.shader.from(vertexsrc",{"_index":2280,"t":{"127":{"position":[[1498,27],[2427,27],[3069,27],[4076,27],[4852,27]]},"129":{"position":[[2703,27]]},"143":{"position":[[1256,27]]},"145":{"position":[[1131,27]]}}}],["pixi.simpleplane(texture",{"_index":1159,"t":{"71":{"position":[[246,25]]}}}],["pixi.simplerope(pixi.texture.from('https://pixijs.com/assets/snake.png",{"_index":2426,"t":{"135":{"position":[[299,73]]},"137":{"position":[[305,73]]}}}],["pixi.simplerope(trailtexture",{"_index":256,"t":{"41":{"position":[[707,29]]}}}],["pixi.sprite(currenttexture",{"_index":2784,"t":{"177":{"position":[[549,28]]}}}],["pixi.sprite(gradtexture",{"_index":2713,"t":{"171":{"position":[[919,25]]},"173":{"position":[[1981,25]]}}}],["pixi.sprite(grasstexture",{"_index":2170,"t":{"115":{"position":[[323,26]]}}}],["pixi.sprite(loadscreenassets.egghead",{"_index":975,"t":{"57":{"position":[[1617,38]]}}}],["pixi.sprite(loadscreenassets.flowertop",{"_index":956,"t":{"57":{"position":[[940,40]]}}}],["pixi.sprite(pixi.texture.white",{"_index":120,"t":{"39":{"position":[[1990,32],[2310,32]]}}}],["pixi.sprite(rendertexture",{"_index":331,"t":{"43":{"position":[[846,27]]}}}],["pixi.sprite(rt",{"_index":2770,"t":{"175":{"position":[[637,16]]}}}],["pixi.sprite(slottextures[math.floor(math.random",{"_index":464,"t":{"47":{"position":[[1232,49]]}}}],["pixi.sprite(startexture",{"_index":848,"t":{"51":{"position":[[503,25]]}}}],["pixi.sprite(texture",{"_index":393,"t":{"45":{"position":[[680,21]]},"55":{"position":[[707,21]]},"67":{"position":[[399,21]]},"83":{"position":[[574,21]]},"115":{"position":[[842,21]]},"147":{"position":[[577,21]]},"157":{"position":[[393,21]]},"161":{"position":[[1353,21]]},"175":{"position":[[343,21]]}}}],["pixi.sprite(texturebutton",{"_index":1326,"t":{"81":{"position":[[1156,27]]},"85":{"position":[[820,27]]}}}],["pixi.sprite(textures[i",{"_index":2854,"t":{"179":{"position":[[1296,22]]}}}],["pixi.sprite(yellowstar",{"_index":1222,"t":{"79":{"position":[[273,24],[594,24],[1137,24],[1727,24]]}}}],["pixi.sprite.from('https://pixijs.com/assets/bg_button.jpg",{"_index":1310,"t":{"81":{"position":[[507,60]]},"85":{"position":[[171,60]]}}}],["pixi.sprite.from('https://pixijs.com/assets/bg_grass.jpg",{"_index":1691,"t":{"95":{"position":[[172,59]]},"97":{"position":[[240,59]]},"105":{"position":[[1414,59]]}}}],["pixi.sprite.from('https://pixijs.com/assets/bg_plane.jpg",{"_index":2188,"t":{"119":{"position":[[169,59]]}}}],["pixi.sprite.from('https://pixijs.com/assets/bg_rotate.jpg",{"_index":655,"t":{"49":{"position":[[571,60]]},"63":{"position":[[179,60]]},"103":{"position":[[169,60]]},"109":{"position":[[158,60]]},"117":{"position":[[186,60]]}}}],["pixi.sprite.from('https://pixijs.com/assets/bg_scene_rotate.jpg",{"_index":651,"t":{"49":{"position":[[432,66],[3324,66],[4405,66]]},"103":{"position":[[491,66]]},"117":{"position":[[505,66]]}}}],["pixi.sprite.from('https://pixijs.com/assets/bunny.png",{"_index":1184,"t":{"75":{"position":[[203,56]]},"77":{"position":[[272,56]]},"155":{"position":[[205,56]]}}}],["pixi.sprite.from('https://pixijs.com/assets/cells.png",{"_index":2190,"t":{"119":{"position":[[267,56]]}}}],["pixi.sprite.from('https://pixijs.com/assets/circle.png",{"_index":705,"t":{"49":{"position":[[2507,57]]}}}],["pixi.sprite.from('https://pixijs.com/assets/egghead.png",{"_index":1172,"t":{"73":{"position":[[335,58]]}}}],["pixi.sprite.from('https://pixijs.com/assets/flowertop.png",{"_index":1022,"t":{"63":{"position":[[583,60]]},"119":{"position":[[359,60]]}}}],["pixi.sprite.from('https://pixijs.com/assets/light_rotate_1.png",{"_index":1906,"t":{"103":{"position":[[760,65]]},"117":{"position":[[717,65]]}}}],["pixi.sprite.from('https://pixijs.com/assets/light_rotate_2.png",{"_index":1902,"t":{"103":{"position":[[627,65]]},"117":{"position":[[612,65]]}}}],["pixi.sprite.from('https://pixijs.com/assets/maggot.png",{"_index":1935,"t":{"105":{"position":[[439,57]]}}}],["pixi.sprite.from('https://pixijs.com/assets/maggot_tiny.png",{"_index":1138,"t":{"69":{"position":[[495,62]]}}}],["pixi.sprite.from('https://pixijs.com/assets/panda.png",{"_index":1910,"t":{"103":{"position":[[892,56]]},"117":{"position":[[821,56]]}}}],["pixi.sprite.from('https://pixijs.com/assets/pixi",{"_index":1868,"t":{"101":{"position":[[137,48],[319,48],[520,48]]},"105":{"position":[[908,48],[1264,48]]},"107":{"position":[[242,48],[392,48]]}}}],["pixi.sprite.from(framename",{"_index":1089,"t":{"65":{"position":[[827,28]]}}}],["pixi.sprite.from(fruits[i",{"_index":2807,"t":{"177":{"position":[[1438,25]]}}}],["pixi.sprite.from(resolvedtexture",{"_index":1009,"t":{"61":{"position":[[442,34]]}}}],["pixi.sprite.from(texture",{"_index":907,"t":{"53":{"position":[[372,26]]}}}],["pixi.sprite.from(textures.egghead",{"_index":1000,"t":{"59":{"position":[[838,35]]}}}],["pixi.sprite.from(textures.flowertop",{"_index":993,"t":{"59":{"position":[[666,37]]}}}],["pixi.text",{"_index":1406,"t":{"87":{"position":[[262,10],[501,13]]},"89":{"position":[[5313,10]]},"169":{"position":[[782,10]]}}}],["pixi.text('basic",{"_index":2631,"t":{"167":{"position":[[171,16]]}}}],["pixi.text('chachicle.ttf",{"_index":2622,"t":{"165":{"position":[[566,26]]}}}],["pixi.text('click",{"_index":416,"t":{"45":{"position":[[1143,16]]},"103":{"position":[[1218,16]]},"117":{"position":[[1338,16]]}}}],["pixi.text('crosterian.woff2",{"_index":2625,"t":{"165":{"position":[[900,29]]}}}],["pixi.text('dotrice",{"_index":2624,"t":{"165":{"position":[[778,18]]}}}],["pixi.text('drag",{"_index":1667,"t":{"93":{"position":[[1216,15]]}}}],["pixi.text('hit",{"_index":1283,"t":{"79":{"position":[[2508,14]]}}}],["pixi.text('lineal.otf",{"_index":2623,"t":{"165":{"position":[[675,23]]}}}],["pixi.text('mask",{"_index":1290,"t":{"79":{"position":[[2617,17],[2722,15]]}}}],["pixi.text('pixi",{"_index":530,"t":{"47":{"position":[[2719,15]]}}}],["pixi.text('pixijs",{"_index":1773,"t":{"99":{"position":[[536,19]]}}}],["pixi.text('rich",{"_index":2638,"t":{"167":{"position":[[662,15]]}}}],["pixi.text('skew",{"_index":2650,"t":{"167":{"position":[[1140,15]]}}}],["pixi.text('spin",{"_index":519,"t":{"47":{"position":[[2464,15]]}}}],["pixi.text('standard",{"_index":1276,"t":{"79":{"position":[[2399,21]]}}}],["pixi.text(`rotate",{"_index":2857,"t":{"179":{"position":[[1530,17]]}}}],["pixi.textstyle",{"_index":410,"t":{"45":{"position":[[1059,16]]},"47":{"position":[[2111,16]]},"79":{"position":[[2344,16]]},"165":{"position":[[597,16],[703,16],[816,16],[934,16]]},"167":{"position":[[290,16],[828,16]]}}}],["pixi.texture(gradbasetexture",{"_index":2764,"t":{"173":{"position":[[1931,30]]}}}],["pixi.texture(texture.basetexture",{"_index":2839,"t":{"179":{"position":[[672,33],[878,33]]}}}],["pixi.texture.from('https://pixijs.com/assets/bg_displacement.jpg",{"_index":2417,"t":{"133":{"position":[[1305,67]]}}}],["pixi.texture.from('https://pixijs.com/assets/bg_rotate.jpg",{"_index":2415,"t":{"133":{"position":[[1152,61]]}}}],["pixi.texture.from('https://pixijs.com/assets/bg_scene_rotate.jpg",{"_index":2246,"t":{"123":{"position":[[968,67]]},"125":{"position":[[1360,67]]},"131":{"position":[[842,67],[1519,67]]},"133":{"position":[[993,67]]},"143":{"position":[[1171,66]]},"145":{"position":[[1036,67]]}}}],["pixi.texture.from('https://pixijs.com/assets/bunny.png",{"_index":374,"t":{"45":{"position":[[167,57]]},"67":{"position":[[260,57]]},"83":{"position":[[204,57]]},"147":{"position":[[438,57]]},"175":{"position":[[236,57]]}}}],["pixi.texture.from('https://pixijs.com/assets/button.png",{"_index":1312,"t":{"81":{"position":[[771,58]]},"85":{"position":[[435,58]]}}}],["pixi.texture.from('https://pixijs.com/assets/button_down.png",{"_index":1314,"t":{"81":{"position":[[856,63]]},"85":{"position":[[520,63]]}}}],["pixi.texture.from('https://pixijs.com/assets/button_over.png",{"_index":1316,"t":{"81":{"position":[[946,63]]},"85":{"position":[[610,63]]}}}],["pixi.texture.from('https://pixijs.com/assets/egghead.png",{"_index":441,"t":{"47":{"position":[[538,59]]},"157":{"position":[[270,59]]}}}],["pixi.texture.from('https://pixijs.com/assets/flowertop.png",{"_index":442,"t":{"47":{"position":[[598,61]]},"157":{"position":[[186,61]]}}}],["pixi.texture.from('https://pixijs.com/assets/helmlok.png",{"_index":443,"t":{"47":{"position":[[660,59]]}}}],["pixi.texture.from('https://pixijs.com/assets/p2.jpeg",{"_index":2544,"t":{"159":{"position":[[181,55]]}}}],["pixi.texture.from('https://pixijs.com/assets/perlin.jpg",{"_index":2262,"t":{"127":{"position":[[936,58]]},"129":{"position":[[2426,58]]}}}],["pixi.texture.from('https://pixijs.com/assets/skully.png",{"_index":444,"t":{"47":{"position":[[720,58]]}}}],["pixi.texture.from('https://pixijs.com/assets/star.png",{"_index":836,"t":{"51":{"position":[[175,56]]}}}],["pixi.texture.from('https://pixijs.com/assets/trail.png",{"_index":240,"t":{"41":{"position":[[199,57]]}}}],["pixi.texture.from('https://pixijs.com/assets/video.mp4",{"_index":2587,"t":{"161":{"position":[[1203,57]]}}}],["pixi.texture.from('https://pixijs.com/assets/yellowstar.png",{"_index":1218,"t":{"79":{"position":[[160,62]]}}}],["pixi.texture.from(`explosion_sequence_a",{"_index":2503,"t":{"151":{"position":[[344,39]]}}}],["pixi.texture.from(canvas",{"_index":2711,"t":{"171":{"position":[[830,26]]}}}],["pixi.texture.from(framekey",{"_index":2480,"t":{"149":{"position":[[394,28]]}}}],["pixi.tilingsprite",{"_index":2551,"t":{"159":{"position":[[400,18]]}}}],["pixi.types.float",{"_index":2213,"t":{"121":{"position":[[479,17],[598,17]]}}}],["pixi.wrap_modes.repeat",{"_index":1861,"t":{"99":{"position":[[2699,23]]},"107":{"position":[[567,23]]},"129":{"position":[[2587,23]]}}}],["pixi/graphics",{"_index":1457,"t":{"89":{"position":[[40,15]]},"113":{"position":[[40,15]]}}}],["pixijs",{"_index":2680,"t":{"169":{"position":[[793,7]]},"173":{"position":[[36,6],[1232,6]]}}}],["place",{"_index":1581,"t":{"89":{"position":[[3691,5]]}}}],["plane",{"_index":1158,"t":{"71":{"position":[[234,5]]},"99":{"position":[[1118,5]]},"129":{"position":[[1037,5]]}}}],["plane.geometry.getbuffer('avertexposition",{"_index":1165,"t":{"71":{"position":[[394,44]]}}}],["plane.x",{"_index":1160,"t":{"71":{"position":[[281,7]]}}}],["plane.y",{"_index":1161,"t":{"71":{"position":[[296,7]]}}}],["platforms",{"_index":2569,"t":{"161":{"position":[[740,10]]}}}],["play",{"_index":492,"t":{"47":{"position":[[2083,4]]},"161":{"position":[[156,4]]}}}],["playing",{"_index":548,"t":{"47":{"position":[[3146,8]]},"161":{"position":[[688,7]]}}}],["playtext",{"_index":518,"t":{"47":{"position":[[2449,8]]}}}],["playtext.height",{"_index":526,"t":{"47":{"position":[[2627,16]]}}}],["playtext.width",{"_index":523,"t":{"47":{"position":[[2542,15]]}}}],["playtext.x",{"_index":521,"t":{"47":{"position":[[2502,10]]}}}],["playtext.y",{"_index":524,"t":{"47":{"position":[[2564,10]]}}}],["please",{"_index":1761,"t":{"99":{"position":[[39,6]]}}}],["point",{"_index":192,"t":{"39":{"position":[[3976,5]]},"43":{"position":[[1512,5]]},"49":{"position":[[982,6],[1839,5],[5490,6],[8604,5]]},"53":{"position":[[429,5]]},"61":{"position":[[507,5]]},"69":{"position":[[576,5]]},"73":{"position":[[412,5],[521,5]]},"75":{"position":[[290,5]]},"79":{"position":[[723,5]]},"83":{"position":[[875,5]]},"155":{"position":[[292,5]]},"157":{"position":[[444,5]]}}}],["point.y",{"_index":1549,"t":{"89":{"position":[[2433,9]]}}}],["pointer",{"_index":198,"t":{"39":{"position":[[4164,7],[4568,7]]},"47":{"position":[[3034,10]]},"55":{"position":[[880,10]]},"57":{"position":[[1145,10],[1820,10]]},"77":{"position":[[541,10]]},"79":{"position":[[354,10],[896,10],[1219,10],[2135,10]]},"83":{"position":[[835,10],[1019,7]]},"85":{"position":[[1025,10],[1094,8]]},"91":{"position":[[80,7],[668,7]]},"93":{"position":[[706,10],[1974,8]]},"157":{"position":[[710,10]]},"161":{"position":[[588,10]]}}}],["pointerdown",{"_index":336,"t":{"43":{"position":[[1080,12]]},"89":{"position":[[1695,14]]}}}],["pointerdown(event",{"_index":369,"t":{"43":{"position":[[1875,18]]}}}],["pointerenter",{"_index":1410,"t":{"87":{"position":[[332,13],[1407,14]]}}}],["pointerleave",{"_index":1411,"t":{"87":{"position":[[346,13],[1434,15]]}}}],["pointermove",{"_index":341,"t":{"43":{"position":[[1175,13],[1247,13]]},"89":{"position":[[1723,14],[4055,11]]},"93":{"position":[[1483,11]]}}}],["pointermove(event",{"_index":371,"t":{"43":{"position":[[1913,19]]}}}],["pointerout",{"_index":1413,"t":{"87":{"position":[[373,10]]},"89":{"position":[[1753,13]]}}}],["pointerover",{"_index":1412,"t":{"87":{"position":[[360,12]]},"89":{"position":[[1738,14]]}}}],["pointers",{"_index":1202,"t":{"77":{"position":[[555,8]]}}}],["pointerup",{"_index":338,"t":{"43":{"position":[[1110,10],[1145,10]]},"89":{"position":[[1710,12]]}}}],["pointerup(event",{"_index":372,"t":{"43":{"position":[[1944,16]]}}}],["points",{"_index":108,"t":{"39":{"position":[[1802,6]]},"41":{"position":[[458,6],[589,7],[737,8],[1316,6]]},"43":{"position":[[303,6]]},"135":{"position":[[187,6],[373,8]]},"137":{"position":[[193,6],[379,8]]}}}],["points.length",{"_index":2436,"t":{"135":{"position":[[617,14],[893,14],[973,14]]},"137":{"position":[[678,14]]}}}],["points.push(new",{"_index":255,"t":{"41":{"position":[[634,15]]},"135":{"position":[[231,15]]},"137":{"position":[[237,15]]}}}],["points[0].y",{"_index":2446,"t":{"135":{"position":[[859,13]]}}}],["points[i",{"_index":273,"t":{"41":{"position":[[1398,10]]}}}],["points[i].x",{"_index":2439,"t":{"135":{"position":[[687,11]]},"137":{"position":[[748,11]]}}}],["points[i].y",{"_index":2437,"t":{"135":{"position":[[639,11],[937,13],[1044,12]]},"137":{"position":[[700,11]]}}}],["polyfill",{"_index":2574,"t":{"161":{"position":[[824,8]]}}}],["polygon",{"_index":2156,"t":{"113":{"position":[[2230,7]]}}}],["pops",{"_index":182,"t":{"39":{"position":[[3481,4],[3508,4]]}}}],["position",{"_index":453,"t":{"47":{"position":[[1020,9],[1672,8],[3423,11]]},"49":{"position":[[301,10],[378,9],[2279,10],[2356,9],[3193,10],[3270,9],[4234,10],[4311,9],[7412,10],[7489,9]]},"51":{"position":[[1495,8]]},"63":{"position":[[792,11]]},"69":{"position":[[191,9],[1691,8]]},"73":{"position":[[647,10],[1658,8]]},"77":{"position":[[348,8]]},"83":{"position":[[1116,8]]},"93":{"position":[[1826,8],[1956,8],[2148,8]]},"107":{"position":[[940,8]]},"153":{"position":[[723,9]]},"161":{"position":[[383,8]]},"175":{"position":[[971,8]]},"177":{"position":[[1357,8]]}}}],["positions",{"_index":575,"t":{"47":{"position":[[3975,9]]},"51":{"position":[[825,9]]},"63":{"position":[[1806,9]]},"71":{"position":[[368,10],[531,9]]}}}],["positionsize",{"_index":2207,"t":{"121":{"position":[[276,12],[388,13],[458,13],[501,13],[620,13],[652,13],[752,13]]}}}],["possible",{"_index":2283,"t":{"127":{"position":[[1592,9]]}}}],["power",{"_index":2549,"t":{"159":{"position":[[359,5]]}}}],["precision",{"_index":1724,"t":{"97":{"position":[[468,9],[633,9],[667,9]]},"121":{"position":[[1005,9],[1310,10]]},"123":{"position":[[525,9],[818,10]]},"125":{"position":[[917,9],[1210,10]]},"127":{"position":[[567,9],[1054,9],[1980,9],[2784,9],[3387,9],[4399,9]]},"129":{"position":[[516,9],[886,9]]},"131":{"position":[[400,9],[693,10],[949,9],[1242,10]]},"133":{"position":[[466,9],[759,10]]},"139":{"position":[[262,9],[502,10]]},"141":{"position":[[484,9],[785,10]]},"143":{"position":[[590,9],[966,9]]},"145":{"position":[[497,9],[812,9]]}}}],["preferably",{"_index":2548,"t":{"159":{"position":[[343,10]]}}}],["prepare",{"_index":305,"t":{"43":{"position":[[129,7]]}}}],["prerounded",{"_index":738,"t":{"49":{"position":[[4551,10]]}}}],["pressed",{"_index":1673,"t":{"93":{"position":[[1519,8]]}}}],["prevent",{"_index":277,"t":{"41":{"position":[[1457,7]]},"87":{"position":[[1517,7]]}}}],["previous",{"_index":357,"t":{"43":{"position":[[1497,8]]}}}],["previousposition",{"_index":454,"t":{"47":{"position":[[1033,17]]}}}],["prevy",{"_index":579,"t":{"47":{"position":[[4069,5],[4170,5]]}}}],["product",{"_index":586,"t":{"47":{"position":[[4259,7],[4643,8]]}}}],["program",{"_index":2410,"t":{"133":{"position":[[436,7]]}}}],["project",{"_index":1464,"t":{"89":{"position":[[201,7]]}}}],["projection",{"_index":880,"t":{"51":{"position":[[1529,10]]},"89":{"position":[[406,11],[946,10],[2468,10],[3835,10]]}}}],["projectionmatrix",{"_index":2222,"t":{"121":{"position":[[1141,17]]},"123":{"position":[[648,17]]},"125":{"position":[[1040,17]]},"127":{"position":[[690,17]]},"129":{"position":[[639,17]]},"131":{"position":[[523,17],[1072,17]]},"133":{"position":[[589,17]]},"139":{"position":[[364,17]]},"141":{"position":[[609,17]]},"143":{"position":[[736,17]]},"145":{"position":[[620,17]]}}}],["projectionsystem",{"_index":1553,"t":{"89":{"position":[[2528,16]]}}}],["projectionsystem.transform",{"_index":1557,"t":{"89":{"position":[[2620,26],[2649,26]]}}}],["projectionsystem.transform.append(this.worldtransform",{"_index":1559,"t":{"89":{"position":[[2757,55]]}}}],["projectionsystem.transform.copyfrom(this.originaltransform",{"_index":1563,"t":{"89":{"position":[[2938,60]]}}}],["projectionsystem.transform.copyto(this.originaltransform",{"_index":1558,"t":{"89":{"position":[[2698,58]]}}}],["projectionsystem.update(null",{"_index":1560,"t":{"89":{"position":[[2813,29],[2999,29]]}}}],["projector",{"_index":1468,"t":{"89":{"position":[[369,9],[566,10],[752,9],[3282,9],[3298,9],[3333,13],[3779,9]]}}}],["projector.content.addchild",{"_index":1571,"t":{"89":{"position":[[3371,27]]}}}],["projector.content.addchild(...stars",{"_index":1586,"t":{"89":{"position":[[3789,37]]}}}],["projector.content.addeventlistener('pointermove",{"_index":1626,"t":{"89":{"position":[[5053,49]]}}}],["projector.content.eventmode",{"_index":1596,"t":{"89":{"position":[[4126,27]]}}}],["projector.content.hitarea",{"_index":1591,"t":{"89":{"position":[[3897,25],[4099,26]]}}}],["projector.hitarea",{"_index":1595,"t":{"89":{"position":[[4079,17]]}}}],["projector.x",{"_index":1589,"t":{"89":{"position":[[3859,11]]}}}],["projector.y",{"_index":1590,"t":{"89":{"position":[[3878,11]]}}}],["promise",{"_index":935,"t":{"55":{"position":[[996,7]]},"57":{"position":[[767,7],[1444,7]]},"59":{"position":[[355,7],[518,7]]},"61":{"position":[[190,7],[290,7]]}}}],["promise<{flowertop",{"_index":989,"t":{"59":{"position":[[458,19]]}}}],["propagate",{"_index":1461,"t":{"89":{"position":[[126,9],[613,9],[1633,9]]}}}],["proper",{"_index":585,"t":{"47":{"position":[[4252,6],[4609,6]]},"51":{"position":[[1252,6]]}}}],["properties",{"_index":1035,"t":{"63":{"position":[[1073,10]]},"73":{"position":[[804,10]]},"153":{"position":[[671,10]]}}}],["property",{"_index":605,"t":{"47":{"position":[[4698,9],[4778,9]]}}}],["propertybeginvalue",{"_index":611,"t":{"47":{"position":[[4788,19]]}}}],["pure",{"_index":1764,"t":{"99":{"position":[[98,4]]},"173":{"position":[[1183,4]]}}}],["push",{"_index":45,"t":{"39":{"position":[[446,4]]},"63":{"position":[[1374,4]]},"69":{"position":[[1235,4]]},"73":{"position":[[1227,4]]}}}],["quad",{"_index":2247,"t":{"123":{"position":[[1046,4]]},"125":{"position":[[1438,4]]},"129":{"position":[[2682,5],[2761,4]]},"145":{"position":[[1189,4]]}}}],["quad.position.set(400",{"_index":2248,"t":{"123":{"position":[[1086,22]]},"125":{"position":[[1479,22]]},"129":{"position":[[2801,22]]},"145":{"position":[[1229,22]]}}}],["quad.rotation",{"_index":2251,"t":{"123":{"position":[[1188,13]]},"125":{"position":[[1581,13]]},"145":{"position":[[1391,13]]}}}],["quad.scale.set(2",{"_index":2249,"t":{"123":{"position":[[1115,18]]},"125":{"position":[[1508,18]]},"129":{"position":[[2830,18]]},"145":{"position":[[1258,18]]}}}],["quad.scale.set(number(math.cos(time",{"_index":2393,"t":{"129":{"position":[[2992,37]]}}}],["quad.shader.uniforms.time",{"_index":2392,"t":{"129":{"position":[[2958,25]]},"145":{"position":[[1414,25]]}}}],["quality",{"_index":2692,"t":{"171":{"position":[[352,7],[391,7],[470,8],[617,8],[810,8]]}}}],["r",{"_index":550,"t":{"47":{"position":[[3262,1],[3716,1]]},"141":{"position":[[368,2],[388,2],[409,2]]},"143":{"position":[[368,2],[388,2],[409,2]]}}}],["r.blur.blury",{"_index":572,"t":{"47":{"position":[[3871,12]]}}}],["r.position",{"_index":555,"t":{"47":{"position":[[3336,10],[3886,11],[3946,11],[4088,12]]}}}],["r.previousposition",{"_index":573,"t":{"47":{"position":[[3900,19],[3925,18]]}}}],["r.symbols.length",{"_index":576,"t":{"47":{"position":[[4014,17],[4108,17]]}}}],["r.symbols[j",{"_index":578,"t":{"47":{"position":[[4049,13]]}}}],["rabbit",{"_index":1187,"t":{"75":{"position":[[514,6]]},"155":{"position":[[550,6]]}}}],["radial",{"_index":645,"t":{"49":{"position":[[215,6],[3131,6]]},"51":{"position":[[840,6]]}}}],["radians",{"_index":1144,"t":{"69":{"position":[[902,7]]},"73":{"position":[[876,8]]}}}],["radius",{"_index":723,"t":{"49":{"position":[[3783,6],[3830,7],[3872,7],[4025,7]]},"115":{"position":[[135,6],[162,6],[545,6],[564,7],[682,7],[707,7]]}}}],["random",{"_index":860,"t":{"51":{"position":[[847,6]]},"63":{"position":[[675,6],[785,6],[1284,6]]},"69":{"position":[[882,6],[1085,6]]},"73":{"position":[[490,6],[640,6],[856,6],[1137,6]]},"111":{"position":[[1456,6]]}}}],["randomize",{"_index":1167,"t":{"71":{"position":[[509,9]]}}}],["randomizestar(star",{"_index":853,"t":{"51":{"position":[[606,19],[695,19],[1459,20]]}}}],["randomly",{"_index":2804,"t":{"177":{"position":[[1348,8]]}}}],["rate",{"_index":571,"t":{"47":{"position":[[3865,5]]}}}],["raydir",{"_index":1835,"t":{"99":{"position":[[2039,6],[2203,6],[2453,7]]},"129":{"position":[[1887,6],[2051,6],[2301,7]]}}}],["raymarch",{"_index":1840,"t":{"99":{"position":[[2114,8]]},"129":{"position":[[1962,8]]}}}],["rc",{"_index":448,"t":{"47":{"position":[[899,2],[1003,3]]}}}],["rc.addchild(symbol",{"_index":478,"t":{"47":{"position":[[1561,20]]}}}],["rc.filters",{"_index":459,"t":{"47":{"position":[[1136,10]]}}}],["rc.x",{"_index":449,"t":{"47":{"position":[[926,4]]}}}],["rd",{"_index":1808,"t":{"99":{"position":[[1464,3],[1675,2]]},"129":{"position":[[1331,3],[1542,2]]}}}],["reach",{"_index":971,"t":{"57":{"position":[[1378,5]]}}}],["read",{"_index":2349,"t":{"127":{"position":[[4541,6]]}}}],["reading",{"_index":18,"t":{"39":{"position":[[103,8]]}}}],["real",{"_index":603,"t":{"47":{"position":[[4638,4]]},"51":{"position":[[1289,5]]},"99":{"position":[[768,4]]}}}],["really",{"_index":879,"t":{"51":{"position":[[1515,6]]},"99":{"position":[[1129,6],[2310,6]]},"129":{"position":[[1048,6],[2158,6]]}}}],["realpath",{"_index":2007,"t":{"109":{"position":[[308,8]]}}}],["realpath.linestyle(2",{"_index":2008,"t":{"109":{"position":[[340,21]]}}}],["realpath.lineto(100",{"_index":2010,"t":{"109":{"position":[[399,20]]}}}],["realpath.lineto(200",{"_index":2011,"t":{"109":{"position":[[426,20]]}}}],["realpath.lineto(240",{"_index":2012,"t":{"109":{"position":[[453,20]]}}}],["realpath.moveto(0",{"_index":2009,"t":{"109":{"position":[[376,18]]}}}],["realpath.position.x",{"_index":2013,"t":{"109":{"position":[[480,19]]}}}],["realpath.position.y",{"_index":2014,"t":{"109":{"position":[[506,19]]}}}],["realpath2",{"_index":2023,"t":{"109":{"position":[[792,9]]}}}],["realpath2.linestyle(2",{"_index":2024,"t":{"109":{"position":[[825,22]]}}}],["realpath2.lineto(0",{"_index":2026,"t":{"109":{"position":[[886,19]]}}}],["realpath2.lineto(150",{"_index":2027,"t":{"109":{"position":[[913,21]]}}}],["realpath2.lineto(240",{"_index":2028,"t":{"109":{"position":[[941,21]]}}}],["realpath2.moveto(0",{"_index":2025,"t":{"109":{"position":[[862,19]]}}}],["realpath2.position.x",{"_index":2029,"t":{"109":{"position":[[969,20]]}}}],["realpath2.position.y",{"_index":2030,"t":{"109":{"position":[[997,20]]}}}],["reason",{"_index":1379,"t":{"83":{"position":[[1557,6]]}}}],["received",{"_index":1444,"t":{"87":{"position":[[1309,8]]}}}],["rectandhole",{"_index":2057,"t":{"109":{"position":[[1821,11]]}}}],["rectandhole.beginfill(0x00ff00",{"_index":2058,"t":{"109":{"position":[[1856,32]]}}}],["rectandhole.beginhole",{"_index":2061,"t":{"109":{"position":[[1931,24]]}}}],["rectandhole.drawcircle(375",{"_index":2062,"t":{"109":{"position":[[1956,27]]}}}],["rectandhole.drawcircle(425",{"_index":2064,"t":{"109":{"position":[[1994,27]]}}}],["rectandhole.drawcircle(475",{"_index":2066,"t":{"109":{"position":[[2032,27]]}}}],["rectandhole.drawrect(350",{"_index":2059,"t":{"109":{"position":[[1889,25]]}}}],["rectandhole.endfill",{"_index":2069,"t":{"109":{"position":[[2093,22]]}}}],["rectandhole.endhole",{"_index":2068,"t":{"109":{"position":[[2070,22]]}}}],["rectangle",{"_index":731,"t":{"49":{"position":[[4157,9],[7319,9],[7737,9]]},"111":{"position":[[944,9]]},"113":{"position":[[216,9],[316,9],[468,9],[621,9],[1662,9]]}}}],["rectangle.drawroundedrect(0",{"_index":782,"t":{"49":{"position":[[7807,28]]}}}],["rectangle.endfill",{"_index":784,"t":{"49":{"position":[[7854,20]]}}}],["rectangle.linestyle(2",{"_index":781,"t":{"49":{"position":[[7770,22]]}}}],["rectangle.mask",{"_index":785,"t":{"49":{"position":[[7875,14]]}}}],["red",{"_index":38,"t":{"39":{"position":[[374,3],[3956,3],[4183,3],[4580,3],[4778,3]]},"171":{"position":[[732,7]]},"173":{"position":[[934,7]]}}}],["redraw",{"_index":687,"t":{"49":{"position":[[1851,6],[3883,6],[6839,6]]}}}],["redspeed",{"_index":215,"t":{"39":{"position":[[4694,8],[4842,9],[4877,9]]}}}],["redsquare",{"_index":134,"t":{"39":{"position":[[2294,9],[4957,11],[5137,11]]}}}],["redsquare.acceleration",{"_index":141,"t":{"39":{"position":[[2447,22]]}}}],["redsquare.acceleration.set",{"_index":216,"t":{"39":{"position":[[4789,27],[5201,27]]}}}],["redsquare.acceleration.set(redsquare.acceleration.x",{"_index":169,"t":{"39":{"position":[[2896,51]]}}}],["redsquare.acceleration.x",{"_index":232,"t":{"39":{"position":[[5538,24]]}}}],["redsquare.acceleration.y",{"_index":171,"t":{"39":{"position":[[2956,24],[5587,24]]}}}],["redsquare.height",{"_index":138,"t":{"39":{"position":[[2396,16],[4083,17]]}}}],["redsquare.mass",{"_index":142,"t":{"39":{"position":[[2491,14],[5358,16],[5395,16]]}}}],["redsquare.position.set(0",{"_index":135,"t":{"39":{"position":[[2343,25]]}}}],["redsquare.tint",{"_index":139,"t":{"39":{"position":[[2420,14]]}}}],["redsquare.width",{"_index":137,"t":{"39":{"position":[[2373,15],[4044,16]]}}}],["redsquare.x",{"_index":194,"t":{"39":{"position":[[4030,11],[5523,11]]}}}],["redsquare.y",{"_index":196,"t":{"39":{"position":[[4069,11],[5572,11]]}}}],["redsquarecenterposition",{"_index":193,"t":{"39":{"position":[[3988,23],[4660,24]]}}}],["redsquarecenterposition.x",{"_index":200,"t":{"39":{"position":[[4251,26]]}}}],["redsquarecenterposition.y",{"_index":201,"t":{"39":{"position":[[4294,26]]}}}],["reducing",{"_index":165,"t":{"39":{"position":[[2827,8]]}}}],["reel",{"_index":451,"t":{"47":{"position":[[983,4],[3988,5],[4299,5]]}}}],["reel.blur",{"_index":460,"t":{"47":{"position":[[1149,12]]}}}],["reel.blur.blurx",{"_index":457,"t":{"47":{"position":[[1094,15]]}}}],["reel.blur.blury",{"_index":458,"t":{"47":{"position":[[1115,15]]}}}],["reel.symbols.push(symbol",{"_index":477,"t":{"47":{"position":[[1534,26]]}}}],["reel_width",{"_index":430,"t":{"47":{"position":[[364,10],[937,11],[1827,10]]}}}],["reelcontainer",{"_index":447,"t":{"47":{"position":[[825,13],[1681,13]]}}}],["reelcontainer.addchild(rc",{"_index":450,"t":{"47":{"position":[[949,27]]}}}],["reelcontainer.x",{"_index":486,"t":{"47":{"position":[[1779,15]]}}}],["reelcontainer.y",{"_index":485,"t":{"47":{"position":[[1753,15]]}}}],["reels",{"_index":446,"t":{"47":{"position":[[795,5],[807,5],[3524,5]]}}}],["reels.length",{"_index":549,"t":{"47":{"position":[[3235,13],[3475,12],[3689,13]]}}}],["reels.push(reel",{"_index":479,"t":{"47":{"position":[[1584,17]]}}}],["reels[i",{"_index":551,"t":{"47":{"position":[[3266,9],[3720,9]]}}}],["reelscomplete",{"_index":562,"t":{"47":{"position":[[3494,13],[3553,15]]}}}],["reference",{"_index":1014,"t":{"63":{"position":[[378,9]]},"83":{"position":[[1528,9]]}}}],["regular",{"_index":2616,"t":{"165":{"position":[[351,9],[854,9]]}}}],["regular.woff",{"_index":2618,"t":{"165":{"position":[[411,14],[797,14]]}}}],["related",{"_index":1401,"t":{"87":{"position":[[80,7]]}}}],["released",{"_index":1676,"t":{"93":{"position":[[1683,9]]}}}],["remove",{"_index":617,"t":{"47":{"position":[[5036,6]]},"89":{"position":[[1495,6]]}}}],["remove.length",{"_index":633,"t":{"47":{"position":[[5397,14]]}}}],["remove.push(t",{"_index":632,"t":{"47":{"position":[[5357,15]]}}}],["render",{"_index":1550,"t":{"89":{"position":[[2448,6]]},"127":{"position":[[5700,6]]},"161":{"position":[[789,6],[931,6]]},"177":{"position":[[215,6],[492,6],[2084,6]]}}}],["render(renderer",{"_index":1551,"t":{"89":{"position":[[2479,16]]}}}],["rendered",{"_index":1489,"t":{"89":{"position":[[842,8]]},"177":{"position":[[2171,8]]}}}],["renderer",{"_index":2747,"t":{"173":{"position":[[1305,9]]}}}],["renderer.batch.flush",{"_index":1552,"t":{"89":{"position":[[2498,23],[2914,23]]}}}],["renderer.projection",{"_index":1554,"t":{"89":{"position":[[2547,20]]}}}],["renderer.rendertexture",{"_index":1556,"t":{"89":{"position":[[2596,23]]}}}],["rendering",{"_index":1765,"t":{"99":{"position":[[120,9]]}}}],["renderpoints",{"_index":2441,"t":{"135":{"position":[[754,15],[783,14]]}}}],["renders",{"_index":1469,"t":{"89":{"position":[[379,7]]}}}],["rendertexture",{"_index":328,"t":{"43":{"position":[[760,13],[1354,14],[1720,14]]},"127":{"position":[[5767,14],[5832,14],[5898,14],[5962,14]]},"177":{"position":[[304,13],[440,14],[1848,14],[1863,13],[1964,14],[2213,14]]}}}],["rendertexture2",{"_index":2780,"t":{"177":{"position":[[362,14],[1879,15],[1895,14],[2228,15]]}}}],["rendertexturesprite",{"_index":330,"t":{"43":{"position":[[820,19],[895,20],[963,20]]}}}],["rendertexturesystem",{"_index":1555,"t":{"89":{"position":[[2574,19]]}}}],["rendertexturesystem.current",{"_index":1561,"t":{"89":{"position":[[2852,30],[3038,30]]}}}],["repeat",{"_index":1994,"t":{"107":{"position":[[997,6]]},"129":{"position":[[2510,6]]}}}],["replaced",{"_index":601,"t":{"47":{"position":[[4593,8]]},"49":{"position":[[4834,8]]}}}],["requestanimationframe(animate",{"_index":2467,"t":{"145":{"position":[[1331,31]]}}}],["require",{"_index":2579,"t":{"161":{"position":[[902,7]]}}}],["requirement",{"_index":2582,"t":{"161":{"position":[[1023,11]]}}}],["requires",{"_index":2546,"t":{"159":{"position":[[269,8]]}}}],["res.text",{"_index":1697,"t":{"95":{"position":[[471,11]]}}}],["reset",{"_index":1999,"t":{"107":{"position":[[1092,5]]},"119":{"position":[[555,8],[573,7],[809,8]]}}}],["resizeto",{"_index":31,"t":{"39":{"position":[[264,9]]},"41":{"position":[[91,9]]},"43":{"position":[[68,9]]},"45":{"position":[[93,9]]},"47":{"position":[[91,9]]},"49":{"position":[[91,9]]},"51":{"position":[[68,9]]},"53":{"position":[[91,9]]},"55":{"position":[[91,9]]},"57":{"position":[[91,9]]},"59":{"position":[[91,9]]},"61":{"position":[[91,9]]},"63":{"position":[[68,9]]},"65":{"position":[[68,9]]},"67":{"position":[[91,9]]},"69":{"position":[[68,9]]},"71":{"position":[[91,9]]},"73":{"position":[[68,9]]},"75":{"position":[[88,9]]},"77":{"position":[[91,9]]},"81":{"position":[[91,9]]},"83":{"position":[[91,9]]},"85":{"position":[[68,9]]},"95":{"position":[[68,9]]},"97":{"position":[[136,9]]},"99":{"position":[[363,9]]},"101":{"position":[[68,9]]},"103":{"position":[[68,9]]},"105":{"position":[[68,9]]},"107":{"position":[[68,9]]},"109":{"position":[[85,9]]},"111":{"position":[[85,9]]},"113":{"position":[[117,9]]},"115":{"position":[[68,9]]},"117":{"position":[[85,9]]},"119":{"position":[[68,9]]},"121":{"position":[[68,9]]},"123":{"position":[[68,9]]},"125":{"position":[[68,9]]},"127":{"position":[[81,9]]},"129":{"position":[[68,9]]},"131":{"position":[[68,9]]},"133":{"position":[[68,9]]},"135":{"position":[[68,9]]},"137":{"position":[[68,9]]},"139":{"position":[[68,9]]},"141":{"position":[[68,9]]},"143":{"position":[[68,9]]},"145":{"position":[[68,9]]},"147":{"position":[[271,9]]},"149":{"position":[[86,9]]},"151":{"position":[[86,9]]},"153":{"position":[[91,9]]},"155":{"position":[[91,9]]},"157":{"position":[[91,9]]},"159":{"position":[[68,9]]},"161":{"position":[[88,9]]},"163":{"position":[[91,9]]},"165":{"position":[[91,9]]},"167":{"position":[[91,9]]},"169":{"position":[[91,9]]},"171":{"position":[[223,9]]},"173":{"position":[[1569,9]]},"175":{"position":[[91,9]]},"177":{"position":[[68,9]]},"179":{"position":[[68,9]]}}}],["resizing",{"_index":2757,"t":{"173":{"position":[[1744,8]]}}}],["resolved",{"_index":926,"t":{"55":{"position":[[661,8],[1016,8]]},"57":{"position":[[897,8],[1574,8]]},"59":{"position":[[346,8],[626,8]]},"61":{"position":[[404,8]]}}}],["resolves",{"_index":951,"t":{"57":{"position":[[775,8],[1452,8]]},"59":{"position":[[526,9]]},"61":{"position":[[298,9]]}}}],["resource",{"_index":1782,"t":{"99":{"position":[[872,9]]},"173":{"position":[[54,8],[1836,8]]}}}],["resources",{"_index":1068,"t":{"65":{"position":[[146,9]]}}}],["respond",{"_index":1356,"t":{"83":{"position":[[659,7]]}}}],["result",{"_index":224,"t":{"39":{"position":[[5060,6]]}}}],["results",{"_index":74,"t":{"39":{"position":[[869,7]]}}}],["resume",{"_index":1712,"t":{"95":{"position":[[881,6]]}}}],["retain",{"_index":1189,"t":{"77":{"position":[[186,6]]}}}],["return",{"_index":64,"t":{"39":{"position":[[678,6],[1028,6],[1674,6],[1899,6]]},"41":{"position":[[1154,7],[1808,6],[1865,6],[2260,6]]},"47":{"position":[[3191,7],[4932,6],[5524,6],[5688,6]]},"49":{"position":[[881,6],[2794,6],[3626,6],[5388,6],[7982,6],[8631,6],[8901,6],[9033,6],[9283,6],[9302,6],[9429,6]]},"81":{"position":[[2123,7],[2234,7]]},"85":{"position":[[2218,7],[2329,7]]},"89":{"position":[[1934,6],[2393,6]]},"99":{"position":[[1387,6],[1685,6]]},"129":{"position":[[1257,6],[1552,6]]},"171":{"position":[[823,6]]},"173":{"position":[[1500,6]]}}}],["reverse",{"_index":176,"t":{"39":{"position":[[3160,7]]}}}],["reversed",{"_index":756,"t":{"49":{"position":[[5109,8]]}}}],["rgba(255",{"_index":2703,"t":{"171":{"position":[[650,10]]},"173":{"position":[[852,10]]}}}],["richtext",{"_index":2637,"t":{"167":{"position":[[647,8]]}}}],["richtext.x",{"_index":2641,"t":{"167":{"position":[[741,10]]}}}],["richtext.y",{"_index":2642,"t":{"167":{"position":[[758,10]]}}}],["right",{"_index":670,"t":{"49":{"position":[[1210,5],[1705,5],[1741,5],[5823,5],[6771,5],[6827,5]]},"61":{"position":[[166,5]]},"99":{"position":[[1993,5],[2082,5]]},"129":{"position":[[1841,5],[1930,5]]},"153":{"position":[[576,5]]}}}],["ring",{"_index":1957,"t":{"105":{"position":[[1257,4]]}}}],["ring.anchor.set(0.5",{"_index":1959,"t":{"105":{"position":[[1333,21]]}}}],["ring.position.copyfrom(displacementsprite.position",{"_index":1971,"t":{"105":{"position":[[1794,52]]}}}],["ring.visible",{"_index":1960,"t":{"105":{"position":[[1355,12],[1685,12]]}}}],["ripple",{"_index":2292,"t":{"127":{"position":[[1944,7],[4568,6]]}}}],["ripplecontainer",{"_index":2304,"t":{"127":{"position":[[2633,15]]}}}],["ripplecontainer.addchild(ripplequad",{"_index":2305,"t":{"127":{"position":[[2673,37]]}}}],["ripplecontainer.position.set(220",{"_index":2360,"t":{"127":{"position":[[5014,33]]}}}],["ripplequad",{"_index":2303,"t":{"127":{"position":[[2575,10]]}}}],["ripplequad.shader.uniforms.phase",{"_index":2376,"t":{"127":{"position":[[5548,32]]}}}],["rippleshader",{"_index":2301,"t":{"127":{"position":[[2412,12],[2612,14]]}}}],["rippletexture",{"_index":2302,"t":{"127":{"position":[[2497,13],[4766,14],[5847,13]]}}}],["rippleuniforms",{"_index":2300,"t":{"127":{"position":[[2341,14],[2474,16]]}}}],["roboto",{"_index":412,"t":{"45":{"position":[[1088,9]]},"89":{"position":[[4780,9],[5524,9]]},"93":{"position":[[1306,9]]}}}],["roll",{"_index":1360,"t":{"83":{"position":[[784,4]]}}}],["root",{"_index":1488,"t":{"89":{"position":[[831,4]]}}}],["rope",{"_index":238,"t":{"41":{"position":[[172,5],[584,4],[685,4],[696,4]]},"135":{"position":[[152,5]]},"137":{"position":[[152,5]]}}}],["rope.blendmode",{"_index":258,"t":{"41":{"position":[[767,14]]}}}],["ropelength",{"_index":2423,"t":{"135":{"position":[[164,10],[262,11],[705,10]]},"137":{"position":[[164,10],[268,11],[766,10]]}}}],["ropesize",{"_index":248,"t":{"41":{"position":[[380,8],[436,8],[617,9],[1371,9],[1522,8],[1591,8]]}}}],["rotate",{"_index":1105,"t":{"65":{"position":[[1277,6]]},"67":{"position":[[833,6]]},"75":{"position":[[504,6]]},"89":{"position":[[5449,6]]},"147":{"position":[[1011,6]]},"155":{"position":[[540,6]]},"177":{"position":[[1732,6]]},"179":{"position":[[295,6],[307,6],[320,9],[630,7],[725,8],[931,6]]}}}],["rotated",{"_index":2827,"t":{"179":{"position":[[216,7],[1263,7]]}}}],["rotatedtexture",{"_index":2838,"t":{"179":{"position":[[611,15],[651,14],[857,14]]}}}],["rotatedtexture.rotate",{"_index":2845,"t":{"179":{"position":[[944,24]]}}}],["rotation",{"_index":885,"t":{"51":{"position":[[1787,9]]},"69":{"position":[[207,9]]},"89":{"position":[[4351,8]]},"153":{"position":[[927,8]]}}}],["rotations",{"_index":2852,"t":{"179":{"position":[[1181,9]]}}}],["round",{"_index":2636,"t":{"167":{"position":[[628,8],[1085,8]]}}}],["rounded",{"_index":730,"t":{"49":{"position":[[4149,7],[7311,7]]},"113":{"position":[[1654,7]]}}}],["roundingmask",{"_index":740,"t":{"49":{"position":[[4598,12],[4799,13]]}}}],["roundingmask.beginfill(0",{"_index":741,"t":{"49":{"position":[[4634,25]]}}}],["roundingmask.drawroundedrect(0",{"_index":743,"t":{"49":{"position":[[4704,31]]}}}],["roundingmask.endfill",{"_index":744,"t":{"49":{"position":[[4763,23]]}}}],["roundingmask.linestyle(1",{"_index":742,"t":{"49":{"position":[[4664,25]]}}}],["rt",{"_index":2768,"t":{"175":{"position":[[584,2],[1097,4]]}}}],["rules",{"_index":819,"t":{"49":{"position":[[8732,6]]}}}],["running",{"_index":546,"t":{"47":{"position":[[3108,7],[3181,9],[3199,7],[3571,7]]},"155":{"position":[[583,7]]}}}],["s",{"_index":577,"t":{"47":{"position":[[4045,1]]},"169":{"position":[[580,1],[658,3]]}}}],["s.parentnode.insertbefore(wf",{"_index":2677,"t":{"169":{"position":[[628,29]]}}}],["s.scale.x",{"_index":591,"t":{"47":{"position":[[4380,9]]}}}],["s.scale.y",{"_index":592,"t":{"47":{"position":[[4392,9]]}}}],["s.texture",{"_index":589,"t":{"47":{"position":[[4305,9]]}}}],["s.texture.height",{"_index":594,"t":{"47":{"position":[[4458,18]]}}}],["s.texture.width",{"_index":593,"t":{"47":{"position":[[4427,16]]}}}],["s.width",{"_index":596,"t":{"47":{"position":[[4509,8]]}}}],["s.x",{"_index":595,"t":{"47":{"position":[[4477,3]]}}}],["s.y",{"_index":580,"t":{"47":{"position":[[4077,4],[4082,3],[4158,4]]}}}],["same",{"_index":753,"t":{"49":{"position":[[5067,4]]},"73":{"position":[[546,4]]},"97":{"position":[[567,4]]},"127":{"position":[[519,4]]}}}],["sampler2d",{"_index":1784,"t":{"99":{"position":[[991,9],[1019,9]]},"123":{"position":[[871,9]]},"125":{"position":[[1263,9]]},"127":{"position":[[2075,9],[2857,9],[4451,9],[4480,9],[4508,9]]},"129":{"position":[[938,9]]},"131":{"position":[[746,9],[1295,9]]},"133":{"position":[[812,9]]},"143":{"position":[[1039,9]]},"145":{"position":[[864,9]]}}}],["scale",{"_index":466,"t":{"47":{"position":[[1311,5]]},"51":{"position":[[1779,5],[2180,5]]},"63":{"position":[[682,5]]},"69":{"position":[[178,6]]},"73":{"position":[[497,5]]},"77":{"position":[[152,5]]},"83":{"position":[[265,5]]},"93":{"position":[[892,5],[1257,5],[1845,5]]}}}],["scales",{"_index":712,"t":{"49":{"position":[[2890,6]]}}}],["scaling",{"_index":699,"t":{"49":{"position":[[2213,7]]},"149":{"position":[[522,7]]}}}],["scatter",{"_index":1141,"t":{"69":{"position":[[728,7]]}}}],["scene",{"_index":1402,"t":{"87":{"position":[[102,6]]},"89":{"position":[[162,5],[452,5],[1084,6],[1680,5]]},"93":{"position":[[261,5]]},"99":{"position":[[160,5]]},"177":{"position":[[282,5]]}}}],["screen",{"_index":175,"t":{"39":{"position":[[3143,6],[3788,7]]},"53":{"position":[[498,6]]},"57":{"position":[[243,8],[355,8],[596,8],[611,10],[708,6],[855,9],[1354,6],[1393,6],[1532,9]]},"61":{"position":[[576,6]]},"75":{"position":[[359,6]]},"89":{"position":[[4027,6],[4845,6],[5175,6],[5273,11]]},"155":{"position":[[361,6]]},"157":{"position":[[517,6]]},"175":{"position":[[996,6]]}}}],["screen.height",{"_index":1686,"t":{"93":{"position":[[1998,13]]}}}],["screenpos",{"_index":1742,"t":{"97":{"position":[[827,9],[905,10]]}}}],["screenshot",{"_index":385,"t":{"45":{"position":[[456,13],[1168,12]]}}}],["screenshottext",{"_index":415,"t":{"45":{"position":[[1122,14]]}}}],["screenshottext.width",{"_index":420,"t":{"45":{"position":[[1239,21]]}}}],["screenshottext.x",{"_index":418,"t":{"45":{"position":[[1189,16]]}}}],["screenshottext.y",{"_index":421,"t":{"45":{"position":[[1267,16]]}}}],["script",{"_index":2665,"t":{"169":{"position":[[332,6]]}}}],["scroll",{"_index":1604,"t":{"89":{"position":[[4415,6],[4497,6]]}}}],["second",{"_index":2089,"t":{"111":{"position":[[672,6]]},"127":{"position":[[1898,6],[2714,6]]},"173":{"position":[[1071,6]]}}}],["seconds",{"_index":870,"t":{"51":{"position":[[1078,7]]}}}],["secondtexture",{"_index":2541,"t":{"157":{"position":[[254,13],[851,14]]}}}],["see",{"_index":1409,"t":{"87":{"position":[[315,3]]}}}],["seen",{"_index":2366,"t":{"127":{"position":[[5216,4]]}}}],["segment",{"_index":669,"t":{"49":{"position":[[1156,7],[1350,8],[1451,7],[5725,7],[6071,7],[6156,8],[6354,7]]}}}],["segment[0",{"_index":679,"t":{"49":{"position":[[1508,11],[6411,11]]}}}],["segment[1",{"_index":680,"t":{"49":{"position":[[1520,11],[6423,11]]}}}],["segment[2",{"_index":681,"t":{"49":{"position":[[1532,11],[6435,11]]}}}],["segment[3",{"_index":682,"t":{"49":{"position":[[1544,12],[6447,12]]}}}],["segments",{"_index":668,"t":{"49":{"position":[[1091,8],[5601,8],[5616,8],[8622,8],[9230,8]]}}}],["segments.length",{"_index":676,"t":{"49":{"position":[[1421,16],[6324,16]]}}}],["segments[i",{"_index":677,"t":{"49":{"position":[[1461,12],[6364,12]]}}}],["separately",{"_index":2367,"t":{"127":{"position":[[5221,11]]}}}],["set",{"_index":227,"t":{"39":{"position":[[5152,3]]},"41":{"position":[[749,3]]},"47":{"position":[[2966,3]]},"63":{"position":[[669,3],[761,3]]},"69":{"position":[[561,3]]},"73":{"position":[[397,3],[484,3],[616,3]]},"77":{"position":[[332,3]]},"81":{"position":[[1641,3]]},"85":{"position":[[1736,3]]},"89":{"position":[[2016,3],[4294,3]]},"93":{"position":[[1943,3]]},"95":{"position":[[764,3]]},"111":{"position":[[248,3],[558,3]]},"113":{"position":[[808,3]]},"177":{"position":[[1921,3]]}}}],["setinterval",{"_index":871,"t":{"51":{"position":[[1086,14]]}}}],["setup",{"_index":321,"t":{"43":{"position":[[528,7]]},"83":{"position":[[975,5]]},"89":{"position":[[99,5]]}}}],["shader",{"_index":1718,"t":{"97":{"position":[[422,6],[500,6],[536,6],[603,6]]},"99":{"position":[[103,6],[273,6],[757,7]]},"121":{"position":[[977,6],[1449,8]]},"123":{"position":[[497,6],[1077,8]]},"125":{"position":[[889,6],[1470,8]]},"127":{"position":[[507,7],[524,6]]},"129":{"position":[[2667,6],[2694,6],[2792,8]]},"131":{"position":[[372,6],[1632,8]]},"139":{"position":[[234,6],[630,8]]},"141":{"position":[[456,6],[927,8]]},"143":{"position":[[1247,6],[1349,8]]},"145":{"position":[[1122,6],[1220,8]]}}}],["shader2",{"_index":2395,"t":{"131":{"position":[[920,7],[1683,9]]}}}],["shaderfrag",{"_index":1732,"t":{"97":{"position":[[652,10],[1358,11]]}}}],["shaders",{"_index":2260,"t":{"127":{"position":[[905,8]]}}}],["shape",{"_index":2080,"t":{"111":{"position":[[351,5],[679,5],[1300,5]]},"113":{"position":[[1424,5]]},"117":{"position":[[1009,5]]}}}],["shaped",{"_index":2844,"t":{"179":{"position":[[798,6]]}}}],["sharing",{"_index":2281,"t":{"127":{"position":[[1561,7]]}}}],["sharp",{"_index":278,"t":{"41":{"position":[[1465,5]]}}}],["shorter",{"_index":1789,"t":{"99":{"position":[[1192,7]]},"129":{"position":[[1111,7]]}}}],["shoves",{"_index":78,"t":{"39":{"position":[[932,6]]}}}],["show",{"_index":2856,"t":{"179":{"position":[[1395,4]]}}}],["shows",{"_index":1198,"t":{"77":{"position":[[507,5]]},"89":{"position":[[81,5]]}}}],["silly",{"_index":1340,"t":{"81":{"position":[[1650,5]]},"85":{"position":[[1745,5]]}}}],["simple",{"_index":598,"t":{"47":{"position":[[4544,6]]},"51":{"position":[[1211,6],[1522,6]]},"99":{"position":[[1136,6]]},"127":{"position":[[1145,6],[2119,6],[3601,8]]},"129":{"position":[[1055,6]]}}}],["simplicity",{"_index":2284,"t":{"127":{"position":[[1613,10]]}}}],["sin",{"_index":714,"t":{"49":{"position":[[2929,3],[2991,3],[3060,3],[3066,3]]},"145":{"position":[[962,4]]}}}],["sin(distance*25.0+phase",{"_index":2298,"t":{"127":{"position":[[2271,24]]}}}],["sin(time",{"_index":1754,"t":{"97":{"position":[[1072,10]]}}}],["size",{"_index":652,"t":{"49":{"position":[[505,4],[530,5],[550,5],[647,5],[669,5],[737,4],[1031,5],[1079,5],[1106,4],[1117,4],[1127,4],[1138,4],[1164,5],[1176,4],[1186,4],[1196,4],[1218,4],[1228,4],[1238,4],[1248,4],[1271,4],[1282,4],[1293,4],[1303,4],[1677,4],[1688,4],[1711,4],[1721,4],[1748,4],[1758,4],[1784,4],[1795,4],[1822,4],[1954,4],[2403,4],[2632,4],[2684,4],[2694,4],[2746,4],[3397,4],[3422,5],[3442,5],[3510,4],[4358,4],[4485,5],[4505,5],[4739,5],[4745,5],[4983,5],[4989,5],[5232,4],[5539,5],[5587,5],[5631,4],[5653,4],[5674,4],[5696,4],[5733,5],[5756,4],[5777,4],[5798,4],[5831,4],[5852,4],[5873,4],[5894,4],[5928,4],[5950,4],[5972,4],[5993,4],[6299,4],[6605,4],[6627,4],[6662,4],[6683,4],[6719,4],[6740,4],[6777,4],[6799,4],[6961,4]]},"73":{"position":[[551,5]]},"123":{"position":[[298,4],[424,4]]},"125":{"position":[[298,4],[424,4],[657,4],[777,4]]},"127":{"position":[[318,4],[444,4]]},"129":{"position":[[317,4],[443,4]]},"133":{"position":[[287,4],[408,4]]},"141":{"position":[[287,4],[428,4]]},"143":{"position":[[287,4],[427,4],[548,4]]},"145":{"position":[[298,4],[424,4]]},"159":{"position":[[331,4]]},"173":{"position":[[509,4],[1730,4]]}}}],["sizes",{"_index":1140,"t":{"69":{"position":[[676,5]]}}}],["skewstyle",{"_index":2644,"t":{"167":{"position":[[812,9],[1166,11]]}}}],["skewtext",{"_index":2649,"t":{"167":{"position":[[1125,8]]}}}],["skewtext.anchor.set(0.5",{"_index":2653,"t":{"167":{"position":[[1209,24]]}}}],["skewtext.skew.set(0.65",{"_index":2652,"t":{"167":{"position":[[1178,23]]}}}],["skewtext.x",{"_index":2654,"t":{"167":{"position":[[1240,10]]}}}],["skewtext.y",{"_index":2655,"t":{"167":{"position":[[1258,10]]}}}],["skipupdatetransform",{"_index":349,"t":{"43":{"position":[[1383,20],[1749,20]]}}}],["skully.png",{"_index":1076,"t":{"65":{"position":[[365,13]]}}}],["slider",{"_index":1649,"t":{"93":{"position":[[311,6],[349,6],[927,6]]}}}],["slider.addchild(handle",{"_index":1663,"t":{"93":{"position":[[848,24]]}}}],["slider.height",{"_index":1658,"t":{"93":{"position":[[614,13]]}}}],["slider.tolocal(e.global).x",{"_index":1689,"t":{"93":{"position":[[2065,27]]}}}],["slider.x",{"_index":1653,"t":{"93":{"position":[[432,8]]}}}],["slider.y",{"_index":1654,"t":{"93":{"position":[[475,8]]}}}],["sliderwidth",{"_index":1650,"t":{"93":{"position":[[324,11],[415,12],[457,12],[644,11],[2093,11],[2202,12]]}}}],["slooww",{"_index":1145,"t":{"69":{"position":[[1135,6]]}}}],["slot",{"_index":438,"t":{"47":{"position":[[501,4]]}}}],["slots",{"_index":532,"t":{"47":{"position":[[2743,8],[3662,6]]}}}],["slottextures",{"_index":440,"t":{"47":{"position":[[521,12]]}}}],["slottextures.length",{"_index":465,"t":{"47":{"position":[[1284,23],[4357,22]]}}}],["slottextures[math.floor(math.random",{"_index":590,"t":{"47":{"position":[[4317,37]]}}}],["slow",{"_index":2483,"t":{"149":{"position":[[547,4],[573,4]]}}}],["slow.anchor.set(0.5",{"_index":2486,"t":{"149":{"position":[[615,21]]}}}],["slow.animationspeed",{"_index":2488,"t":{"149":{"position":[[662,19]]}}}],["slow.play",{"_index":2492,"t":{"149":{"position":[[767,12]]}}}],["slow.scale.set(scaling",{"_index":2487,"t":{"149":{"position":[[637,24]]}}}],["slow.width",{"_index":2490,"t":{"149":{"position":[[718,11]]}}}],["slow.x",{"_index":2489,"t":{"149":{"position":[[689,6]]}}}],["slow.y",{"_index":2491,"t":{"149":{"position":[[735,6]]}}}],["slowly",{"_index":1407,"t":{"87":{"position":[[290,6]]}}}],["small",{"_index":2324,"t":{"127":{"position":[[3642,5]]}}}],["smooth",{"_index":249,"t":{"41":{"position":[[404,6],[1412,6]]},"43":{"position":[[1418,6]]}}}],["snake",{"_index":2435,"t":{"135":{"position":[[591,5]]},"137":{"position":[[652,5]]}}}],["snakecontainer",{"_index":2453,"t":{"137":{"position":[[410,14]]}}}],["snakecontainer.addchild(strip",{"_index":2459,"t":{"137":{"position":[[571,31]]}}}],["snakecontainer.scale.set(800",{"_index":2456,"t":{"137":{"position":[[497,28]]}}}],["snakecontainer.x",{"_index":2454,"t":{"137":{"position":[[449,16]]}}}],["snakecontainer.y",{"_index":2455,"t":{"137":{"position":[[473,16]]}}}],["snippet",{"_index":2661,"t":{"169":{"position":[[239,12],[743,7],[824,9],[858,10]]}}}],["solve",{"_index":1478,"t":{"89":{"position":[[661,5]]}}}],["somehow",{"_index":2691,"t":{"171":{"position":[[328,7]]}}}],["somewhat",{"_index":12,"t":{"39":{"position":[[42,8]]}}}],["source",{"_index":1020,"t":{"63":{"position":[[563,6]]},"73":{"position":[[315,6]]}}}],["spawn",{"_index":2761,"t":{"173":{"position":[[1850,5]]}}}],["specify",{"_index":1708,"t":{"95":{"position":[[719,7]]}}}],["speed",{"_index":99,"t":{"39":{"position":[[1515,5],[1635,5],[4478,5]]},"47":{"position":[[3770,6]]},"51":{"position":[[319,5],[1064,5],[1295,5],[1317,6],[1354,6],[2383,5]]},"63":{"position":[[1291,5]]},"69":{"position":[[1092,5]]},"73":{"position":[[1144,5]]}}}],["spends",{"_index":969,"t":{"57":{"position":[[1323,6]]}}}],["spicy",{"_index":14,"t":{"39":{"position":[[70,5]]}}}],["spinner",{"_index":644,"t":{"49":{"position":[[192,7],[2202,7],[3120,7],[4138,7],[7300,7],[7342,7],[8419,8]]}}}],["spinning",{"_index":2814,"t":{"177":{"position":[[1640,9]]}}}],["sprite",{"_index":847,"t":{"51":{"position":[[491,7]]},"53":{"position":[[319,6],[470,6]]},"55":{"position":[[645,6]]},"57":{"position":[[881,6],[1558,6]]},"59":{"position":[[610,6]]},"61":{"position":[[388,6],[548,6]]},"63":{"position":[[153,6],[501,6],[1006,6]]},"67":{"position":[[652,6]]},"69":{"position":[[475,6],[615,6],[1015,6]]},"73":{"position":[[253,6],[452,6]]},"75":{"position":[[162,6],[331,6]]},"77":{"position":[[263,6]]},"79":{"position":[[235,6],[692,7]]},"83":{"position":[[1091,6]]},"107":{"position":[[497,6],[933,6]]},"109":{"position":[[149,6]]},"147":{"position":[[830,6]]},"153":{"position":[[692,6]]},"155":{"position":[[165,6],[333,6]]},"157":{"position":[[346,6],[489,6],[640,6]]},"159":{"position":[[256,6]]},"161":{"position":[[1277,6]]},"171":{"position":[[906,6]]},"173":{"position":[[1968,6]]},"175":{"position":[[624,6]]},"177":{"position":[[471,6],[591,6]]},"179":{"position":[[1250,6]]}}}],["sprite's",{"_index":908,"t":{"53":{"position":[[413,8]]},"61":{"position":[[491,8]]},"75":{"position":[[274,8]]},"155":{"position":[[276,8]]}}}],["sprite.anchor.set(0.5",{"_index":1193,"t":{"77":{"position":[[357,23]]}}}],["sprite.cursor",{"_index":1201,"t":{"77":{"position":[[525,13]]}}}],["sprite.eventmode",{"_index":1197,"t":{"77":{"position":[[475,16]]}}}],["sprite.height",{"_index":2717,"t":{"171":{"position":[[1027,13]]}}}],["sprite.on('click",{"_index":1210,"t":{"77":{"position":[[706,18]]}}}],["sprite.on('pointerdown",{"_index":1207,"t":{"77":{"position":[[620,24]]}}}],["sprite.on('tap",{"_index":1211,"t":{"77":{"position":[[752,16]]}}}],["sprite.position.set(100",{"_index":2714,"t":{"171":{"position":[[945,24]]},"173":{"position":[[2007,24]]}}}],["sprite.rotation",{"_index":2715,"t":{"171":{"position":[[976,15]]},"173":{"position":[[2038,15]]}}}],["sprite.scale.x",{"_index":1213,"t":{"77":{"position":[[842,14]]}}}],["sprite.scale.y",{"_index":1215,"t":{"77":{"position":[[866,14]]}}}],["sprite.texture",{"_index":2034,"t":{"109":{"position":[[1140,14],[1699,14],[2273,14]]}}}],["sprite.width",{"_index":2716,"t":{"171":{"position":[[1007,12]]}}}],["sprite.x",{"_index":1194,"t":{"77":{"position":[[381,8]]},"175":{"position":[[654,8]]}}}],["sprite.y",{"_index":1195,"t":{"77":{"position":[[414,8]]},"175":{"position":[[670,8]]}}}],["sprites",{"_index":1127,"t":{"69":{"position":[[132,7],[316,7],[1666,7]]},"117":{"position":[[481,7]]},"157":{"position":[[429,7]]},"173":{"position":[[1757,7]]}}}],["sprites.addchild(dude",{"_index":1149,"t":{"69":{"position":[[1330,23]]}}}],["spritesheet",{"_index":2520,"t":{"153":{"position":[[396,11]]}}}],["spritesheet.data.frames[framekey].duration",{"_index":2481,"t":{"149":{"position":[[436,43]]}}}],["square",{"_index":39,"t":{"39":{"position":[[378,6],[1939,6],[2265,6],[3117,6],[3474,6],[4187,6],[4488,6],[4584,6],[4782,6],[5048,6]]},"49":{"position":[[203,6]]}}}],["square's",{"_index":190,"t":{"39":{"position":[[3960,8]]}}}],["squaremask",{"_index":1251,"t":{"79":{"position":[[1270,10],[1404,11],[2908,11]]}}}],["squaremask2",{"_index":1266,"t":{"79":{"position":[[1794,11],[1929,12],[2920,12]]}}}],["squares",{"_index":56,"t":{"39":{"position":[[555,7],[2810,8],[4906,7],[5193,7]]}}}],["srcs",{"_index":945,"t":{"57":{"position":[[283,5],[393,5]]}}}],["stage",{"_index":234,"t":{"39":{"position":[[5635,5]]},"65":{"position":[[531,5]]},"79":{"position":[[2830,5]]},"81":{"position":[[665,8],[1557,5]]},"83":{"position":[[1168,5]]},"85":{"position":[[329,8],[1652,5]]},"87":{"position":[[584,8],[1387,7]]},"93":{"position":[[238,5],[1498,5]]},"111":{"position":[[1442,5]]},"127":{"position":[[5185,5]]},"161":{"position":[[613,5]]},"177":{"position":[[682,5],[2095,5]]}}}],["stageheight",{"_index":1647,"t":{"93":{"position":[[155,11],[486,11],[1168,11]]}}}],["stagesize",{"_index":324,"t":{"43":{"position":[[582,9],[670,11],[742,11]]},"177":{"position":[[132,9]]}}}],["stagewidth",{"_index":1648,"t":{"93":{"position":[[194,10],[443,11],[1142,10],[1387,10]]}}}],["standard",{"_index":1219,"t":{"79":{"position":[[226,8]]}}}],["star",{"_index":834,"t":{"51":{"position":[[149,5],[482,4],[820,4],[871,4],[1420,4],[1487,4],[1774,4],[2112,4],[2190,4]]},"89":{"position":[[3553,4],[4247,4],[5408,6]]},"113":{"position":[[1821,4],[1956,4],[2093,4]]}}}],["star.addeventlistener('click",{"_index":1610,"t":{"89":{"position":[[4553,30]]}}}],["star.addeventlistener('wheel",{"_index":1603,"t":{"89":{"position":[[4369,30]]}}}],["star.cursor",{"_index":1600,"t":{"89":{"position":[[4313,11],[4641,11],[4695,11]]}}}],["star.eventmode",{"_index":1599,"t":{"89":{"position":[[4264,14]]}}}],["star.rotation",{"_index":1608,"t":{"89":{"position":[[4480,13]]}}}],["star.scale.set(1",{"_index":1613,"t":{"89":{"position":[[4676,18]]}}}],["star.scale.set(1.33",{"_index":1612,"t":{"89":{"position":[[4619,21]]}}}],["star.scale.x",{"_index":1611,"t":{"89":{"position":[[4596,13]]}}}],["star.sprite.anchor.x",{"_index":850,"t":{"51":{"position":[[550,20]]}}}],["star.sprite.anchor.y",{"_index":851,"t":{"51":{"position":[[578,20]]}}}],["star.sprite.rotation",{"_index":900,"t":{"51":{"position":[[2449,20]]}}}],["star.sprite.scale.x",{"_index":892,"t":{"51":{"position":[[2057,19]]}}}],["star.sprite.scale.y",{"_index":899,"t":{"51":{"position":[[2314,19]]}}}],["star.sprite.x",{"_index":881,"t":{"51":{"position":[[1568,13],[1814,13]]}}}],["star.sprite.y",{"_index":883,"t":{"51":{"position":[[1664,13],[1878,13]]}}}],["star.x",{"_index":865,"t":{"51":{"position":[[975,6],[1584,6]]}}}],["star.y",{"_index":867,"t":{"51":{"position":[[1010,6],[1680,6]]}}}],["star.z",{"_index":857,"t":{"51":{"position":[[726,6],[1440,7],[1550,6]]}}}],["staramount",{"_index":837,"t":{"51":{"position":[[238,10],[457,11],[1395,11]]}}}],["starbasesize",{"_index":845,"t":{"51":{"position":[[378,12],[2095,13],[2352,12]]}}}],["starbutton1",{"_index":1221,"t":{"79":{"position":[[255,11],[399,11],[439,12],[486,12],[531,13],[2869,12]]}}}],["starbutton1.cursor",{"_index":1225,"t":{"79":{"position":[[333,18]]}}}],["starbutton1.eventmode",{"_index":1226,"t":{"79":{"position":[[365,21]]}}}],["starbutton1.position.set(50",{"_index":1223,"t":{"79":{"position":[[298,28]]}}}],["starbutton1.x",{"_index":1278,"t":{"79":{"position":[[2439,13]]}}}],["starbutton1.y",{"_index":1280,"t":{"79":{"position":[[2469,13]]}}}],["starbutton2",{"_index":1233,"t":{"79":{"position":[[576,11],[941,11],[981,12],[1028,12],[1073,13],[2856,12]]}}}],["starbutton2.cursor",{"_index":1245,"t":{"79":{"position":[[875,18]]}}}],["starbutton2.eventmode",{"_index":1246,"t":{"79":{"position":[[907,21]]}}}],["starbutton2.hitarea",{"_index":1236,"t":{"79":{"position":[[745,19]]}}}],["starbutton2.position.set(250",{"_index":1234,"t":{"79":{"position":[[619,29]]}}}],["starbutton2.x",{"_index":1285,"t":{"79":{"position":[[2548,13]]}}}],["starbutton2.y",{"_index":1288,"t":{"79":{"position":[[2578,13]]}}}],["starbutton3",{"_index":1247,"t":{"79":{"position":[[1119,11],[1416,11],[1456,12],[1503,12],[1548,13],[2882,12]]}}}],["starbutton3.cursor",{"_index":1249,"t":{"79":{"position":[[1198,18]]}}}],["starbutton3.eventmode",{"_index":1250,"t":{"79":{"position":[[1230,21]]}}}],["starbutton3.mask",{"_index":1256,"t":{"79":{"position":[[1385,16]]}}}],["starbutton3.position.set(450",{"_index":1248,"t":{"79":{"position":[[1162,29]]}}}],["starbutton3.x",{"_index":1292,"t":{"79":{"position":[[2653,13]]}}}],["starbutton3.y",{"_index":1253,"t":{"79":{"position":[[1349,14],[2683,13]]}}}],["starbutton4",{"_index":1264,"t":{"79":{"position":[[1709,11],[2180,11],[2220,12],[2267,12],[2312,13],[2895,12]]}}}],["starbutton4.cursor",{"_index":1273,"t":{"79":{"position":[[2114,18]]}}}],["starbutton4.eventmode",{"_index":1274,"t":{"79":{"position":[[2146,21]]}}}],["starbutton4.hitarea",{"_index":1272,"t":{"79":{"position":[[1984,19]]}}}],["starbutton4.mask",{"_index":1269,"t":{"79":{"position":[[1910,16]]}}}],["starbutton4.position.set(600",{"_index":1265,"t":{"79":{"position":[[1752,29]]}}}],["starbutton4.x",{"_index":1296,"t":{"79":{"position":[[2769,13]]}}}],["starbutton4.y",{"_index":1268,"t":{"79":{"position":[[1874,14],[2799,13]]}}}],["stars",{"_index":846,"t":{"51":{"position":[[413,5],[425,5]]},"89":{"position":[[3573,5],[3701,5],[3766,5],[4174,5],[5440,5]]}}}],["stars.foreach((star",{"_index":1598,"t":{"89":{"position":[[4213,20]]}}}],["stars.push(star",{"_index":855,"t":{"51":{"position":[[666,17]]}}}],["stars[0].x",{"_index":1582,"t":{"89":{"position":[[3707,10]]}}}],["stars[1].x",{"_index":1583,"t":{"89":{"position":[[3723,10]]}}}],["stars[2].x",{"_index":1584,"t":{"89":{"position":[[3741,10]]}}}],["stars[i",{"_index":875,"t":{"51":{"position":[[1427,9]]}}}],["starstretch",{"_index":844,"t":{"51":{"position":[[355,11],[2391,11]]}}}],["start",{"_index":547,"t":{"47":{"position":[[3140,5],[4888,6]]},"61":{"position":[[152,5]]},"127":{"position":[[5412,5]]},"129":{"position":[[2878,5]]},"135":{"position":[[526,5]]},"145":{"position":[[1306,5]]},"149":{"position":[[1053,5]]},"151":{"position":[[864,5]]},"161":{"position":[[682,5]]}}}],["startexture",{"_index":835,"t":{"51":{"position":[[161,11]]}}}],["starting",{"_index":2658,"t":{"169":{"position":[[182,11]]}}}],["startplay",{"_index":545,"t":{"47":{"position":[[3087,12],[3164,11]]}}}],["static",{"_index":148,"t":{"39":{"position":[[2569,9]]},"41":{"position":[[880,9]]},"43":{"position":[[1009,9]]},"45":{"position":[[544,9]]},"47":{"position":[[3008,9]]},"55":{"position":[[851,9]]},"57":{"position":[[1119,9],[1794,9]]},"65":{"position":[[571,9]]},"77":{"position":[[494,9]]},"79":{"position":[[389,9],[931,9],[1254,9],[2170,9]]},"81":{"position":[[1360,9]]},"83":{"position":[[711,9],[1248,9]]},"85":{"position":[[999,9]]},"87":{"position":[[1020,9],[1083,9],[1114,9]]},"89":{"position":[[1884,9],[4156,9],[4281,9]]},"91":{"position":[[540,9]]},"93":{"position":[[680,9],[1575,9]]},"97":{"position":[[1485,9]]},"103":{"position":[[148,9]]},"105":{"position":[[148,9]]},"107":{"position":[[148,9]]},"111":{"position":[[165,9]]},"115":{"position":[[938,9]]},"117":{"position":[[165,9]]},"119":{"position":[[148,9]]},"157":{"position":[[681,9]]},"161":{"position":[[562,9]]}}}],["steeper",{"_index":718,"t":{"49":{"position":[[3019,7]]}}}],["step(limit",{"_index":2311,"t":{"127":{"position":[[2936,11]]}}}],["stetch",{"_index":2591,"t":{"161":{"position":[[1378,6]]}}}],["still",{"_index":1260,"t":{"79":{"position":[[1624,5]]},"107":{"position":[[1032,5]]}}}],["stop",{"_index":1675,"t":{"93":{"position":[[1641,4]]},"95":{"position":[[343,4]]}}}],["store",{"_index":1013,"t":{"63":{"position":[[370,5]]},"65":{"position":[[264,5]]},"69":{"position":[[302,5]]},"73":{"position":[[139,5]]},"83":{"position":[[1520,5]]},"89":{"position":[[927,5]]},"149":{"position":[[264,5]]},"151":{"position":[[245,5]]}}}],["straight",{"_index":757,"t":{"49":{"position":[[5145,8]]}}}],["strength",{"_index":43,"t":{"39":{"position":[[422,8]]}}}],["stretchfactor",{"_index":898,"t":{"51":{"position":[[2241,13]]}}}],["strip",{"_index":2425,"t":{"135":{"position":[[287,5]]},"137":{"position":[[293,5]]}}}],["strip.x",{"_index":2427,"t":{"135":{"position":[[382,7],[476,8]]},"137":{"position":[[388,7]]}}}],["strip.y",{"_index":2428,"t":{"135":{"position":[[397,7],[491,8]]}}}],["stroke",{"_index":504,"t":{"47":{"position":[[2246,7]]},"167":{"position":[[425,7],[1019,7]]}}}],["strokethickness",{"_index":506,"t":{"47":{"position":[[2265,16]]},"167":{"position":[[444,16],[1094,16]]}}}],["stuff",{"_index":2805,"t":{"177":{"position":[[1378,5]]}}}],["stuffcontainer",{"_index":2789,"t":{"177":{"position":[[728,14]]}}}],["stuffcontainer.addchild(item",{"_index":2812,"t":{"177":{"position":[[1577,30]]}}}],["stuffcontainer.rotation",{"_index":2822,"t":{"177":{"position":[[1997,23]]}}}],["stuffcontainer.x",{"_index":2790,"t":{"177":{"position":[[767,16]]}}}],["stuffcontainer.y",{"_index":2791,"t":{"177":{"position":[[791,16]]}}}],["style",{"_index":409,"t":{"45":{"position":[[1047,5],[1181,7]]},"47":{"position":[[2099,5],[2494,7],[2752,7]]},"79":{"position":[[2332,5],[2421,7],[2530,7],[2635,7],[2751,7]]},"81":{"position":[[156,5]]},"109":{"position":[[2168,5]]},"111":{"position":[[268,5],[578,5]]},"113":{"position":[[333,5],[485,5],[977,5],[1126,5],[1277,5]]},"167":{"position":[[278,5],[733,7]]}}}],["styles",{"_index":1307,"t":{"81":{"position":[[347,6]]}}}],["super",{"_index":1487,"t":{"89":{"position":[[807,8]]}}}],["super(256",{"_index":2728,"t":{"173":{"position":[[414,10]]}}}],["super.updatetransform",{"_index":1566,"t":{"89":{"position":[[3143,24]]}}}],["supported!\\nwoo",{"_index":2602,"t":{"163":{"position":[[294,15]]}}}],["sure",{"_index":1644,"t":{"91":{"position":[[558,4]]},"93":{"position":[[233,4]]},"99":{"position":[[2624,4]]},"107":{"position":[[488,4],[1019,4]]},"129":{"position":[[2505,4]]}}}],["swap",{"_index":584,"t":{"47":{"position":[[4218,4]]},"157":{"position":[[793,4]]},"177":{"position":[[1814,4]]}}}],["symbol",{"_index":463,"t":{"47":{"position":[[1219,6],[1321,6],[1335,6],[3968,6]]}}}],["symbol.height",{"_index":474,"t":{"47":{"position":[[1461,15]]}}}],["symbol.scale.x",{"_index":470,"t":{"47":{"position":[[1376,14]]}}}],["symbol.scale.y",{"_index":471,"t":{"47":{"position":[[1393,14]]}}}],["symbol.width",{"_index":473,"t":{"47":{"position":[[1433,13],[1514,13]]}}}],["symbol.x",{"_index":475,"t":{"47":{"position":[[1477,8]]}}}],["symbol.y",{"_index":469,"t":{"47":{"position":[[1348,8]]}}}],["symbol_size",{"_index":432,"t":{"47":{"position":[[388,11],[1363,12],[1447,11],[1731,11],[2023,11],[4128,11],[4142,12],[4178,12],[4444,11]]}}}],["symbols",{"_index":439,"t":{"47":{"position":[[506,8],[1007,8],[1175,7]]}}}],["t",{"_index":295,"t":{"41":{"position":[[1975,2],[2215,1],[2234,1],[2238,2],[2252,1],[2313,2]]},"47":{"position":[[5099,1],[5519,2],[5541,2],[5551,2],[5695,3],[5705,1],[5709,1],[5729,1]]},"93":{"position":[[2181,1],[2250,4]]},"99":{"position":[[2150,1],[2199,1]]},"129":{"position":[[1998,1],[2047,1]]}}}],["t+=d.x*0.5;//jump",{"_index":1843,"t":{"99":{"position":[[2235,17]]},"129":{"position":[[2083,17]]}}}],["t.change",{"_index":628,"t":{"47":{"position":[[5250,10]]}}}],["t.change(t",{"_index":629,"t":{"47":{"position":[[5261,12]]}}}],["t.complete",{"_index":630,"t":{"47":{"position":[[5329,12]]}}}],["t.complete(t",{"_index":631,"t":{"47":{"position":[[5342,14]]}}}],["t.easing(phase",{"_index":627,"t":{"47":{"position":[[5229,17]]}}}],["t.object[t.property",{"_index":624,"t":{"47":{"position":[[5169,20],[5293,20]]}}}],["t.start",{"_index":622,"t":{"47":{"position":[[5149,8]]}}}],["t.target",{"_index":626,"t":{"47":{"position":[[5219,9],[5316,9]]}}}],["t.time",{"_index":623,"t":{"47":{"position":[[5160,8]]}}}],["t/150",{"_index":1853,"t":{"99":{"position":[[2469,7]]},"129":{"position":[[2317,7]]}}}],["t2",{"_index":299,"t":{"41":{"position":[[2229,2],[2256,3],[2281,2],[2308,2],[2340,3],[2359,3]]}}}],["t2']).then(setup",{"_index":320,"t":{"43":{"position":[[499,19]]}}}],["t3",{"_index":300,"t":{"41":{"position":[[2247,2],[2272,2],[2298,3],[2331,2],[2353,3]]}}}],["take",{"_index":417,"t":{"45":{"position":[[1163,4]]}}}],["takes",{"_index":2291,"t":{"127":{"position":[[1911,5]]}}}],["takescreenshot",{"_index":378,"t":{"45":{"position":[[285,16],[614,16]]}}}],["tangentfactor",{"_index":296,"t":{"41":{"position":[[1978,14],[1998,14],[2023,13],[2092,14],[2133,14]]}}}],["tap",{"_index":1101,"t":{"65":{"position":[[1119,3]]},"103":{"position":[[1238,3]]},"117":{"position":[[1358,3]]}}}],["target",{"_index":554,"t":{"47":{"position":[[3327,6],[3435,7],[4708,7],[4826,7]]},"49":{"position":[[975,6],[5483,6]]},"87":{"position":[[399,9],[1332,7]]},"99":{"position":[[1821,6],[1918,6]]},"119":{"position":[[528,6]]},"129":{"position":[[1669,6],[1766,6]]}}}],["target.x",{"_index":2199,"t":{"119":{"position":[[583,8],[706,9],[792,9]]}}}],["target.y",{"_index":2200,"t":{"119":{"position":[[627,8],[743,9]]}}}],["targetname",{"_index":1439,"t":{"87":{"position":[[1173,10],[1343,17]]}}}],["temp",{"_index":2819,"t":{"177":{"position":[[1841,4],[1912,5]]}}}],["temporary",{"_index":1491,"t":{"89":{"position":[[907,9]]},"173":{"position":[[579,9]]}}}],["test",{"_index":50,"t":{"39":{"position":[[498,4]]}}}],["testforaabb(greensquare",{"_index":220,"t":{"39":{"position":[[4931,25]]}}}],["testforaabb(object1",{"_index":58,"t":{"39":{"position":[[572,20]]}}}],["testing",{"_index":1062,"t":{"63":{"position":[[2098,7]]},"73":{"position":[[1943,7]]}}}],["teximage2d",{"_index":2718,"t":{"173":{"position":[[99,10]]}}}],["texin",{"_index":2294,"t":{"127":{"position":[[2085,6],[2383,6]]}}}],["texnoise",{"_index":2347,"t":{"127":{"position":[[4490,9],[4781,9]]}}}],["texripple",{"_index":2346,"t":{"127":{"position":[[4461,10],[4755,10]]}}}],["text",{"_index":493,"t":{"47":{"position":[[2088,4],[2691,4]]},"99":{"position":[[525,4]]},"167":{"position":[[188,4],[678,4]]},"169":{"position":[[728,4],[801,4]]},"179":{"position":[[1519,4]]}}}],["text.anchor.set(0.5",{"_index":1774,"t":{"99":{"position":[[591,20]]}}}],["text.position.set(app.renderer.screen.width",{"_index":1775,"t":{"99":{"position":[[618,43]]}}}],["text.x",{"_index":2861,"t":{"179":{"position":[[1656,6]]}}}],["text.y",{"_index":2862,"t":{"179":{"position":[[1673,6]]}}}],["text/javascript",{"_index":2674,"t":{"169":{"position":[[536,18]]}}}],["text1",{"_index":1275,"t":{"79":{"position":[[2387,5],[2933,6]]},"165":{"position":[[554,5]]}}}],["text1.x",{"_index":1277,"t":{"79":{"position":[[2429,7]]}}}],["text1.y",{"_index":1279,"t":{"79":{"position":[[2459,7]]}}}],["text2",{"_index":1282,"t":{"79":{"position":[[2496,5],[2940,6]]},"165":{"position":[[663,5]]}}}],["text2.x",{"_index":1284,"t":{"79":{"position":[[2538,7]]}}}],["text2.y",{"_index":1287,"t":{"79":{"position":[[2568,7]]},"165":{"position":[[995,7]]}}}],["text3",{"_index":1289,"t":{"79":{"position":[[2605,5],[2947,6]]},"165":{"position":[[766,5]]}}}],["text3.x",{"_index":1291,"t":{"79":{"position":[[2643,7]]}}}],["text3.y",{"_index":1293,"t":{"79":{"position":[[2673,7]]},"165":{"position":[[1010,7]]}}}],["text4",{"_index":1294,"t":{"79":{"position":[[2710,5],[2954,6]]},"165":{"position":[[888,5]]}}}],["text4.x",{"_index":1295,"t":{"79":{"position":[[2759,7]]}}}],["text4.y",{"_index":1297,"t":{"79":{"position":[[2789,7]]},"165":{"position":[[1025,7]]}}}],["textsample",{"_index":2679,"t":{"169":{"position":[[765,10]]}}}],["textsample.position.set(50",{"_index":2682,"t":{"169":{"position":[[918,27]]}}}],["texture",{"_index":237,"t":{"41":{"position":[[160,7]]},"43":{"position":[[144,8]]},"45":{"position":[[157,7]]},"47":{"position":[[4225,8]]},"51":{"position":[[137,7]]},"53":{"position":[[230,7],[350,7]]},"55":{"position":[[599,7],[677,7]]},"57":{"position":[[913,7],[1590,7]]},"59":{"position":[[478,8],[496,9],[548,8]]},"61":{"position":[[320,8],[420,7]]},"67":{"position":[[236,7],[250,7]]},"69":{"position":[[589,7]]},"73":{"position":[[425,7]]},"83":{"position":[[161,7],[194,7]]},"99":{"position":[[185,8]]},"109":{"position":[[1131,8],[1690,8],[2160,7],[2264,8]]},"115":{"position":[[739,7]]},"127":{"position":[[882,7],[1653,7]]},"147":{"position":[[414,7],[428,7]]},"149":{"position":[[384,7],[496,8]]},"151":{"position":[[334,7]]},"157":{"position":[[176,7],[363,7],[802,7],[841,7]]},"159":{"position":[[138,7],[171,7],[280,8],[419,8]]},"161":{"position":[[1167,7],[1193,7],[1300,7]]},"173":{"position":[[46,7],[619,7]]},"175":{"position":[[226,7]]},"177":{"position":[[499,7],[1933,7],[2108,7],[2141,7]]},"179":{"position":[[250,10],[506,8],[1271,7]]}}}],["texture.basetexture.scalemode",{"_index":1351,"t":{"83":{"position":[[291,29]]}}}],["texture.frame.height",{"_index":2832,"t":{"179":{"position":[[388,21],[444,20]]}}}],["texture.frame.width",{"_index":2831,"t":{"179":{"position":[[366,19],[467,20]]}}}],["texture.frame.y",{"_index":2836,"t":{"179":{"position":[[564,16]]}}}],["texture2d(noise",{"_index":1796,"t":{"99":{"position":[[1293,16]]},"127":{"position":[[2902,16]]},"129":{"position":[[1212,16]]}}}],["texture2d(texin",{"_index":2296,"t":{"127":{"position":[[2236,16]]}}}],["texture2d(texnoise",{"_index":2351,"t":{"127":{"position":[[4618,19]]}}}],["texture2d(texripple",{"_index":2350,"t":{"127":{"position":[[4577,20]]}}}],["texture2d(texwave",{"_index":2353,"t":{"127":{"position":[[4657,18]]}}}],["texture2d(usampler",{"_index":1800,"t":{"99":{"position":[[1349,19]]}}}],["texture2d(usampler2",{"_index":2245,"t":{"123":{"position":[[921,20]]},"125":{"position":[[1313,20]]},"131":{"position":[[796,20],[1345,20]]},"143":{"position":[[1089,20]]},"145":{"position":[[934,20]]}}}],["texture2d(usamplertexture",{"_index":2413,"t":{"133":{"position":[[868,26]]}}}],["texturebutton",{"_index":1311,"t":{"81":{"position":[[755,13],[2039,14],[2259,14]]},"85":{"position":[[419,13],[2134,14],[2354,14]]}}}],["texturebuttondown",{"_index":1313,"t":{"81":{"position":[[836,17],[1880,18]]},"85":{"position":[[500,17],[1975,18]]}}}],["texturebuttonover",{"_index":1315,"t":{"81":{"position":[[926,17],[1996,18],[2148,18]]},"85":{"position":[[590,17],[2091,18],[2243,18]]}}}],["texturepromise",{"_index":1007,"t":{"61":{"position":[[204,14]]}}}],["texturepromise.then((resolvedtexture",{"_index":1008,"t":{"61":{"position":[[329,37]]}}}],["textures",{"_index":991,"t":{"59":{"position":[[642,8]]},"65":{"position":[[675,8]]},"77":{"position":[[171,9]]},"81":{"position":[[721,8]]},"85":{"position":[[385,8]]},"127":{"position":[[1569,8],[5725,9]]},"149":{"position":[[274,8],[289,8]]},"151":{"position":[[255,8]]},"153":{"position":[[255,8]]},"177":{"position":[[222,11],[248,8]]},"179":{"position":[[224,8],[239,8]]}}}],["textures.push",{"_index":2482,"t":{"149":{"position":[[480,15]]}}}],["textures.push(rotatedtexture",{"_index":2846,"t":{"179":{"position":[[971,30]]}}}],["texturespromise",{"_index":987,"t":{"59":{"position":[[390,15]]}}}],["texturespromise.then((textures",{"_index":990,"t":{"59":{"position":[[557,31]]}}}],["texwave",{"_index":2348,"t":{"127":{"position":[[4518,8],[4805,8]]}}}],["that'll",{"_index":1495,"t":{"89":{"position":[[1034,7]]}}}],["that's",{"_index":2744,"t":{"173":{"position":[[1202,6]]}}}],["the\\ncustom",{"_index":2681,"t":{"169":{"position":[[812,11]]}}}],["then((res",{"_index":1696,"t":{"95":{"position":[[456,11]]}}}],["then(onassetsloaded",{"_index":429,"t":{"47":{"position":[[333,24]]},"65":{"position":[[228,22]]}}}],["then(onloaded",{"_index":1698,"t":{"95":{"position":[[483,16]]}}}],["there's",{"_index":1996,"t":{"107":{"position":[[1024,7]]}}}],["thing",{"_index":2110,"t":{"111":{"position":[[1312,5]]},"117":{"position":[[1021,5],[1179,6],[1276,6]]}}}],["thing.beginfill(0x8bc5ff",{"_index":2187,"t":{"117":{"position":[[1775,25]]}}}],["thing.beginfill(0xffff00",{"_index":2120,"t":{"111":{"position":[[1894,25]]}}}],["thing.clear",{"_index":2118,"t":{"111":{"position":[[1845,14]]},"117":{"position":[[1760,14]]}}}],["thing.closepath",{"_index":2124,"t":{"111":{"position":[[2282,18]]}}}],["thing.linestyle(0",{"_index":2184,"t":{"117":{"position":[[1142,19]]}}}],["thing.linestyle(10",{"_index":2119,"t":{"111":{"position":[[1860,19]]}}}],["thing.lineto",{"_index":2123,"t":{"111":{"position":[[2139,13],[2210,13]]},"117":{"position":[[2020,13]]}}}],["thing.lineto(120",{"_index":2122,"t":{"111":{"position":[[1998,16],[2069,16]]},"117":{"position":[[1879,16],[1950,16]]}}}],["thing.moveto",{"_index":2121,"t":{"111":{"position":[[1926,13]]},"117":{"position":[[1807,13]]}}}],["thing.rotation",{"_index":2125,"t":{"111":{"position":[[2301,14]]},"117":{"position":[[2091,14]]}}}],["thing.x",{"_index":2112,"t":{"111":{"position":[[1368,7]]},"117":{"position":[[1077,7]]}}}],["thing.y",{"_index":2113,"t":{"111":{"position":[[1387,7]]},"117":{"position":[[1109,7]]}}}],["third",{"_index":2319,"t":{"127":{"position":[[3348,5]]}}}],["this._bounds.addframematrix",{"_index":1540,"t":{"89":{"position":[[2208,28]]}}}],["this.addeventlistener(event",{"_index":1522,"t":{"89":{"position":[[1799,28]]}}}],["this.alpha",{"_index":1349,"t":{"81":{"position":[[1899,10]]},"83":{"position":[[1683,10]]},"85":{"position":[[1994,10]]}}}],["this.boundary",{"_index":1497,"t":{"89":{"position":[[1091,13]]}}}],["this.boundary.copymousedata",{"_index":1505,"t":{"89":{"position":[[1223,27]]}}}],["this.boundary.cursor",{"_index":1527,"t":{"89":{"position":[[1941,21]]}}}],["this.boundary.hittest(point.x",{"_index":1548,"t":{"89":{"position":[[2400,32]]}}}],["this.boundary.hittest(to.global.x",{"_index":1517,"t":{"89":{"position":[[1578,34]]}}}],["this.boundary.mapevent(e",{"_index":1524,"t":{"89":{"position":[[1835,27]]}}}],["this.content",{"_index":1490,"t":{"89":{"position":[[867,12]]}}}],["this.content.disabletempparent(null",{"_index":1569,"t":{"89":{"position":[[3233,37]]}}}],["this.content.enabletempparent",{"_index":1567,"t":{"89":{"position":[[3168,32]]}}}],["this.content.getbounds",{"_index":1539,"t":{"89":{"position":[[2182,25]]}}}],["this.content.render(renderer",{"_index":1562,"t":{"89":{"position":[[2883,30]]}}}],["this.content.updatetransform",{"_index":1568,"t":{"89":{"position":[[3201,31]]}}}],["this.data",{"_index":1384,"t":{"83":{"position":[[1659,9]]}}}],["this.eventmode",{"_index":1525,"t":{"89":{"position":[[1867,14]]}}}],["this.isdown",{"_index":1347,"t":{"81":{"position":[[1845,11],[1941,11],[2107,13],[2218,13]]},"85":{"position":[[1940,11],[2036,11],[2202,13],[2313,13]]}}}],["this.isover",{"_index":1350,"t":{"81":{"position":[[1965,13],[2084,11],[2194,11]]},"85":{"position":[[2060,13],[2179,11],[2289,11]]}}}],["this.originaltransform",{"_index":1493,"t":{"89":{"position":[[968,22]]}}}],["this.texture",{"_index":1348,"t":{"81":{"position":[[1865,12],[1981,12],[2024,12],[2133,12],[2244,12]]},"85":{"position":[[1960,12],[2076,12],[2119,12],[2228,12],[2339,12]]}}}],["this.tint",{"_index":1298,"t":{"79":{"position":[[2985,9],[3036,9],[3086,9]]}}}],["this.worldtransform",{"_index":1541,"t":{"89":{"position":[[2237,20]]}}}],["this.worldtransform.applyinverse(to.global",{"_index":1511,"t":{"89":{"position":[[1430,43]]}}}],["through",{"_index":1055,"t":{"63":{"position":[[1773,7]]},"69":{"position":[[1654,7]]},"73":{"position":[[1623,7]]},"89":{"position":[[1904,7],[2116,7],[2348,7]]}}}],["throw",{"_index":1533,"t":{"89":{"position":[[2036,5]]}}}],["tick",{"_index":801,"t":{"49":{"position":[[8396,4]]},"69":{"position":[[1610,4],[2379,4]]}}}],["ticker",{"_index":1156,"t":{"69":{"position":[[2372,6]]}}}],["tiling",{"_index":2545,"t":{"159":{"position":[[249,6]]}}}],["tilingsprite",{"_index":2550,"t":{"159":{"position":[[381,12]]}}}],["tilingsprite.tileposition.x",{"_index":2555,"t":{"159":{"position":[[652,27]]}}}],["tilingsprite.tileposition.y",{"_index":2556,"t":{"159":{"position":[[686,27]]}}}],["tilingsprite.tilescale.x",{"_index":2553,"t":{"159":{"position":[[556,24]]}}}],["tilingsprite.tilescale.y",{"_index":2554,"t":{"159":{"position":[[604,24]]}}}],["time",{"_index":557,"t":{"47":{"position":[[3375,4],[3443,5],[3820,4],[4716,5],[4842,5]]},"57":{"position":[[1337,4],[1368,4]]},"63":{"position":[[1226,4]]},"69":{"position":[[1027,4]]},"73":{"position":[[1079,4]]},"97":{"position":[[802,5]]},"99":{"position":[[1050,5],[2821,5]]},"127":{"position":[[3470,5],[4045,5],[5438,4],[5476,4],[5584,5],[5622,5]]},"129":{"position":[[969,5],[2485,5],[2904,4],[2942,4],[2986,5]]},"145":{"position":[[899,5],[967,5],[1104,5]]},"149":{"position":[[429,4],[505,4]]},"173":{"position":[[1078,4]]}}}],["time*0.25)*amplitude",{"_index":2329,"t":{"127":{"position":[[3712,22]]}}}],["time+cos(time)+2",{"_index":1827,"t":{"99":{"position":[[1850,18]]},"129":{"position":[[1698,18]]}}}],["timer",{"_index":1166,"t":{"71":{"position":[[472,5],[685,8]]}}}],["title",{"_index":1404,"t":{"87":{"position":[[231,5]]},"93":{"position":[[1192,5],[1204,5]]}}}],["title.anchor.set(0.5",{"_index":1671,"t":{"93":{"position":[[1417,21]]}}}],["title.roundpixels",{"_index":1669,"t":{"93":{"position":[[1351,17]]}}}],["title.x",{"_index":1414,"t":{"87":{"position":[[432,7]]},"93":{"position":[[1377,7]]}}}],["title.y",{"_index":1670,"t":{"93":{"position":[[1403,7]]}}}],["to.global",{"_index":1512,"t":{"89":{"position":[[1474,11]]}}}],["to.global.y",{"_index":1518,"t":{"89":{"position":[[1613,13]]}}}],["to.target",{"_index":1516,"t":{"89":{"position":[[1566,9]]}}}],["todo",{"_index":1513,"t":{"89":{"position":[[1489,5]]}}}],["toggling",{"_index":924,"t":{"55":{"position":[[586,8]]}}}],["tomousedirection",{"_index":199,"t":{"39":{"position":[[4200,16]]}}}],["tomousedirection.x",{"_index":209,"t":{"39":{"position":[[4437,19]]}}}],["tomousedirection.y",{"_index":208,"t":{"39":{"position":[[4417,19]]}}}],["top",{"_index":481,"t":{"47":{"position":[[1648,3],[1850,3]]},"49":{"position":[[1152,3],[1701,3],[1808,3],[5721,3],[6651,3],[6823,3]]},"87":{"position":[[1265,3]]}}}],["top.addchild(headertext",{"_index":538,"t":{"47":{"position":[[2884,25]]}}}],["top.beginfill(0",{"_index":488,"t":{"47":{"position":[[1877,16]]}}}],["top.drawrect(0",{"_index":489,"t":{"47":{"position":[[1898,15]]}}}],["totaldudes",{"_index":1017,"t":{"63":{"position":[[429,10],[466,11]]},"73":{"position":[[181,10],[218,11]]}}}],["totalsprites",{"_index":1133,"t":{"69":{"position":[[350,12],[438,13]]}}}],["totaltime",{"_index":1777,"t":{"99":{"position":[[730,9],[3006,10],[3017,9]]}}}],["touch",{"_index":1100,"t":{"65":{"position":[[1113,5]]},"77":{"position":[[574,5],[689,5],[782,5]]},"83":{"position":[[680,5],[1000,5],[1650,5]]},"85":{"position":[[1054,5],[1513,5]]}}}],["towards",{"_index":894,"t":{"51":{"position":[[2128,7],[2161,7]]}}}],["track",{"_index":1382,"t":{"83":{"position":[[1612,5]]},"161":{"position":[[997,5]]},"173":{"position":[[1110,5]]}}}],["trail",{"_index":246,"t":{"41":{"position":[[338,5],[415,5]]}}}],["trailtexture",{"_index":239,"t":{"41":{"position":[[184,12]]}}}],["transform",{"_index":1125,"t":{"67":{"position":[[896,9]]},"89":{"position":[[957,10],[3113,9]]},"147":{"position":[[1074,9]]}}}],["transformation",{"_index":2539,"t":{"155":{"position":[[640,14]]}}}],["transforms",{"_index":1471,"t":{"89":{"position":[[422,10]]}}}],["translationmatrix",{"_index":2221,"t":{"121":{"position":[[1109,18],[1245,17]]},"123":{"position":[[616,18],[751,17]]},"125":{"position":[[1008,18],[1143,17]]},"127":{"position":[[658,18],[793,17]]},"129":{"position":[[607,18],[742,17]]},"131":{"position":[[491,18],[626,17],[1040,18],[1175,17]]},"133":{"position":[[557,18],[692,17]]},"139":{"position":[[332,18],[435,17]]},"141":{"position":[[577,18],[718,17]]},"143":{"position":[[704,18],[877,17]]},"145":{"position":[[588,18],[723,17]]}}}],["travelling",{"_index":210,"t":{"39":{"position":[[4505,10]]}}}],["triangle",{"_index":2401,"t":{"131":{"position":[[1597,8],[1837,10]]},"133":{"position":[[914,8],[1567,10]]},"139":{"position":[[595,8]]},"141":{"position":[[892,8]]},"143":{"position":[[1314,8]]}}}],["triangle.position.set(400",{"_index":2403,"t":{"131":{"position":[[1693,26]]},"133":{"position":[[1378,26]]},"139":{"position":[[639,26]]},"141":{"position":[[936,26]]},"143":{"position":[[1358,26]]}}}],["triangle.rotation",{"_index":2408,"t":{"131":{"position":[[1876,17]]},"133":{"position":[[1606,17]]},"139":{"position":[[730,17]]},"141":{"position":[[1050,17]]},"143":{"position":[[1472,17]]}}}],["triangle.scale.set(2",{"_index":2404,"t":{"131":{"position":[[1726,22]]},"133":{"position":[[1411,22]]},"141":{"position":[[969,22]]},"143":{"position":[[1391,22]]}}}],["triangle2",{"_index":2402,"t":{"131":{"position":[[1647,9]]},"133":{"position":[[1072,9],[1556,10]]}}}],["triangle2.position.set(200",{"_index":2418,"t":{"133":{"position":[[1434,27]]}}}],["triangle2.position.set(500",{"_index":2405,"t":{"131":{"position":[[1749,27]]}}}],["triangle2.rotation",{"_index":2409,"t":{"131":{"position":[[1903,18]]},"133":{"position":[[1633,18]]}}}],["triangle2.scale.set(3",{"_index":2406,"t":{"131":{"position":[[1783,23]]}}}],["triangle3",{"_index":2416,"t":{"133":{"position":[[1225,9]]}}}],["triangle3.position.set(500",{"_index":2419,"t":{"133":{"position":[[1468,27]]}}}],["triangle3.rotation",{"_index":2422,"t":{"133":{"position":[[1661,18]]}}}],["triangle3.scale.set(3",{"_index":2420,"t":{"133":{"position":[[1502,23]]}}}],["triangles",{"_index":2229,"t":{"121":{"position":[[1413,9]]}}}],["triangles.position.set(400",{"_index":2231,"t":{"121":{"position":[[1458,27]]}}}],["triangles.rotation",{"_index":2233,"t":{"121":{"position":[[1551,18]]}}}],["trigger",{"_index":2557,"t":{"161":{"position":[[188,7]]}}}],["trim",{"_index":2837,"t":{"179":{"position":[[594,4],[719,5],[925,5]]}}}],["true",{"_index":370,"t":{"43":{"position":[[1907,5]]},"47":{"position":[[2297,5],[2413,5],[3209,5]]},"51":{"position":[[626,6]]},"55":{"position":[[623,5]]},"69":{"position":[[185,5],[201,5],[217,5],[228,5],[241,5]]},"81":{"position":[[1859,5],[2098,5]]},"85":{"position":[[1954,5],[2193,5]]},"87":{"position":[[155,5]]},"89":{"position":[[294,5]]},"91":{"position":[[172,5]]},"93":{"position":[[79,5],[1371,5]]},"103":{"position":[[1089,5]]},"105":{"position":[[1700,5]]},"109":{"position":[[79,5]]},"111":{"position":[[79,5]]},"113":{"position":[[111,5]]},"117":{"position":[[79,5]]},"121":{"position":[[236,5],[532,4],[666,4]]},"157":{"position":[[164,5]]},"167":{"position":[[476,5],[592,5],[878,5]]},"169":{"position":[[566,7]]},"171":{"position":[[217,5]]},"173":{"position":[[1507,5],[1563,5]]},"177":{"position":[[2123,6]]}}}],["turn",{"_index":1915,"t":{"103":{"position":[[1245,4]]},"117":{"position":[[1365,4]]}}}],["tween",{"_index":609,"t":{"47":{"position":[[4760,5],[4939,6]]}}}],["tweening",{"_index":599,"t":{"47":{"position":[[4551,8],[4616,8],[4658,8]]}}}],["tweening.length",{"_index":618,"t":{"47":{"position":[[5069,16]]}}}],["tweening.push(tween",{"_index":616,"t":{"47":{"position":[[4910,21]]}}}],["tweening.splice(tweening.indexof(remove[i",{"_index":634,"t":{"47":{"position":[[5419,44]]}}}],["tweening[i",{"_index":619,"t":{"47":{"position":[[5103,12]]}}}],["tweenjs",{"_index":641,"t":{"47":{"position":[[5581,8]]}}}],["tweento(object",{"_index":604,"t":{"47":{"position":[[4682,15]]}}}],["tweento(r",{"_index":560,"t":{"47":{"position":[[3412,10]]}}}],["twist",{"_index":2821,"t":{"177":{"position":[[1982,5]]}}}],["two",{"_index":47,"t":{"39":{"position":[[459,3],[541,3],[1792,3],[4902,3]]},"49":{"position":[[8613,3]]},"159":{"position":[[368,3]]},"177":{"position":[[211,3]]}}}],["type",{"_index":1437,"t":{"87":{"position":[[1152,4],[1318,7],[1398,4],[1425,4]]}}}],["u",{"_index":2236,"t":{"123":{"position":[[374,2],[388,2],[409,2]]},"125":{"position":[[374,2],[388,2],[409,2],[733,2],[747,2],[762,2]]},"127":{"position":[[394,2],[408,2],[429,2]]},"129":{"position":[[393,2],[407,2],[428,2]]},"131":{"position":[[331,2],[345,2],[361,2]]},"133":{"position":[[363,2],[377,2],[392,2]]},"143":{"position":[[503,2],[517,2],[532,2]]},"145":{"position":[[374,2],[388,2],[409,2]]}}}],["ua",{"_index":830,"t":{"49":{"position":[[9055,2],[9242,3],[9253,2],[9382,2],[9413,2]]}}}],["ub",{"_index":831,"t":{"49":{"position":[[9129,2],[9263,2],[9273,2]]}}}],["under",{"_index":2571,"t":{"161":{"position":[[776,5]]}}}],["underlying",{"_index":1752,"t":{"97":{"position":[[1023,10]]}}}],["uniform",{"_index":1730,"t":{"97":{"position":[[572,7],[718,7],[738,7],[762,7],[788,7]]},"99":{"position":[[983,7],[1011,7],[1036,7]]},"121":{"position":[[1096,7],[1128,7]]},"123":{"position":[[603,7],[635,7],[863,7]]},"125":{"position":[[995,7],[1027,7],[1255,7]]},"127":{"position":[[645,7],[677,7],[1098,7],[2024,7],[2046,7],[2067,7],[2828,7],[2849,7],[3431,7],[3456,7],[4443,7],[4472,7],[4500,7]]},"129":{"position":[[594,7],[626,7],[930,7],[955,7]]},"131":{"position":[[478,7],[510,7],[738,7],[1027,7],[1059,7],[1287,7]]},"133":{"position":[[544,7],[576,7],[804,7]]},"139":{"position":[[319,7],[351,7]]},"141":{"position":[[564,7],[596,7]]},"143":{"position":[[691,7],[723,7],[1031,7]]},"145":{"position":[[575,7],[607,7],[856,7],[885,7]]}}}],["uniforms",{"_index":1709,"t":{"95":{"position":[[727,8]]},"129":{"position":[[2406,8],[2744,10]]},"143":{"position":[[1147,8],[1297,10]]},"145":{"position":[[1012,8],[1172,10]]}}}],["uniforms.noise.basetexture.mipmap",{"_index":2391,"t":{"129":{"position":[[2611,33]]}}}],["uniforms.noise.basetexture.wrapmode",{"_index":2390,"t":{"129":{"position":[[2549,35]]}}}],["until",{"_index":967,"t":{"57":{"position":[[1283,5]]}}}],["up",{"_index":1830,"t":{"99":{"position":[[1938,2],[2019,3],[2069,3]]},"129":{"position":[[1786,2],[1867,3],[1917,3]]},"177":{"position":[[1993,3]]}}}],["update",{"_index":159,"t":{"39":{"position":[[2740,6],[3807,6]]},"41":{"position":[[1104,6],[1165,6],[1305,6]]},"47":{"position":[[3612,7],[3651,6],[3733,6],[3961,6],[4970,7]]},"49":{"position":[[904,6],[2817,6],[2878,6],[3649,6],[5411,6],[8005,6],[8353,6]]},"51":{"position":[[1173,6]]},"63":{"position":[[1795,6]]},"67":{"position":[[795,6]]},"69":{"position":[[1678,6]]},"71":{"position":[[461,6]]},"73":{"position":[[1645,6]]},"87":{"position":[[1624,6]]},"93":{"position":[[1806,6]]},"95":{"position":[[900,6]]},"99":{"position":[[2947,7]]},"107":{"position":[[970,6]]},"147":{"position":[[973,6]]},"155":{"position":[[482,6]]}}}],["updates",{"_index":1565,"t":{"89":{"position":[[3095,7]]}}}],["updatetransform",{"_index":1564,"t":{"89":{"position":[[3074,15],[3123,17]]}}}],["upload",{"_index":2720,"t":{"173":{"position":[[136,6],[1056,6]]}}}],["upload(renderer",{"_index":2729,"t":{"173":{"position":[[431,16]]}}}],["uploaded",{"_index":2733,"t":{"173":{"position":[[630,8]]}}}],["url",{"_index":16,"t":{"39":{"position":[[87,3]]},"45":{"position":[[322,3],[479,4]]}}}],["url(\\'https://pixijs.com/assets/bunny.png\\'),auto",{"_index":1304,"t":{"81":{"position":[[192,52]]}}}],["url(\\'https://pixijs.com/assets/bunny_saturated.png\\'),auto",{"_index":1306,"t":{"81":{"position":[[263,62]]}}}],["us/docs/web/api/canvasrenderingcontext2d/createlineargradient",{"_index":2688,"t":{"171":{"position":[[109,61]]}}}],["usampler",{"_index":1785,"t":{"99":{"position":[[1001,9]]}}}],["usampler2",{"_index":2244,"t":{"123":{"position":[[881,10],[957,10]]},"125":{"position":[[1273,10],[1349,10]]},"131":{"position":[[756,10],[831,10],[1305,10],[1508,10]]},"143":{"position":[[1049,10],[1160,10]]},"145":{"position":[[874,10],[1025,10]]}}}],["usamplertexture",{"_index":2412,"t":{"133":{"position":[[822,16],[976,16],[1135,16],[1288,16]]}}}],["use",{"_index":202,"t":{"39":{"position":[[4327,3]]},"67":{"position":[[858,3]]},"77":{"position":[[673,3]]},"85":{"position":[[1317,3],[1509,3]]},"89":{"position":[[2007,3]]},"95":{"position":[[786,3]]},"99":{"position":[[773,3]]},"127":{"position":[[515,3]]},"147":{"position":[[1036,3]]},"171":{"position":[[538,3]]},"173":{"position":[[1098,3]]}}}],["used",{"_index":874,"t":{"51":{"position":[[1280,4]]},"53":{"position":[[170,4]]},"63":{"position":[[1180,4]]},"69":{"position":[[979,4]]},"73":{"position":[[1033,4]]},"79":{"position":[[714,4]]},"89":{"position":[[193,4]]},"99":{"position":[[144,4],[2298,4]]},"129":{"position":[[2146,4],[2525,4]]},"161":{"position":[[180,4]]},"173":{"position":[[1116,4]]},"177":{"position":[[265,4],[1631,4]]}}}],["useful",{"_index":2568,"t":{"161":{"position":[[717,6]]}}}],["user",{"_index":968,"t":{"57":{"position":[[1318,4],[1894,4]]},"93":{"position":[[916,4]]}}}],["uses",{"_index":1018,"t":{"63":{"position":[[513,4]]},"73":{"position":[[265,4]]},"97":{"position":[[543,4]]},"171":{"position":[[46,4]]},"177":{"position":[[483,4]]}}}],["using",{"_index":360,"t":{"43":{"position":[[1540,5]]},"65":{"position":[[790,5]]},"83":{"position":[[1006,5]]},"89":{"position":[[400,5],[719,5]]},"93":{"position":[[921,5]]},"147":{"position":[[86,5]]},"157":{"position":[[353,5]]},"161":{"position":[[1284,5]]},"169":{"position":[[733,5],[806,5]]},"179":{"position":[[1257,5]]}}}],["usseful",{"_index":2737,"t":{"173":{"position":[[1045,7]]}}}],["utility",{"_index":600,"t":{"47":{"position":[[4560,7]]}}}],["uv",{"_index":1821,"t":{"99":{"position":[[1716,2],[1764,2],[1773,2]]},"127":{"position":[[1167,2],[1216,2],[2137,2],[2206,2],[2253,4],[3499,2],[3548,2]]},"129":{"position":[[1583,2],[1612,2],[1621,2]]}}}],["uv.x",{"_index":1837,"t":{"99":{"position":[[2064,4]]},"129":{"position":[[1912,4]]}}}],["uv.x*0.25",{"_index":2328,"t":{"127":{"position":[[3701,10]]}}}],["uv.y",{"_index":1838,"t":{"99":{"position":[[2075,4]]},"129":{"position":[[1923,4]]}}}],["uvs",{"_index":1129,"t":{"69":{"position":[[223,4]]},"179":{"position":[[805,4]]}}}],["v",{"_index":2237,"t":{"123":{"position":[[377,1],[391,1],[412,1]]},"125":{"position":[[377,1],[391,1],[412,1],[736,1],[750,1],[765,1]]},"127":{"position":[[397,1],[411,1],[432,1]]},"129":{"position":[[396,1],[410,1],[431,1]]},"131":{"position":[[334,1],[348,1],[364,1]]},"133":{"position":[[366,1],[380,1],[395,1]]},"143":{"position":[[506,1],[520,1],[535,1]]},"145":{"position":[[377,1],[391,1],[412,1]]}}}],["v5",{"_index":1727,"t":{"97":{"position":[[518,2]]},"173":{"position":[[43,2]]}}}],["val",{"_index":2517,"t":{"153":{"position":[[339,3]]}}}],["value",{"_index":1993,"t":{"107":{"position":[[987,6]]}}}],["values",{"_index":266,"t":{"41":{"position":[[1182,6]]},"81":{"position":[[1656,9]]},"85":{"position":[[1751,9]]},"107":{"position":[[1134,6]]}}}],["varying",{"_index":1735,"t":{"97":{"position":[[690,7]]},"99":{"position":[[955,7]]},"121":{"position":[[1159,7],[1336,7]]},"123":{"position":[[666,7],[844,7]]},"125":{"position":[[1058,7],[1236,7]]},"127":{"position":[[708,7],[1079,7],[2005,7],[2809,7],[3412,7],[4424,7]]},"129":{"position":[[657,7],[911,7]]},"131":{"position":[[541,7],[719,7],[1090,7],[1268,7]]},"133":{"position":[[607,7],[785,7]]},"141":{"position":[[627,7],[811,7]]},"143":{"position":[[754,7],[773,7],[991,7],[1012,7]]},"145":{"position":[[638,7],[837,7]]}}}],["vcol",{"_index":2223,"t":{"121":{"position":[[1172,5],[1192,4],[1349,5]]}}}],["vcollision",{"_index":83,"t":{"39":{"position":[[1062,10]]}}}],["vcollision.x",{"_index":92,"t":{"39":{"position":[[1313,12]]}}}],["vcollision.y",{"_index":93,"t":{"39":{"position":[[1338,12]]}}}],["vcollisionnorm",{"_index":91,"t":{"39":{"position":[[1280,14]]}}}],["vcollisionnorm.x",{"_index":101,"t":{"39":{"position":[[1545,16],[1707,17]]}}}],["vcollisionnorm.y",{"_index":103,"t":{"39":{"position":[[1586,17],[1735,17]]}}}],["vcolor",{"_index":2464,"t":{"141":{"position":[[640,7],[662,6],[824,7]]},"143":{"position":[[786,7],[821,6],[1004,7]]}}}],["vec2",{"_index":1736,"t":{"97":{"position":[[698,4],[726,4],[822,4]]},"99":{"position":[[963,4],[1211,4],[1470,4],[1481,5],[1711,4],[2217,4]]},"121":{"position":[[1040,4],[1062,4]]},"123":{"position":[[560,4],[592,4],[674,4],[852,4]]},"125":{"position":[[952,4],[984,4],[1066,4],[1244,4]]},"127":{"position":[[602,4],[634,4],[716,4],[1087,4],[1211,4],[1243,4],[2013,4],[2132,4],[2817,4],[3420,4],[3543,4],[4432,4]]},"129":{"position":[[551,4],[583,4],[665,4],[919,4],[1130,4],[1337,4],[1348,5],[1578,4],[2065,4]]},"131":{"position":[[435,4],[467,4],[549,4],[727,4],[984,4],[1016,4],[1098,4],[1276,4]]},"133":{"position":[[501,4],[533,4],[615,4],[793,4]]},"139":{"position":[[297,4]]},"141":{"position":[[519,4]]},"143":{"position":[[625,4],[680,4],[762,4],[1020,4]]},"145":{"position":[[532,4],[564,4],[646,4],[845,4]]}}}],["vec2(0.5",{"_index":2295,"t":{"127":{"position":[[2211,11]]}}}],["vec2(0.5))*2.0",{"_index":2268,"t":{"127":{"position":[[1227,15],[3559,15]]}}}],["vec2(h",{"_index":2386,"t":{"129":{"position":[[1264,6]]}}}],["vec2(h+h2",{"_index":1802,"t":{"99":{"position":[[1394,9]]}}}],["vec2(p.x",{"_index":1797,"t":{"99":{"position":[[1310,9]]},"129":{"position":[[1229,9]]}}}],["vec2(vtexturecoord.x",{"_index":1822,"t":{"99":{"position":[[1721,21]]}}}],["vec2(vuvs.x,1",{"_index":2387,"t":{"129":{"position":[[1588,14]]}}}],["vec3",{"_index":1806,"t":{"99":{"position":[[1436,4],[1459,4],[1499,4],[1519,5],[1645,4],[1654,5],[1781,4],[1816,4],[1892,4],[1933,4],[1988,4],[2034,4],[2123,4],[2190,4],[2360,4],[2428,5]]},"121":{"position":[[1084,4],[1167,4],[1344,4]]},"127":{"position":[[3575,4]]},"129":{"position":[[1303,4],[1326,4],[1366,4],[1386,5],[1512,4],[1521,5],[1629,4],[1664,4],[1740,4],[1781,4],[1836,4],[1882,4],[1971,4],[2038,4],[2208,4],[2276,5]]},"141":{"position":[[551,4],[635,4],[819,4]]},"143":{"position":[[657,4],[781,4],[999,4]]}}}],["vec3(0",{"_index":1832,"t":{"99":{"position":[[1969,8],[2134,9]]},"127":{"position":[[3591,9]]},"129":{"position":[[1817,8],[1982,9]]}}}],["vec3(0.,time",{"_index":1825,"t":{"99":{"position":[[1792,12]]},"129":{"position":[[1640,12]]}}}],["vec3(0.8,0.0",{"_index":1851,"t":{"99":{"position":[[2402,13]]},"129":{"position":[[2250,13]]}}}],["vec3(1.0",{"_index":1850,"t":{"99":{"position":[[2382,9]]},"129":{"position":[[2230,9]]}}}],["vec3(avertexposition",{"_index":2243,"t":{"123":{"position":[[771,21]]},"125":{"position":[[1163,21]]},"127":{"position":[[813,21]]},"129":{"position":[[762,21]]},"131":{"position":[[646,21],[1195,21]]},"133":{"position":[[712,21]]},"139":{"position":[[455,21]]},"141":{"position":[[738,21]]},"143":{"position":[[897,21]]},"145":{"position":[[743,21]]}}}],["vec3(avpos",{"_index":2226,"t":{"121":{"position":[[1265,10]]}}}],["vec3(sin(time)*0.1",{"_index":1826,"t":{"99":{"position":[[1830,19]]},"129":{"position":[[1678,19]]}}}],["vec4",{"_index":1738,"t":{"97":{"position":[[746,4],[770,4],[1066,5]]},"127":{"position":[[1270,4],[1310,4],[1350,4],[2223,4],[4563,4],[4605,4],[4645,4]]}}}],["vec4((projectionmatrix",{"_index":2225,"t":{"121":{"position":[[1220,22]]},"123":{"position":[[726,22]]},"125":{"position":[[1118,22]]},"127":{"position":[[768,22]]},"129":{"position":[[717,22]]},"131":{"position":[[601,22],[1150,22]]},"133":{"position":[[667,22]]},"139":{"position":[[410,22]]},"141":{"position":[[693,22]]},"143":{"position":[[852,22]]},"145":{"position":[[698,22]]}}}],["vec4(0.4",{"_index":2274,"t":{"127":{"position":[[1324,9]]}}}],["vec4(0.8",{"_index":2272,"t":{"127":{"position":[[1284,9]]}}}],["vec4(1.0",{"_index":1748,"t":{"97":{"position":[[941,9]]},"139":{"position":[[557,9]]}}}],["vec4(col",{"_index":1855,"t":{"99":{"position":[[2533,9]]},"129":{"position":[[2381,9]]}}}],["vec4(color",{"_index":2312,"t":{"127":{"position":[[2971,12]]}}}],["vec4(outcolor,1.0",{"_index":2336,"t":{"127":{"position":[[3981,19]]}}}],["vec4(vcol",{"_index":2228,"t":{"121":{"position":[[1384,10]]}}}],["vec4(vcolor",{"_index":2465,"t":{"141":{"position":[[861,12]]},"143":{"position":[[1118,12]]}}}],["vector",{"_index":197,"t":{"39":{"position":[[4139,6]]}}}],["version",{"_index":1769,"t":{"99":{"position":[[209,7],[248,7]]}}}],["vertex",{"_index":1728,"t":{"97":{"position":[[529,6],[596,6]]},"127":{"position":[[500,6]]}}}],["vertexshader",{"_index":1702,"t":{"95":{"position":[[604,14]]}}}],["vertexsrc",{"_index":2258,"t":{"127":{"position":[[553,9]]},"129":{"position":[[502,9]]},"143":{"position":[[576,9]]},"145":{"position":[[483,9]]}}}],["vertice",{"_index":1164,"t":{"71":{"position":[[360,7],[523,7]]}}}],["very",{"_index":597,"t":{"47":{"position":[[4539,4]]},"107":{"position":[[1155,4]]},"171":{"position":[[364,4],[369,4]]}}}],["vfiltercoord",{"_index":1991,"t":{"107":{"position":[[957,12]]}}}],["video",{"_index":2558,"t":{"161":{"position":[[200,5],[700,5],[877,5],[1161,5],[1294,5]]}}}],["videos",{"_index":2572,"t":{"161":{"position":[[796,6],[938,6],[976,6]]}}}],["videosprite",{"_index":2590,"t":{"161":{"position":[[1335,11]]}}}],["videosprite.height",{"_index":2594,"t":{"161":{"position":[[1438,18]]}}}],["videosprite.width",{"_index":2593,"t":{"161":{"position":[[1400,17]]}}}],["view",{"_index":2471,"t":{"147":{"position":[[164,4],[243,5]]}}}],["void",{"_index":1740,"t":{"97":{"position":[[808,4]]},"99":{"position":[[1697,4]]},"121":{"position":[[1178,4],[1355,4]]},"123":{"position":[[685,4],[892,4]]},"125":{"position":[[1077,4],[1284,4]]},"127":{"position":[[727,4],[1118,4],[2092,4],[2874,4],[3476,4],[4527,4]]},"129":{"position":[[676,4],[1564,4]]},"131":{"position":[[560,4],[767,4],[1109,4],[1316,4]]},"133":{"position":[[626,4],[839,4]]},"139":{"position":[[382,4],[528,4]]},"141":{"position":[[648,4],[832,4]]},"143":{"position":[[794,4],[1060,4]]},"145":{"position":[[657,4],[905,4]]}}}],["vrelativevelocity",{"_index":94,"t":{"39":{"position":[[1372,17]]}}}],["vrelativevelocity.x",{"_index":100,"t":{"39":{"position":[[1523,19]]}}}],["vrelativevelocity.y",{"_index":102,"t":{"39":{"position":[[1564,19]]}}}],["vtexturecoord",{"_index":1737,"t":{"97":{"position":[[703,14],[839,13]]},"99":{"position":[[968,14]]}}}],["vtexturecoord).r",{"_index":1801,"t":{"99":{"position":[[1369,17]]}}}],["vtexturecoord.y",{"_index":1823,"t":{"99":{"position":[[1746,17]]}}}],["vuvs",{"_index":2242,"t":{"123":{"position":[[679,5],[699,4],[857,5],[942,4]]},"125":{"position":[[1071,5],[1091,4],[1249,5],[1334,4]]},"127":{"position":[[721,5],[741,4],[1092,5],[1221,5],[2018,5],[2142,5],[2822,5],[3425,5],[3553,5],[4437,5],[4598,6],[4638,6],[4676,6]]},"129":{"position":[[670,5],[690,4],[924,5]]},"131":{"position":[[554,5],[574,4],[732,5],[817,6],[1103,5],[1123,4],[1281,5],[1366,6]]},"133":{"position":[[620,5],[640,4],[798,5],[895,6]]},"143":{"position":[[767,5],[808,4],[1025,5],[1110,5]]},"145":{"position":[[651,5],[671,4],[850,5],[955,4]]}}}],["vuvs).r",{"_index":2310,"t":{"127":{"position":[[2919,8]]}}}],["vuvs.x",{"_index":2466,"t":{"145":{"position":[[975,8]]}}}],["vuvs.y",{"_index":2388,"t":{"129":{"position":[[1603,8]]}}}],["w",{"_index":2833,"t":{"179":{"position":[[416,1],[581,2]]}}}],["wait",{"_index":966,"t":{"57":{"position":[[1273,4]]},"95":{"position":[[360,4]]}}}],["want",{"_index":1381,"t":{"83":{"position":[[1604,4]]}}}],["wanted",{"_index":1766,"t":{"99":{"position":[[169,6]]}}}],["warning",{"_index":1707,"t":{"95":{"position":[[704,7]]}}}],["warpspeed",{"_index":843,"t":{"51":{"position":[[334,9],[1106,9],[1118,9],[1304,10]]}}}],["wave",{"_index":2352,"t":{"127":{"position":[[4650,4]]}}}],["wave,noise.r",{"_index":2355,"t":{"127":{"position":[[4710,14]]}}}],["wavecontainer",{"_index":2341,"t":{"127":{"position":[[4272,13]]}}}],["wavecontainer.addchild(wavequad",{"_index":2342,"t":{"127":{"position":[[4310,33]]}}}],["wavecontainer.position.set(10",{"_index":2362,"t":{"127":{"position":[[5091,30]]}}}],["wavefunctions",{"_index":2322,"t":{"127":{"position":[[3610,13]]}}}],["wavequad",{"_index":2340,"t":{"127":{"position":[[4218,8]]}}}],["wavequad.shader.uniforms.time",{"_index":2377,"t":{"127":{"position":[[5590,29]]}}}],["waveshader",{"_index":2338,"t":{"127":{"position":[[4063,10],[4253,12]]}}}],["wavetexture",{"_index":2339,"t":{"127":{"position":[[4142,11],[4814,12],[5977,11]]}}}],["waveuniforms",{"_index":2337,"t":{"127":{"position":[[4011,12],[4121,14]]}}}],["way",{"_index":754,"t":{"49":{"position":[[5072,3]]},"79":{"position":[[1661,4]]},"99":{"position":[[85,3]]}}}],["web",{"_index":2664,"t":{"169":{"position":[[316,3]]}}}],["webfont",{"_index":2678,"t":{"169":{"position":[[751,7],[834,9]]}}}],["webgl",{"_index":2547,"t":{"159":{"position":[[315,5]]},"173":{"position":[[93,5],[1188,5]]},"179":{"position":[[851,5]]}}}],["well",{"_index":746,"t":{"49":{"position":[[4857,5]]}}}],["wf",{"_index":2666,"t":{"169":{"position":[[359,2]]}}}],["wf.async",{"_index":2675,"t":{"169":{"position":[[555,8]]}}}],["wf.src",{"_index":2668,"t":{"169":{"position":[[398,6]]}}}],["wf.type",{"_index":2673,"t":{"169":{"position":[[526,7]]}}}],["wheel",{"_index":1520,"t":{"89":{"position":[[1767,8],[4198,5],[4345,5],[5429,5]]}}}],["wheels",{"_index":520,"t":{"47":{"position":[[2484,9]]}}}],["wherever",{"_index":1640,"t":{"91":{"position":[[88,8]]}}}],["whether",{"_index":174,"t":{"39":{"position":[[3099,7]]}}}],["white",{"_index":1428,"t":{"87":{"position":[[783,5],[804,5],[949,6]]},"103":{"position":[[1333,8]]},"117":{"position":[[1453,8]]},"169":{"position":[[722,5],[889,8]]},"179":{"position":[[1628,8]]}}}],["whitebox",{"_index":1429,"t":{"87":{"position":[[820,8],[1685,9]]}}}],["whitebox.eventmode",{"_index":1434,"t":{"87":{"position":[[1062,18]]}}}],["whitebox.name",{"_index":1432,"t":{"87":{"position":[[933,13]]}}}],["whole",{"_index":1593,"t":{"89":{"position":[[4021,5]]},"91":{"position":[[567,5]]},"93":{"position":[[255,5]]}}}],["whose",{"_index":1664,"t":{"93":{"position":[[886,5]]}}}],["width",{"_index":322,"t":{"43":{"position":[[546,6],[596,6],[1602,6]]},"89":{"position":[[3454,6]]},"91":{"position":[[381,6]]},"107":{"position":[[1120,5]]},"109":{"position":[[1120,6],[1679,6],[2253,6]]},"127":{"position":[[1735,6],[2541,6],[3180,6],[4184,6]]},"159":{"position":[[291,5]]},"173":{"position":[[332,5],[482,5],[710,6],[821,6],[1012,6],[1146,6]]},"177":{"position":[[146,6]]}}}],["winding",{"_index":675,"t":{"49":{"position":[[1388,7],[1601,7],[1635,7],[2062,8],[6194,7],[6504,7],[6538,7],[7023,8]]}}}],["window",{"_index":32,"t":{"39":{"position":[[274,6]]},"41":{"position":[[101,6]]},"43":{"position":[[78,6]]},"45":{"position":[[103,6]]},"47":{"position":[[101,6]]},"49":{"position":[[101,6]]},"51":{"position":[[78,6]]},"53":{"position":[[101,6]]},"55":{"position":[[101,6]]},"57":{"position":[[101,6]]},"59":{"position":[[101,6]]},"61":{"position":[[101,6]]},"63":{"position":[[78,6]]},"65":{"position":[[78,6]]},"67":{"position":[[101,6]]},"69":{"position":[[78,6]]},"71":{"position":[[101,6]]},"73":{"position":[[78,6]]},"75":{"position":[[98,6]]},"77":{"position":[[101,6]]},"81":{"position":[[101,6]]},"83":{"position":[[101,6]]},"85":{"position":[[78,6]]},"95":{"position":[[78,6]]},"97":{"position":[[146,6]]},"99":{"position":[[373,6]]},"101":{"position":[[78,6]]},"103":{"position":[[78,6]]},"105":{"position":[[78,6]]},"107":{"position":[[78,6]]},"109":{"position":[[95,6]]},"111":{"position":[[95,6]]},"113":{"position":[[127,6]]},"115":{"position":[[78,6]]},"117":{"position":[[95,6]]},"119":{"position":[[78,6]]},"121":{"position":[[78,6]]},"123":{"position":[[78,6]]},"125":{"position":[[78,6]]},"127":{"position":[[91,6]]},"129":{"position":[[78,6]]},"131":{"position":[[78,6]]},"133":{"position":[[78,6]]},"135":{"position":[[78,6]]},"137":{"position":[[78,6]]},"139":{"position":[[78,6]]},"141":{"position":[[78,6]]},"143":{"position":[[78,6]]},"145":{"position":[[78,6]]},"147":{"position":[[281,6]]},"149":{"position":[[96,6]]},"151":{"position":[[96,6]]},"153":{"position":[[101,6]]},"155":{"position":[[101,6]]},"157":{"position":[[101,6]]},"159":{"position":[[78,6]]},"161":{"position":[[98,6]]},"163":{"position":[[101,6]]},"165":{"position":[[101,6]]},"167":{"position":[[101,6]]},"169":{"position":[[101,6]]},"171":{"position":[[233,6]]},"173":{"position":[[1579,6]]},"175":{"position":[[101,6]]},"177":{"position":[[78,6]]},"179":{"position":[[78,6]]}}}],["window.app",{"_index":2114,"t":{"111":{"position":[[1469,10]]}}}],["window.mask",{"_index":661,"t":{"49":{"position":[[766,11],[3539,11]]}}}],["window.webfontconfig",{"_index":2659,"t":{"169":{"position":[[194,20]]}}}],["without",{"_index":2573,"t":{"161":{"position":[[811,7]]}}}],["won't",{"_index":1477,"t":{"89":{"position":[[607,5]]}}}],["wont",{"_index":1719,"t":{"97":{"position":[[429,4]]}}}],["wordwrap",{"_index":515,"t":{"47":{"position":[[2403,9]]},"167":{"position":[[582,9]]}}}],["wordwrapwidth",{"_index":516,"t":{"47":{"position":[[2419,14]]},"167":{"position":[[598,14]]}}}],["work",{"_index":1720,"t":{"97":{"position":[[434,4]]}}}],["works",{"_index":751,"t":{"49":{"position":[[5047,5]]},"153":{"position":[[380,5]]}}}],["world",{"_index":1465,"t":{"89":{"position":[[225,5],[1424,5],[5336,5]]}}}],["worldtransform",{"_index":1503,"t":{"89":{"position":[[1188,14]]}}}],["wrap",{"_index":1061,"t":{"63":{"position":[[2080,4]]},"69":{"position":[[2049,4]]},"73":{"position":[[1925,4]]},"105":{"position":[[2241,4]]},"129":{"position":[[2517,4]]},"173":{"position":[[1244,4]]}}}],["wrapping",{"_index":1858,"t":{"99":{"position":[[2634,8]]},"107":{"position":[[507,9],[1004,8]]}}}],["x",{"_index":145,"t":{"39":{"position":[[2533,2]]},"41":{"position":[[996,2]]},"43":{"position":[[1271,2]]},"49":{"position":[[995,1],[1502,2],[5503,1],[6405,2],[9327,1],[9373,1],[9438,2]]},"51":{"position":[[535,2]]},"83":{"position":[[1135,2]]},"107":{"position":[[1098,1]]},"123":{"position":[[234,2],[253,2],[283,2]]},"125":{"position":[[234,2],[253,2],[283,2],[592,2],[617,2],[642,2]]},"127":{"position":[[260,2],[276,2],[303,2]]},"129":{"position":[[253,2],[272,2],[302,2]]},"131":{"position":[[234,2],[253,2],[272,2]]},"133":{"position":[[234,2],[253,2],[272,2]]},"141":{"position":[[233,2],[251,2],[272,2]]},"143":{"position":[[234,2],[253,2],[272,2]]},"145":{"position":[[234,2],[253,2],[283,2]]}}}],["x+100",{"_index":1587,"t":{"89":{"position":[[3846,6]]}}}],["x,y",{"_index":1787,"t":{"99":{"position":[[1114,3]]},"129":{"position":[[1033,3]]}}}],["x1",{"_index":724,"t":{"49":{"position":[[3802,2],[8844,4],[8956,3],[9097,3],[9141,3],[9171,3],[9377,2],[9393,4]]}}}],["x2",{"_index":821,"t":{"49":{"position":[[8769,3],[8853,2],[8950,3],[9134,4],[9387,3]]}}}],["x3",{"_index":823,"t":{"49":{"position":[[8777,3],[8873,3],[8968,3],[9067,3],[9103,4],[9177,4]]}}}],["x4",{"_index":825,"t":{"49":{"position":[[8785,3],[8881,2],[8962,3],[9060,4]]}}}],["y",{"_index":146,"t":{"39":{"position":[[2539,2]]},"41":{"position":[[1002,2]]},"43":{"position":[[1274,1],[1321,3],[1688,3],[1858,3]]},"47":{"position":[[3752,1]]},"49":{"position":[[1043,1],[1505,2],[5551,1],[6408,2],[9333,1],[9404,1],[9441,1]]},"51":{"position":[[541,2],[2151,1]]},"83":{"position":[[515,2],[1148,2]]},"93":{"position":[[1954,1]]},"123":{"position":[[237,1],[256,1],[286,1]]},"125":{"position":[[237,1],[256,1],[286,1],[595,1],[620,1],[645,1]]},"127":{"position":[[263,1],[279,1],[306,1]]},"129":{"position":[[256,1],[275,1],[305,1]]},"131":{"position":[[237,1],[256,1],[275,1]]},"133":{"position":[[237,1],[256,1],[275,1]]},"141":{"position":[[236,1],[254,1],[275,1]]},"143":{"position":[[237,1],[256,1],[275,1]]},"145":{"position":[[237,1],[256,1],[286,1]]}}}],["y+300",{"_index":1588,"t":{"89":{"position":[[3853,5]]}}}],["y1",{"_index":726,"t":{"49":{"position":[[3844,2],[4005,4],[8765,3],[8859,2],[8980,5],[9073,3],[9147,3],[9165,3],[9408,2],[9424,4]]}}}],["y2",{"_index":822,"t":{"49":{"position":[[8773,3],[8866,3],[8974,3],[9159,3],[9418,3]]}}}],["y3",{"_index":824,"t":{"49":{"position":[[8781,3],[8887,2],[8944,3],[9079,3],[9091,3],[9153,3]]}}}],["y4",{"_index":826,"t":{"49":{"position":[[8789,3],[8894,4],[8937,4],[9085,3]]}}}],["yay",{"_index":2603,"t":{"163":{"position":[[310,6]]}}}],["yellow",{"_index":1750,"t":{"97":{"position":[[973,8]]}}}],["yellowstar",{"_index":1217,"t":{"79":{"position":[[147,10]]}}}],["yes",{"_index":2588,"t":{"161":{"position":[[1308,4]]}}}],["yoghurt",{"_index":15,"t":{"39":{"position":[[76,7]]}}}],["z",{"_index":849,"t":{"51":{"position":[[529,2],[1546,1],[1600,2],[1696,2],[2045,2]]},"99":{"position":[[1105,3]]},"129":{"position":[[1024,3]]}}}],["zero",{"_index":2136,"t":{"113":{"position":[[829,4]]}}}],["zoom",{"_index":1601,"t":{"89":{"position":[[4327,5],[4528,4],[4655,5],[4709,5],[5479,4]]},"127":{"position":[[1112,5],[1466,5]]}}}]],"pipeline":["stemmer"]}}] \ No newline at end of file +[{"documents":[{"i":2,"t":"Examples","u":"/examples","b":[]},{"i":38,"t":"Collision Detection","u":"/examples/advanced/collision-detection","b":["Advanced"]},{"i":40,"t":"Mouse Trail","u":"/examples/advanced/mouse-trail","b":["Advanced"]},{"i":42,"t":"Scratch Card","u":"/examples/advanced/scratch-card","b":["Advanced"]},{"i":44,"t":"Screen Shot","u":"/examples/advanced/screen-shot","b":["Advanced"]},{"i":46,"t":"Slots","u":"/examples/advanced/slots","b":["Advanced"]},{"i":48,"t":"Star Warp","u":"/examples/advanced/star-warp","b":["Advanced"]},{"i":50,"t":"Async","u":"/examples/assets/async","b":["Assets"]},{"i":52,"t":"Spinners","u":"/examples/advanced/spinners","b":["Advanced"]},{"i":54,"t":"Background","u":"/examples/assets/background","b":["Assets"]},{"i":56,"t":"Bundle","u":"/examples/assets/bundle","b":["Assets"]},{"i":58,"t":"Multiple","u":"/examples/assets/multiple","b":["Assets"]},{"i":60,"t":"Promise","u":"/examples/assets/promise","b":["Assets"]},{"i":62,"t":"Blend Modes","u":"/examples/basic/blend-modes","b":["Basic"]},{"i":64,"t":"Cache As Bitmap","u":"/examples/basic/cache-as-bitmap","b":["Basic"]},{"i":66,"t":"Container","u":"/examples/basic/container","b":["Basic"]},{"i":68,"t":"Particle Container","u":"/examples/basic/particle-container","b":["Basic"]},{"i":70,"t":"Tinting","u":"/examples/basic/tinting","b":["Basic"]},{"i":72,"t":"Transparent Background","u":"/examples/basic/transparent-background","b":["Basic"]},{"i":74,"t":"Click","u":"/examples/events/click","b":["Events"]},{"i":76,"t":"Custom Mouse Icon","u":"/examples/events/custom-mouse-icon","b":["Events"]},{"i":78,"t":"Dragging","u":"/examples/events/dragging","b":["Events"]},{"i":80,"t":"Custom Hitarea","u":"/examples/events/custom-hitarea","b":["Events"]},{"i":82,"t":"Simple Plane","u":"/examples/basic/simple-plane","b":["Basic"]},{"i":84,"t":"Interactivity","u":"/examples/events/interactivity","b":["Events"]},{"i":86,"t":"Logger","u":"/examples/events/logger","b":["Events"]},{"i":88,"t":"Pointer Tracker","u":"/examples/events/pointer-tracker","b":["Events"]},{"i":90,"t":"Nested Boundary With Projection","u":"/examples/events/nested-boundary-with-projection","b":["Events"]},{"i":92,"t":"Slider","u":"/examples/events/slider","b":["Events"]},{"i":94,"t":"Custom","u":"/examples/filters-advanced/custom","b":["Filters Advanced"]},{"i":96,"t":"Mouse Blending","u":"/examples/filters-advanced/mouse-blending","b":["Filters Advanced"]},{"i":98,"t":"Shader Toy Filter Render Texture","u":"/examples/filters-advanced/shader-toy-filter-render-texture","b":["Filters Advanced"]},{"i":100,"t":"Blur","u":"/examples/filters-basic/blur","b":["Filters Basic"]},{"i":102,"t":"Color Matrix","u":"/examples/filters-basic/color-matrix","b":["Filters Basic"]},{"i":104,"t":"Displacement Map Crawlies","u":"/examples/filters-basic/displacement-map-crawlies","b":["Filters Basic"]},{"i":106,"t":"Displacement Map Flag","u":"/examples/filters-basic/displacement-map-flag","b":["Filters Basic"]},{"i":108,"t":"Advanced","u":"/examples/graphics/advanced","b":["Graphics"]},{"i":110,"t":"Dynamic","u":"/examples/graphics/dynamic","b":["Graphics"]},{"i":112,"t":"Filter","u":"/examples/masks/filter","b":["Masks"]},{"i":114,"t":"Simple","u":"/examples/graphics/simple","b":["Graphics"]},{"i":116,"t":"Graphics","u":"/examples/masks/graphics","b":["Masks"]},{"i":118,"t":"Sprite","u":"/examples/masks/sprite","b":["Masks"]},{"i":120,"t":"Interleaving Geometry","u":"/examples/mesh-and-shaders/interleaving-geometry","b":["Mesh And Shaders"]},{"i":122,"t":"Instanced Geometry","u":"/examples/mesh-and-shaders/instanced-geometry","b":["Mesh And Shaders"]},{"i":124,"t":"Merging Geometry","u":"/examples/mesh-and-shaders/merging-geometry","b":["Mesh And Shaders"]},{"i":126,"t":"Multi Pass Shader Generated Mesh","u":"/examples/mesh-and-shaders/multi-pass-shader-generated-mesh","b":["Mesh And Shaders"]},{"i":128,"t":"Shader Toy Mesh","u":"/examples/mesh-and-shaders/shader-toy-mesh","b":["Mesh And Shaders"]},{"i":130,"t":"Shared Shader","u":"/examples/mesh-and-shaders/shared-shader","b":["Mesh And Shaders"]},{"i":132,"t":"Sharing Geometry","u":"/examples/mesh-and-shaders/sharing-geometry","b":["Mesh And Shaders"]},{"i":134,"t":"Textured Mesh Advanced","u":"/examples/mesh-and-shaders/textured-mesh-advanced","b":["Mesh And Shaders"]},{"i":136,"t":"Textured Mesh Basic","u":"/examples/mesh-and-shaders/textured-mesh-basic","b":["Mesh And Shaders"]},{"i":138,"t":"Triangle","u":"/examples/mesh-and-shaders/triangle","b":["Mesh And Shaders"]},{"i":140,"t":"Triangle Color","u":"/examples/mesh-and-shaders/triangle-color","b":["Mesh And Shaders"]},{"i":142,"t":"Triangle Textured","u":"/examples/mesh-and-shaders/triangle-textured","b":["Mesh And Shaders"]},{"i":144,"t":"Uniforms","u":"/examples/mesh-and-shaders/uniforms","b":["Mesh And Shaders"]},{"i":146,"t":"Basic","u":"/examples/offscreen-canvas/basic","b":["Offscreen Canvas"]},{"i":148,"t":"Animated Sprite Animation Speed","u":"/examples/sprite/animated-sprite-animation-speed","b":["Sprite"]},{"i":150,"t":"Animated Sprite Explosion","u":"/examples/sprite/animated-sprite-explosion","b":["Sprite"]},{"i":152,"t":"Animated Sprite Jet","u":"/examples/sprite/animated-sprite-jet","b":["Sprite"]},{"i":154,"t":"Basic","u":"/examples/sprite/basic","b":["Sprite"]},{"i":156,"t":"Texture Swap","u":"/examples/sprite/texture-swap","b":["Sprite"]},{"i":158,"t":"Tiling Sprite","u":"/examples/sprite/tiling-sprite","b":["Sprite"]},{"i":160,"t":"Bitmap Text","u":"/examples/text/bitmap-text","b":["Text"]},{"i":162,"t":"Video","u":"/examples/sprite/video","b":["Sprite"]},{"i":164,"t":"From Font","u":"/examples/text/from-font","b":["Text"]},{"i":166,"t":"Pixi Text","u":"/examples/text/pixi-text","b":["Text"]},{"i":168,"t":"Web Font","u":"/examples/text/web-font","b":["Text"]},{"i":170,"t":"Gradient Basic","u":"/examples/textures/gradient-basic","b":["Textures"]},{"i":172,"t":"Gradient Resource","u":"/examples/textures/gradient-resource","b":["Textures"]},{"i":174,"t":"Render Texture Advanced","u":"/examples/textures/render-texture-advanced","b":["Textures"]},{"i":176,"t":"Render Texture Basic","u":"/examples/textures/render-texture-basic","b":["Textures"]},{"i":178,"t":"Texture Rotate","u":"/examples/textures/texture-rotate","b":["Textures"]}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/2",[0,4.792]],["t/38",[1,3.77,2,3.77]],["t/40",[3,2.948,4,3.77]],["t/42",[5,3.77,6,3.77]],["t/44",[7,3.77,8,3.77]],["t/46",[9,4.792]],["t/48",[10,3.77,11,3.77]],["t/50",[12,4.792]],["t/52",[13,4.792]],["t/54",[14,4.162]],["t/56",[15,4.792]],["t/58",[16,4.792]],["t/60",[17,4.792]],["t/62",[18,3.77,19,3.77]],["t/64",[20,3.77,21,3.274]],["t/66",[22,4.162]],["t/68",[22,3.274,23,3.77]],["t/70",[24,4.792]],["t/72",[14,3.274,25,3.77]],["t/74",[26,4.792]],["t/76",[3,2.429,27,2.429,28,3.107]],["t/78",[29,4.792]],["t/80",[27,2.948,30,3.77]],["t/82",[31,3.274,32,3.77]],["t/84",[33,4.792]],["t/86",[34,4.792]],["t/88",[35,3.77,36,3.77]],["t/90",[37,3.107,38,3.107,39,3.107]],["t/92",[40,4.792]],["t/94",[27,3.747]],["t/96",[3,2.948,41,3.77]],["t/98",[42,1.649,43,1.997,44,1.997,45,1.797,46,1.53]],["t/100",[47,4.792]],["t/102",[48,3.274,49,3.77]],["t/104",[50,2.699,51,2.699,52,3.107]],["t/106",[50,2.699,51,2.699,53,3.107]],["t/108",[54,3.747]],["t/110",[55,4.792]],["t/112",[44,4.162]],["t/114",[31,4.162]],["t/116",[56,4.792]],["t/118",[57,3.189]],["t/120",[58,3.77,59,2.704]],["t/122",[59,2.704,60,3.77]],["t/124",[59,2.704,61,3.77]],["t/126",[42,1.649,62,2.299,63,2.299,64,2.299,65,1.649]],["t/128",[42,2.229,43,2.699,65,2.229]],["t/130",[42,2.704,66,3.77]],["t/132",[59,2.704,67,3.77]],["t/134",[54,2.429,65,2.229,68,2.429]],["t/136",[65,2.229,68,2.429,69,2.068]],["t/138",[70,3.747]],["t/140",[48,3.274,70,2.948]],["t/142",[68,2.948,70,2.948]],["t/144",[71,4.792]],["t/146",[69,3.189]],["t/148",[57,1.759,72,2.066,73,2.643,74,2.643]],["t/150",[57,2.068,72,2.429,75,3.107]],["t/152",[57,2.068,72,2.429,76,3.107]],["t/154",[69,3.189]],["t/156",[46,2.509,77,3.77]],["t/158",[57,2.509,78,3.77]],["t/160",[21,3.274,79,3.274]],["t/162",[80,4.792]],["t/164",[81,4.162]],["t/166",[79,3.274,82,3.77]],["t/168",[81,3.274,83,3.77]],["t/170",[69,2.509,84,3.274]],["t/172",[84,3.274,85,3.77]],["t/174",[45,2.429,46,2.068,54,2.429]],["t/176",[45,2.429,46,2.068,69,2.068]],["t/178",[46,2.509,86,3.77]]],"invertedIndex":[["advanced",{"_index":54,"t":{"108":{"position":[[0,8]]},"134":{"position":[[14,8]]},"174":{"position":[[15,8]]}}}],["animated",{"_index":72,"t":{"148":{"position":[[0,8]]},"150":{"position":[[0,8]]},"152":{"position":[[0,8]]}}}],["animation",{"_index":73,"t":{"148":{"position":[[16,9]]}}}],["async",{"_index":12,"t":{"50":{"position":[[0,5]]}}}],["background",{"_index":14,"t":{"54":{"position":[[0,10]]},"72":{"position":[[12,10]]}}}],["basic",{"_index":69,"t":{"136":{"position":[[14,5]]},"146":{"position":[[0,5]]},"154":{"position":[[0,5]]},"170":{"position":[[9,5]]},"176":{"position":[[15,5]]}}}],["bitmap",{"_index":21,"t":{"64":{"position":[[9,6]]},"160":{"position":[[0,6]]}}}],["blend",{"_index":18,"t":{"62":{"position":[[0,5]]}}}],["blending",{"_index":41,"t":{"96":{"position":[[6,8]]}}}],["blur",{"_index":47,"t":{"100":{"position":[[0,4]]}}}],["boundary",{"_index":38,"t":{"90":{"position":[[7,8]]}}}],["bundle",{"_index":15,"t":{"56":{"position":[[0,6]]}}}],["cache",{"_index":20,"t":{"64":{"position":[[0,5]]}}}],["card",{"_index":6,"t":{"42":{"position":[[8,4]]}}}],["click",{"_index":26,"t":{"74":{"position":[[0,5]]}}}],["collision",{"_index":1,"t":{"38":{"position":[[0,9]]}}}],["color",{"_index":48,"t":{"102":{"position":[[0,5]]},"140":{"position":[[9,5]]}}}],["container",{"_index":22,"t":{"66":{"position":[[0,9]]},"68":{"position":[[9,9]]}}}],["crawlies",{"_index":52,"t":{"104":{"position":[[17,8]]}}}],["custom",{"_index":27,"t":{"76":{"position":[[0,6]]},"80":{"position":[[0,6]]},"94":{"position":[[0,6]]}}}],["detection",{"_index":2,"t":{"38":{"position":[[10,9]]}}}],["displacement",{"_index":50,"t":{"104":{"position":[[0,12]]},"106":{"position":[[0,12]]}}}],["dragging",{"_index":29,"t":{"78":{"position":[[0,8]]}}}],["dynamic",{"_index":55,"t":{"110":{"position":[[0,7]]}}}],["examples",{"_index":0,"t":{"2":{"position":[[0,8]]}}}],["explosion",{"_index":75,"t":{"150":{"position":[[16,9]]}}}],["filter",{"_index":44,"t":{"98":{"position":[[11,6]]},"112":{"position":[[0,6]]}}}],["flag",{"_index":53,"t":{"106":{"position":[[17,4]]}}}],["font",{"_index":81,"t":{"164":{"position":[[5,4]]},"168":{"position":[[4,4]]}}}],["generated",{"_index":64,"t":{"126":{"position":[[18,9]]}}}],["geometry",{"_index":59,"t":{"120":{"position":[[13,8]]},"122":{"position":[[10,8]]},"124":{"position":[[8,8]]},"132":{"position":[[8,8]]}}}],["gradient",{"_index":84,"t":{"170":{"position":[[0,8]]},"172":{"position":[[0,8]]}}}],["graphics",{"_index":56,"t":{"116":{"position":[[0,8]]}}}],["hitarea",{"_index":30,"t":{"80":{"position":[[7,7]]}}}],["icon",{"_index":28,"t":{"76":{"position":[[13,4]]}}}],["instanced",{"_index":60,"t":{"122":{"position":[[0,9]]}}}],["interactivity",{"_index":33,"t":{"84":{"position":[[0,13]]}}}],["interleaving",{"_index":58,"t":{"120":{"position":[[0,12]]}}}],["jet",{"_index":76,"t":{"152":{"position":[[16,3]]}}}],["logger",{"_index":34,"t":{"86":{"position":[[0,6]]}}}],["map",{"_index":51,"t":{"104":{"position":[[13,3]]},"106":{"position":[[13,3]]}}}],["matrix",{"_index":49,"t":{"102":{"position":[[6,6]]}}}],["merging",{"_index":61,"t":{"124":{"position":[[0,7]]}}}],["mesh",{"_index":65,"t":{"126":{"position":[[28,4]]},"128":{"position":[[11,4]]},"134":{"position":[[9,4]]},"136":{"position":[[9,4]]}}}],["modes",{"_index":19,"t":{"62":{"position":[[6,5]]}}}],["mouse",{"_index":3,"t":{"40":{"position":[[0,5]]},"76":{"position":[[7,5]]},"96":{"position":[[0,5]]}}}],["multi",{"_index":62,"t":{"126":{"position":[[0,5]]}}}],["multiple",{"_index":16,"t":{"58":{"position":[[0,8]]}}}],["nested",{"_index":37,"t":{"90":{"position":[[0,6]]}}}],["particle",{"_index":23,"t":{"68":{"position":[[0,8]]}}}],["pass",{"_index":63,"t":{"126":{"position":[[6,4]]}}}],["pixi",{"_index":82,"t":{"166":{"position":[[0,4]]}}}],["plane",{"_index":32,"t":{"82":{"position":[[7,5]]}}}],["pointer",{"_index":35,"t":{"88":{"position":[[0,7]]}}}],["projection",{"_index":39,"t":{"90":{"position":[[21,10]]}}}],["promise",{"_index":17,"t":{"60":{"position":[[0,7]]}}}],["render",{"_index":45,"t":{"98":{"position":[[18,6]]},"174":{"position":[[0,6]]},"176":{"position":[[0,6]]}}}],["resource",{"_index":85,"t":{"172":{"position":[[9,8]]}}}],["rotate",{"_index":86,"t":{"178":{"position":[[8,6]]}}}],["scratch",{"_index":5,"t":{"42":{"position":[[0,7]]}}}],["screen",{"_index":7,"t":{"44":{"position":[[0,6]]}}}],["shader",{"_index":42,"t":{"98":{"position":[[0,6]]},"126":{"position":[[11,6]]},"128":{"position":[[0,6]]},"130":{"position":[[7,6]]}}}],["shared",{"_index":66,"t":{"130":{"position":[[0,6]]}}}],["sharing",{"_index":67,"t":{"132":{"position":[[0,7]]}}}],["shot",{"_index":8,"t":{"44":{"position":[[7,4]]}}}],["simple",{"_index":31,"t":{"82":{"position":[[0,6]]},"114":{"position":[[0,6]]}}}],["slider",{"_index":40,"t":{"92":{"position":[[0,6]]}}}],["slots",{"_index":9,"t":{"46":{"position":[[0,5]]}}}],["speed",{"_index":74,"t":{"148":{"position":[[26,5]]}}}],["spinners",{"_index":13,"t":{"52":{"position":[[0,8]]}}}],["sprite",{"_index":57,"t":{"118":{"position":[[0,6]]},"148":{"position":[[9,6]]},"150":{"position":[[9,6]]},"152":{"position":[[9,6]]},"158":{"position":[[7,6]]}}}],["star",{"_index":10,"t":{"48":{"position":[[0,4]]}}}],["swap",{"_index":77,"t":{"156":{"position":[[8,4]]}}}],["text",{"_index":79,"t":{"160":{"position":[[7,4]]},"166":{"position":[[5,4]]}}}],["texture",{"_index":46,"t":{"98":{"position":[[25,7]]},"156":{"position":[[0,7]]},"174":{"position":[[7,7]]},"176":{"position":[[7,7]]},"178":{"position":[[0,7]]}}}],["textured",{"_index":68,"t":{"134":{"position":[[0,8]]},"136":{"position":[[0,8]]},"142":{"position":[[9,8]]}}}],["tiling",{"_index":78,"t":{"158":{"position":[[0,6]]}}}],["tinting",{"_index":24,"t":{"70":{"position":[[0,7]]}}}],["toy",{"_index":43,"t":{"98":{"position":[[7,3]]},"128":{"position":[[7,3]]}}}],["tracker",{"_index":36,"t":{"88":{"position":[[8,7]]}}}],["trail",{"_index":4,"t":{"40":{"position":[[6,5]]}}}],["transparent",{"_index":25,"t":{"72":{"position":[[0,11]]}}}],["triangle",{"_index":70,"t":{"138":{"position":[[0,8]]},"140":{"position":[[0,8]]},"142":{"position":[[0,8]]}}}],["uniforms",{"_index":71,"t":{"144":{"position":[[0,8]]}}}],["video",{"_index":80,"t":{"162":{"position":[[0,5]]}}}],["warp",{"_index":11,"t":{"48":{"position":[[5,4]]}}}],["web",{"_index":83,"t":{"168":{"position":[[0,3]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":3,"t":"Introduction here explaining examples and maybe links to featured examples.","s":"Examples","u":"/examples","h":"","p":2},{"i":39,"t":"import * as PIXI from 'pixi.js'; // Based somewhat on this article by Spicy Yoghurt // URL for further reading: https://spicyyoghurt.com/tutorials/html5-javascript-game-development/collision-detection-physics const app = new PIXI.Application({ background: '#111', resizeTo: window }); document.body.appendChild(app.view); // Options for how objects interact // How fast the red square moves const movementSpeed = 0.05; // Strength of the impulse push between two objects const impulsePower = 5; // Test For Hit // A basic AABB check between two different squares function testForAABB(object1, object2) { const bounds1 = object1.getBounds(); const bounds2 = object2.getBounds(); return bounds1.x < bounds2.x + bounds2.width && bounds1.x + bounds1.width > bounds2.x && bounds1.y < bounds2.y + bounds2.height && bounds1.y + bounds1.height > bounds2.y; } // Calculates the results of a collision, allowing us to give an impulse that // shoves objects apart function collisionResponse(object1, object2) { if (!object1 || !object2) { return new PIXI.Point(0); } const vCollision = new PIXI.Point( object2.x - object1.x, object2.y - object1.y, ); const distance = Math.sqrt( (object2.x - object1.x) * (object2.x - object1.x) + (object2.y - object1.y) * (object2.y - object1.y), ); const vCollisionNorm = new PIXI.Point( vCollision.x / distance, vCollision.y / distance, ); const vRelativeVelocity = new PIXI.Point( object1.acceleration.x - object2.acceleration.x, object1.acceleration.y - object2.acceleration.y, ); const speed = vRelativeVelocity.x * vCollisionNorm.x + vRelativeVelocity.y * vCollisionNorm.y; const impulse = impulsePower * speed / (object1.mass + object2.mass); return new PIXI.Point( impulse * vCollisionNorm.x, impulse * vCollisionNorm.y, ); } // Calculate the distance between two given points function distanceBetweenTwoPoints(p1, p2) { const a = p1.x - p2.x; const b = p1.y - p2.y; return Math.hypot(a, b); } // The green square we will knock about const greenSquare = new PIXI.Sprite(PIXI.Texture.WHITE); greenSquare.position.set((app.screen.width - 100) / 2, (app.screen.height - 100) / 2); greenSquare.width = 100; greenSquare.height = 100; greenSquare.tint = 0x00FF00; greenSquare.acceleration = new PIXI.Point(0); greenSquare.mass = 3; // The square you move around const redSquare = new PIXI.Sprite(PIXI.Texture.WHITE); redSquare.position.set(0, 0); redSquare.width = 100; redSquare.height = 100; redSquare.tint = 0xFF0000; redSquare.acceleration = new PIXI.Point(0); redSquare.mass = 1; const mouseCoords = { x: 0, y: 0 }; app.stage.eventMode = 'static'; app.stage.hitArea = app.screen; app.stage.on('mousemove', (event) => { mouseCoords.x = event.global.x; mouseCoords.y = event.global.y; }); // Listen for animate update app.ticker.add((delta) => { // Applied deacceleration for both squares, done by reducing the // acceleration by 0.01% of the acceleration every loop redSquare.acceleration.set(redSquare.acceleration.x * 0.99, redSquare.acceleration.y * 0.99); greenSquare.acceleration.set(greenSquare.acceleration.x * 0.99, greenSquare.acceleration.y * 0.99); // Check whether the green square ever moves off the screen // If so, reverse acceleration in that direction if (greenSquare.x < 0 || greenSquare.x > (app.screen.width - 100)) { greenSquare.acceleration.x = -greenSquare.acceleration.x; } if (greenSquare.y < 0 || greenSquare.y > (app.screen.height - 100)) { greenSquare.acceleration.y = -greenSquare.acceleration.y; } // If the green square pops out of the cordon, it pops back into the // middle if ((greenSquare.x < -30 || greenSquare.x > (app.screen.width + 30)) || greenSquare.y < -30 || greenSquare.y > (app.screen.height + 30)) { greenSquare.position.set((app.screen.width - 100) / 2, (app.screen.height - 100) / 2); } // If the mouse is off screen, then don't update any further if (app.screen.width > mouseCoords.x || mouseCoords.x > 0 || app.screen.height > mouseCoords.y || mouseCoords.y > 0) { // Get the red square's center point const redSquareCenterPosition = new PIXI.Point( redSquare.x + (redSquare.width * 0.5), redSquare.y + (redSquare.height * 0.5), ); // Calculate the direction vector between the mouse pointer and // the red square const toMouseDirection = new PIXI.Point( mouseCoords.x - redSquareCenterPosition.x, mouseCoords.y - redSquareCenterPosition.y, ); // Use the above to figure out the angle that direction has const angleToMouse = Math.atan2( toMouseDirection.y, toMouseDirection.x, ); // Figure out the speed the square should be travelling by, as a // function of how far away from the mouse pointer the red square is const distMouseRedSquare = distanceBetweenTwoPoints( mouseCoords, redSquareCenterPosition, ); const redSpeed = distMouseRedSquare * movementSpeed; // Calculate the acceleration of the red square redSquare.acceleration.set( Math.cos(angleToMouse) * redSpeed, Math.sin(angleToMouse) * redSpeed, ); } // If the two squares are colliding if (testForAABB(greenSquare, redSquare)) { // Calculate the changes in acceleration that should be made between // each square as a result of the collision const collisionPush = collisionResponse(greenSquare, redSquare); // Set the changes in acceleration for both squares redSquare.acceleration.set( (collisionPush.x * greenSquare.mass), (collisionPush.y * greenSquare.mass), ); greenSquare.acceleration.set( -(collisionPush.x * redSquare.mass), -(collisionPush.y * redSquare.mass), ); } greenSquare.x += greenSquare.acceleration.x * delta; greenSquare.y += greenSquare.acceleration.y * delta; redSquare.x += redSquare.acceleration.x * delta; redSquare.y += redSquare.acceleration.y * delta; }); // Add to stage app.stage.addChild(redSquare, greenSquare);","s":"Collision Detection","u":"/examples/advanced/collision-detection","h":"","p":38},{"i":41,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ background: '#1099bb', resizeTo: window }); document.body.appendChild(app.view); // Get the texture for rope. const trailTexture = PIXI.Texture.from('https://pixijs.com/assets/trail.png'); const historyX = []; const historyY = []; // historySize determines how long the trail will be. const historySize = 20; // ropeSize determines how smooth the trail will be. const ropeSize = 100; const points = []; // Create history array. for (let i = 0; i < historySize; i++) { historyX.push(0); historyY.push(0); } // Create rope points. for (let i = 0; i < ropeSize; i++) { points.push(new PIXI.Point(0, 0)); } // Create the rope const rope = new PIXI.SimpleRope(trailTexture, points); // Set the blendmode rope.blendmode = PIXI.BLEND_MODES.ADD; app.stage.addChild(rope); let mouseposition = null; app.stage.eventMode = 'static'; app.stage.hitArea = app.screen; app.stage.on('mousemove', (event) => { mouseposition = mouseposition || { x: 0, y: 0 }; mouseposition.x = event.global.x; mouseposition.y = event.global.y; }); // Listen for animate update app.ticker.add(() => { if (!mouseposition) return; // Update the mouse values to history historyX.pop(); historyX.unshift(mouseposition.x); historyY.pop(); historyY.unshift(mouseposition.y); // Update the points to correspond with history. for (let i = 0; i < ropeSize; i++) { const p = points[i]; // Smooth the curve with cubic interpolation to prevent sharp edges. const ix = cubicInterpolation(historyX, i / ropeSize * historySize); const iy = cubicInterpolation(historyY, i / ropeSize * historySize); p.x = ix; p.y = iy; } }); /** * Cubic interpolation based on https://github.com/osuushi/Smooth.js */ function clipInput(k, arr) { if (k < 0) k = 0; if (k > arr.length - 1) k = arr.length - 1; return arr[k]; } function getTangent(k, factor, array) { return factor * (clipInput(k + 1, array) - clipInput(k - 1, array)) / 2; } function cubicInterpolation(array, t, tangentFactor) { if (tangentFactor === null) tangentFactor = 1; const k = Math.floor(t); const m = [getTangent(k, tangentFactor, array), getTangent(k + 1, tangentFactor, array)]; const p = [clipInput(k, array), clipInput(k + 1, array)]; t -= k; const t2 = t * t; const t3 = t * t2; return (2 * t3 - 3 * t2 + 1) * p[0] + (t3 - 2 * t2 + t) * m[0] + (-2 * t3 + 3 * t2) * p[1] + (t3 - t2) * m[1]; }","s":"Mouse Trail","u":"/examples/advanced/mouse-trail","h":"","p":40},{"i":43,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); // prepare circle texture, that will be our brush const brush = new PIXI.Graphics() .beginFill(0xffffff) .drawCircle(0, 0, 50); // Create a line that will interpolate the drawn points const line = new PIXI.Graphics(); PIXI.Assets.add('t1', 'https://pixijs.com/assets/bg_grass.jpg'); PIXI.Assets.add('t2', 'https://pixijs.com/assets/bg_rotate.jpg'); PIXI.Assets.load(['t1', 't2']).then(setup); function setup() { const { width, height } = app.screen; const stageSize = { width, height }; const background = Object.assign(PIXI.Sprite.from('t1'), stageSize); const imageToReveal = Object.assign(PIXI.Sprite.from('t2'), stageSize); const renderTexture = PIXI.RenderTexture.create(stageSize); const renderTextureSprite = new PIXI.Sprite(renderTexture); imageToReveal.mask = renderTextureSprite; app.stage.addChild( background, imageToReveal, renderTextureSprite, ); app.stage.eventMode = 'static'; app.stage.hitArea = app.screen; app.stage .on('pointerdown', pointerDown) .on('pointerup', pointerUp) .on('pointerupoutside', pointerUp) .on('pointermove', pointerMove); let dragging = false; let lastDrawnPoint = null; function pointerMove({ global: { x, y } }) { if (dragging) { brush.position.set(x, y); app.renderer.render(brush, { renderTexture, clear: false, skipUpdateTransform: false, }); // Smooth out the drawing a little bit to make it look nicer // this connects the previous drawn point to the current one // using a line if (lastDrawnPoint) { line .clear() .lineStyle({ width: 100, color: 0xffffff }) .moveTo(lastDrawnPoint.x, lastDrawnPoint.y) .lineTo(x, y); app.renderer.render(line, { renderTexture, clear: false, skipUpdateTransform: false, }); } lastDrawnPoint = lastDrawnPoint || new PIXI.Point(); lastDrawnPoint.set(x, y); } } function pointerDown(event) { dragging = true; pointerMove(event); } function pointerUp(event) { dragging = false; lastDrawnPoint = null; } }","s":"Scratch Card","u":"/examples/advanced/scratch-card","h":"","p":42},{"i":45,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ backgroundColor: '#111', resizeTo: window }); document.body.appendChild(app.view); const texture = PIXI.Texture.from('https://pixijs.com/assets/bunny.png'); const bunnyContainer = new PIXI.Container(); async function takeScreenshot() { app.stop(); const url = await app.renderer.extract.base64(bunnyContainer); const a = document.createElement('a'); document.body.append(a); a.download = 'screenshot'; a.href = url; a.click(); a.remove(); app.start(); } app.stage.eventMode = 'static'; app.stage.hitArea = app.screen; app.stage.on('pointerdown', takeScreenshot); for (let i = 0; i < 25; i++) { const bunny = new PIXI.Sprite(texture); bunny.anchor.set(0.5); bunny.x = (i % 5) * 40; bunny.y = Math.floor(i / 5) * 40; bunnyContainer.addChild(bunny); } bunnyContainer.x = 400; bunnyContainer.y = 300; bunnyContainer.pivot.x = bunnyContainer.width / 2; bunnyContainer.pivot.y = bunnyContainer.height / 2; app.ticker.add((delta) => { bunnyContainer.rotation += 0.01 * delta; }); const style = new PIXI.TextStyle({ fontFamily: 'Roboto', fill: '#999', }); const screenshotText = new PIXI.Text('Click To Take Screenshot', style); screenshotText.x = Math.round((app.screen.width - screenshotText.width) / 2); screenshotText.y = Math.round(screenshotText.height / 2); app.stage.addChild(screenshotText, bunnyContainer);","s":"Screen Shot","u":"/examples/advanced/screen-shot","h":"","p":44},{"i":47,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ background: '#1099bb', resizeTo: window }); document.body.appendChild(app.view); PIXI.Assets.load([ 'https://pixijs.com/assets/eggHead.png', 'https://pixijs.com/assets/flowerTop.png', 'https://pixijs.com/assets/helmlok.png', 'https://pixijs.com/assets/skully.png', ]).then(onAssetsLoaded); const REEL_WIDTH = 160; const SYMBOL_SIZE = 150; // onAssetsLoaded handler builds the example. function onAssetsLoaded() { // Create different slot symbols. const slotTextures = [ PIXI.Texture.from('https://pixijs.com/assets/eggHead.png'), PIXI.Texture.from('https://pixijs.com/assets/flowerTop.png'), PIXI.Texture.from('https://pixijs.com/assets/helmlok.png'), PIXI.Texture.from('https://pixijs.com/assets/skully.png'), ]; // Build the reels const reels = []; const reelContainer = new PIXI.Container(); for (let i = 0; i < 5; i++) { const rc = new PIXI.Container(); rc.x = i * REEL_WIDTH; reelContainer.addChild(rc); const reel = { container: rc, symbols: [], position: 0, previousPosition: 0, blur: new PIXI.filters.BlurFilter(), }; reel.blur.blurX = 0; reel.blur.blurY = 0; rc.filters = [reel.blur]; // Build the symbols for (let j = 0; j < 4; j++) { const symbol = new PIXI.Sprite(slotTextures[Math.floor(Math.random() * slotTextures.length)]); // Scale the symbol to fit symbol area. symbol.y = j * SYMBOL_SIZE; symbol.scale.x = symbol.scale.y = Math.min(SYMBOL_SIZE / symbol.width, SYMBOL_SIZE / symbol.height); symbol.x = Math.round((SYMBOL_SIZE - symbol.width) / 2); reel.symbols.push(symbol); rc.addChild(symbol); } reels.push(reel); } app.stage.addChild(reelContainer); // Build top & bottom covers and position reelContainer const margin = (app.screen.height - SYMBOL_SIZE * 3) / 2; reelContainer.y = margin; reelContainer.x = Math.round(app.screen.width - REEL_WIDTH * 5); const top = new PIXI.Graphics(); top.beginFill(0, 1); top.drawRect(0, 0, app.screen.width, margin); const bottom = new PIXI.Graphics(); bottom.beginFill(0, 1); bottom.drawRect(0, SYMBOL_SIZE * 3 + margin, app.screen.width, margin); // Add play text const style = new PIXI.TextStyle({ fontFamily: 'Arial', fontSize: 36, fontStyle: 'italic', fontWeight: 'bold', fill: ['#ffffff', '#00ff99'], // gradient stroke: '#4a1850', strokeThickness: 5, dropShadow: true, dropShadowColor: '#000000', dropShadowBlur: 4, dropShadowAngle: Math.PI / 6, dropShadowDistance: 6, wordWrap: true, wordWrapWidth: 440, }); const playText = new PIXI.Text('Spin the wheels!', style); playText.x = Math.round((bottom.width - playText.width) / 2); playText.y = app.screen.height - margin + Math.round((margin - playText.height) / 2); bottom.addChild(playText); // Add header text const headerText = new PIXI.Text('PIXI MONSTER SLOTS!', style); headerText.x = Math.round((top.width - headerText.width) / 2); headerText.y = Math.round((margin - headerText.height) / 2); top.addChild(headerText); app.stage.addChild(top); app.stage.addChild(bottom); // Set the interactivity. bottom.eventMode = 'static'; bottom.cursor = 'pointer'; bottom.addListener('pointerdown', () => { startPlay(); }); let running = false; // Function to start playing. function startPlay() { if (running) return; running = true; for (let i = 0; i < reels.length; i++) { const r = reels[i]; const extra = Math.floor(Math.random() * 3); const target = r.position + 10 + i * 5 + extra; const time = 2500 + i * 600 + extra * 600; tweenTo(r, 'position', target, time, backout(0.5), null, i === reels.length - 1 ? reelsComplete : null); } } // Reels done handler. function reelsComplete() { running = false; } // Listen for animate update. app.ticker.add((delta) => { // Update the slots. for (let i = 0; i < reels.length; i++) { const r = reels[i]; // Update blur filter y amount based on speed. // This would be better if calculated with time in mind also. Now blur depends on frame rate. r.blur.blurY = (r.position - r.previousPosition) * 8; r.previousPosition = r.position; // Update symbol positions on reel. for (let j = 0; j < r.symbols.length; j++) { const s = r.symbols[j]; const prevy = s.y; s.y = ((r.position + j) % r.symbols.length) * SYMBOL_SIZE - SYMBOL_SIZE; if (s.y < 0 && prevy > SYMBOL_SIZE) { // Detect going over and swap a texture. // This should in proper product be determined from some logical reel. s.texture = slotTextures[Math.floor(Math.random() * slotTextures.length)]; s.scale.x = s.scale.y = Math.min(SYMBOL_SIZE / s.texture.width, SYMBOL_SIZE / s.texture.height); s.x = Math.round((SYMBOL_SIZE - s.width) / 2); } } } }); } // Very simple tweening utility function. This should be replaced with a proper tweening library in a real product. const tweening = []; function tweenTo(object, property, target, time, easing, onchange, oncomplete) { const tween = { object, property, propertyBeginValue: object[property], target, easing, time, change: onchange, complete: oncomplete, start: Date.now(), }; tweening.push(tween); return tween; } // Listen for animate update. app.ticker.add((delta) => { const now = Date.now(); const remove = []; for (let i = 0; i < tweening.length; i++) { const t = tweening[i]; const phase = Math.min(1, (now - t.start) / t.time); t.object[t.property] = lerp(t.propertyBeginValue, t.target, t.easing(phase)); if (t.change) t.change(t); if (phase === 1) { t.object[t.property] = t.target; if (t.complete) t.complete(t); remove.push(t); } } for (let i = 0; i < remove.length; i++) { tweening.splice(tweening.indexOf(remove[i]), 1); } }); // Basic lerp funtion. function lerp(a1, a2, t) { return a1 * (1 - t) + a2 * t; } // Backout function from tweenjs. // https://github.com/CreateJS/TweenJS/blob/master/src/tweenjs/Ease.js function backout(amount) { return (t) => (--t * t * ((amount + 1) * t + amount) + 1); }","s":"Slots","u":"/examples/advanced/slots","h":"","p":46},{"i":49,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); // Get the texture for star. const starTexture = PIXI.Texture.from('https://pixijs.com/assets/star.png'); const starAmount = 1000; let cameraZ = 0; const fov = 20; const baseSpeed = 0.025; let speed = 0; let warpSpeed = 0; const starStretch = 5; const starBaseSize = 0.05; // Create the stars const stars = []; for (let i = 0; i < starAmount; i++) { const star = { sprite: new PIXI.Sprite(starTexture), z: 0, x: 0, y: 0, }; star.sprite.anchor.x = 0.5; star.sprite.anchor.y = 0.7; randomizeStar(star, true); app.stage.addChild(star.sprite); stars.push(star); } function randomizeStar(star, initial) { star.z = initial ? Math.random() * 2000 : cameraZ + Math.random() * 1000 + 2000; // Calculate star positions with radial random coordinate so no star hits the camera. const deg = Math.random() * Math.PI * 2; const distance = Math.random() * 50 + 1; star.x = Math.cos(deg) * distance; star.y = Math.sin(deg) * distance; } // Change flight speed every 5 seconds setInterval(() => { warpSpeed = warpSpeed > 0 ? 0 : 1; }, 5000); // Listen for animate update app.ticker.add((delta) => { // Simple easing. This should be changed to proper easing function when used for real. speed += (warpSpeed - speed) / 20; cameraZ += delta * 10 * (speed + baseSpeed); for (let i = 0; i < starAmount; i++) { const star = stars[i]; if (star.z < cameraZ) randomizeStar(star); // Map star 3d position to 2d with really simple projection const z = star.z - cameraZ; star.sprite.x = star.x * (fov / z) * app.renderer.screen.width + app.renderer.screen.width / 2; star.sprite.y = star.y * (fov / z) * app.renderer.screen.width + app.renderer.screen.height / 2; // Calculate star scale & rotation. const dxCenter = star.sprite.x - app.renderer.screen.width / 2; const dyCenter = star.sprite.y - app.renderer.screen.height / 2; const distanceCenter = Math.sqrt(dxCenter * dxCenter + dyCenter * dyCenter); const distanceScale = Math.max(0, (2000 - z) / 2000); star.sprite.scale.x = distanceScale * starBaseSize; // Star is looking towards center so that y axis is towards center. // Scale the star depending on how fast we are moving, what the stretchfactor is // and depending on how far away it is from the center. star.sprite.scale.y = distanceScale * starBaseSize + distanceScale * speed * starStretch * distanceCenter / app.renderer.screen.width; star.sprite.rotation = Math.atan2(dyCenter, dxCenter) + Math.PI / 2; } });","s":"Star Warp","u":"/examples/advanced/star-warp","h":"","p":48},{"i":51,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ background: '#1099bb', resizeTo: window }); document.body.appendChild(app.view); // await can only be used inside an async function async function init() { const texture = await PIXI.Assets.load('https://pixijs.com/assets/bunny.png'); // create a new Sprite from the awaited loaded Texture const bunny = PIXI.Sprite.from(texture); // center the sprite's anchor point bunny.anchor.set(0.5); // move the sprite to the center of the screen bunny.x = app.screen.width / 2; bunny.y = app.screen.height / 2; app.stage.addChild(bunny); } // Call that async function init();","s":"Async","u":"/examples/assets/async","h":"","p":50},{"i":53,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ background: '#1099bb', resizeTo: window }); document.body.appendChild(app.view); /* --------------------------------------- Spinner 1. Square with radial completion. -------------------------------------- */ const generateSpinner1 = (position) => { const container = new PIXI.Container(); container.position = position; app.stage.addChild(container); const base = PIXI.Sprite.from('https://pixijs.com/assets/bg_scene_rotate.jpg'); const size = 100; base.width = size; base.height = size; const bottom = PIXI.Sprite.from('https://pixijs.com/assets/bg_rotate.jpg'); bottom.width = size; bottom.height = size; const mask = new PIXI.Graphics(); mask.position.set(size / 2, size / 2); base.mask = mask; window.mask = mask; container.addChild(bottom); container.addChild(base); container.addChild(mask); let phase = 0; return (delta) => { // Update phase phase += delta / 60; phase %= (Math.PI * 2); // Calculate target point. const x = Math.cos(phase - Math.PI / 2) * size; const y = Math.sin(phase - Math.PI / 2) * size; const segments = [ [-size / 2, -size / 2, size / 2, -size / 2], // top segment [size / 2, -size / 2, size / 2, size / 2], // right [-size / 2, size / 2, size / 2, size / 2], // bottom [-size / 2, -size / 2, -size / 2, size / 2], // left ]; // Find the intersecting segment. let intersection = null; let winding = 0; for (let i = 0; i < segments.length; i++) { const segment = segments[i]; const hit = intersect(0, 0, x, y, segment[0], segment[1], segment[2], segment[3]); if (hit) { intersection = hit; if (i === 0) winding = hit.x > 0 ? 0 : 4; else winding = i; break; } } const corners = [ size / 2, -size / 2, // Top right size / 2, size / 2, // Bottom right -size / 2, size / 2, // Bottom left -size / 2, -size / 2, // Top left, 0, -size / 2, // End point ]; // Redraw mask mask.clear(); mask.lineStyle(2, 0xff0000, 1); mask.beginFill(0xff0000, 1); mask.moveTo(0, -size / 2); mask.lineTo(0, 0); mask.lineTo(intersection.x, intersection.y); // fill the corners for (let i = winding; i < corners.length / 2; i++) { mask.lineTo(corners[i * 2], corners[i * 2 + 1]); } mask.endFill(); }; }; /* ----------------------- Spinner 2. Scaling balls. ---------------------- */ const generateSpinner2 = (position) => { const container = new PIXI.Container(); container.position = position; app.stage.addChild(container); const size = 100; const ballAmount = 7; const balls = []; for (let i = 0; i < ballAmount; i++) { const ball = PIXI.Sprite.from('https://pixijs.com/assets/circle.png'); ball.anchor.set(0.5); container.addChild(ball); ball.position.set( size / 2 + Math.cos(i / ballAmount * Math.PI * 2) * size / 3, size / 2 + Math.sin(i / ballAmount * Math.PI * 2) * size / 3, ); balls.push(ball); } let phase = 0; return (delta) => { // Update phase phase += delta / 60; phase %= (Math.PI * 2); // Update ball scales balls.forEach((b, i) => { const sin = Math.sin(i / ballAmount * Math.PI - phase); // Multiply sin with itself to get more steeper edge. b.scale.set(Math.abs(sin * sin * sin * 0.5) + 0.5); }); }; }; /* --------------------- Spinner 3. Radial mask. -------------------- */ const generateSpinner3 = (position) => { const container = new PIXI.Container(); container.position = position; app.stage.addChild(container); const base = PIXI.Sprite.from('https://pixijs.com/assets/bg_scene_rotate.jpg'); const size = 100; base.width = size; base.height = size; const mask = new PIXI.Graphics(); mask.position.set(size / 2, size / 2); base.mask = mask; window.mask = mask; container.addChild(base); container.addChild(mask); let phase = 0; return (delta) => { // Update phase phase += delta / 60; phase %= (Math.PI * 2); const angleStart = 0 - Math.PI / 2; const angle = phase + angleStart; const radius = 50; const x1 = Math.cos(angleStart) * radius; const y1 = Math.sin(angleStart) * radius; // Redraw mask mask.clear(); mask.lineStyle(2, 0xff0000, 1); mask.beginFill(0xff0000, 1); mask.moveTo(0, 0); mask.lineTo(x1, y1); mask.arc(0, 0, radius, angleStart, angle, false); mask.lineTo(0, 0); mask.endFill(); }; }; /* --------------------------------- Spinner 4. Rounded rectangle edges. ------------------------------- */ const generateSpinner4 = (position) => { const container = new PIXI.Container(); container.position = position; app.stage.addChild(container); const size = 100; const arcRadius = 15; const base = PIXI.Sprite.from('https://pixijs.com/assets/bg_scene_rotate.jpg'); base.width = size; base.height = size; // For better performance having assets prerounded would be better than masking. const roundingMask = new PIXI.Graphics(); roundingMask.beginFill(0, 1); roundingMask.lineStyle(1, 0xff0000, 1); roundingMask.drawRoundedRect(0, 0, size, size, arcRadius); roundingMask.endFill(); base.mask = roundingMask; // The edge could be replaced with image as well. const lineSize = 5; const edge = new PIXI.Graphics(); edge.lineStyle(lineSize, 0xff0000, 1); edge.drawRoundedRect(0, 0, size, size, arcRadius); edge.endFill(); // Mask in this example works basically the same way as in example 1. // Except it is reversed and calculates the mask in straight lines in edges. const mask = new PIXI.Graphics(); mask.position.set(size / 2, size / 2); edge.mask = mask; container.addChild(base); container.addChild(roundingMask); container.addChild(edge); container.addChild(mask); let phase = 0; return (delta) => { // Update phase phase += delta / 160; phase %= (Math.PI * 2); // Calculate target point. const x = Math.cos(phase - Math.PI / 2) * size; const y = Math.sin(phase - Math.PI / 2) * size; // Line segments const segments = [ [-size / 2 + lineSize, -size / 2 + lineSize, size / 2 - lineSize, -size / 2 + lineSize], // top segment [size / 2 - lineSize, -size / 2 + lineSize, size / 2 - lineSize, size / 2 - lineSize], // right [-size / 2 + lineSize, size / 2 - lineSize, size / 2 - lineSize, size / 2 - lineSize], // bottom [-size / 2 + lineSize, -size / 2 + lineSize, -size / 2 + lineSize, size / 2 - lineSize], // left ]; // To which dir should mask continue at each segment let outDir = [ [0, -1], [1, 0], [0, 1], [-1, 0], ]; // Find the intersecting segment. let intersection = null; let winding = 0; // What direction should the line continue after hit has been found before hitting the line size for (let i = 0; i < segments.length; i++) { const segment = segments[i]; const hit = intersect(0, 0, x, y, segment[0], segment[1], segment[2], segment[3]); if (hit) { intersection = hit; if (i === 0) winding = hit.x < 0 ? 0 : 4; else winding = 4 - i; outDir = outDir[i]; break; } } const corners = [ -size / 2 - lineSize, -size / 2 - lineSize, // Top left, -size / 2 - lineSize, size / 2 + lineSize, // Bottom left size / 2 + lineSize, size / 2 + lineSize, // Bottom right size / 2 + lineSize, -size / 2 - lineSize, // Top right ]; // Redraw mask mask.clear(); mask.lineStyle(2, 0x00ff00, 1); mask.beginFill(0xff0000, 1); mask.moveTo(0, 0); mask.moveTo(0, -size / 2 - lineSize); // fill the corners for (let i = 0; i < winding; i++) { mask.lineTo(corners[i * 2], corners[i * 2 + 1]); } mask.lineTo(intersection.x + outDir[0] * lineSize * 2, intersection.y + outDir[1] * lineSize * 2); mask.lineTo(intersection.x, intersection.y); mask.lineTo(0, 0); mask.endFill(); }; }; /* --------------------- Spinner 5. Rounded rectangle fixed length spinner by jonlepage -------------------- */ const generateSpinner5 = (position) => { const container = new PIXI.Container(); container.position = position; app.stage.addChild(container); const halfCircle = new PIXI.Graphics(); halfCircle.beginFill(0xff0000); halfCircle.lineStyle(2, 0xffffff); halfCircle.arc(0, 0, 100, 0, Math.PI); halfCircle.endFill(); halfCircle.position.set(50, 50); const rectangle = new PIXI.Graphics(); rectangle.lineStyle(2, 0xffffff, 1); rectangle.drawRoundedRect(0, 0, 100, 100, 16); rectangle.endFill(); rectangle.mask = halfCircle; container.addChild(rectangle); container.addChild(halfCircle); let phase = 0; return (delta) => { // Update phase phase += delta / 6; phase %= (Math.PI * 2); halfCircle.rotation = phase; }; }; const onTick = [ generateSpinner1(new PIXI.Point(50, 50)), generateSpinner2(new PIXI.Point(160, 50)), generateSpinner3(new PIXI.Point(270, 50)), generateSpinner4(new PIXI.Point(380, 50)), generateSpinner5(new PIXI.Point(490, 50)), ]; // Listen for animate update app.ticker.add((delta) => { // Call tick handling for each spinner. onTick.forEach((cb) => { cb(delta); }); }); /** * Helper functions line intercept math by Paul Bourke http://paulbourke.net/geometry/pointlineplane/ Determine the intersection point of two line segments Return FALSE if the lines don't intersect Code modified from original to match pixi examples linting rules. */ function intersect(x1, y1, x2, y2, x3, y3, x4, y4) { // Check if none of the lines are of length 0 if ((x1 === x2 && y1 === y2) || (x3 === x4 && y3 === y4)) { return false; } const denominator = ((y4 - y3) * (x2 - x1) - (x4 - x3) * (y2 - y1)); // Lines are parallel if (denominator === 0) { return false; } const ua = ((x4 - x3) * (y1 - y3) - (y4 - y3) * (x1 - x3)) / denominator; const ub = ((x2 - x1) * (y1 - y3) - (y2 - y1) * (x1 - x3)) / denominator; // is the intersection along the segments if (ua < 0 || ua > 1 || ub < 0 || ub > 1) { return false; } // Return a object with the x and y coordinates of the intersection const x = x1 + ua * (x2 - x1); const y = y1 + ua * (y2 - y1); return { x, y }; }","s":"Spinners","u":"/examples/advanced/spinners","h":"","p":52},{"i":55,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ background: '#1099bb', resizeTo: window }); document.body.appendChild(app.view); // Add the assets to load PIXI.Assets.add('flowerTop', 'https://pixijs.com/assets/flowerTop.png'); PIXI.Assets.add('eggHead', 'https://pixijs.com/assets/eggHead.png'); // Allow the assets to load in the background PIXI.Assets.backgroundLoad(['flowerTop', 'eggHead']); // If the background load hasn't loaded this asset yet, calling load forces this asset to load now. PIXI.Assets.load('eggHead').then((texture) => { // auxiliar flag for toggling the texture let isEggHead = true; // create a new Sprite from the resolved loaded texture const character = new PIXI.Sprite(texture); character.anchor.set(0.5); character.x = app.screen.width / 2; character.y = app.screen.height / 2; character.eventMode = 'static'; character.cursor = 'pointer'; app.stage.addChild(character); character.on('pointertap', async () => { isEggHead = !isEggHead; // These promise are already resolved in the cache. character.texture = await PIXI.Assets.load(isEggHead ? 'eggHead' : 'flowerTop'); }); });","s":"Background","u":"/examples/assets/background","h":"","p":54},{"i":57,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ background: '#1099bb', resizeTo: window }); document.body.appendChild(app.view); async function init() { // manifest example const manifestExample = { bundles: [{ name: 'load-screen', assets: [ { name: 'flowerTop', srcs: 'https://pixijs.com/assets/flowerTop.png', }, ], }, { name: 'game-screen', assets: [ { name: 'eggHead', srcs: 'https://pixijs.com/assets/eggHead.png', }, ], }], }; await PIXI.Assets.init({ manifest: manifestExample }); // bundles can be loaded in the background too! PIXI.Assets.backgroundLoadBundle(['load-screen', 'game-screen']); makeLoadScreen(); } async function makeLoadScreen() { // get the assets from the load screen bundle. // If the bundle was already downloaded the promise resolves instantly! const loadScreenAssets = await PIXI.Assets.loadBundle('load-screen'); // create a new Sprite from the resolved loaded texture const goNext = new PIXI.Sprite(loadScreenAssets.flowerTop); goNext.anchor.set(0.5); goNext.x = app.screen.width / 2; goNext.y = app.screen.height / 2; app.stage.addChild(goNext); goNext.eventMode = 'static'; goNext.cursor = 'pointer'; goNext.on('pointertap', async () => { goNext.destroy(); makeGameScreen(); }); } async function makeGameScreen() { // Wait here until you get the assets // If the user spends enough time in the load screen by the time they reach the game screen // the assets are completely loaded and the promise resolves instantly! const loadScreenAssets = await PIXI.Assets.loadBundle('game-screen'); // create a new Sprite from the resolved loaded texture const goBack = new PIXI.Sprite(loadScreenAssets.eggHead); goBack.anchor.set(0.5); goBack.x = app.screen.width / 2; goBack.y = app.screen.height / 2; app.stage.addChild(goBack); goBack.eventMode = 'static'; goBack.cursor = 'pointer'; goBack.on('pointertap', async () => { goBack.destroy(); // The user can go back and the files are already downloaded makeLoadScreen(); }); } init();","s":"Bundle","u":"/examples/assets/bundle","h":"","p":56},{"i":59,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ background: '#1099bb', resizeTo: window }); document.body.appendChild(app.view); // Add the assets to load PIXI.Assets.add('flowerTop', 'https://pixijs.com/assets/flowerTop.png'); PIXI.Assets.add('eggHead', 'https://pixijs.com/assets/eggHead.png'); // Load the assets and get a resolved promise once both are loaded const texturesPromise = PIXI.Assets.load(['flowerTop', 'eggHead']); // => Promise<{flowerTop: Texture, eggHead: Texture}> // When the promise resolves, we have the texture! texturesPromise.then((textures) => { // create a new Sprite from the resolved loaded Textures const flower = PIXI.Sprite.from(textures.flowerTop); flower.anchor.set(0.5); flower.x = app.screen.width * 0.25; flower.y = app.screen.height / 2; app.stage.addChild(flower); const egg = PIXI.Sprite.from(textures.eggHead); egg.anchor.set(0.5); egg.x = app.screen.width * 0.75; egg.y = app.screen.height / 2; app.stage.addChild(egg); });","s":"Multiple","u":"/examples/assets/multiple","h":"","p":58},{"i":61,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ background: '#1099bb', resizeTo: window }); document.body.appendChild(app.view); // Start loading right away and create a promise const texturePromise = PIXI.Assets.load('https://pixijs.com/assets/bunny.png'); // When the promise resolves, we have the texture! texturePromise.then((resolvedTexture) => { // create a new Sprite from the resolved loaded Texture const bunny = PIXI.Sprite.from(resolvedTexture); // center the sprite's anchor point bunny.anchor.set(0.5); // move the sprite to the center of the screen bunny.x = app.screen.width / 2; bunny.y = app.screen.height / 2; app.stage.addChild(bunny); });","s":"Promise","u":"/examples/assets/promise","h":"","p":60},{"i":63,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); // create a new background sprite const background = PIXI.Sprite.from('https://pixijs.com/assets/bg_rotate.jpg'); background.width = app.screen.width; background.height = app.screen.height; app.stage.addChild(background); // create an array to store a reference to the dudes const dudeArray = []; const totaldudes = 20; for (let i = 0; i < totaldudes; i++) { // create a new Sprite that uses the image name that we just generated as its source const dude = PIXI.Sprite.from('https://pixijs.com/assets/flowerTop.png'); dude.anchor.set(0.5); // set a random scale for the dude dude.scale.set(0.8 + Math.random() * 0.3); // finally let's set the dude to be at a random position... dude.x = Math.floor(Math.random() * app.screen.width); dude.y = Math.floor(Math.random() * app.screen.height); // The important bit of this example, this is how you change the default blend mode of the sprite dude.blendMode = PIXI.BLEND_MODES.ADD; // create some extra properties that will control movement dude.direction = Math.random() * Math.PI * 2; // this number will be used to modify the direction of the dude over time dude.turningSpeed = Math.random() - 0.8; // create a random speed for the dude between 0 - 2 dude.speed = 2 + Math.random() * 2; // finally we push the dude into the dudeArray so it it can be easily accessed later dudeArray.push(dude); app.stage.addChild(dude); } // create a bounding box for the little dudes const dudeBoundsPadding = 100; const dudeBounds = new PIXI.Rectangle( -dudeBoundsPadding, -dudeBoundsPadding, app.screen.width + dudeBoundsPadding * 2, app.screen.height + dudeBoundsPadding * 2, ); app.ticker.add(() => { // iterate through the dudes and update the positions for (let i = 0; i < dudeArray.length; i++) { const dude = dudeArray[i]; dude.direction += dude.turningSpeed * 0.01; dude.x += Math.sin(dude.direction) * dude.speed; dude.y += Math.cos(dude.direction) * dude.speed; dude.rotation = -dude.direction - Math.PI / 2; // wrap the dudes by testing their bounds... if (dude.x < dudeBounds.x) { dude.x += dudeBounds.width; } else if (dude.x > dudeBounds.x + dudeBounds.width) { dude.x -= dudeBounds.width; } if (dude.y < dudeBounds.y) { dude.y += dudeBounds.height; } else if (dude.y > dudeBounds.y + dudeBounds.height) { dude.y -= dudeBounds.height; } } });","s":"Blend Modes","u":"/examples/basic/blend-modes","h":"","p":62},{"i":65,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); app.stop(); // load resources PIXI.Assets.load('https://pixijs.com/assets/spritesheet/monsters.json') .then(onAssetsLoaded); // holder to store aliens const aliens = []; const alienFrames = [ 'eggHead.png', 'flowerTop.png', 'helmlok.png', 'skully.png', ]; let count = 0; // create an empty container const alienContainer = new PIXI.Container(); alienContainer.x = 400; alienContainer.y = 300; // make the stage interactive app.stage.eventMode = 'static'; app.stage.addChild(alienContainer); function onAssetsLoaded() { // add a bunch of aliens with textures from image paths for (let i = 0; i < 100; i++) { const frameName = alienFrames[i % 4]; // create an alien using the frame name.. const alien = PIXI.Sprite.from(frameName); alien.tint = Math.random() * 0xFFFFFF; alien.x = Math.random() * 800 - 400; alien.y = Math.random() * 600 - 300; alien.anchor.x = 0.5; alien.anchor.y = 0.5; aliens.push(alien); alienContainer.addChild(alien); } app.start(); } // Combines both mouse click + touch tap app.stage.on('pointertap', onClick); function onClick() { alienContainer.cacheAsBitmap = !alienContainer.cacheAsBitmap; } app.ticker.add(() => { // let's rotate the aliens a little bit for (let i = 0; i < 100; i++) { const alien = aliens[i]; alien.rotation += 0.1; } count += 0.01; alienContainer.scale.x = Math.sin(count); alienContainer.scale.y = Math.sin(count); alienContainer.rotation += 0.01; });","s":"Cache As Bitmap","u":"/examples/basic/cache-as-bitmap","h":"","p":64},{"i":67,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ background: '#1099bb', resizeTo: window }); document.body.appendChild(app.view); const container = new PIXI.Container(); app.stage.addChild(container); // Create a new texture const texture = PIXI.Texture.from('https://pixijs.com/assets/bunny.png'); // Create a 5x5 grid of bunnies for (let i = 0; i < 25; i++) { const bunny = new PIXI.Sprite(texture); bunny.anchor.set(0.5); bunny.x = (i % 5) * 40; bunny.y = Math.floor(i / 5) * 40; container.addChild(bunny); } // Move container to the center container.x = app.screen.width / 2; container.y = app.screen.height / 2; // Center bunny sprite in local container coordinates container.pivot.x = container.width / 2; container.pivot.y = container.height / 2; // Listen for animate update app.ticker.add((delta) => { // rotate the container! // use delta to create frame-independent transform container.rotation -= 0.01 * delta; });","s":"Container","u":"/examples/basic/container","h":"","p":66},{"i":69,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); const sprites = new PIXI.ParticleContainer(10000, { scale: true, position: true, rotation: true, uvs: true, alpha: true, }); app.stage.addChild(sprites); // create an array to store all the sprites const maggots = []; const totalSprites = app.renderer instanceof PIXI.Renderer ? 10000 : 100; for (let i = 0; i < totalSprites; i++) { // create a new Sprite const dude = PIXI.Sprite.from('https://pixijs.com/assets/maggot_tiny.png'); // set the anchor point so the texture is centerd on the sprite dude.anchor.set(0.5); // different maggots, different sizes dude.scale.set(0.8 + Math.random() * 0.3); // scatter them all dude.x = Math.random() * app.screen.width; dude.y = Math.random() * app.screen.height; dude.tint = Math.random() * 0x808080; // create a random direction in radians dude.direction = Math.random() * Math.PI * 2; // this number will be used to modify the direction of the sprite over time dude.turningSpeed = Math.random() - 0.8; // create a random speed between 0 - 2, and these maggots are slooww dude.speed = (2 + Math.random() * 2) * 0.2; dude.offset = Math.random() * 100; // finally we push the dude into the maggots array so it it can be easily accessed later maggots.push(dude); sprites.addChild(dude); } // create a bounding box box for the little maggots const dudeBoundsPadding = 100; const dudeBounds = new PIXI.Rectangle( -dudeBoundsPadding, -dudeBoundsPadding, app.screen.width + dudeBoundsPadding * 2, app.screen.height + dudeBoundsPadding * 2, ); let tick = 0; app.ticker.add(() => { // iterate through the sprites and update their position for (let i = 0; i < maggots.length; i++) { const dude = maggots[i]; dude.scale.y = 0.95 + Math.sin(tick + dude.offset) * 0.05; dude.direction += dude.turningSpeed * 0.01; dude.x += Math.sin(dude.direction) * (dude.speed * dude.scale.y); dude.y += Math.cos(dude.direction) * (dude.speed * dude.scale.y); dude.rotation = -dude.direction + Math.PI; // wrap the maggots if (dude.x < dudeBounds.x) { dude.x += dudeBounds.width; } else if (dude.x > dudeBounds.x + dudeBounds.width) { dude.x -= dudeBounds.width; } if (dude.y < dudeBounds.y) { dude.y += dudeBounds.height; } else if (dude.y > dudeBounds.y + dudeBounds.height) { dude.y -= dudeBounds.height; } } // increment the ticker tick += 0.1; });","s":"Particle Container","u":"/examples/basic/particle-container","h":"","p":68},{"i":71,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); // holder to store the aliens const aliens = []; const totalDudes = 20; for (let i = 0; i < totalDudes; i++) { // create a new Sprite that uses the image name that we just generated as its source const dude = PIXI.Sprite.from('https://pixijs.com/assets/eggHead.png'); // set the anchor point so the texture is centered on the sprite dude.anchor.set(0.5); // set a random scale for the dude - no point them all being the same size! dude.scale.set(0.8 + Math.random() * 0.3); // finally lets set the dude to be at a random position.. dude.x = Math.random() * app.screen.width; dude.y = Math.random() * app.screen.height; dude.tint = Math.random() * 0xFFFFFF; // create some extra properties that will control movement : // create a random direction in radians. This is a number between 0 and PI*2 which is the equivalent of 0 - 360 degrees dude.direction = Math.random() * Math.PI * 2; // this number will be used to modify the direction of the dude over time dude.turningSpeed = Math.random() - 0.8; // create a random speed for the dude between 2 - 4 dude.speed = 2 + Math.random() * 2; // finally we push the dude into the aliens array so it it can be easily accessed later aliens.push(dude); app.stage.addChild(dude); } // create a bounding box for the little dudes const dudeBoundsPadding = 100; const dudeBounds = new PIXI.Rectangle(-dudeBoundsPadding, -dudeBoundsPadding, app.screen.width + dudeBoundsPadding * 2, app.screen.height + dudeBoundsPadding * 2); app.ticker.add(() => { // iterate through the dudes and update their position for (let i = 0; i < aliens.length; i++) { const dude = aliens[i]; dude.direction += dude.turningSpeed * 0.01; dude.x += Math.sin(dude.direction) * dude.speed; dude.y += Math.cos(dude.direction) * dude.speed; dude.rotation = -dude.direction - Math.PI / 2; // wrap the dudes by testing their bounds... if (dude.x < dudeBounds.x) { dude.x += dudeBounds.width; } else if (dude.x > dudeBounds.x + dudeBounds.width) { dude.x -= dudeBounds.width; } if (dude.y < dudeBounds.y) { dude.y += dudeBounds.height; } else if (dude.y > dudeBounds.y + dudeBounds.height) { dude.y -= dudeBounds.height; } } });","s":"Tinting","u":"/examples/basic/tinting","h":"","p":70},{"i":73,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ backgroundAlpha: 0, resizeTo: window }); document.body.appendChild(app.view); // create a new Sprite from an image path. const bunny = PIXI.Sprite.from('https://pixijs.com/assets/bunny.png'); // center the sprite's anchor point bunny.anchor.set(0.5); // move the sprite to the center of the screen bunny.x = app.screen.width / 2; bunny.y = app.screen.height / 2; app.stage.addChild(bunny); app.ticker.add(() => { // just for fun, let's rotate mr rabbit a little bunny.rotation += 0.1; });","s":"Transparent Background","u":"/examples/basic/transparent-background","h":"","p":72},{"i":75,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ background: '#1099bb', resizeTo: window }); document.body.appendChild(app.view); // Scale mode for all textures, will retain pixelation PIXI.settings.SCALE_MODE = PIXI.SCALE_MODES.NEAREST; const sprite = PIXI.Sprite.from('https://pixijs.com/assets/bunny.png'); // Set the initial position sprite.anchor.set(0.5); sprite.x = app.screen.width / 2; sprite.y = app.screen.height / 2; // Opt-in to interactivity sprite.eventMode = 'static'; // Shows hand cursor sprite.cursor = 'pointer'; // Pointers normalize touch and mouse (good for mobile and desktop) sprite.on('pointerdown', onClick); // Alternatively, use the mouse & touch events: // sprite.on('click', onClick); // mouse-only // sprite.on('tap', onClick); // touch-only app.stage.addChild(sprite); function onClick() { sprite.scale.x *= 1.25; sprite.scale.y *= 1.25; }","s":"Click","u":"/examples/events/click","h":"","p":74},{"i":77,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ background: '#1099bb', resizeTo: window }); document.body.appendChild(app.view); // Css style for icons const defaultIcon = 'url(\\'https://pixijs.com/assets/bunny.png\\'),auto'; const hoverIcon = 'url(\\'https://pixijs.com/assets/bunny_saturated.png\\'),auto'; // Add custom cursor styles app.renderer.events.cursorStyles.default = defaultIcon; app.renderer.events.cursorStyles.hover = hoverIcon; // create a background... const background = PIXI.Sprite.from('https://pixijs.com/assets/bg_button.jpg'); background.width = app.screen.width; background.height = app.screen.height; // add background to stage... app.stage.addChild(background); // create some textures from an image path const textureButton = PIXI.Texture.from('https://pixijs.com/assets/button.png'); const textureButtonDown = PIXI.Texture.from('https://pixijs.com/assets/button_down.png'); const textureButtonOver = PIXI.Texture.from('https://pixijs.com/assets/button_over.png'); const buttons = []; const buttonPositions = [ 175, 75, 655, 75, 410, 325, 150, 465, 685, 445, ]; for (let i = 0; i < 5; i++) { const button = new PIXI.Sprite(textureButton); button.cursor = 'hover'; button.anchor.set(0.5); button.x = buttonPositions[i * 2]; button.y = buttonPositions[i * 2 + 1]; // make the button interactive... button.eventMode = 'static'; button .on('pointerdown', onButtonDown) .on('pointerup', onButtonUp) .on('pointerupoutside', onButtonUp) .on('pointerover', onButtonOver) .on('pointerout', onButtonOut); // add it to the stage app.stage.addChild(button); // add button to array buttons.push(button); } // set some silly values... buttons[0].scale.set(1.2); buttons[2].rotation = Math.PI / 10; buttons[3].scale.set(0.8); buttons[4].scale.set(0.8, 1.2); buttons[4].rotation = Math.PI; function onButtonDown() { this.isdown = true; this.texture = textureButtonDown; this.alpha = 1; } function onButtonUp() { this.isdown = false; if (this.isOver) { this.texture = textureButtonOver; } else { this.texture = textureButton; } } function onButtonOver() { this.isOver = true; if (this.isdown) { return; } this.texture = textureButtonOver; } function onButtonOut() { this.isOver = false; if (this.isdown) { return; } this.texture = textureButton; }","s":"Custom Mouse Icon","u":"/examples/events/custom-mouse-icon","h":"","p":76},{"i":79,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ background: '#1099bb', resizeTo: window }); document.body.appendChild(app.view); // create a texture from an image path const texture = PIXI.Texture.from('https://pixijs.com/assets/bunny.png'); // Scale mode for pixelation texture.baseTexture.scaleMode = PIXI.SCALE_MODES.NEAREST; for (let i = 0; i < 10; i++) { createBunny( Math.floor(Math.random() * app.screen.width), Math.floor(Math.random() * app.screen.height), ); } function createBunny(x, y) { // create our little bunny friend.. const bunny = new PIXI.Sprite(texture); // enable the bunny to be interactive... this will allow it to respond to mouse and touch events bunny.eventMode = 'static'; // this button mode will mean the hand cursor appears when you roll over the bunny with your mouse bunny.cursor = 'pointer'; // center the bunny's anchor point bunny.anchor.set(0.5); // make it a bit bigger, so it's easier to grab bunny.scale.set(3); // setup events for mouse + touch using // the pointer events bunny.on('pointerdown', onDragStart, bunny); // move the sprite to its designated position bunny.x = x; bunny.y = y; // add it to the stage app.stage.addChild(bunny); } let dragTarget = null; app.stage.eventMode = 'static'; app.stage.hitArea = app.screen; app.stage.on('pointerup', onDragEnd); app.stage.on('pointerupoutside', onDragEnd); function onDragMove(event) { if (dragTarget) { dragTarget.parent.toLocal(event.global, null, dragTarget.position); } } function onDragStart() { // store a reference to the data // the reason for this is because of multitouch // we want to track the movement of this particular touch // this.data = event.data; this.alpha = 0.5; dragTarget = this; app.stage.on('pointermove', onDragMove); } function onDragEnd() { if (dragTarget) { app.stage.off('pointermove', onDragMove); dragTarget.alpha = 1; dragTarget = null; } }","s":"Dragging","u":"/examples/events/dragging","h":"","p":78},{"i":81,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application(800, 600, { background: '#1099bb' }); document.body.appendChild(app.view); const yellowStar = PIXI.Texture.from('https://pixijs.com/assets/yellowstar.png'); // Standard Sprite Button const starButton1 = new PIXI.Sprite(yellowStar); starButton1.position.set(50, 200); starButton1.cursor = 'pointer'; starButton1.eventMode = 'static'; starButton1 .on('pointerdown', onClick, starButton1) .on('pointerover', onPointerOver, starButton1) .on('pointerout', onPointerOut, starButton1); // Custom Hitarea Button const starButton2 = new PIXI.Sprite(yellowStar); starButton2.position.set(250, 200); // Create a hitarea that matches the sprite, which will be used for point // intersection starButton2.hitArea = new PIXI.Polygon([ 80, 0, 100, 50, 160, 55, 115, 95, 130, 150, 80, 120, 30, 150, 45, 95, 0, 55, 60, 50, ]); starButton2.cursor = 'pointer'; starButton2.eventMode = 'static'; starButton2 .on('pointerdown', onClick, starButton2) .on('pointerover', onPointerOver, starButton2) .on('pointerout', onPointerOut, starButton2); // With Mask, No Hit Area const starButton3 = new PIXI.Sprite(yellowStar); starButton3.position.set(450, 200); starButton3.cursor = 'pointer'; starButton3.eventMode = 'static'; const squareMask = new PIXI.Graphics() .beginFill(0xFFFFFF) .drawRect(starButton3.x, starButton3.y, 75, 200) .endFill(); starButton3.mask = squareMask; starButton3 .on('pointerdown', onClick, starButton3) .on('pointerover', onPointerOver, starButton3) .on('pointerout', onPointerOut, starButton3); // With a Mask and Hit Area // Hitareas ignore masks. You can still click on a button made in this way, // even from areas covered by a mask const starButton4 = new PIXI.Sprite(yellowStar); starButton4.position.set(600, 200); const squareMask2 = new PIXI.Graphics() .beginFill(0xFFFFFF) .drawRect(starButton4.x, starButton4.y, 75, 200) .endFill(); starButton4.mask = squareMask2; // Again, hitarea for intersection checks starButton4.hitArea = new PIXI.Polygon([ 80, 0, 100, 50, 160, 55, 115, 95, 130, 150, 80, 120, 30, 150, 45, 95, 0, 55, 60, 50, ]); starButton4.cursor = 'pointer'; starButton4.eventMode = 'static'; starButton4 .on('pointerdown', onClick, starButton4) .on('pointerover', onPointerOver, starButton4) .on('pointerout', onPointerOut, starButton4); const style = new PIXI.TextStyle({ fill: '#ffffff' }); const text1 = new PIXI.Text('Standard', style); text1.x = starButton1.x + 25; text1.y = starButton1.y + 170; const text2 = new PIXI.Text('Hit Area', style); text2.x = starButton2.x + 35; text2.y = starButton2.y + 170; const text3 = new PIXI.Text('Mask', style); text3.x = starButton3.x + 10; text3.y = starButton3.y + 170; const text4 = new PIXI.Text('Mask + Hit Area', style); text4.x = starButton4.x - 10; text4.y = starButton4.y + 170; // Add to stage app.stage.addChild( starButton2, starButton1, starButton3, starButton4, squareMask, squareMask2, text1, text2, text3, text4, ); function onClick() { this.tint = 0x333333; } function onPointerOver() { this.tint = 0x666666; } function onPointerOut() { this.tint = 0xFFFFFF; }","s":"Custom Hitarea","u":"/examples/events/custom-hitarea","h":"","p":80},{"i":83,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ background: '#1099bb', resizeTo: window }); document.body.appendChild(app.view); PIXI.Assets.load('https://pixijs.com/assets/bg_grass.jpg').then((texture) => { const plane = new PIXI.SimplePlane(texture, 10, 10); plane.x = 100; plane.y = 100; app.stage.addChild(plane); // Get the buffer for vertice positions. const buffer = plane.geometry.getBuffer('aVertexPosition'); // Listen for animate update let timer = 0; app.ticker.add(() => { // Randomize the vertice positions a bit to create movement. for (let i = 0; i < buffer.data.length; i++) { buffer.data[i] += Math.sin((timer / 10) + i) * 0.5; } buffer.update(); timer++; }); });","s":"Simple Plane","u":"/examples/basic/simple-plane","h":"","p":82},{"i":85,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); // create a background... const background = PIXI.Sprite.from('https://pixijs.com/assets/bg_button.jpg'); background.width = app.screen.width; background.height = app.screen.height; // add background to stage... app.stage.addChild(background); // create some textures from an image path const textureButton = PIXI.Texture.from('https://pixijs.com/assets/button.png'); const textureButtonDown = PIXI.Texture.from('https://pixijs.com/assets/button_down.png'); const textureButtonOver = PIXI.Texture.from('https://pixijs.com/assets/button_over.png'); const buttons = []; const buttonPositions = [ 175, 75, 655, 75, 410, 325, 150, 465, 685, 445, ]; for (let i = 0; i < 5; i++) { const button = new PIXI.Sprite(textureButton); button.anchor.set(0.5); button.x = buttonPositions[i * 2]; button.y = buttonPositions[i * 2 + 1]; // make the button interactive... button.eventMode = 'static'; button.cursor = 'pointer'; button // Mouse & touch events are normalized into // the pointer* events for handling different // button events. .on('pointerdown', onButtonDown) .on('pointerup', onButtonUp) .on('pointerupoutside', onButtonUp) .on('pointerover', onButtonOver) .on('pointerout', onButtonOut); // Use mouse-only events // .on('mousedown', onButtonDown) // .on('mouseup', onButtonUp) // .on('mouseupoutside', onButtonUp) // .on('mouseover', onButtonOver) // .on('mouseout', onButtonOut) // Use touch-only events // .on('touchstart', onButtonDown) // .on('touchend', onButtonUp) // .on('touchendoutside', onButtonUp) // add it to the stage app.stage.addChild(button); // add button to array buttons.push(button); } // set some silly values... buttons[0].scale.set(1.2); buttons[2].rotation = Math.PI / 10; buttons[3].scale.set(0.8); buttons[4].scale.set(0.8, 1.2); buttons[4].rotation = Math.PI; function onButtonDown() { this.isdown = true; this.texture = textureButtonDown; this.alpha = 1; } function onButtonUp() { this.isdown = false; if (this.isOver) { this.texture = textureButtonOver; } else { this.texture = textureButton; } } function onButtonOver() { this.isOver = true; if (this.isdown) { return; } this.texture = textureButtonOver; } function onButtonOut() { this.isOver = false; if (this.isdown) { return; } this.texture = textureButton; }","s":"Interactivity","u":"/examples/events/interactivity","h":"","p":84},{"i":87,"t":"import * as PIXI from 'pixi.js'; // This example logs the order of events hover-related events in the scene. const app = new PIXI.Application({ antialias: true, background: '#1099bb', }); document.body.appendChild(app.view); const title = app.stage.addChild(new PIXI.Text( `Move your mouse slowly over the boxes to see the order of pointerenter, pointerleave, pointerover, pointerout events on each target!`, { fontSize: 16, }, )); title.x = 2; const logs = []; const logText = app.stage.addChild(new PIXI.Text('', { fontSize: 14, })); logText.y = 80; logText.x = 2; app.stage.name = 'stage'; // Mount outer black box const blackBox = app.stage.addChild(new PIXI.Graphics() .beginFill(0) .drawRect(0, 0, 400, 400) .endFill()); blackBox.name = 'black box'; blackBox.x = 400; // Mount white box inside the white one const whiteBox = blackBox.addChild(new PIXI.Graphics() .beginFill(0xffffff) .drawRect(100, 100, 200, 200) .endFill()); whiteBox.name = 'white box'; // Enable interactivity everywhere! app.stage.eventMode = 'static'; app.stage.hitArea = app.screen; whiteBox.eventMode = 'static'; blackBox.eventMode = 'static'; function onEvent(e) { const type = e.type; const targetName = e.target.name; const currentTargetName = e.currentTarget.name; // Add event to top of logs logs.push(`${currentTargetName} received ${type} event (target is ${targetName})`); if (currentTargetName === 'stage' || type === 'pointerenter' || type === 'pointerleave') { logs.push('-----------------------------------------', ''); } // Prevent logs from growing too long if (logs.length > 30) { while (logs.length > 30) { logs.shift(); } } // Update logText logText.text = logs.join('\\n'); } [app.stage, whiteBox, blackBox].forEach((object) => { object.addEventListener('pointerenter', onEvent); object.addEventListener('pointerleave', onEvent); object.addEventListener('pointerover', onEvent); object.addEventListener('pointerout', onEvent); });","s":"Logger","u":"/examples/events/logger","h":"","p":86},{"i":89,"t":"import * as PIXI from 'pixi.js'; // In this a example, a circle will follow the pointer wherever it // moves over the canvas. const app = new PIXI.Application({ antialias: true, background: '#1099bb', }); document.body.appendChild(app.view); // Create the circle const circle = app.stage.addChild(new PIXI.Graphics() .beginFill(0xffffff) .lineStyle({ color: 0x111111, alpha: 0.87, width: 1 }) .drawCircle(0, 0, 8) .endFill()); circle.position.set(app.screen.width / 2, app.screen.height / 2); // Enable interactivity! app.stage.eventMode = 'static'; // Make sure the whole canvas area is interactive, not just the circle. app.stage.hitArea = app.screen; // Follow the pointer app.stage.addEventListener('pointermove', (e) => { circle.position.copyFrom(e.global); });","s":"Pointer Tracker","u":"/examples/events/pointer-tracker","h":"","p":88},{"i":91,"t":"import * as PIXI from 'pixi.js'; import '@pixi/graphics-extras'; // This example shows how you can setup a nested boundary to propagate events // into a disjoint scene graph. Here, a camera is used to project an different // world onto the canvas. const app = new PIXI.Application({ antialias: true, background: '#1099bb', }); document.body.appendChild(app.view); // A projector renders it's content using projection. The transforms in // the contents scene graph don't change if you move the camera. To achieve // this, the content is not added as a \"child\" to the projector; however, this // means events won't propagate into the content by default. // // To solve this, we nest our own EventBoundary, and connect it using // addEventListener! class Projector extends PIXI.DisplayObject { constructor() { super(); // The content root to be rendered by this camera. this.content = new PIXI.Container(); // Temporary matrix to store the original projection transform. this.originalTransform = new PIXI.Matrix(); // The event boundary that'll map events downstream into the content // scene. this.boundary = new PIXI.EventBoundary(this.content); // Override copyMouseData to apply inverse worldTransform on // global coords this.boundary.copyMouseData = (from, to) => { // Apply default implementation first PIXI.EventBoundary.prototype.copyMouseData.call(this.boundary, from, to); // Then bring global coords into content's world this.worldTransform.applyInverse(to.global, to.global); // TODO: Remove after https://github.com/pixijs/pixi.js/pull/7381 // is merged! to.target = this.boundary.hitTest(to.global.x, to.global.y); }; // Propagate these events down into the content's scene graph! [ 'pointerdown', 'pointerup', 'pointermove', 'pointerover', 'pointerout', 'wheel', ].forEach((event) => { this.addEventListener(event, (e) => this.boundary.mapEvent(e)); }); this.eventMode = 'static'; } // Pass through cursor get cursor() { return this.boundary.cursor; } // eslint-disable-next-line class-methods-use-this set cursor(value) { throw new Error('The camera\\'s cursor is derived from its content!'); } // Pass through calculateBounds calculateBounds() { const contentBounds = this.content.getBounds(); this._bounds.addFrameMatrix( this.worldTransform, contentBounds.x, contentBounds.y, contentBounds.width, contentBounds.height, ); } // Pass through containsPoint containsPoint(point) { return !!this.boundary.hitTest(point.x, point.y); } // Render content with projection render(renderer) { renderer.batch.flush(); const projectionSystem = renderer.projection; const renderTextureSystem = renderer.renderTexture; projectionSystem.transform = projectionSystem.transform || new PIXI.Matrix(); projectionSystem.transform.copyTo(this.originalTransform); projectionSystem.transform.append(this.worldTransform); projectionSystem.update(null, null, 1, !renderTextureSystem.current); this.content.render(renderer); renderer.batch.flush(); projectionSystem.transform.copyFrom(this.originalTransform); projectionSystem.update(null, null, 1, !renderTextureSystem.current); } // updateTransform also updates content's transform updateTransform() { super.updateTransform(); this.content.enableTempParent(); this.content.updateTransform(); this.content.disableTempParent(null); } } // The projector const projector = app.stage.addChild(new Projector()); // Add coordinate axes! projector.content.addChild( new PIXI.Graphics() .lineStyle({ color: 0, alpha: 0.2, width: 2 }) .moveTo(0, -300) .lineTo(0, 600) .moveTo(-100, 0) .lineTo(700, 0), ); // Construct the star Graphics const stars = [1, 2, 3].map((i) => new PIXI.Graphics() .beginFill(0xffffff, 0.75) .drawStar(0, 0, 18 / i, 100 * i / 2)); // Place the stars stars[0].x = 0; stars[1].x = 200; stars[2].x = 500; // Add stars to the projector projector.content.addChild(...stars); // Make projection x+100, y+300 projector.x = 100; projector.y = 300; projector.content.hitArea = new PIXI.Rectangle(-100, -300, app.screen.width, app.screen.height); // Make hit-area cover the whole screen so we can capture // pointermove everywhere! projector.hitArea = projector.content.hitArea; projector.content.eventMode = 'static'; // Make stars interactive & add wheel handlers stars.forEach((star) => { // Make star interactive star.eventMode = 'static'; // Set initial cursor star.cursor = 'zoom-in'; // Add wheel rotation feedback star.addEventListener('wheel', (e) => { const scroll = Math.sign(e.deltaY) * Math.min(15, Math.abs(e.deltaY)); star.rotation += scroll / 100; }); // Add click zoom-in/zoom-out handler star.addEventListener('click', (e) => { if (star.scale.x === 1) { star.scale.set(1.33); star.cursor = 'zoom-out'; } else { star.scale.set(1); star.cursor = 'zoom-in'; } }); }); PIXI.BitmapFont.from('coordinates', { fontFamily: 'Roboto', fontSize: 16, fill: '#272d37', }, { chars: ['Global:() Screen-.,', ['0', '9']] }); const coordinates = new PIXI.BitmapText('Global: (0, 0)\\nScreen: (0, 0)', { fontName: 'coordinates', }); coordinates.x = 110; coordinates.y = 550; app.stage.addChild(coordinates); projector.content.addEventListener('pointermove', (e) => { const global = `(${e.global.x | 0}, ${e.global.y | 0})`; const screen = `(${e.screen.x | 0}, ${e.screen.y | 0})`; coordinates.text = `Global: ${global}\\nScreen: ${screen}`; }); const description = new PIXI.Text( 'The (0, 0) world coordinates for the content is located at the center of the first star!' + '\\n * Mouse wheel over stars to rotate them' + '\\n * Click to zoom in or out', { fontSize: 16, fontFamily: 'Roboto', fill: '#272d37', }, ); description.position.set(110, 12); app.stage.addChild(description);","s":"Nested Boundary With Projection","u":"/examples/events/nested-boundary-with-projection","h":"","p":90},{"i":93,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ antialias: true, background: '#1099bb', }); document.body.appendChild(app.view); const stageHeight = app.screen.height; const stageWidth = app.screen.width; // Make sure stage covers the whole scene app.stage.hitArea = app.screen; // Make the slider const sliderWidth = 320; const slider = new PIXI.Graphics() .beginFill(0x272d37) .drawRect(0, 0, sliderWidth, 4); slider.x = (stageWidth - sliderWidth) / 2; slider.y = stageHeight * 0.75; // Draw the handle const handle = new PIXI.Graphics() .beginFill(0xffffff) .drawCircle(0, 0, 8); handle.y = slider.height / 2; handle.x = sliderWidth / 2; handle.eventMode = 'static'; handle.cursor = 'pointer'; handle .on('pointerdown', onDragStart) .on('pointerup', onDragEnd) .on('pointerupoutside', onDragEnd); app.stage.addChild(slider); slider.addChild(handle); // Add bunny whose scale can be changed by user using slider const bunny = app.stage.addChild(PIXI.Sprite.from('https://pixijs.com/assets/bunny.png')); bunny.texture.baseTexture.scaleMode = PIXI.SCALE_MODES.NEAREST; bunny.scale.set(3); bunny.anchor.set(0.5); bunny.x = stageWidth / 2; bunny.y = stageHeight / 2; // Add title const title = new PIXI.Text('Drag the handle to change the scale of bunny.', { fill: '#272d37', fontFamily: 'Roboto', fontSize: 20, align: 'center', }); title.roundPixels = true; title.x = stageWidth / 2; title.y = 40; title.anchor.set(0.5, 0); app.stage.addChild(title); // Listen to pointermove on stage once handle is pressed. function onDragStart() { app.stage.eventMode = 'static'; app.stage.addEventListener('pointermove', onDrag); } // Stop dragging feedback once the handle is released. function onDragEnd(e) { app.stage.eventMode = 'auto'; app.stage.removeEventListener('pointermove', onDrag); } // Update the handle's position & bunny's scale when the handle is moved. function onDrag(e) { const halfHandleWidth = handle.width / 2; // Set handle y-position to match pointer, clamped to (4, screen.height - 4). handle.x = Math.max(halfHandleWidth, Math.min( slider.toLocal(e.global).x, sliderWidth - halfHandleWidth, )); // Normalize handle position between -1 and 1. const t = 2 * ((handle.x / sliderWidth) - 0.5); bunny.scale.set(3 * (1.1 + t)); }","s":"Slider","u":"/examples/events/slider","h":"","p":92},{"i":95,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); // Create background image const background = PIXI.Sprite.from('https://pixijs.com/assets/bg_grass.jpg'); background.width = app.screen.width; background.height = app.screen.height; app.stage.addChild(background); // Stop application wait for load to finish app.stop(); fetch('https://pixijs.com/assets/pixi-filters/shader.frag') .then((res) => res.text()) .then(onLoaded); let filter; // Handle the load completed function onLoaded(data) { // Create the new filter, arguments: (vertexShader, framentSource) filter = new PIXI.Filter(null, data, { customUniform: 0.0, }); // === WARNING === // specify uniforms in filter constructor // or set them BEFORE first use // filter.uniforms.customUniform = 0.0 // Add the filter background.filters = [filter]; // Resume application update app.start(); } // Animate the filter app.ticker.add((delta) => { filter.uniforms.customUniform += 0.04 * delta; });","s":"Custom","u":"/examples/filters-advanced/custom","h":"","p":94},{"i":97,"t":"import * as PIXI from 'pixi.js'; /** * https://github.com/pixijs/pixi.js/wiki/v5-Creating-Filters */ const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); // Create background image const background = PIXI.Sprite.from('https://pixijs.com/assets/bg_grass.jpg'); background.width = app.screen.width; background.height = app.screen.height; app.stage.addChild(background); // NOTE: this shader wont work on old devices where mediump precision is forced in fragment shader // because v5 default vertex shader uses `inputSize` in it. Same uniform in fragment and vertex shader // cant have different precision :( const shaderFrag = ` precision highp float; varying vec2 vTextureCoord; uniform vec2 mouse; uniform vec4 inputSize; uniform vec4 outputFrame; uniform float time; void main() { vec2 screenPos = vTextureCoord * inputSize.xy + outputFrame.xy; if (length(mouse - screenPos) < 25.0) { gl_FragColor = vec4(1.0, 1.0, 0.0, 1.0) * 0.7; //yellow circle, alpha=0.7 } else { // blend with underlying image, alpha=0.5 gl_FragColor = vec4( sin(time), (mouse.xy - outputFrame.xy) / outputFrame.zw, 1.0) * 0.5; } } `; const container = new PIXI.Container(); container.filterArea = new PIXI.Rectangle(100, 100, app.screen.width - 200, app.screen.height - 200); app.stage.addChild(container); const filter = new PIXI.Filter(null, shaderFrag, { mouse: new PIXI.Point(), }); container.filters = [filter]; app.stage.hitArea = app.screen; app.stage.eventMode = 'static'; app.stage.on('pointermove', (event) => { filter.uniforms.mouse.copyFrom(event.global); });","s":"Mouse Blending","u":"/examples/filters-advanced/mouse-blending","h":"","p":96},{"i":99,"t":"import * as PIXI from 'pixi.js'; /** * Please note that this is not the most optimal way of doing pure shader generated rendering and should be used when the * scene is wanted as input texture. Check the mesh version of example for more performant version if you need only shader * generated content. **/ const app = new PIXI.Application({ background: '#1099bb', resizeTo: window }); document.body.appendChild(app.view); PIXI.Assets.load('https://pixijs.com/assets/perlin.jpg').then(onAssetsLoaded); let filter = null; const text = new PIXI.Text('PixiJS', { fill: 0xFFFFFF, fontSize: 80 }); text.anchor.set(0.5, 0.5); text.position.set(app.renderer.screen.width / 2, app.renderer.screen.height / 2); app.stage.addChild(text); let totalTime = 0; // Fragment shader, in real use this would be much cleaner when loaded from a file // or embedded into the application as data resource. const fragment = `//Based on this: https://www.shadertoy.com/view/wtlSWX varying vec2 vTextureCoord; uniform sampler2D uSampler; uniform sampler2D noise; uniform float time; // Distance function. Just calculates the height (z) from x,y plane with really simple length check. // Its not exact as there could be shorter distances. vec2 dist(vec3 p) { float id = floor(p.x)+floor(p.y); id = mod(id, 2.); float h = texture2D(noise, vec2(p.x, p.y)*0.04).r*5.1; float h2 = texture2D(uSampler, vTextureCoord).r; return vec2(h+h2-p.z,id); } //Light calculation. vec3 calclight(vec3 p, vec3 rd) { vec2 eps = vec2( 0., 0.001); vec3 n = normalize( vec3( dist(p+eps.yxx).x - dist(p-eps.yxx).x, dist(p+eps.xyx).x - dist(p-eps.xyx).x, dist(p+eps.xxy).x - dist(p-eps.xxy).x )); vec3 d = vec3( max( 0., dot( -rd ,n))); return d; } void main() { vec2 uv = vec2(vTextureCoord.x, 1.-vTextureCoord.y); uv *=2.; uv-=1.; vec3 cam = vec3(0.,time -2., -3.); vec3 target = vec3(sin(time)*0.1, time+cos(time)+2., 0. ); float fov = 2.2; vec3 forward = normalize( target - cam); vec3 up = normalize(cross( forward, vec3(0., 1.,0.))); vec3 right = normalize( cross( up, forward)); vec3 raydir = normalize(vec3( uv.x *up + uv.y * right + fov*forward)); //Do the raymarch vec3 col = vec3(0.); float t = 0.; for( int i = 0; i < 100; i++) { vec3 p = t * raydir + cam; vec2 d = dist(p); t+=d.x*0.5;//Jump only half of the distance as height function used is not really the best for heightmaps. if(d.x < 0.001) { vec3 bc = d.y < 0.5 ? vec3(1.0, .8, 0.) : vec3(0.8,0.0, 1.0); col = vec3( 1.) * calclight(p, raydir) * (1. - t/150.) *bc; break; } if(t > 1000.) { break; } } gl_FragColor = vec4(col, 1.); } `; function onAssetsLoaded(perlin) { // Add perlin noise for filter, make sure it's wrapping and does not have mipmap. perlin.baseTexture.wrapMode = PIXI.WRAP_MODES.REPEAT; perlin.baseTexture.mipmap = false; // Build the filter filter = new PIXI.Filter(null, fragment, { time: 0.0, noise: perlin, }); app.stage.filterArea = app.renderer.screen; app.stage.filters = [filter]; // Listen for animate update. app.ticker.add((delta) => { filter.uniforms.time = totalTime; totalTime += delta / 60; }); }","s":"Shader Toy Filter Render Texture","u":"/examples/filters-advanced/shader-toy-filter-render-texture","h":"","p":98},{"i":101,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); const bg = PIXI.Sprite.from('https://pixijs.com/assets/pixi-filters/bg_depth_blur.jpg'); bg.width = app.screen.width; bg.height = app.screen.height; app.stage.addChild(bg); const littleDudes = PIXI.Sprite.from('https://pixijs.com/assets/pixi-filters/depth_blur_dudes.jpg'); littleDudes.x = (app.screen.width / 2) - 315; littleDudes.y = 200; app.stage.addChild(littleDudes); const littleRobot = PIXI.Sprite.from('https://pixijs.com/assets/pixi-filters/depth_blur_moby.jpg'); littleRobot.x = (app.screen.width / 2) - 200; littleRobot.y = 100; app.stage.addChild(littleRobot); const blurFilter1 = new PIXI.filters.BlurFilter(); const blurFilter2 = new PIXI.filters.BlurFilter(); littleDudes.filters = [blurFilter1]; littleRobot.filters = [blurFilter2]; let count = 0; app.ticker.add(() => { count += 0.005; const blurAmount = Math.cos(count); const blurAmount2 = Math.sin(count); blurFilter1.blur = 20 * (blurAmount); blurFilter2.blur = 20 * (blurAmount2); });","s":"Blur","u":"/examples/filters-basic/blur","h":"","p":100},{"i":103,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); app.stage.eventMode = 'static'; const bg = PIXI.Sprite.from('https://pixijs.com/assets/bg_rotate.jpg'); bg.anchor.set(0.5); bg.x = app.screen.width / 2; bg.y = app.screen.height / 2; const filter = new PIXI.filters.ColorMatrixFilter(); const container = new PIXI.Container(); container.x = app.screen.width / 2; container.y = app.screen.height / 2; const bgFront = PIXI.Sprite.from('https://pixijs.com/assets/bg_scene_rotate.jpg'); bgFront.anchor.set(0.5); container.addChild(bgFront); const light2 = PIXI.Sprite.from('https://pixijs.com/assets/light_rotate_2.png'); light2.anchor.set(0.5); container.addChild(light2); const light1 = PIXI.Sprite.from('https://pixijs.com/assets/light_rotate_1.png'); light1.anchor.set(0.5); container.addChild(light1); const panda = PIXI.Sprite.from('https://pixijs.com/assets/panda.png'); panda.anchor.set(0.5); container.addChild(panda); app.stage.addChild(container); app.stage.filters = [filter]; let count = 0; let enabled = true; app.stage.on('pointertap', () => { enabled = !enabled; app.stage.filters = enabled ? [filter] : null; }); const help = new PIXI.Text('Click or tap to turn filters on / off.', { fontFamily: 'Arial', fontSize: 12, fontWeight: 'bold', fill: 'white', }); help.y = app.screen.height - 25; help.x = 10; app.stage.addChild(help); app.ticker.add((delta) => { 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; const { matrix } = filter; matrix[1] = Math.sin(count) * 3; matrix[2] = Math.cos(count); matrix[3] = Math.cos(count) * 1.5; matrix[4] = Math.sin(count / 3) * 2; matrix[5] = Math.sin(count / 2); matrix[6] = Math.sin(count / 4); });","s":"Color Matrix","u":"/examples/filters-basic/color-matrix","h":"","p":102},{"i":105,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); app.stage.eventMode = 'static'; const container = new PIXI.Container(); app.stage.addChild(container); const padding = 100; const bounds = new PIXI.Rectangle( -padding, -padding, app.screen.width + padding * 2, app.screen.height + padding * 2, ); const maggots = []; for (let i = 0; i < 20; i++) { const maggot = PIXI.Sprite.from('https://pixijs.com/assets/maggot.png'); maggot.anchor.set(0.5); container.addChild(maggot); maggot.direction = Math.random() * Math.PI * 2; maggot.speed = 1; maggot.turnSpeed = Math.random() - 0.8; maggot.x = Math.random() * bounds.width; maggot.y = Math.random() * bounds.height; maggot.scale.set(1 + Math.random() * 0.3); maggot.original = new PIXI.Point(); maggot.original.copyFrom(maggot.scale); maggots.push(maggot); } const displacementSprite = PIXI.Sprite.from('https://pixijs.com/assets/pixi-filters/displace.png'); const displacementFilter = new PIXI.filters.DisplacementFilter(displacementSprite); app.stage.addChild(displacementSprite); container.filters = [displacementFilter]; displacementFilter.scale.x = 110; displacementFilter.scale.y = 110; displacementSprite.anchor.set(0.5); const ring = PIXI.Sprite.from('https://pixijs.com/assets/pixi-filters/ring.png'); ring.anchor.set(0.5); ring.visible = false; app.stage.addChild(ring); const bg = PIXI.Sprite.from('https://pixijs.com/assets/bg_grass.jpg'); bg.width = app.screen.width; bg.height = app.screen.height; bg.alpha = 0.4; container.addChild(bg); app.stage .on('mousemove', onPointerMove) .on('touchmove', onPointerMove); function onPointerMove(eventData) { ring.visible = true; displacementSprite.position.set(eventData.data.global.x - 25, eventData.data.global.y); ring.position.copyFrom(displacementSprite.position); } let count = 0; app.ticker.add(() => { count += 0.05; for (let i = 0; i < maggots.length; i++) { const maggot = maggots[i]; maggot.direction += maggot.turnSpeed * 0.01; maggot.x += Math.sin(maggot.direction) * maggot.speed; maggot.y += Math.cos(maggot.direction) * maggot.speed; maggot.rotation = -maggot.direction - Math.PI / 2; maggot.scale.x = maggot.original.x + Math.sin(count) * 0.2; // wrap the maggots around as the crawl if (maggot.x < bounds.x) { maggot.x += bounds.width; } else if (maggot.x > bounds.x + bounds.width) { maggot.x -= bounds.width; } if (maggot.y < bounds.y) { maggot.y += bounds.height; } else if (maggot.y > bounds.y + bounds.height) { maggot.y -= bounds.height; } } });","s":"Displacement Map Crawlies","u":"/examples/filters-basic/displacement-map-crawlies","h":"","p":104},{"i":107,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); app.stage.eventMode = 'static'; const container = new PIXI.Container(); app.stage.addChild(container); const flag = PIXI.Sprite.from('https://pixijs.com/assets/pixi-filters/flag.png'); container.addChild(flag); flag.x = 100; flag.y = 100; const displacementSprite = PIXI.Sprite.from('https://pixijs.com/assets/pixi-filters/displacement_map_repeat.jpg'); // Make sure the sprite is wrapping. displacementSprite.texture.baseTexture.wrapMode = PIXI.WRAP_MODES.REPEAT; const displacementFilter = new PIXI.filters.DisplacementFilter(displacementSprite); displacementFilter.padding = 10; displacementSprite.position = flag.position; app.stage.addChild(displacementSprite); flag.filters = [displacementFilter]; displacementFilter.scale.x = 30; displacementFilter.scale.y = 60; app.ticker.add(() => { // Offset the sprite position to make vFilterCoord update to larger value. // Repeat wrapping makes sure there's still pixels on the coordinates. displacementSprite.x++; // Reset x to 0 when it's over width to keep values from going to very huge numbers. if (displacementSprite.x > displacementSprite.width) { displacementSprite.x = 0; } });","s":"Displacement Map Flag","u":"/examples/filters-basic/displacement-map-flag","h":"","p":106},{"i":109,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ antialias: true, resizeTo: window }); document.body.appendChild(app.view); const sprite = PIXI.Sprite.from('https://pixijs.com/assets/bg_rotate.jpg'); // // BEZIER CURVE //// // information: https://en.wikipedia.org/wiki/BΓ©zier_curve const realPath = new PIXI.Graphics(); realPath.lineStyle(2, 0xFFFFFF, 1); realPath.moveTo(0, 0); realPath.lineTo(100, 200); realPath.lineTo(200, 200); realPath.lineTo(240, 100); realPath.position.x = 50; realPath.position.y = 50; app.stage.addChild(realPath); const bezier = new PIXI.Graphics(); bezier.lineStyle(5, 0xAA0000, 1); bezier.bezierCurveTo(100, 200, 200, 200, 240, 100); bezier.position.x = 50; bezier.position.y = 50; app.stage.addChild(bezier); // // BEZIER CURVE 2 //// const realPath2 = new PIXI.Graphics(); realPath2.lineStyle(2, 0xFFFFFF, 1); realPath2.moveTo(0, 0); realPath2.lineTo(0, -100); realPath2.lineTo(150, 150); realPath2.lineTo(240, 100); realPath2.position.x = 320; realPath2.position.y = 150; app.stage.addChild(realPath2); const bezier2 = new PIXI.Graphics(); bezier2.lineTextureStyle({ width: 10, texture: sprite.texture }); bezier2.bezierCurveTo(0, -100, 150, 150, 240, 100); bezier2.position.x = 320; bezier2.position.y = 150; app.stage.addChild(bezier2); // // ARC //// const arc = new PIXI.Graphics(); arc.lineStyle(5, 0xAA00BB, 1); arc.arc(600, 100, 50, Math.PI, 2 * Math.PI); app.stage.addChild(arc); // // ARC 2 //// const arc2 = new PIXI.Graphics(); arc2.lineStyle(6, 0x3333DD, 1); arc2.arc(650, 270, 60, 2 * Math.PI, 3 * Math.PI / 2); app.stage.addChild(arc2); // // ARC 3 //// const arc3 = new PIXI.Graphics(); arc3.lineTextureStyle({ width: 20, texture: sprite.texture }); arc3.arc(650, 420, 60, 2 * Math.PI, 2.5 * Math.PI / 2); app.stage.addChild(arc3); // / Hole //// const rectAndHole = new PIXI.Graphics(); rectAndHole.beginFill(0x00FF00); rectAndHole.drawRect(350, 350, 150, 150); rectAndHole.beginHole(); rectAndHole.drawCircle(375, 375, 25); rectAndHole.drawCircle(425, 425, 25); rectAndHole.drawCircle(475, 475, 25); rectAndHole.endHole(); rectAndHole.endFill(); app.stage.addChild(rectAndHole); // // Line Texture Style //// const beatifulRect = new PIXI.Graphics(); beatifulRect.lineTextureStyle({ width: 20, texture: sprite.texture }); beatifulRect.beginFill(0xFF0000); beatifulRect.drawRect(80, 350, 150, 150); beatifulRect.endFill(); app.stage.addChild(beatifulRect);","s":"Advanced","u":"/examples/graphics/advanced","h":"","p":108},{"i":111,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ antialias: true, resizeTo: window }); document.body.appendChild(app.view); app.stage.eventMode = 'static'; app.stage.hitArea = app.screen; const 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.closePath(); 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.quadraticCurveTo(600, 0, 480, 100); graphics.lineTo(330, 120); graphics.lineTo(410, 200); graphics.lineTo(210, 300); graphics.closePath(); graphics.endFill(); // draw a rectangle 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.endFill(); graphics.lineStyle(20, 0x33FF00); graphics.moveTo(30, 30); graphics.lineTo(600, 300); app.stage.addChild(graphics); // let's create a moving shape const thing = new PIXI.Graphics(); app.stage.addChild(thing); thing.x = 800 / 2; thing.y = 600 / 2; let count = 0; // Just click on the stage to draw random lines window.app = app; app.stage.on('pointerdown', () => { graphics.lineStyle(Math.random() * 30, Math.random() * 0xFFFFFF, 1); graphics.moveTo(Math.random() * 800, Math.random() * 600); graphics.bezierCurveTo( Math.random() * 800, Math.random() * 600, Math.random() * 800, Math.random() * 600, Math.random() * 800, Math.random() * 600, ); }); app.ticker.add(() => { count += 0.1; thing.clear(); thing.lineStyle(10, 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.closePath(); thing.rotation = count * 0.1; });","s":"Dynamic","u":"/examples/graphics/dynamic","h":"","p":110},{"i":113,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); // Inner radius of the circle const radius = 100; // The blur amount const blurSize = 32; PIXI.Assets.load('https://pixijs.com/assets/bg_grass.jpg').then((grassTexture) => { const background = new PIXI.Sprite(grassTexture); app.stage.addChild(background); background.width = app.screen.width; background.height = app.screen.height; const circle = new PIXI.Graphics() .beginFill(0xFF0000) .drawCircle(radius + blurSize, radius + blurSize, radius) .endFill(); circle.filters = [new PIXI.filters.BlurFilter(blurSize)]; const bounds = new PIXI.Rectangle(0, 0, (radius + blurSize) * 2, (radius + blurSize) * 2); const texture = app.renderer.generateTexture(circle, PIXI.SCALE_MODES.NEAREST, 1, bounds); const focus = new PIXI.Sprite(texture); app.stage.addChild(focus); background.mask = focus; app.stage.eventMode = 'static'; app.stage.hitArea = app.screen; app.stage.on('pointermove', (event) => { focus.position.x = event.global.x - focus.width / 2; focus.position.y = event.global.y - focus.height / 2; }); });","s":"Filter","u":"/examples/masks/filter","h":"","p":112},{"i":115,"t":"import * as PIXI from 'pixi.js'; import '@pixi/graphics-extras'; const app = new PIXI.Application({ antialias: true, resizeTo: window }); document.body.appendChild(app.view); const graphics = new PIXI.Graphics(); // Rectangle graphics.beginFill(0xDE3249); graphics.drawRect(50, 50, 100, 100); graphics.endFill(); // Rectangle + line style 1 graphics.lineStyle(2, 0xFEEB77, 1); graphics.beginFill(0x650A5A); graphics.drawRect(200, 50, 100, 100); graphics.endFill(); // Rectangle + line style 2 graphics.lineStyle(10, 0xFFBD01, 1); graphics.beginFill(0xC34288); graphics.drawRect(350, 50, 100, 100); graphics.endFill(); // Rectangle 2 graphics.lineStyle(2, 0xFFFFFF, 1); graphics.beginFill(0xAA4F08); graphics.drawRect(530, 50, 140, 100); graphics.endFill(); // Circle graphics.lineStyle(0); // draw a circle, set the lineStyle to zero so the circle doesn't have an outline graphics.beginFill(0xDE3249, 1); graphics.drawCircle(100, 250, 50); graphics.endFill(); // Circle + line style 1 graphics.lineStyle(2, 0xFEEB77, 1); graphics.beginFill(0x650A5A, 1); graphics.drawCircle(250, 250, 50); graphics.endFill(); // Circle + line style 2 graphics.lineStyle(10, 0xFFBD01, 1); graphics.beginFill(0xC34288, 1); graphics.drawCircle(400, 250, 50); graphics.endFill(); // Ellipse + line style 2 graphics.lineStyle(2, 0xFFFFFF, 1); graphics.beginFill(0xAA4F08, 1); graphics.drawEllipse(600, 250, 80, 50); graphics.endFill(); // draw a shape graphics.beginFill(0xFF3300); graphics.lineStyle(4, 0xffd900, 1); graphics.moveTo(50, 350); graphics.lineTo(250, 350); graphics.lineTo(100, 400); graphics.lineTo(50, 350); graphics.closePath(); graphics.endFill(); // draw a rounded rectangle graphics.lineStyle(2, 0xFF00FF, 1); graphics.beginFill(0x650A5A, 0.25); graphics.drawRoundedRect(50, 440, 100, 100, 16); graphics.endFill(); // draw star graphics.lineStyle(2, 0xFFFFFF); graphics.beginFill(0x35CC5A, 1); graphics.drawStar(360, 370, 5, 50); graphics.endFill(); // draw star 2 graphics.lineStyle(2, 0xFFFFFF); graphics.beginFill(0xFFCC5A, 1); graphics.drawStar(280, 510, 7, 50); graphics.endFill(); // draw star 3 graphics.lineStyle(4, 0xFFFFFF); graphics.beginFill(0x55335A, 1); graphics.drawStar(470, 450, 4, 50); graphics.endFill(); // draw polygon const path = [600, 370, 700, 460, 780, 420, 730, 570, 590, 520]; graphics.lineStyle(0); graphics.beginFill(0x3500FA, 1); graphics.drawPolygon(path); graphics.endFill(); app.stage.addChild(graphics);","s":"Simple","u":"/examples/graphics/simple","h":"","p":114},{"i":117,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ antialias: true, resizeTo: window }); document.body.appendChild(app.view); app.stage.eventMode = 'static'; const bg = PIXI.Sprite.from('https://pixijs.com/assets/bg_rotate.jpg'); bg.anchor.set(0.5); bg.x = app.screen.width / 2; bg.y = app.screen.height / 2; app.stage.addChild(bg); const container = new PIXI.Container(); container.x = app.screen.width / 2; container.y = app.screen.height / 2; // add a bunch of sprites const bgFront = PIXI.Sprite.from('https://pixijs.com/assets/bg_scene_rotate.jpg'); bgFront.anchor.set(0.5); const light2 = PIXI.Sprite.from('https://pixijs.com/assets/light_rotate_2.png'); light2.anchor.set(0.5); const light1 = PIXI.Sprite.from('https://pixijs.com/assets/light_rotate_1.png'); light1.anchor.set(0.5); const panda = PIXI.Sprite.from('https://pixijs.com/assets/panda.png'); panda.anchor.set(0.5); container.addChild(bgFront, light2, light1, panda); app.stage.addChild(container); // let's create a moving shape const thing = new PIXI.Graphics(); app.stage.addChild(thing); thing.x = app.screen.width / 2; thing.y = app.screen.height / 2; thing.lineStyle(0); container.mask = thing; let count = 0; app.stage.on('pointertap', () => { if (!container.mask) { container.mask = thing; } else { container.mask = null; } }); const help = new PIXI.Text('Click or tap to turn masking on / off.', { fontFamily: 'Arial', fontSize: 12, fontWeight: 'bold', fill: 'white', }); help.y = app.screen.height - 26; help.x = 10; app.stage.addChild(help); app.ticker.add(() => { 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.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.rotation = count * 0.1; });","s":"Graphics","u":"/examples/masks/graphics","h":"","p":116},{"i":119,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); app.stage.eventMode = 'static'; const bg = PIXI.Sprite.from('https://pixijs.com/assets/bg_plane.jpg'); app.stage.addChild(bg); const cells = PIXI.Sprite.from('https://pixijs.com/assets/cells.png'); cells.scale.set(1.5); const mask = PIXI.Sprite.from('https://pixijs.com/assets/flowerTop.png'); mask.anchor.set(0.5); mask.x = 310; mask.y = 190; cells.mask = mask; app.stage.addChild(mask, cells); const target = new PIXI.Point(); reset(); function reset() { target.x = Math.floor(Math.random() * 550); target.y = Math.floor(Math.random() * 300); } app.ticker.add(() => { mask.x += (target.x - mask.x) * 0.1; mask.y += (target.y - mask.y) * 0.1; if (Math.abs(mask.x - target.x) < 1) { reset(); } });","s":"Sprite","u":"/examples/masks/sprite","h":"","p":118},{"i":121,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); const geometry = new PIXI.Geometry() .addAttribute('aVertexPosition', // the attribute name [-100, -100, // x, y 100, -100, // x, y 100, 100, -100, 100], // x, y 2) // the size of the attribute .addAttribute('aUvs', // the attribute name [0, 0, // u, v 1, 0, // u, v 1, 1, 0, 1], // u, v 2) // the size of the attribute .addIndex([0, 1, 2, 0, 2, 3]) .interleave(); const shader = PIXI.Shader.from(` precision mediump float; attribute vec2 aVertexPosition; attribute vec2 aUvs; uniform mat3 translationMatrix; uniform mat3 projectionMatrix; varying vec2 vUvs; void main() { vUvs = aUvs; gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); }`, `precision mediump float; varying vec2 vUvs; uniform sampler2D uSampler2; void main() { gl_FragColor = texture2D(uSampler2, vUvs ); } `, { uSampler2: PIXI.Texture.from('https://pixijs.com/assets/bg_scene_rotate.jpg'), }); const quad = new PIXI.Mesh(geometry, shader); quad.position.set(400, 300); quad.scale.set(2); app.stage.addChild(quad); app.ticker.add((delta) => { quad.rotation += 0.01; });","s":"Interleaving Geometry","u":"/examples/mesh-and-shaders/interleaving-geometry","h":"","p":120},{"i":123,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); const geometry = new PIXI.Geometry() .addAttribute('aVPos', [-100, 0, 100, 0, 0, -150]); geometry.instanced = true; geometry.instanceCount = 5; const positionSize = 2; const colorSize = 3; const buffer = new PIXI.Buffer(new Float32Array(geometry.instanceCount * (positionSize + colorSize))); geometry.addAttribute( 'aIPos', buffer, positionSize, false, PIXI.TYPES.FLOAT, 4 * (positionSize + colorSize), 0, true ); geometry.addAttribute( 'aICol', buffer, colorSize, false, PIXI.TYPES.FLOAT, 4 * (positionSize + colorSize), 4 * positionSize, true ); for (let i = 0; i < geometry.instanceCount; i++) { const instanceOffset = i * (positionSize + colorSize); buffer.data[instanceOffset + 0] = i * 80; buffer.data[instanceOffset + 2] = Math.random(); buffer.data[instanceOffset + 3] = Math.random(); buffer.data[instanceOffset + 4] = Math.random(); } const shader = PIXI.Shader.from(` precision mediump float; attribute vec2 aVPos; attribute vec2 aIPos; attribute vec3 aICol; uniform mat3 translationMatrix; uniform mat3 projectionMatrix; varying vec3 vCol; void main() { vCol = aICol; gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVPos + aIPos, 1.0)).xy, 0.0, 1.0); }`, `precision mediump float; varying vec3 vCol; void main() { gl_FragColor = vec4(vCol, 1.0); } `); const triangles = new PIXI.Mesh(geometry, shader); triangles.position.set(400, 300); app.stage.addChild(triangles); app.ticker.add((delta) => { triangles.rotation += 0.01; });","s":"Instanced Geometry","u":"/examples/mesh-and-shaders/instanced-geometry","h":"","p":122},{"i":125,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); const geometry = new PIXI.Geometry() .addAttribute('aVertexPosition', // the attribute name [-100, -100, // x, y 100, -100, // x, y 100, 100, -100, 100], // x, y 2) // the size of the attribute .addAttribute('aUvs', // the attribute name [0, 0, // u, v 1, 0, // u, v 1, 1, 0, 1], // u, v 2) // the size of the attribute .addIndex([0, 1, 2, 0, 2, 3]); const geometry2 = new PIXI.Geometry() .addAttribute('aVertexPosition', // the attribute name [-100 + 100, -100, // x, y 100 + 100, -100, // x, y 100 + 100, 100], // x, y 2) // the size of the attribute .addAttribute('aUvs', // the attribute name [0, 0, // u, v 1, 0, // u, v 1, 1], // u, v 2) // the size of the attribute .addIndex([0, 1, 2]); const geometry3 = PIXI.Geometry.merge([geometry, geometry2]); const shader = PIXI.Shader.from(` precision mediump float; attribute vec2 aVertexPosition; attribute vec2 aUvs; uniform mat3 translationMatrix; uniform mat3 projectionMatrix; varying vec2 vUvs; void main() { vUvs = aUvs; gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); }`, `precision mediump float; varying vec2 vUvs; uniform sampler2D uSampler2; void main() { gl_FragColor = texture2D(uSampler2, vUvs ); } `, { uSampler2: PIXI.Texture.from('https://pixijs.com/assets/bg_scene_rotate.jpg'), }); const quad = new PIXI.Mesh(geometry3, shader); quad.position.set(400, 300); quad.scale.set(2); app.stage.addChild(quad); app.ticker.add((delta) => { quad.rotation += 0.01; });","s":"Merging Geometry","u":"/examples/mesh-and-shaders/merging-geometry","h":"","p":124},{"i":127,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ height: 640, resizeTo: window }); document.body.appendChild(app.view); // Build geometry. const geometry = new PIXI.Geometry() .addAttribute('aVertexPosition', // the attribute name [0, 0, // x, y 200, 0, // x, y 200, 200, 0, 200], // x, y 2) // the size of the attribute .addAttribute('aUvs', // the attribute name [0, 0, // u, v 1, 0, // u, v 1, 1, 0, 1], // u, v 2) // the size of the attribute .addIndex([0, 1, 2, 0, 2, 3]); // Vertex shader. Use same shader for all passes. const vertexSrc = ` precision mediump float; attribute vec2 aVertexPosition; attribute vec2 aUvs; uniform mat3 translationMatrix; uniform mat3 projectionMatrix; varying vec2 vUvs; void main() { vUvs = aUvs; gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); }`; // Load a perlinnoise texture for one of the shaders. const perlinTexture = PIXI.Texture.from('https://pixijs.com/assets/perlin.jpg'); // First pass, generates a grid. const fragmentGridSrc = ` precision mediump float; varying vec2 vUvs; uniform float zoom; void main() { //Generate a simple grid. //Offset uv so that center is 0,0 and edges are -1,1 vec2 uv = (vUvs-vec2(0.5))*2.0; vec2 gUv = floor(uv*zoom); vec4 color1 = vec4(0.8, 0.8, 0.8, 1.0); vec4 color2 = vec4(0.4, 0.4, 0.4, 1.0); vec4 outColor = mod(gUv.x + gUv.y, 2.) < 0.5 ? color1 : color2; gl_FragColor = outColor; }`; const gridUniforms = { zoom: 10, }; const gridShader = PIXI.Shader.from(vertexSrc, fragmentGridSrc, gridUniforms); // Sharing textures and meshes is possible. // But for simplicity each pass has its own output texture and mesh in this example. const gridTexture = PIXI.RenderTexture.create({ width: 200, height: 200 }); const gridQuad = new PIXI.Mesh(geometry, gridShader); const gridContainer = new PIXI.Container(); gridContainer.addChild(gridQuad); // Second pass. Takes grid as input and makes it ripple. const fragmentRippleSrc = ` precision mediump float; varying vec2 vUvs; uniform float amount; uniform float phase; uniform sampler2D texIn; void main() { //Generate a simple grid. vec2 uv = vUvs; //Calculate distance from center float distance = length( uv - vec2(0.5)); vec4 color = texture2D(texIn, uv); color.rgb *= sin(distance*25.0+phase) * amount+1.; gl_FragColor = color; }`; const rippleUniforms = { amount: 0.5, phase: 0, texIn: gridTexture, }; const rippleShader = PIXI.Shader.from(vertexSrc, fragmentRippleSrc, rippleUniforms); const rippleTexture = PIXI.RenderTexture.create({ width: 200, height: 200 }); const rippleQuad = new PIXI.Mesh(geometry, rippleShader); const rippleContainer = new PIXI.Container(); rippleContainer.addChild(rippleQuad); // Second effect. Generates a filtered noise. const fragmentNoiseSrc = ` precision mediump float; varying vec2 vUvs; uniform float limit; uniform sampler2D noise; void main() { float color = texture2D(noise, vUvs).r; color = step(limit, color); gl_FragColor = vec4(color); }`; const noiseUniforms = { limit: 0.5, noise: perlinTexture, }; const noiseShader = PIXI.Shader.from(vertexSrc, fragmentNoiseSrc, noiseUniforms); const noiseTexture = PIXI.RenderTexture.create({ width: 200, height: 200 }); const noiseQuad = new PIXI.Mesh(geometry, noiseShader); const noiseContainer = new PIXI.Container(); noiseContainer.addChild(noiseQuad); // Third effect const fragmentWaveSrc = ` precision mediump float; varying vec2 vUvs; uniform float amplitude; uniform float time; void main() { //Offset uv so that center is 0,0 and edges are -1,1 vec2 uv = (vUvs-vec2(0.5))*2.0; vec3 outColor = vec3(0.); //Simple wavefunctions inversed and with small offsets. outColor += 5./length(uv.y*200. - 50.0*sin( uv.x*0.25+ time*0.25)*amplitude); outColor += 4./length(uv.y*300. - 100.0*sin(uv.x*0.5+time*0.5)*amplitude*1.2); outColor += 3./length(uv.y*400. - 150.0*sin(uv.x*0.75+time*0.75)*amplitude*1.4); outColor += 2./length(uv.y*500. - 200.0*sin(uv.x+time)*amplitude*1.6); gl_FragColor = vec4(outColor,1.0); }`; const waveUniforms = { amplitude: 0.75, time: 0, }; const waveShader = PIXI.Shader.from(vertexSrc, fragmentWaveSrc, waveUniforms); const waveTexture = PIXI.RenderTexture.create({ width: 200, height: 200 }); const waveQuad = new PIXI.Mesh(geometry, waveShader); const waveContainer = new PIXI.Container(); waveContainer.addChild(waveQuad); // Final combination pass const fragmentCombineSrc = ` precision mediump float; varying vec2 vUvs; uniform sampler2D texRipple; uniform sampler2D texNoise; uniform sampler2D texWave; void main() { //Read color from all vec4 ripple = texture2D(texRipple, vUvs); vec4 noise = texture2D(texNoise, vUvs); vec4 wave = texture2D(texWave, vUvs); gl_FragColor = mix(ripple, wave,noise.r); }`; const combineUniforms = { texRipple: rippleTexture, texNoise: noiseTexture, texWave: waveTexture, }; const combineShader = PIXI.Shader.from(vertexSrc, fragmentCombineSrc, combineUniforms); const combineQuad = new PIXI.Mesh(geometry, combineShader); gridContainer.position.set(10, 10); rippleContainer.position.set(220, 10); noiseContainer.position.set(10, 220); waveContainer.position.set(10, 430); combineQuad.position.set(430, 220); // Add all phases to stage so all the phases can be seen separately. app.stage.addChild(gridContainer); app.stage.addChild(rippleContainer); app.stage.addChild(noiseContainer); app.stage.addChild(waveContainer); app.stage.addChild(combineQuad); // start the animation.. let time = 0; app.ticker.add((delta) => { time += 1 / 60; // gridQuad.shader.uniforms.zoom = Math.sin(time)*5+10; rippleQuad.shader.uniforms.phase = -time; waveQuad.shader.uniforms.time = time; noiseQuad.shader.uniforms.limit = Math.sin(time * 0.5) * 0.35 + 0.5; // Render the passes to get textures. app.renderer.render(gridQuad, { renderTexture: gridTexture }); app.renderer.render(rippleQuad, { renderTexture: rippleTexture }); app.renderer.render(noiseQuad, { renderTexture: noiseTexture }); app.renderer.render(waveQuad, { renderTexture: waveTexture }); });","s":"Multi Pass Shader Generated Mesh","u":"/examples/mesh-and-shaders/multi-pass-shader-generated-mesh","h":"","p":126},{"i":129,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); // Build geometry. const geometry = new PIXI.Geometry() .addAttribute('aVertexPosition', // the attribute name [-100, -100, // x, y 100, -100, // x, y 100, 100, -100, 100], // x, y 2) // the size of the attribute .addAttribute('aUvs', // the attribute name [0, 0, // u, v 1, 0, // u, v 1, 1, 0, 1], // u, v 2) // the size of the attribute .addIndex([0, 1, 2, 0, 2, 3]); const vertexSrc = ` precision mediump float; attribute vec2 aVertexPosition; attribute vec2 aUvs; uniform mat3 translationMatrix; uniform mat3 projectionMatrix; varying vec2 vUvs; void main() { vUvs = aUvs; gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); }`; const fragmentSrc = ` //Based on this: https://www.shadertoy.com/view/wtlSWX precision mediump float; varying vec2 vUvs; uniform sampler2D noise; uniform float time; // Distance function. Just calculates the height (z) from x,y plane with really simple length check. // Its not exact as there could be shorter distances. vec2 dist(vec3 p) { float id = floor(p.x)+floor(p.y); id = mod(id, 2.); float h = texture2D(noise, vec2(p.x, p.y)*0.04).r*5.1; return vec2(h-p.z,id); } //Light calculation. vec3 calclight(vec3 p, vec3 rd) { vec2 eps = vec2( 0., 0.001); vec3 n = normalize( vec3( dist(p+eps.yxx).x - dist(p-eps.yxx).x, dist(p+eps.xyx).x - dist(p-eps.xyx).x, dist(p+eps.xxy).x - dist(p-eps.xxy).x )); vec3 d = vec3( max( 0., dot( -rd ,n))); return d; } void main() { vec2 uv = vec2(vUvs.x,1.-vUvs.y); uv *=2.; uv-=1.; vec3 cam = vec3(0.,time -2., -3.); vec3 target = vec3(sin(time)*0.1, time+cos(time)+2., 0. ); float fov = 2.2; vec3 forward = normalize( target - cam); vec3 up = normalize(cross( forward, vec3(0., 1.,0.))); vec3 right = normalize( cross( up, forward)); vec3 raydir = normalize(vec3( uv.x *up + uv.y * right + fov*forward)); //Do the raymarch vec3 col = vec3(0.); float t = 0.; for( int i = 0; i < 100; i++) { vec3 p = t * raydir + cam; vec2 d = dist(p); t+=d.x*0.5;//Jump only half of the distance as height function used is not really the best for heightmaps. if(d.x < 0.001) { vec3 bc = d.y < 0.5 ? vec3(1.0, .8, 0.) : vec3(0.8,0.0, 1.0); col = vec3( 1.) * calclight(p, raydir) * (1. - t/150.) *bc; break; } if(t > 1000.) { break; } } gl_FragColor = vec4(col, 1.); }`; const uniforms = { noise: PIXI.Texture.from('https://pixijs.com/assets/perlin.jpg'), time: 0, }; // Make sure repeat wrap is used and no mipmapping. uniforms.noise.baseTexture.wrapMode = PIXI.WRAP_MODES.REPEAT; uniforms.noise.baseTexture.mipmap = false; // Build the shader and the quad. const shader = PIXI.Shader.from(vertexSrc, fragmentSrc, uniforms); const quad = new PIXI.Mesh(geometry, shader); quad.position.set(400, 300); quad.scale.set(2); app.stage.addChild(quad); // start the animation.. let time = 0; app.ticker.add((delta) => { time += 1 / 60; quad.shader.uniforms.time = time; quad.scale.set(Number(Math.cos(time)) + 2, Number(Math.sin(time * 0.7)) + 2); });","s":"Shader Toy Mesh","u":"/examples/mesh-and-shaders/shader-toy-mesh","h":"","p":128},{"i":131,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); const geometry = new PIXI.Geometry() .addAttribute('aVertexPosition', // the attribute name [-100, -100, // x, y 100, -100, // x, y 100, 100]) // x, y .addAttribute('aUvs', // the attribute name [0, 0, // u, v 1, 0, // u, v 1, 1]); // u, v const shader = PIXI.Shader.from(` precision mediump float; attribute vec2 aVertexPosition; attribute vec2 aUvs; uniform mat3 translationMatrix; uniform mat3 projectionMatrix; varying vec2 vUvs; void main() { vUvs = aUvs; gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); }`, `precision mediump float; varying vec2 vUvs; uniform sampler2D uSampler2; void main() { gl_FragColor = texture2D(uSampler2, vUvs); } `, { uSampler2: PIXI.Texture.from('https://pixijs.com/assets/bg_scene_rotate.jpg'), }); const shader2 = PIXI.Shader.from(` precision mediump float; attribute vec2 aVertexPosition; attribute vec2 aUvs; uniform mat3 translationMatrix; uniform mat3 projectionMatrix; varying vec2 vUvs; void main() { vUvs = aUvs; gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); }`, `precision mediump float; varying vec2 vUvs; uniform sampler2D uSampler2; void main() { gl_FragColor = texture2D(uSampler2, vUvs); gl_FragColor.r += (abs(sin(gl_FragCoord.x * 0.06)) * 0.5) * 2.; gl_FragColor.g += (abs(cos(gl_FragCoord.y * 0.06)) * 0.5) * 2.; } `, { uSampler2: PIXI.Texture.from('https://pixijs.com/assets/bg_scene_rotate.jpg'), }); const triangle = new PIXI.Mesh(geometry, shader); const triangle2 = new PIXI.Mesh(geometry, shader2); triangle.position.set(400, 300); triangle.scale.set(2); triangle2.position.set(500, 400); triangle2.scale.set(3); app.stage.addChild(triangle2, triangle); app.ticker.add((delta) => { triangle.rotation += 0.01; triangle2.rotation -= 0.005; });","s":"Shared Shader","u":"/examples/mesh-and-shaders/shared-shader","h":"","p":130},{"i":133,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); const geometry = new PIXI.Geometry() .addAttribute('aVertexPosition', // the attribute name [-100, -100, // x, y 100, -100, // x, y 100, 100], // x, y 2) // the size of the attribute .addAttribute('aUvs', // the attribute name [0, 0, // u, v 1, 0, // u, v 1, 1], // u, v 2); // the size of the attribute const program = PIXI.Program.from(` precision mediump float; attribute vec2 aVertexPosition; attribute vec2 aUvs; uniform mat3 translationMatrix; uniform mat3 projectionMatrix; varying vec2 vUvs; void main() { vUvs = aUvs; gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); }`, `precision mediump float; varying vec2 vUvs; uniform sampler2D uSamplerTexture; void main() { gl_FragColor = texture2D(uSamplerTexture, vUvs); } `); const triangle = new PIXI.Mesh(geometry, new PIXI.Shader(program, { uSamplerTexture: PIXI.Texture.from('https://pixijs.com/assets/bg_scene_rotate.jpg'), })); const triangle2 = new PIXI.Mesh(geometry, new PIXI.Shader(program, { uSamplerTexture: PIXI.Texture.from('https://pixijs.com/assets/bg_rotate.jpg'), })); const triangle3 = new PIXI.Mesh(geometry, new PIXI.Shader(program, { uSamplerTexture: PIXI.Texture.from('https://pixijs.com/assets/bg_displacement.jpg'), })); triangle.position.set(400, 300); triangle.scale.set(2); triangle2.position.set(200, 100); triangle3.position.set(500, 400); triangle3.scale.set(3); app.stage.addChild(triangle3, triangle2, triangle); app.ticker.add((delta) => { triangle.rotation += 0.01; triangle2.rotation -= 0.01; triangle3.rotation -= 0.005; });","s":"Sharing Geometry","u":"/examples/mesh-and-shaders/sharing-geometry","h":"","p":132},{"i":135,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); let count = 0; // build a rope! const ropeLength = 45; const points = []; for (let i = 0; i < 25; i++) { points.push(new PIXI.Point(i * ropeLength, 0)); } const strip = new PIXI.SimpleRope(PIXI.Texture.from('https://pixijs.com/assets/snake.png'), points); strip.x = -40; strip.y = 300; app.stage.addChild(strip); const g = new PIXI.Graphics(); g.x = strip.x; g.y = strip.y; app.stage.addChild(g); // start animating app.ticker.add(() => { count += 0.1; // make the snake for (let i = 0; i < points.length; i++) { points[i].y = Math.sin((i * 0.5) + count) * 30; points[i].x = i * ropeLength + Math.cos((i * 0.3) + count) * 20; } renderPoints(); }); function renderPoints() { g.clear(); g.lineStyle(2, 0xffc2c2); g.moveTo(points[0].x, points[0].y); for (let i = 1; i < points.length; i++) { g.lineTo(points[i].x, points[i].y); } for (let i = 1; i < points.length; i++) { g.beginFill(0xff0022); g.drawCircle(points[i].x, points[i].y, 10); g.endFill(); } }","s":"Textured Mesh Advanced","u":"/examples/mesh-and-shaders/textured-mesh-advanced","h":"","p":134},{"i":137,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); let count = 0; // build a rope! const ropeLength = 918 / 20; const points = []; for (let i = 0; i < 20; i++) { points.push(new PIXI.Point(i * ropeLength, 0)); } const strip = new PIXI.SimpleRope(PIXI.Texture.from('https://pixijs.com/assets/snake.png'), points); strip.x = -459; const snakeContainer = new PIXI.Container(); snakeContainer.x = 400; snakeContainer.y = 300; snakeContainer.scale.set(800 / 1100); app.stage.addChild(snakeContainer); snakeContainer.addChild(strip); app.ticker.add(() => { count += 0.1; // make the snake for (let i = 0; i < points.length; i++) { points[i].y = Math.sin((i * 0.5) + count) * 30; points[i].x = i * ropeLength + Math.cos((i * 0.3) + count) * 20; } });","s":"Textured Mesh Basic","u":"/examples/mesh-and-shaders/textured-mesh-basic","h":"","p":136},{"i":139,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); const geometry = new PIXI.Geometry() .addAttribute('aVertexPosition', [-100, -50, 100, -50, 0, 100]); const shader = PIXI.Shader.from(` precision mediump float; attribute vec2 aVertexPosition; uniform mat3 translationMatrix; uniform mat3 projectionMatrix; void main() { gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); }`, `precision mediump float; void main() { gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); } `); const triangle = new PIXI.Mesh(geometry, shader); triangle.position.set(400, 300); app.stage.addChild(triangle); app.ticker.add((delta) => { triangle.rotation += 0.01; });","s":"Triangle","u":"/examples/mesh-and-shaders/triangle","h":"","p":138},{"i":141,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); const geometry = new PIXI.Geometry() .addAttribute('aVertexPosition', // the attribute name [-100, -50, // x, y 100, -50, // x, y 0.0, 100.0], // x, y 2) // the size of the attribute .addAttribute('aColor', // the attribute name [1, 0, 0, // r, g, b 0, 1, 0, // r, g, b 0, 0, 1], // r, g, b 3); // the size of the attribute const shader = PIXI.Shader.from(` precision mediump float; attribute vec2 aVertexPosition; attribute vec3 aColor; uniform mat3 translationMatrix; uniform mat3 projectionMatrix; varying vec3 vColor; void main() { vColor = aColor; gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); }`, `precision mediump float; varying vec3 vColor; void main() { gl_FragColor = vec4(vColor, 1.0); } `); const triangle = new PIXI.Mesh(geometry, shader); triangle.position.set(400, 300); triangle.scale.set(2); app.stage.addChild(triangle); app.ticker.add((delta) => { triangle.rotation += 0.01; });","s":"Triangle Color","u":"/examples/mesh-and-shaders/triangle-color","h":"","p":140},{"i":143,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); const geometry = new PIXI.Geometry() .addAttribute('aVertexPosition', // the attribute name [-100, -100, // x, y 100, -100, // x, y 100, 100], // x, y 2) // the size of the attribute .addAttribute('aColor', // the attribute name [1, 0, 0, // r, g, b 0, 1, 0, // r, g, b 0, 0, 1], // r, g, b 3) // the size of the attribute .addAttribute('aUvs', // the attribute name [0, 0, // u, v 1, 0, // u, v 1, 1], // u, v 2); // the size of the attribute const vertexSrc = ` precision mediump float; attribute vec2 aVertexPosition; attribute vec3 aColor; attribute vec2 aUvs; uniform mat3 translationMatrix; uniform mat3 projectionMatrix; varying vec2 vUvs; varying vec3 vColor; void main() { vUvs = aUvs; vColor = aColor; gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); }`; const fragmentSrc = ` precision mediump float; varying vec3 vColor; varying vec2 vUvs; uniform sampler2D uSampler2; void main() { gl_FragColor = texture2D(uSampler2, vUvs) * vec4(vColor, 1.0); }`; const uniforms = { uSampler2: PIXI.Texture.from('https://pixijs.com/assets/bg_scene_rotate.jpg') }; const shader = PIXI.Shader.from(vertexSrc, fragmentSrc, uniforms); const triangle = new PIXI.Mesh(geometry, shader); triangle.position.set(400, 300); triangle.scale.set(2); app.stage.addChild(triangle); app.ticker.add((delta) => { triangle.rotation += 0.01; });","s":"Triangle Textured","u":"/examples/mesh-and-shaders/triangle-textured","h":"","p":142},{"i":145,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); const geometry = new PIXI.Geometry() .addAttribute('aVertexPosition', // the attribute name [-100, -100, // x, y 100, -100, // x, y 100, 100, -100, 100], // x, y 2) // the size of the attribute .addAttribute('aUvs', // the attribute name [0, 0, // u, v 1, 0, // u, v 1, 1, 0, 1], // u, v 2) // the size of the attribute .addIndex([0, 1, 2, 0, 2, 3]); const vertexSrc = ` precision mediump float; attribute vec2 aVertexPosition; attribute vec2 aUvs; uniform mat3 translationMatrix; uniform mat3 projectionMatrix; varying vec2 vUvs; void main() { vUvs = aUvs; gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); }`; const fragmentSrc = ` precision mediump float; varying vec2 vUvs; uniform sampler2D uSampler2; uniform float time; void main() { gl_FragColor = texture2D(uSampler2, vUvs + sin( (time + (vUvs.x) * 14.) ) * 0.1 ); }`; const uniforms = { uSampler2: PIXI.Texture.from('https://pixijs.com/assets/bg_scene_rotate.jpg'), time: 0, }; const shader = PIXI.Shader.from(vertexSrc, fragmentSrc, uniforms); const quad = new PIXI.Mesh(geometry, shader); quad.position.set(400, 300); quad.scale.set(2); app.stage.addChild(quad); // start the animation.. // requestAnimationFrame(animate); app.ticker.add((delta) => { quad.rotation += 0.01; quad.shader.uniforms.time += 0.1; });","s":"Uniforms","u":"/examples/mesh-and-shaders/uniforms","h":"","p":144},{"i":147,"t":"import * as PIXI from 'pixi.js'; // This example is the based on basic/container, but using OffscreenCanvas. const canvas = document.createElement('canvas'); const view = canvas.transferControlToOffscreen(); const app = new PIXI.Application({ view, background: 0x1099bb, resizeTo: window }); document.body.appendChild(canvas); const container = new PIXI.Container(); app.stage.addChild(container); // Create a new texture const texture = PIXI.Texture.from('https://pixijs.com/assets/bunny.png'); // Create a 5x5 grid of bunnies for (let i = 0; i < 25; i++) { const bunny = new PIXI.Sprite(texture); bunny.anchor.set(0.5); bunny.x = (i % 5) * 40; bunny.y = Math.floor(i / 5) * 40; container.addChild(bunny); } // Move container to the center container.x = app.screen.width / 2; container.y = app.screen.height / 2; // Center bunny sprite in local container coordinates container.pivot.x = container.width / 2; container.pivot.y = container.height / 2; // Listen for animate update app.ticker.add((delta) => { // rotate the container! // use delta to create frame-independent transform container.rotation -= 0.01 * delta; });","s":"Basic","u":"/examples/offscreen-canvas/basic","h":"","p":146},{"i":149,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ autoStart: false, resizeTo: window }); document.body.appendChild(app.view); PIXI.Assets.load('https://pixijs.com/assets/spritesheet/0123456789.json').then((spritesheet) => { // create an array to store the textures const textures = []; let i; for (i = 0; i < 10; i++) { const framekey = `0123456789 ${i}.ase`; const texture = PIXI.Texture.from(framekey); const time = spritesheet.data.frames[framekey].duration; textures.push({ texture, time }); } const scaling = 4; // create a slow AnimatedSprite const slow = new PIXI.AnimatedSprite(textures); slow.anchor.set(0.5); slow.scale.set(scaling); slow.animationSpeed = 0.5; slow.x = (app.screen.width - slow.width) / 2; slow.y = app.screen.height / 2; slow.play(); app.stage.addChild(slow); // create a fast AnimatedSprite const fast = new PIXI.AnimatedSprite(textures); fast.anchor.set(0.5); fast.scale.set(scaling); fast.x = (app.screen.width + fast.width) / 2; fast.y = app.screen.height / 2; fast.play(); app.stage.addChild(fast); // start animating app.start(); });","s":"Animated Sprite Animation Speed","u":"/examples/sprite/animated-sprite-animation-speed","h":"","p":148},{"i":151,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ autoStart: false, resizeTo: window }); document.body.appendChild(app.view); PIXI.Assets.load('https://pixijs.com/assets/spritesheet/mc.json').then(() => { // create an array to store the textures const explosionTextures = []; let i; for (i = 0; i < 26; i++) { const texture = PIXI.Texture.from(`Explosion_Sequence_A ${i + 1}.png`); explosionTextures.push(texture); } for (i = 0; i < 50; i++) { // create an explosion AnimatedSprite const explosion = new PIXI.AnimatedSprite(explosionTextures); explosion.x = Math.random() * app.screen.width; explosion.y = Math.random() * app.screen.height; explosion.anchor.set(0.5); explosion.rotation = Math.random() * Math.PI; explosion.scale.set(0.75 + Math.random() * 0.5); explosion.gotoAndPlay(Math.random() * 26 | 0); app.stage.addChild(explosion); } // start animating app.start(); });","s":"Animated Sprite Explosion","u":"/examples/sprite/animated-sprite-explosion","h":"","p":150},{"i":153,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ background: '#1099bb', resizeTo: window }); document.body.appendChild(app.view); PIXI.Assets.load('https://pixijs.com/assets/spritesheet/fighter.json').then(() => { // create an array of textures from an image path const frames = []; for (let i = 0; i < 30; i++) { const val = i < 10 ? `0${i}` : i; // magically works since the spritesheet was loaded with the pixi loader frames.push(PIXI.Texture.from(`rollSequence00${val}.png`)); } // create an AnimatedSprite (brings back memories from the days of Flash, right ?) const anim = new PIXI.AnimatedSprite(frames); /* * An AnimatedSprite inherits all the properties of a PIXI sprite * so you can change its position, its anchor, mask it, etc */ anim.x = app.screen.width / 2; anim.y = app.screen.height / 2; anim.anchor.set(0.5); anim.animationSpeed = 0.5; anim.play(); app.stage.addChild(anim); // Animate the rotation app.ticker.add(() => { anim.rotation += 0.01; }); });","s":"Animated Sprite Jet","u":"/examples/sprite/animated-sprite-jet","h":"","p":152},{"i":155,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ background: '#1099bb', resizeTo: window }); document.body.appendChild(app.view); // create a new Sprite from an image path const bunny = PIXI.Sprite.from('https://pixijs.com/assets/bunny.png'); // center the sprite's anchor point bunny.anchor.set(0.5); // move the sprite to the center of the screen bunny.x = app.screen.width / 2; bunny.y = app.screen.height / 2; app.stage.addChild(bunny); // Listen for animate update app.ticker.add((delta) => { // just for fun, let's rotate mr rabbit a little // delta is 1 if running at 100% performance // creates frame-independent transformation bunny.rotation += 0.1 * delta; });","s":"Basic","u":"/examples/sprite/basic","h":"","p":154},{"i":157,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ background: '#1099bb', resizeTo: window }); document.body.appendChild(app.view); let isFlower = true; const texture = PIXI.Texture.from('https://pixijs.com/assets/flowerTop.png'); const secondTexture = PIXI.Texture.from('https://pixijs.com/assets/eggHead.png'); // create a new Sprite using the texture const character = new PIXI.Sprite(texture); // center the sprites anchor point character.anchor.set(0.5); // move the sprite to the center of the screen character.x = app.screen.width / 2; character.y = app.screen.height / 2; app.stage.addChild(character); // make the sprite interactive character.eventMode = 'static'; character.cursor = 'pointer'; character.on('pointertap', () => { isFlower = !isFlower; // Dynamically swap the texture character.texture = isFlower ? texture : secondTexture; }); app.ticker.add(() => { character.rotation += 0.02; });","s":"Texture Swap","u":"/examples/sprite/texture-swap","h":"","p":156},{"i":159,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); // create a texture from an image path const texture = PIXI.Texture.from('https://pixijs.com/assets/p2.jpeg'); /* create a tiling sprite ... * requires a texture, a width and a height * in WebGL the image size should preferably be a power of two */ const tilingSprite = new PIXI.TilingSprite( texture, app.screen.width, app.screen.height, ); app.stage.addChild(tilingSprite); let count = 0; app.ticker.add(() => { 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; });","s":"Tiling Sprite","u":"/examples/sprite/tiling-sprite","h":"","p":158},{"i":161,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ background: '#1099bb', resizeTo: window }); document.body.appendChild(app.view); PIXI.Assets.load('https://pixijs.com/assets/bitmap-font/desyrel.xml').then(() => { const bitmapFontText = new PIXI.BitmapText( 'bitmap fonts are supported!\\nWoo yay!', { fontName: 'Desyrel', fontSize: 55, align: 'left', }, ); bitmapFontText.x = 50; bitmapFontText.y = 200; app.stage.addChild(bitmapFontText); });","s":"Bitmap Text","u":"/examples/text/bitmap-text","h":"","p":160},{"i":163,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ backgroundAlpha: 0, resizeTo: window }); document.body.appendChild(app.view); // Create play button that can be used to trigger the video const button = new PIXI.Graphics() .beginFill(0x0, 0.5) .drawRoundedRect(0, 0, 100, 100, 10) .endFill() .beginFill(0xffffff) .moveTo(36, 30) .lineTo(36, 70) .lineTo(70, 50); // Position the button button.x = (app.screen.width - button.width) / 2; button.y = (app.screen.height - button.height) / 2; // Enable interactivity on the button button.eventMode = 'static'; button.cursor = 'pointer'; // Add to the stage app.stage.addChild(button); // Listen for a click/tap event to start playing the video // this is useful for some mobile platforms. For example: // ios9 and under cannot render videos in PIXI without a // polyfill - https://github.com/bfred-it/iphone-inline-video // ios10 and above require a click/tap event to render videos // that contain audio in PIXI. Videos with no audio track do // not have this requirement button.on('pointertap', onPlayVideo); function onPlayVideo() { // Don't need the button anymore button.destroy(); // create a video texture from a path const texture = PIXI.Texture.from('https://pixijs.com/assets/video.mp4'); // create a new Sprite using the video texture (yes it's that easy) const videoSprite = new PIXI.Sprite(texture); // Stetch the fullscreen videoSprite.width = app.screen.width; videoSprite.height = app.screen.height; app.stage.addChild(videoSprite); }","s":"Video","u":"/examples/sprite/video","h":"","p":162},{"i":165,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ background: '#1099bb', resizeTo: window }); document.body.appendChild(app.view); // Load from any font file! PIXI.Assets.addBundle('fonts', { ChaChicle: 'https://pixijs.com/assets/webfont-loader/ChaChicle.ttf', Lineal: 'https://pixijs.com/assets/webfont-loader/Lineal.otf', 'Dotrice Regular': 'https://pixijs.com/assets/webfont-loader/Dotrice-Regular.woff', Crosterian: 'https://pixijs.com/assets/webfont-loader/Crosterian.woff2', }); PIXI.Assets.loadBundle('fonts').then(() => { const text1 = new PIXI.Text('ChaChicle.ttf', new PIXI.TextStyle({ fontFamily: 'ChaChicle', fontSize: 50 })); const text2 = new PIXI.Text('Lineal.otf', new PIXI.TextStyle({ fontFamily: 'Lineal', fontSize: 50 })); const text3 = new PIXI.Text('Dotrice Regular.woff', new PIXI.TextStyle({ fontFamily: 'Dotrice Regular', fontSize: 50 })); const text4 = new PIXI.Text('Crosterian.woff2', new PIXI.TextStyle({ fontFamily: 'Crosterian', fontSize: 50 })); text2.y = 150; text3.y = 300; text4.y = 450; app.stage.addChild(text1); app.stage.addChild(text2); app.stage.addChild(text3); app.stage.addChild(text4); });","s":"From Font","u":"/examples/text/from-font","h":"","p":164},{"i":167,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ background: '#1099bb', resizeTo: window }); document.body.appendChild(app.view); const basicText = new PIXI.Text('Basic text in pixi'); basicText.x = 50; basicText.y = 100; app.stage.addChild(basicText); const style = new PIXI.TextStyle({ fontFamily: 'Arial', fontSize: 36, fontStyle: 'italic', fontWeight: 'bold', fill: ['#ffffff', '#00ff99'], // gradient stroke: '#4a1850', strokeThickness: 5, dropShadow: true, dropShadowColor: '#000000', dropShadowBlur: 4, dropShadowAngle: Math.PI / 6, dropShadowDistance: 6, wordWrap: true, wordWrapWidth: 440, lineJoin: 'round', }); const richText = new PIXI.Text('Rich text with a lot of options and across multiple lines', style); richText.x = 50; richText.y = 220; app.stage.addChild(richText); const skewStyle = new PIXI.TextStyle({ fontFamily: 'Arial', dropShadow: true, dropShadowAlpha: 0.8, dropShadowAngle: 2.1, dropShadowBlur: 4, dropShadowColor: '0x111111', dropShadowDistance: 10, fill: ['#ffffff'], stroke: '#004620', fontSize: 60, fontWeight: 'lighter', lineJoin: 'round', strokeThickness: 12, }); const skewText = new PIXI.Text('SKEW IS COOL', skewStyle); skewText.skew.set(0.65, -0.3); skewText.anchor.set(0.5, 0.5); skewText.x = 300; skewText.y = 480; app.stage.addChild(skewText);","s":"Pixi Text","u":"/examples/text/pixi-text","h":"","p":166},{"i":169,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ background: '#1099bb', resizeTo: window }); document.body.appendChild(app.view); // Load them google fonts before starting... window.WebFontConfig = { google: { families: ['Snippet'], }, active() { init(); }, }; /* eslint-disable */ // include the web-font loader script (function() { const wf = document.createElement('script'); wf.src = `${document.location.protocol === 'https:' ? 'https' : 'http' }://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js`; wf.type = 'text/javascript'; wf.async = 'true'; const s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(wf, s); }()); /* eslint-enabled */ function init() { // create some white text using the Snippet webfont const textSample = new PIXI.Text( 'PixiJS text using the\\ncustom \"Snippet\" Webfont', { fontFamily: 'Snippet', fontSize: 50, fill: 'white', align: 'left', } ); textSample.position.set(50, 200); app.stage.addChild(textSample); }","s":"Web Font","u":"/examples/text/web-font","h":"","p":168},{"i":171,"t":"import * as PIXI from 'pixi.js'; // This demo uses canvas2d gradient API // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/createLinearGradient const app = new PIXI.Application({ antialias: true, resizeTo: window }); document.body.appendChild(app.view); function createGradTexture() { // adjust it if somehow you need better quality for very very big images const quality = 256; const canvas = document.createElement('canvas'); canvas.width = quality; canvas.height = 1; const ctx = canvas.getContext('2d'); // use canvas2d API to create gradient const grd = ctx.createLinearGradient(0, 0, quality, 0); grd.addColorStop(0, 'rgba(255, 255, 255, 0.0)'); grd.addColorStop(0.3, 'cyan'); grd.addColorStop(0.7, 'red'); grd.addColorStop(1, 'green'); ctx.fillStyle = grd; ctx.fillRect(0, 0, quality, 1); return PIXI.Texture.from(canvas); } const gradTexture = createGradTexture(); const sprite = new PIXI.Sprite(gradTexture); sprite.position.set(100, 100); sprite.rotation = Math.PI / 8; sprite.width = 500; sprite.height = 50; app.stage.addChild(sprite);","s":"Gradient Basic","u":"/examples/textures/gradient-basic","h":"","p":170},{"i":173,"t":"import * as PIXI from 'pixi.js'; // PixiJS V5 Texture-Resource API + canvas2d gradient API + WebGL texImage2D // Look here for advanced upload function: // https://github.com/pixijs/pixi.js/blob/dev/packages/core/src/textures/resources/BaseImageResource.js#L54 class GradientResource extends PIXI.Resource { constructor() { // pass width and height. (0,0) if we dont know yet // gradient needs only 1 pixel height super(256, 1); } upload(renderer, baseTexture, glTexture) { const { width } = this; // default size or from baseTexture? const { height } = this; // your choice. // temporary canvas, we dont need it after texture is uploaded to GPU const canvas = document.createElement('canvas'); canvas.width = width; canvas.height = height; const ctx = canvas.getContext('2d'); const grd = ctx.createLinearGradient(0, 0, width, 0); grd.addColorStop(0, 'rgba(255, 255, 255, 0.0)'); grd.addColorStop(0.3, 'cyan'); grd.addColorStop(0.7, 'red'); grd.addColorStop(1, 'green'); ctx.fillStyle = grd; ctx.fillRect(0, 0, width, height); // This info ios usseful if upload happens second time // Some people use that to track used memory glTexture.width = width; glTexture.height = height; // PURE WEBGL CALLS - that's what its all about. // PixiJS cant wrap all that API, we give you acceess to it! const { gl } = renderer; gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, baseTexture.premultiplyAlpha); gl.texImage2D(baseTexture.target, 0, baseTexture.format, baseTexture.format, baseTexture.type, canvas); return true; } } const app = new PIXI.Application({ antialias: true, resizeTo: window }); document.body.appendChild(app.view); const gradBaseTexture = new PIXI.BaseTexture(new GradientResource()); // Here you can fake baseTexture size to avoid resizing all sprites // There can be multiple baseTextures per gradient, but be careful: // resource will spawn more glTextures! gradBaseTexture.setSize(500, 50); const gradTexture = new PIXI.Texture(gradBaseTexture); const sprite = new PIXI.Sprite(gradTexture); sprite.position.set(100, 100); sprite.rotation = Math.PI / 8; app.stage.addChild(sprite);","s":"Gradient Resource","u":"/examples/textures/gradient-resource","h":"","p":172},{"i":175,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); const stageSize = { width: app.screen.width, height: app.screen.height, }; // create two render textures... these dynamic textures will be used to draw the scene into itself let renderTexture = PIXI.RenderTexture.create(stageSize); let renderTexture2 = PIXI.RenderTexture.create(stageSize); const currentTexture = renderTexture; // create a new sprite that uses the render texture we created above const outputSprite = new PIXI.Sprite(currentTexture); // align the sprite outputSprite.x = 400; outputSprite.y = 300; outputSprite.anchor.set(0.5); // add to stage app.stage.addChild(outputSprite); const stuffContainer = new PIXI.Container(); stuffContainer.x = 400; stuffContainer.y = 300; app.stage.addChild(stuffContainer); // create an array of image ids.. const fruits = [ 'https://pixijs.com/assets/rt_object_01.png', 'https://pixijs.com/assets/rt_object_02.png', 'https://pixijs.com/assets/rt_object_03.png', 'https://pixijs.com/assets/rt_object_04.png', 'https://pixijs.com/assets/rt_object_05.png', 'https://pixijs.com/assets/rt_object_06.png', 'https://pixijs.com/assets/rt_object_07.png', 'https://pixijs.com/assets/rt_object_08.png', ]; // create an array of items const items = []; // now create some items and randomly position them in the stuff container for (let i = 0; i < 20; i++) { const item = PIXI.Sprite.from(fruits[i % fruits.length]); item.x = Math.random() * 400 - 200; item.y = Math.random() * 400 - 200; item.anchor.set(0.5); stuffContainer.addChild(item); items.push(item); } // used for spinning! let count = 0; app.ticker.add(() => { for (let i = 0; i < items.length; i++) { // rotate each item const item = items[i]; item.rotation += 0.1; } count += 0.01; // swap the buffers ... const temp = renderTexture; renderTexture = renderTexture2; renderTexture2 = temp; // set the new texture outputSprite.texture = renderTexture; // twist this up! stuffContainer.rotation -= 0.01; outputSprite.scale.set(1 + Math.sin(count) * 0.2); // render the stage to the texture // the 'true' clears the texture before the content is rendered app.renderer.render(app.stage, { renderTexture: renderTexture2, clear: false, }); });","s":"Render Texture Advanced","u":"/examples/textures/render-texture-advanced","h":"","p":174},{"i":177,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ background: '#1099bb', resizeTo: window }); document.body.appendChild(app.view); const container = new PIXI.Container(); app.stage.addChild(container); const texture = PIXI.Texture.from('https://pixijs.com/assets/bunny.png'); for (let i = 0; i < 25; i++) { const bunny = new PIXI.Sprite(texture); bunny.x = (i % 5) * 30; bunny.y = Math.floor(i / 5) * 30; bunny.rotation = Math.random() * (Math.PI * 2); container.addChild(bunny); } const brt = new PIXI.BaseRenderTexture(300, 300, PIXI.SCALE_MODES.LINEAR, 1); const rt = new PIXI.RenderTexture(brt); const sprite = new PIXI.Sprite(rt); sprite.x = 450; sprite.y = 60; app.stage.addChild(sprite); /* * All the bunnies are added to the container with the addChild method * when you do this, all the bunnies become children of the container, and when a container moves, * so do all its children. * This gives you a lot of flexibility and makes it easier to position elements on the screen */ container.x = 100; container.y = 60; app.ticker.add(() => { app.renderer.render(container, rt); });","s":"Render Texture Basic","u":"/examples/textures/render-texture-basic","h":"","p":176},{"i":179,"t":"import * as PIXI from 'pixi.js'; const app = new PIXI.Application({ resizeTo: window }); document.body.appendChild(app.view); PIXI.Assets.load('https://pixijs.com/assets/flowerTop.png').then((texture) => { // create rotated textures const textures = [texture]; const D8 = PIXI.groupD8; for (let rotate = 1; rotate < 16; rotate++) { const h = D8.isVertical(rotate) ? texture.frame.width : texture.frame.height; const w = D8.isVertical(rotate) ? texture.frame.height : texture.frame.width; const { frame } = texture; const crop = new PIXI.Rectangle(texture.frame.x, texture.frame.y, w, h); const trim = crop; let rotatedTexture; if (rotate % 2 === 0) { rotatedTexture = new PIXI.Texture(texture.baseTexture, frame, crop, trim, rotate); } else { // HACK to avoid exception // PIXI doesnt like diamond-shaped UVs, because they are different in canvas and webgl rotatedTexture = new PIXI.Texture(texture.baseTexture, frame, crop, trim, rotate - 1); rotatedTexture.rotate++; } textures.push(rotatedTexture); } const offsetX = app.screen.width / 16 | 0; const offsetY = app.screen.height / 8 | 0; const gridW = app.screen.width / 4 | 0; const gridH = app.screen.height / 5 | 0; // normal rotations and mirrors for (let i = 0; i < 16; i++) { // create a new Sprite using rotated texture const dude = new PIXI.Sprite(textures[i < 8 ? i * 2 : (i - 8) * 2 + 1]); dude.scale.x = 0.5; dude.scale.y = 0.5; // show it in grid dude.x = offsetX + gridW * (i % 4); dude.y = offsetY + gridH * (i / 4 | 0); app.stage.addChild(dude); const text = new PIXI.Text(`rotate = ${dude.texture.rotate}`, { fontFamily: 'Courier New', fontSize: '12px', fill: 'white', align: 'left', }); text.x = dude.x; text.y = dude.y - 20; app.stage.addChild(text); } });","s":"Texture Rotate","u":"/examples/textures/texture-rotate","h":"","p":178}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/3",[0,6.406,1,4.595,2,6.406,3,6.36,4,6.406,5,6.406,6,6.406]],["t/39",[7,0.012,8,0.045,9,0.012,10,0.012,11,1.359,12,2.182,13,2.182,14,2.182,15,2.182,16,1.895,17,3.477,18,2.182,19,2.182,20,2.182,21,1.895,22,2.182,23,2.182,24,2.182,25,0.04,26,0.012,27,0.037,28,0.02,29,0.405,30,1.895,31,0.052,32,0.052,33,0.02,34,1.895,35,4.334,36,2.182,37,1.706,38,4.221,39,5.747,40,2.718,41,3.477,42,1.565,43,2.182,44,5.398,45,1.565,46,3.593,47,3.545,48,3.477,49,0.908,50,2.182,51,1.565,52,1.895,53,2.182,54,2.494,55,1.278,56,4.943,57,1.242,58,2.182,59,4.334,60,2.182,61,2.182,62,2.182,63,2.182,64,2.351,65,3.477,66,3.477,67,2.182,68,2.182,69,3.477,70,3.477,71,2.182,72,2.182,73,1.565,74,2.182,75,3.477,76,2.182,77,1.895,78,2.182,79,2.182,80,2.182,81,2.182,82,3.764,83,2.182,84,3.828,85,4.334,86,4.334,87,4.334,88,4.334,89,3.29,90,2.182,91,2.182,92,2.182,93,2.182,94,2.182,95,2.182,96,2.182,97,2.182,98,2.182,99,2.698,100,2.182,101,3.477,102,2.182,103,3.477,104,2.182,105,2.182,106,3.545,107,2.182,108,1.452,109,2.182,110,2.182,111,2.182,112,2.182,113,2.718,114,2.182,115,2.182,116,2.182,117,3.388,118,2.182,119,3.477,120,3.477,121,3.477,122,1.09,123,0.444,124,0.963,125,2.182,126,2.182,127,2.182,128,1.895,129,2.182,130,4.334,131,0.835,132,1.038,133,1.895,134,4.334,135,2.182,136,0.426,137,3.477,138,3.477,139,2.182,140,1.706,141,2.182,142,4.334,143,0.389,144,3.477,145,0.835,146,0.802,147,0.802,148,0.548,149,1.038,150,1.038,151,1.895,152,1.278,153,4.943,154,1.706,155,4.943,156,1.706,157,0.991,158,0.991,159,1.278,160,0.661,161,2.182,162,2.182,163,2.718,164,1.895,165,2.182,166,5.751,167,0.661,168,2.182,169,2.182,170,4.943,171,3.477,172,2.182,173,4.943,174,2.182,175,1.825,176,2.182,177,2.884,178,5.398,179,0.804,180,4.334,181,5.398,182,3.477,183,3.388,184,2.182,185,1.706,186,2.182,187,2.467,188,2.275,189,1.565,190,2.182,191,0.948,192,0.991,193,3.477,194,3.477,195,1.094,196,3.477,197,2.182,198,1.579,199,2.182,200,2.182,201,2.182,202,1.038,203,1.706,204,3.477,205,1.895,206,2.182,207,2.182,208,2.182,209,2.182,210,2.182,211,1.895,212,1.706,213,3.477,214,2.182,215,4.334,216,3.477,217,2.182,218,2.182,219,2.182,220,2.182,221,3.477,222,1.895,223,1.452,224,2.182,225,2.182,226,2.182,227,0.87,228,3.477,229,3.477,230,2.182,231,2.594,232,2.182,233,0.771,234,0.991,235,2.182]],["t/41",[7,0.017,8,0.045,9,0.017,10,0.017,11,1.994,25,0.041,26,0.017,27,0.025,28,0.029,29,0.594,31,0.077,32,0.077,33,0.029,57,1.38,64,2.869,82,2.782,108,4.014,122,0.528,123,0.542,131,1.784,136,0.499,143,1.262,145,1.226,146,1.178,147,1.178,148,0.805,149,1.524,150,1.524,151,2.782,152,1.876,154,2.505,156,2.505,157,1.455,158,1.455,159,2.019,188,1.681,227,1.278,236,0.805,237,0.775,238,4.716,239,3.203,240,3.203,241,3.203,242,3.203,243,6.409,244,4.66,245,2.782,246,4.66,247,1.333,248,6.688,249,4.047,250,0.942,251,5.493,252,3.53,253,3.203,254,3.203,255,2.505,256,3.203,257,3.203,258,3.203,259,2.782,260,3.203,261,6.031,262,2.446,263,3.203,264,3.203,265,1.047,266,2.297,267,3.203,268,3.203,269,3.203,270,3.203,271,3.203,272,3.644,273,3.203,274,2.782,275,4.66,276,4.66,277,2.782,278,3.203,279,2.505,280,4.66,281,3.203,282,4.66,283,3.203,284,3.203,285,3.203,286,3.203,287,6.409,288,3.203,289,6.688,290,4.66,291,3.203,292,5.493,293,4.66,294,3.203,295,4.451,296,6.409,297,3.203,298,3.203,299,6.688,300,6.409,301,3.203,302,3.203,303,3.203,304,3.203]],["t/43",[7,0.021,8,0.045,9,0.021,10,0.021,25,0.04,26,0.021,27,0.037,28,0.036,29,1.004,31,0.095,32,0.095,33,0.036,57,1.665,84,2.634,108,2.634,122,0.652,136,0.279,145,1.515,146,2.436,147,1.455,148,0.995,149,1.883,150,2.574,183,3.095,192,1.798,237,0.958,249,3.438,250,0.679,262,2.84,305,3.958,306,2.464,307,5.41,308,2.158,309,2.318,310,3.095,311,1.455,312,4.125,313,3.958,314,5.41,315,3.958,316,3.958,317,3.958,318,3.958,319,3.958,320,3.958,321,3.095,322,3.236,323,3.169,324,5.354,325,3.958,326,5.41,327,3.958,328,4.82,329,3.438,330,6.165,331,3.958,332,3.958,333,3.438,334,3.095,335,2.634,336,3.438,337,2.839,338,4.699,339,2.839,340,3.958,341,4.23,342,5.755,343,3.254,344,6.938,345,3.438,346,3.958,347,3.958,348,5.354,349,5.41,350,3.958,351,2.191,352,2.634,353,1.647,354,3.438,355,3.958,356,3.958,357,3.958,358,3.958,359,3.095,360,1.976,361,2.839,362,2.839,363,2.077,364,3.958,365,3.958,366,3.958,367,3.958,368,3.958,369,3.958,370,1.112,371,3.958,372,3.958]],["t/45",[7,0.024,8,0.045,9,0.024,10,0.024,16,5.137,25,0.041,26,0.024,27,0.039,28,0.041,30,3.927,31,0.109,32,0.109,33,0.041,49,2.461,57,1.136,123,0.628,136,0.319,147,1.662,148,1.136,149,2.151,150,2.151,160,1.37,167,1.37,231,2.374,237,1.095,373,4.522,374,3.01,375,5.915,376,1.731,377,3.243,378,5.915,379,3.536,380,3.243,381,4.522,382,4.522,383,4.522,384,4.522,385,5.915,386,4.522,387,4.522,388,4.522,389,3.01,390,3.927,391,2.374,392,2.257,393,2.374,394,2.374,395,2.257,396,3.937,397,2.257,398,3.243,399,4.522,400,4.522,401,2.503,402,4.522,403,1.423,404,4.522,405,4.522,406,4.522,407,4.522,408,4.522,409,3.274,410,3.01,411,2.257,412,3.536,413,1.965,414,4.522,415,4.522,416,3.536,417,4.522,418,4.522,419,4.522,420,4.522,421,4.522,422,4.522,423,4.522]],["t/47",[7,0.011,8,0.045,9,0.011,10,0.011,11,1.28,25,0.041,26,0.011,27,0.035,28,0.018,29,0.382,31,0.049,32,0.049,33,0.018,49,1.988,52,1.786,55,1.205,57,1.59,64,2.273,99,1.28,123,0.529,124,0.591,131,1.594,136,0.485,143,1.094,146,0.756,148,0.517,157,1.506,158,1.506,159,1.926,160,1.004,164,1.786,179,0.615,198,0.934,227,0.82,233,1.171,236,0.517,237,0.498,250,0.353,262,1.74,295,4.079,308,1.322,343,1.506,370,1.17,376,1.269,409,2.305,410,1.369,411,1.026,413,0.893,424,2.056,425,1.475,426,1.475,427,2.056,428,2.056,429,1.786,430,4.165,431,1.608,432,6.328,433,1.205,434,2.879,435,2.879,436,2.056,437,0.978,438,2.056,439,4.165,440,2.056,441,1.786,442,1.786,443,2.056,444,2.056,445,2.593,446,4.165,447,3.315,448,3.315,449,2.056,450,2.056,451,4.165,452,0.934,453,1.733,454,2.056,455,3.617,456,1.786,457,2.056,458,2.056,459,2.056,460,2.056,461,6.129,462,1.577,463,4.777,464,2.056,465,3.315,466,1.138,467,2.056,468,1.475,469,2.056,470,2.056,471,2.056,472,3.315,473,3.315,474,2.056,475,2.056,476,3.315,477,2.056,478,2.056,479,2.056,480,2.056,481,2.592,482,2.879,483,1.786,484,5.601,485,2.056,486,2.056,487,2.056,488,2.056,489,2.056,490,2.056,491,2.056,492,1.786,493,2.206,494,1.475,495,0.934,496,1.786,497,1.786,498,1.786,499,1.475,500,1.475,501,1.608,502,1.786,503,1.475,504,1.786,505,1.786,506,1.786,507,1.786,508,1.786,509,1.786,510,1.786,511,1.786,512,0.82,513,2.592,514,1.786,515,1.786,516,1.786,517,1.608,518,2.056,519,2.056,520,2.056,521,2.056,522,2.056,523,2.056,524,2.056,525,3.315,526,2.056,527,2.056,528,2.056,529,2.056,530,2.056,531,2.056,532,3.315,533,2.056,534,2.056,535,2.056,536,2.056,537,2.056,538,2.056,539,2.056,540,2.056,541,1.369,542,2.056,543,2.056,544,2.056,545,3.315,546,4.149,547,1.74,548,1.786,549,4.165,550,2.592,551,3.315,552,3.257,553,1.475,554,2.974,555,4.777,556,0.756,557,2.38,558,2.056,559,2.064,560,2.056,561,2.056,562,3.315,563,1.369,564,3.257,565,1.608,566,2.056,567,2.056,568,3.257,569,2.056,570,1.28,571,2.056,572,2.056,573,3.315,574,1.138,575,1.475,576,3.315,577,1.786,578,2.056,579,3.315,580,4.165,581,2.056,582,1.786,583,1.079,584,1.608,585,2.879,586,3.315,587,2.056,588,2.056,589,2.056,590,2.056,591,2.056,592,2.056,593,2.056,594,2.056,595,2.056,596,2.056,597,1.608,598,1.369,599,4.165,600,2.056,601,1.786,602,2.056,603,1.608,604,2.056,605,3.315,606,2.879,607,3.315,608,3.315,609,3.315,610,1.786,611,2.056,612,2.056,613,1.28,614,2.056,615,3.315,616,2.056,617,1.786,618,2.056,619,2.056,620,2.592,621,2.056,622,2.056,623,2.056,624,3.315,625,2.056,626,3.315,627,2.056,628,2.056,629,2.056,630,2.056,631,2.056,632,2.056,633,2.056,634,2.056,635,2.056,636,2.056,637,2.056,638,3.315,639,2.056,640,2.056,641,2.056,642,2.056,643,2.056]],["t/49",[7,0.017,8,0.045,9,0.017,10,0.017,25,0.041,26,0.017,27,0.024,28,0.028,31,0.075,32,0.075,33,0.028,37,2.446,42,2.243,49,1.905,57,1.151,89,3.606,99,4.129,106,3.285,123,0.596,136,0.514,143,0.817,145,1.197,146,1.684,157,1.421,158,1.421,159,1.15,160,0.948,191,2.354,195,0.984,211,2.717,212,2.446,231,1.642,237,0.757,247,1.905,250,0.536,311,1.15,370,0.879,453,1.301,466,2.535,512,1.827,556,1.15,575,2.243,585,2.717,598,3.048,603,2.446,606,3.978,613,1.947,644,5.604,645,3.128,646,3.128,647,5.418,648,3.581,649,6.348,650,4.236,651,4.58,652,3.128,653,5.964,654,4.58,655,5.418,656,3.978,657,0.786,658,3.128,659,4.963,660,3.128,661,3.128,662,2.446,663,5.418,664,3.128,665,3.128,666,3.581,667,5.418,668,2.837,669,5.964,670,2.717,671,2.082,672,2.717,673,3.128,674,2.717,675,3.128,676,4.58,677,3.128,678,4.58,679,3.128,680,3.128,681,3.128,682,3.128,683,3.128,684,2.717,685,1.421,686,3.128,687,2.717,688,3.128,689,3.128,690,2.446,691,2.717,692,4.58,693,6.348,694,4.58,695,3.978,696,2.243,697,5.418,698,5.418,699,4.58,700,3.128,701,5.964,702,3.128,703,3.128,704,3.128,705,4.58,706,3.128,707,4.58,708,2.446,709,3.128,710,3.128,711,3.128,712,3.128]],["t/51",[7,0.029,8,0.044,9,0.029,10,0.029,25,0.038,26,0.029,27,0.035,28,0.048,29,0.994,31,0.129,32,0.129,33,0.048,57,1.792,123,0.592,124,0.956,132,2.549,175,2.813,179,0.994,191,2.862,192,2.434,236,1.347,237,1.595,250,0.919,377,5.115,380,4.724,392,2.675,394,2.813,395,2.675,397,2.675,657,1.655,685,2.434,713,4.654,714,5.151,715,4.654,716,5.359,717,3.139,718,5.359,719,3.843,720,2.813,721,3.566,722,4.654]],["t/53",[3,1.061,7,0.007,8,0.045,9,0.011,10,0.007,25,0.041,26,0.007,27,0.031,28,0.011,29,0.227,31,0.029,32,0.029,33,0.011,39,1.061,47,0.876,49,0.889,51,3.302,54,0.876,57,0.307,64,2.632,73,0.876,106,1.533,122,0.758,123,0.713,128,1.061,131,1.091,136,0.524,140,2.674,143,1.173,145,1.762,146,1.693,157,0.555,158,0.555,159,1.693,160,0.37,177,0.813,189,0.876,192,1.554,195,0.673,205,1.857,223,1.423,231,2.805,236,0.307,262,1.122,279,1.672,308,1.836,311,1.693,312,2.42,343,1.765,363,1.122,376,1.488,413,0.929,431,0.955,437,1.017,452,1.765,453,2.223,462,1.627,481,3.343,482,3.999,512,2.387,513,0.955,554,1.331,565,1.672,601,1.061,610,1.061,620,5.301,670,1.857,722,1.061,723,4.604,724,1.222,725,1.222,726,3.887,727,2.04,728,2.85,729,2.229,730,3.609,731,2.85,732,2.85,733,0.813,734,1.222,735,1.222,736,4.38,737,2.85,738,2.85,739,2.138,740,1.222,741,2.85,742,2.85,743,1.496,744,2.138,745,2.138,746,3.887,747,4.604,748,2.845,749,3.066,750,2.138,751,2.138,752,3.999,753,4.886,754,2.138,755,2.138,756,2.138,757,2.138,758,2.138,759,2.138,760,2.138,761,2.138,762,1.672,763,3.42,764,1.222,765,2.85,766,2.85,767,2.85,768,2.85,769,3.42,770,2.85,771,2.85,772,2.85,773,1.222,774,2.138,775,2.138,776,2.85,777,1.061,778,2.138,779,1.222,780,3.887,781,1.061,782,2.138,783,1.222,784,1.222,785,1.222,786,1.222,787,1.222,788,2.138,789,1.222,790,1.222,791,1.222,792,2.971,793,1.222,794,1.061,795,0.955,796,1.222,797,2.85,798,1.222,799,1.222,800,2.85,801,2.971,802,4.886,803,1.222,804,5.343,805,1.222,806,1.222,807,1.222,808,1.857,809,2.229,810,1.222,811,2.85,812,1.222,813,1.061,814,1.222,815,0.876,816,1.222,817,1.061,818,2.138,819,1.222,820,1.222,821,1.222,822,1.222,823,0.508,824,1.222,825,7.04,826,1.222,827,1.222,828,1.222,829,1.061,830,1.222,831,0.876,832,0.955,833,1.222,834,1.222,835,1.222,836,2.674,837,1.222,838,1.222,839,1.222,840,1.222,841,2.138,842,2.138,843,1.222,844,0.876,845,1.222,846,1.222,847,1.222,848,1.222,849,1.222,850,1.533,851,1.222,852,1.222,853,2.138,854,1.222,855,1.222,856,1.222,857,1.222,858,1.222,859,1.222,860,1.222,861,0.813,862,1.222,863,1.222,864,1.222,865,1.222,866,1.222,867,1.222,868,1.222,869,1.222,870,1.222,871,1.222,872,1.222,873,1.222,874,1.222,875,1.222,876,1.222,877,1.222,878,1.061,879,1.061,880,1.222,881,1.222,882,1.222,883,1.222,884,1.222,885,1.222,886,1.222,887,1.222,888,1.222,889,1.222,890,1.222,891,1.222,892,1.222,893,1.061,894,1.061,895,1.222,896,1.222,897,1.222,898,3.887,899,3.887,900,4.275,901,4.275,902,3.42,903,3.42,904,1.222,905,3.42,906,1.222,907,3.887,908,2.85,909,1.222,910,0.813]],["t/55",[7,0.026,8,0.044,9,0.026,10,0.026,25,0.033,26,0.026,27,0.037,28,0.044,29,1.268,31,0.117,32,0.117,33,0.044,123,0.558,124,0.87,148,1.225,179,0.905,198,2.214,233,1.722,236,1.225,237,1.503,250,0.836,370,1.37,377,3.496,380,3.496,393,2.559,425,3.496,426,3.496,568,3.812,657,1.225,717,3.637,815,4.453,911,4.111,912,4.234,913,4.234,914,4.234,915,4.875,916,4.855,917,4.875,918,6.209,919,4.875,920,4.875,921,4.875,922,4.875,923,4.234,924,4.875,925,6.832,926,4.453,927,4.234,928,4.234,929,4.234,930,4.234,931,4.234,932,4.234,933,4.234,934,4.234,935,3.496,936,4.234,937,4.875,938,4.234,939,4.875,940,4.234]],["t/57",[1,2.778,7,0.021,8,0.045,9,0.021,10,0.021,21,5.294,25,0.038,26,0.021,27,0.037,28,0.035,29,0.989,31,0.093,32,0.093,33,0.035,57,1.532,123,0.59,124,0.951,148,1.34,175,3.956,179,0.989,185,3.029,198,2.422,236,0.973,237,1.291,250,0.914,377,4.938,380,4.372,425,2.778,426,2.778,437,1.843,557,2.422,657,1.34,714,4.168,717,3.846,815,4.938,911,3.374,916,3.029,926,3.824,935,3.824,936,4.63,940,3.364,941,5.331,942,5.331,943,5.331,944,2.853,945,5.331,946,3.874,947,3.874,948,6.096,949,5.331,950,5.331,951,4.168,952,5.331,953,5.331,954,3.874,955,3.874,956,3.874,957,3.874,958,3.874,959,3.874,960,3.874,961,3.874,962,3.874,963,3.874,964,3.874,965,5.331,966,3.364,967,3.874,968,4.63,969,3.874,970,3.874,971,3.874,972,3.874,973,3.874,974,3.874,975,3.874,976,3.874,977,3.874,978,3.874,979,3.874,980,3.874,981,3.874,982,3.874,983,3.874,984,3.874,985,3.874]],["t/59",[7,0.027,8,0.044,9,0.027,10,0.027,25,0.039,26,0.027,27,0.034,28,0.046,29,0.944,31,0.122,32,0.122,33,0.046,123,0.573,124,1.138,163,3.977,179,1.183,233,1.797,236,1.278,237,1.687,250,0.872,425,3.648,426,3.648,657,1.278,717,3.735,815,4.574,911,3.53,912,4.417,913,4.417,916,4.986,926,4.574,935,4.574,951,3.977,986,4.417,987,5.086,988,5.086,989,5.086,990,5.086,991,2.419,992,5.086,993,5.086,994,5.086,995,5.086,996,4.417,997,5.086,998,5.086,999,5.086,1000,5.086,1001,5.086,1002,5.086,1003,3.648,1004,5.086,1005,5.086]],["t/61",[7,0.029,8,0.044,9,0.029,10,0.029,25,0.038,26,0.029,27,0.035,28,0.048,29,1,31,0.129,32,0.129,33,0.048,123,0.593,124,0.961,132,2.563,175,2.828,179,1,191,2.871,192,2.447,212,4.212,236,1.354,237,1.6,250,1.133,392,2.689,394,2.828,395,2.689,397,2.689,547,2.828,657,1.661,715,4.679,717,3.156,719,3.864,720,2.828,721,3.586,748,3.586,926,3.864,935,4.74,951,4.212,1006,5.387,1007,5.387,1008,5.387,1009,5.387]],["t/63",[7,0.019,8,0.045,9,0.019,10,0.019,25,0.039,26,0.019,27,0.034,28,0.032,29,0.927,31,0.085,32,0.085,33,0.032,45,2.533,46,2.35,99,2.199,122,0.582,123,0.638,124,1.035,136,0.409,159,1.298,167,1.07,177,2.35,179,1.076,227,1.994,247,1.469,250,1.185,252,1.763,259,3.067,265,1.154,351,1.955,352,2.35,437,1.68,453,1.469,466,1.955,512,1.994,552,2.761,553,3.585,557,1.604,575,2.533,583,1.854,613,2.199,657,1.458,668,3,671,3.861,685,1.604,733,2.35,823,1.469,944,1.534,1010,2.199,1011,2.199,1012,2.199,1013,1.955,1014,3.067,1015,5.478,1016,4.998,1017,4.341,1018,2.35,1019,2.761,1020,3.067,1021,5.096,1022,3.067,1023,2.761,1024,2.761,1025,2.068,1026,3.908,1027,2.199,1028,4.957,1029,4.957,1030,3.531,1031,2.533,1032,3.067,1033,2.761,1034,3.531,1035,2.761,1036,3.067,1037,2.533,1038,4.536,1039,2.761,1040,2.761,1041,3.908,1042,2.068,1043,4.536,1044,2.761,1045,2.761,1046,2.761,1047,3.531,1048,2.761,1049,2.761,1050,2.533,1051,5.205,1052,2.761,1053,2.35,1054,2.761,1055,2.533,1056,3.531,1057,3.531,1058,2.761,1059,2.761,1060,2.761,1061,2.199,1062,3.067,1063,2.533,1064,3.908,1065,4.536,1066,3.908,1067,4.536]],["t/65",[7,0.022,8,0.045,9,0.022,10,0.022,25,0.04,26,0.022,27,0.03,28,0.038,31,0.101,32,0.101,33,0.038,57,1.413,122,0.926,136,0.448,147,1.54,148,1.053,163,3.276,167,1.704,188,2.199,195,1.769,233,1.481,234,1.903,250,0.964,265,1.37,351,2.319,352,2.789,353,1.743,360,2.091,363,2.199,376,1.604,379,3.276,389,2.789,401,3.113,403,1.769,429,3.639,434,3.639,452,1.903,462,1.993,559,2.609,570,2.609,668,3.019,823,1.743,911,2.319,944,1.82,991,1.993,1013,2.319,1027,2.609,1068,4.19,1069,4.19,1070,3.639,1071,5.892,1072,4.19,1073,4.19,1074,4.19,1075,4.19,1076,4.19,1077,2.807,1078,4.19,1079,4.19,1080,4.19,1081,4.19,1082,2.454,1083,4.19,1084,3.639,1085,4.19,1086,4.19,1087,4.19,1088,6.347,1089,4.19,1090,4.19,1091,4.19,1092,3.639,1093,4.19,1094,4.19,1095,4.19,1096,4.19,1097,4.19,1098,4.19,1099,3.005,1100,3.005,1101,3.276,1102,3.276,1103,4.397,1104,5.624,1105,2.319,1106,3.639,1107,4.19,1108,1.903,1109,4.19,1110,3.113,1111,4.19,1112,4.19]],["t/67",[7,0.026,8,0.045,9,0.026,10,0.026,25,0.038,26,0.026,27,0.038,28,0.043,29,0.887,31,0.115,32,0.115,33,0.043,49,2.551,123,0.641,124,0.853,132,2.275,136,0.337,157,2.172,158,2.172,159,1.758,160,1.449,167,1.449,179,0.887,191,2.664,202,2.275,231,3.219,236,1.202,237,1.485,250,1.161,374,3.183,376,1.83,391,2.51,392,3.061,393,2.51,394,2.51,395,2.387,396,4.082,397,2.387,398,3.43,452,3.244,570,2.977,657,1.202,727,2.51,910,3.183,1105,2.647,1113,4.153,1114,3.43,1115,3.739,1116,3.739,1117,3.183,1118,3.183,1119,4.153,1120,4.153,1121,4.153,1122,4.153,1123,4.153,1124,3.739,1125,3.739,1126,4.153]],["t/69",[7,0.018,8,0.045,9,0.018,10,0.018,25,0.038,26,0.018,27,0.033,28,0.03,31,0.081,32,0.081,33,0.03,42,2.426,45,2.426,46,2.251,55,2.839,99,2.106,122,0.933,123,0.612,124,0.865,136,0.436,159,1.243,167,1.025,177,3.226,179,0.899,192,1.536,227,1.349,237,0.819,250,1.123,252,2.419,265,1.106,351,1.872,370,1.84,453,2.016,466,1.872,512,1.933,557,1.536,583,1.775,657,1.423,668,3.414,671,3.226,685,1.536,696,2.426,720,1.775,878,4.209,1013,1.872,1021,4.062,1023,2.644,1024,2.644,1025,1.981,1026,2.644,1028,4.886,1029,4.886,1038,4.429,1039,2.644,1040,2.644,1041,3.789,1042,1.981,1043,4.429,1044,2.644,1045,2.644,1046,2.644,1049,2.644,1050,3.476,1051,5.119,1052,2.644,1053,2.251,1054,2.644,1055,2.426,1058,2.644,1059,2.644,1060,2.644,1061,2.106,1064,3.789,1065,4.429,1066,3.789,1067,4.429,1108,1.536,1127,4.062,1128,3.382,1129,2.937,1130,2.644,1131,3.382,1132,5.917,1133,4.846,1134,3.382,1135,3.382,1136,3.382,1137,3.382,1138,3.382,1139,3.382,1140,3.382,1141,3.382,1142,2.937,1143,3.382,1144,2.937,1145,3.382,1146,2.426,1147,4.846,1148,3.382,1149,3.382,1150,2.937,1151,2.937,1152,4.919,1153,3.382,1154,3.382,1155,3.382,1156,3.382]],["t/71",[7,0.019,8,0.045,9,0.019,10,0.019,25,0.038,26,0.019,27,0.031,28,0.032,31,0.085,32,0.085,33,0.032,45,2.533,46,3.326,99,2.199,122,0.582,123,0.638,124,0.892,136,0.445,159,1.298,167,1.07,177,3.326,179,0.927,192,2.27,227,2.314,237,0.855,247,1.469,250,1.141,252,1.763,265,1.154,351,1.955,363,1.854,453,2.079,462,1.68,466,1.955,512,1.994,552,2.761,557,1.604,583,1.854,657,1.256,668,3.38,671,4.198,685,1.604,720,1.854,730,1.604,823,1.469,831,2.533,944,1.534,1013,1.955,1015,5.038,1017,4.341,1018,2.35,1019,2.761,1020,3.067,1021,5.096,1023,2.761,1024,2.761,1025,2.068,1026,3.908,1028,4.957,1029,4.957,1035,2.761,1036,3.067,1037,2.533,1038,4.536,1039,3.908,1040,2.761,1041,3.908,1042,2.068,1043,4.536,1044,2.761,1045,2.761,1046,2.761,1048,2.761,1049,2.761,1050,2.533,1051,5.205,1052,2.761,1053,2.35,1054,2.761,1055,2.533,1058,2.761,1059,2.761,1060,2.761,1061,2.199,1062,3.067,1063,2.533,1064,3.908,1065,4.536,1066,3.908,1067,4.536,1070,3.067,1071,5.038,1106,3.067,1142,3.067,1144,3.067,1157,3.531,1158,3.531,1159,3.531,1160,3.531,1161,3.531,1162,3.531,1163,3.531,1164,3.531,1165,3.531,1166,3.531]],["t/73",[7,0.029,8,0.044,9,0.029,10,0.029,25,0.036,26,0.029,27,0.036,28,0.049,31,0.131,32,0.131,33,0.049,123,0.599,124,0.977,132,2.605,136,0.386,175,2.874,179,1.016,191,2.9,192,2.487,250,0.939,265,1.79,351,3.031,392,2.733,394,2.874,395,2.733,397,2.733,657,1.677,719,3.927,720,2.874,721,3.645,823,2.278,1027,3.409,1105,3.031,1108,2.487,1167,4.756,1168,2.874,1169,4.282,1170,4.756,1171,4.756,1172,4.756,1173,4.282]],["t/75",[7,0.027,8,0.044,9,0.027,10,0.027,25,0.034,26,0.027,27,0.027,28,0.045,29,0.932,31,0.121,32,0.121,33,0.045,57,1.262,123,0.568,124,0.896,148,1.262,179,0.932,188,3.636,198,2.281,202,2.389,227,2.003,236,1.262,453,2.089,466,2.78,541,3.342,657,1.262,666,3.927,991,2.389,1033,3.927,1100,4.968,1103,5.685,1169,3.927,1174,5.022,1175,4.362,1176,5.022,1177,3.602,1178,5.022,1179,4.362,1180,4.362,1181,5.022,1182,5.022,1183,4.362,1184,4.362,1185,3.602,1186,5.022,1187,5.022,1188,3.602,1189,5.022,1190,4.362,1191,5.022,1192,5.022,1193,5.022,1194,3.342,1195,5.022,1196,5.022,1197,3.602,1198,5.022,1199,6.327,1200,5.022]],["t/77",[7,0.02,8,0.045,9,0.02,10,0.02,25,0.041,26,0.02,27,0.028,28,0.034,29,1.21,31,0.091,32,0.091,33,0.034,49,1.584,57,1.638,64,2.506,123,0.473,124,0.679,136,0.269,143,0.94,148,0.957,179,0.706,227,1.519,233,2.303,234,2.393,236,0.957,250,0.903,252,1.9,266,2.731,335,2.534,337,2.731,339,2.731,343,2.393,353,1.584,370,1.48,409,2.107,433,2.23,512,2.101,556,1.4,823,1.584,991,1.811,1010,2.37,1011,2.37,1012,2.37,1082,2.23,1168,1.998,1185,2.731,1201,3.807,1202,3.807,1203,5.268,1204,3.807,1205,5.268,1206,3.807,1207,3.307,1208,3.807,1209,3.807,1210,3.807,1211,3.307,1212,5.246,1213,3.307,1214,4.575,1215,3.307,1216,5.246,1217,3.307,1218,3.307,1219,3.307,1220,3.307,1221,4.119,1222,3.307,1223,3.307,1224,3.307,1225,3.307,1226,3.307,1227,3.307,1228,4.338,1229,3.307,1230,2.977,1231,3.307,1232,3.307,1233,2.977,1234,4.575,1235,2.977,1236,2.977,1237,4.575,1238,5.246,1239,2.977,1240,4.575,1241,2.977,1242,4.575,1243,2.977,1244,3.307,1245,3.307,1246,3.307,1247,3.307,1248,3.307,1249,3.307,1250,3.307,1251,3.307,1252,5.661,1253,5.943,1254,2.977,1255,5.246]],["t/79",[7,0.021,8,0.045,9,0.021,10,0.021,25,0.033,26,0.021,27,0.029,28,0.036,29,0.745,31,0.096,32,0.096,33,0.036,57,1.675,124,0.716,132,1.909,136,0.283,143,0.716,145,1.536,146,2.008,147,1.476,148,1.373,149,1.909,150,1.909,179,0.745,188,3.259,191,1.744,192,1.823,195,1.263,198,2.481,233,1.418,234,1.823,236,1.009,237,1.322,250,0.937,262,3.259,321,3.138,351,2.222,352,2.671,353,1.67,360,2.003,374,2.671,392,3.48,393,2.107,394,2.107,395,2.003,397,2.003,453,1.67,466,2.222,553,3.918,556,1.476,583,2.107,657,1.009,720,2.107,721,2.671,823,1.67,914,3.486,1013,2.222,1014,3.486,1033,4.271,1037,2.879,1082,2.351,1100,4.453,1168,2.107,1175,3.486,1177,2.879,1184,3.486,1185,2.879,1194,4.133,1228,2.671,1254,3.138,1256,4.014,1257,4.014,1258,4.014,1259,4.014,1260,2.879,1261,4.014,1262,4.014,1263,4.014,1264,4.014,1265,4.014,1266,4.014,1267,3.486,1268,4.014,1269,2.671,1270,3.486,1271,4.014,1272,3.486,1273,4.014,1274,4.744,1275,4.014,1276,6.972,1277,4.014,1278,5.393,1279,4.014,1280,4.014,1281,4.014,1282,4.014,1283,3.138,1284,4.014,1285,4.014,1286,4.014,1287,3.138,1288,4.014,1289,4.014,1290,4.014,1291,3.138,1292,5.462,1293,4.014,1294,4.014]],["t/81",[7,0.016,8,0.045,9,0.016,10,0.016,25,0.04,26,0.016,27,0.041,29,0.572,33,0.028,51,3.855,57,1.351,122,0.747,136,0.418,148,1.489,187,2.263,192,1.401,198,2.691,222,2.679,233,1.09,234,1.401,236,0.775,250,0.529,308,1.808,309,2.655,311,2.178,333,2.679,335,3.943,363,1.619,391,1.619,409,3.494,410,2.053,413,1.34,431,3.544,433,3.47,468,4.249,501,2.412,556,1.667,559,1.92,657,1.139,685,1.401,736,3.855,743,2.379,752,3.937,832,2.412,1099,2.212,1103,4.935,1207,2.679,1221,3.544,1228,3.577,1239,4.632,1241,4.632,1295,3.085,1296,3.085,1297,3.085,1298,3.085,1299,6.599,1300,5.924,1301,3.085,1302,3.139,1303,3.085,1304,3.085,1305,6.312,1306,6.312,1307,5.374,1308,6.599,1309,3.085,1310,3.085,1311,3.085,1312,4.533,1313,3.943,1314,5.145,1315,4.533,1316,5.924,1317,4.533,1318,3.544,1319,3.937,1320,3.085,1321,3.085,1322,6.599,1323,3.085,1324,3.085,1325,3.085,1326,5.374,1327,3.085,1328,4.533,1329,3.017,1330,3.085,1331,3.085,1332,3.085,1333,3.085,1334,2.679,1335,3.085,1336,3.085,1337,3.085,1338,6.599,1339,3.085,1340,5.374,1341,3.085,1342,4.533,1343,3.085,1344,2.679,1345,3.085,1346,3.085,1347,3.085,1348,3.085,1349,3.937,1350,3.085,1351,3.085,1352,3.085,1353,3.085,1354,3.085,1355,5.924,1356,3.937,1357,3.085,1358,3.085,1359,3.085,1360,3.085,1361,2.679,1362,3.085,1363,3.937,1364,4.533,1365,3.085,1366,3.085,1367,2.679,1368,3.937,1369,3.085,1370,3.085,1371,2.679,1372,5.374,1373,3.085,1374,3.085]],["t/83",[7,0.028,8,0.045,9,0.028,10,0.028,25,0.038,26,0.028,27,0.035,28,0.047,29,0.979,31,0.127,32,0.127,33,0.047,122,1.074,136,0.46,157,2.396,158,2.396,159,1.939,195,1.659,236,1.325,250,0.904,265,1.724,352,3.51,556,2.604,575,4.678,1037,3.782,1375,5.274,1376,4.124,1377,5.274,1378,5.274,1379,5.274,1380,5.274,1381,5.665,1382,6.523,1383,5.274,1384,6.523,1385,5.274,1386,5.274,1387,5.274,1388,5.274,1389,5.274]],["t/85",[7,0.02,8,0.045,9,0.02,10,0.02,25,0.039,26,0.02,27,0.027,28,0.033,29,1.098,31,0.088,32,0.088,33,0.033,49,1.523,55,2.144,57,1.61,64,2.438,123,0.46,124,0.653,136,0.258,143,0.915,148,0.92,179,0.679,188,2.691,198,2.328,202,2.438,227,1.46,233,2.09,234,2.328,250,0.879,252,1.827,266,2.626,335,2.436,337,2.626,339,2.626,343,2.328,353,1.523,370,1.441,433,2.144,512,2.045,556,1.346,823,1.523,879,3.179,991,1.741,1010,2.279,1011,2.279,1012,2.279,1082,2.144,1100,3.676,1168,1.921,1194,4.49,1211,3.179,1212,5.137,1213,3.179,1214,4.452,1215,3.179,1216,5.137,1217,3.179,1218,3.179,1219,3.179,1220,3.179,1221,4.008,1222,3.179,1223,3.179,1224,3.179,1225,3.179,1226,3.179,1227,3.179,1228,4.49,1229,3.179,1230,2.862,1232,3.179,1233,2.862,1234,4.452,1235,2.862,1236,2.862,1237,5.566,1238,6.234,1239,2.862,1240,5.137,1241,2.862,1242,5.137,1243,2.862,1244,3.179,1245,3.179,1246,3.179,1247,3.179,1248,3.179,1249,3.179,1250,3.179,1251,3.179,1252,5.566,1253,5.859,1254,2.862,1255,5.137,1390,3.661,1391,3.661,1392,3.661,1393,3.661,1394,3.661,1395,3.661,1396,3.661,1397,3.661,1398,3.661]],["t/87",[7,0.021,8,0.045,9,0.021,10,0.021,25,0.04,26,0.021,27,0.021,28,0.035,29,0.717,33,0.035,57,0.972,122,0.637,123,0.478,132,1.839,136,0.273,147,1.421,148,1.53,149,1.839,150,1.839,152,3.118,159,1.421,187,2.657,188,2.029,223,2.573,233,1.366,234,2.418,236,0.972,245,3.358,277,3.358,308,2.124,309,2.264,334,3.023,359,3.023,370,1.086,401,3.371,437,1.839,481,3.023,495,2.418,541,2.573,554,3.315,583,2.029,713,3.358,861,2.573,1050,4.706,1194,4.053,1231,3.358,1260,2.773,1302,2.533,1313,2.573,1329,3.543,1399,6.561,1400,5.324,1401,3.866,1402,2.573,1403,1.93,1404,3.358,1405,4.761,1406,4.163,1407,3.866,1408,3.866,1409,3.866,1410,5.324,1411,5.324,1412,3.358,1413,3.358,1414,3.358,1415,5.324,1416,3.358,1417,3.866,1418,3.866,1419,3.866,1420,5.324,1421,3.866,1422,5.324,1423,3.866,1424,3.866,1425,3.358,1426,3.866,1427,3.866,1428,4.053,1429,5.324,1430,3.866,1431,3.866,1432,3.866,1433,3.358,1434,3.866,1435,3.866,1436,3.866,1437,6.561,1438,3.866,1439,5.324,1440,3.866,1441,5.324,1442,3.866,1443,3.866,1444,3.866,1445,3.866,1446,3.866,1447,5.324,1448,3.866,1449,3.866,1450,3.866,1451,3.866,1452,3.866,1453,6.561,1454,3.866,1455,3.866,1456,3.866]],["t/89",[7,0.028,8,0.044,9,0.028,10,0.028,25,0.035,26,0.028,27,0.028,28,0.047,29,0.971,33,0.047,40,4.091,123,0.583,124,0.934,136,0.369,143,0.934,147,1.924,148,1.315,149,2.489,150,2.489,198,2.948,236,1.315,250,0.897,306,4.594,308,2.087,309,3.065,310,4.091,322,2.746,353,2.177,361,3.753,362,3.753,370,1.47,437,2.489,468,3.753,541,3.482,574,2.896,583,2.746,1082,3.065,1130,4.091,1260,3.753,1329,3.482,1403,2.612,1405,4.091,1457,6.491,1458,5.232,1459,4.041,1460,4.544,1461,5.232,1462,5.232,1463,3.482,1464,4.091,1465,4.544,1466,4.544,1467,5.232]],["t/91",[1,1.629,7,0.019,8,0.045,9,0.012,10,0.012,25,0.037,26,0.012,27,0.037,28,0.02,29,0.421,33,0.02,51,1.629,55,1.33,64,1.707,122,0.907,123,0.4,124,0.405,132,1.081,136,0.509,143,0.902,148,1.118,152,1.33,175,2.653,179,0.421,183,3.479,188,1.192,189,1.629,191,0.987,202,1.081,227,1.432,233,1.945,236,0.571,262,1.884,308,1.432,309,1.33,312,1.414,321,1.776,322,1.192,336,1.973,338,1.973,341,2.806,345,4.781,353,2.103,360,1.791,361,1.629,362,1.629,370,0.638,376,0.869,403,1.4,411,1.791,412,2.806,413,1.559,435,1.973,437,1.081,468,1.629,495,1.63,559,1.414,583,1.192,613,1.414,617,1.973,644,3.479,656,4.781,666,1.776,672,1.973,674,3.864,685,1.032,687,1.973,691,4.391,696,1.629,861,2.389,893,1.973,910,2.961,1003,1.629,1013,1.257,1031,2.574,1053,1.512,1055,3.191,1082,2.102,1099,2.574,1105,1.257,1125,2.806,1130,1.776,1146,1.629,1183,1.973,1185,3.626,1194,3.365,1269,1.512,1302,1.081,1402,3.365,1403,1.134,1405,1.776,1406,1.776,1412,1.973,1413,1.973,1433,1.973,1459,1.414,1464,1.776,1466,4.391,1468,1.973,1469,1.973,1470,2.271,1471,3.589,1472,4.449,1473,2.271,1474,4.449,1475,2.271,1476,4.449,1477,2.271,1478,6.128,1479,2.271,1480,4.967,1481,2.271,1482,2.271,1483,2.271,1484,1.973,1485,2.271,1486,2.271,1487,2.271,1488,2.271,1489,2.271,1490,2.271,1491,2.271,1492,2.271,1493,3.117,1494,1.973,1495,2.271,1496,1.776,1497,2.271,1498,2.271,1499,1.973,1500,2.271,1501,1.973,1502,1.973,1503,2.271,1504,3.589,1505,2.271,1506,2.271,1507,2.271,1508,2.271,1509,2.271,1510,2.271,1511,3.589,1512,2.271,1513,2.271,1514,3.589,1515,2.271,1516,2.271,1517,2.806,1518,2.271,1519,2.271,1520,4.449,1521,2.271,1522,2.271,1523,2.271,1524,2.271,1525,2.271,1526,2.271,1527,2.271,1528,2.271,1529,2.271,1530,5.055,1531,2.271,1532,2.271,1533,2.271,1534,2.271,1535,3.479,1536,2.271,1537,1.973,1538,1.973,1539,2.271,1540,2.271,1541,2.271,1542,2.271,1543,2.271,1544,2.271,1545,2.271,1546,3.589,1547,2.271,1548,2.271,1549,2.271,1550,2.271,1551,2.271,1552,2.271,1553,2.271,1554,2.271,1555,2.271,1556,2.271,1557,2.271,1558,2.271,1559,1.629,1560,2.271,1561,3.589,1562,2.271,1563,2.271,1564,2.271,1565,2.271,1566,3.589,1567,2.271,1568,2.271,1569,3.589,1570,3.589,1571,2.271,1572,2.271,1573,3.589,1574,2.271,1575,2.271,1576,2.271,1577,2.271,1578,2.271,1579,2.271,1580,2.271,1581,2.271,1582,2.271,1583,2.271,1584,2.271,1585,2.271,1586,1.776,1587,2.271,1588,2.271,1589,2.271,1590,2.271,1591,2.271,1592,2.271,1593,2.271,1594,1.973,1595,2.271,1596,2.271,1597,2.271,1598,2.271,1599,2.271,1600,3.589,1601,2.271,1602,2.271,1603,2.271,1604,2.271,1605,2.271,1606,2.271,1607,2.271,1608,4.449,1609,4.781,1610,1.973,1611,2.271,1612,3.589,1613,2.271,1614,2.271,1615,2.271,1616,2.271,1617,2.271,1618,2.271,1619,2.271,1620,2.271,1621,2.271,1622,2.271,1623,3.117,1624,2.271,1625,2.271,1626,2.271,1627,2.271,1628,1.973,1629,2.271,1630,1.973,1631,2.271,1632,1.973,1633,2.271,1634,2.271,1635,2.271,1636,2.271,1637,2.271,1638,2.271,1639,2.271,1640,2.271,1641,2.271,1642,2.271,1643,2.806,1644,2.271,1645,1.629,1646,2.271]],["t/93",[7,0.019,8,0.045,9,0.019,10,0.019,25,0.04,26,0.019,27,0.034,28,0.032,29,0.666,33,0.032,46,2.388,57,1.47,123,0.654,124,0.64,136,0.413,143,0.902,146,1.319,147,1.858,148,1.27,149,1.707,150,1.707,157,1.63,159,1.319,179,0.666,191,1.559,195,1.129,198,2.296,227,1.431,233,1.786,234,2.296,236,0.902,247,1.493,295,3.364,308,2.016,309,2.102,310,2.806,335,2.388,337,2.574,339,2.574,341,2.806,342,3.117,353,2.103,360,1.791,370,1.421,392,2.921,394,1.884,395,1.791,396,2.388,397,1.791,411,1.791,412,2.806,413,1.559,453,2.435,462,2.784,466,3.239,483,3.117,495,1.63,574,1.986,613,2.234,684,3.117,894,3.117,968,3.117,986,4.39,1003,2.574,1177,2.574,1188,2.574,1267,3.117,1272,4.39,1274,4.39,1278,4.39,1402,2.388,1403,1.791,1404,4.39,1414,3.117,1425,3.117,1463,2.388,1464,2.806,1465,3.117,1610,3.117,1623,3.117,1647,5.852,1648,6.353,1649,5.852,1650,6.947,1651,2.806,1652,3.588,1653,3.588,1654,3.588,1655,2.574,1656,6.435,1657,3.588,1658,3.588,1659,5.852,1660,3.588,1661,3.588,1662,3.588,1663,3.588,1664,3.588,1665,3.588,1666,3.588,1667,3.588,1668,2.388,1669,3.588,1670,3.588,1671,3.588,1672,3.588,1673,3.588,1674,5.055,1675,3.117,1676,3.588,1677,3.588,1678,3.588,1679,3.588,1680,3.588,1681,3.588,1682,3.588,1683,5.055,1684,3.588,1685,3.588,1686,3.588,1687,3.588,1688,3.588,1689,3.588,1690,3.588]],["t/95",[7,0.026,8,0.045,9,0.026,10,0.026,25,0.033,26,0.026,27,0.036,28,0.044,29,1.15,31,0.117,32,0.117,33,0.044,57,1.222,124,0.868,158,2.209,159,1.788,160,1.473,179,0.902,202,2.313,227,1.94,231,2.553,233,1.718,250,1.063,379,3.802,389,3.237,563,5.133,823,2.023,844,3.488,911,3.431,966,4.224,1010,3.028,1011,3.028,1012,3.028,1283,3.802,1496,3.802,1517,3.802,1656,4.224,1675,4.224,1691,3.802,1692,5.384,1693,4.863,1694,4.863,1695,4.863,1696,4.863,1697,4.863,1698,4.863,1699,4.863,1700,4.863,1701,4.863,1702,4.863,1703,4.863,1704,3.802,1705,4.863,1706,2.373,1707,4.863,1708,4.863,1709,3.488,1710,6.199,1711,4.863,1712,4.863,1713,3.802]],["t/97",[7,0.022,8,0.045,9,0.022,10,0.022,25,0.038,26,0.022,27,0.038,28,0.038,29,1.042,31,0.1,32,0.1,33,0.038,55,2.449,84,2.783,122,0.689,124,1.002,147,1.537,148,1.051,149,1.989,150,1.989,152,2.449,179,1.042,188,2.948,195,1.316,250,0.717,306,2.603,376,1.601,452,1.899,557,1.899,563,3.738,662,3.27,727,2.195,823,2.336,831,2.999,1010,2.603,1011,2.603,1012,2.603,1018,2.783,1031,2.999,1032,3.632,1291,3.27,1302,2.671,1691,3.27,1704,3.27,1706,1.601,1714,4.182,1715,4.182,1716,3.632,1717,3.632,1718,3.079,1719,4.182,1720,4.182,1721,4.182,1722,4.182,1723,1.899,1724,2.88,1725,4.182,1726,4.877,1727,3.632,1728,4.877,1729,5.616,1730,3.072,1731,3.632,1732,5.616,1733,4.182,1734,2.44,1735,1.899,1736,2.755,1737,4.877,1738,5.507,1739,4.182,1740,1.817,1741,1.817,1742,5.616,1743,4.182,1744,5.616,1745,4.182,1746,4.182,1747,2.44,1748,3.632,1749,2.755,1750,4.182,1751,4.182,1752,4.182,1753,4.182,1754,4.182,1755,4.182,1756,4.182,1757,4.182,1758,4.182,1759,3.632,1760,4.182]],["t/99",[7,0.016,8,0.045,9,0.016,10,0.016,11,1.809,25,0.028,26,0.016,27,0.028,28,0.026,29,0.539,31,0.07,32,0.07,33,0.026,54,3.11,57,1.304,64,2.063,73,2.084,89,2.886,122,0.478,123,0.553,131,1.112,136,0.472,143,1.098,157,1.32,158,1.32,159,1.068,160,0.88,195,1.364,202,1.382,231,1.525,233,1.027,236,0.73,237,0.703,262,1.525,272,4.057,295,2.886,323,2.54,343,1.32,353,1.209,363,1.525,413,1.262,437,1.382,445,1.809,493,1.934,495,1.32,554,2.7,557,1.97,563,4.097,574,1.608,598,1.934,603,2.272,648,2.272,650,2.272,659,2.272,685,1.97,690,3.391,695,2.523,717,1.702,743,1.525,748,2.886,762,3.391,795,2.272,832,2.272,850,2.084,1019,3.391,1188,3.721,1269,1.934,1283,2.272,1313,1.934,1376,2.272,1402,1.934,1463,1.934,1480,2.272,1643,3.391,1692,2.523,1704,2.272,1706,1.112,1717,2.523,1718,2.357,1726,4.506,1730,2.254,1734,2.805,1735,1.32,1736,2.805,1737,2.523,1740,1.262,1741,1.262,1747,1.262,1749,1.262,1761,2.905,1762,2.905,1763,2.905,1764,2.523,1765,2.905,1766,2.905,1767,2.523,1768,2.523,1769,4.336,1770,2.905,1771,2.084,1772,2.905,1773,2.905,1774,2.905,1775,2.905,1776,2.523,1777,5.188,1778,2.905,1779,2.905,1780,2.523,1781,2.905,1782,2.523,1783,2.523,1784,2.276,1785,2.905,1786,4.057,1787,2.523,1788,2.523,1789,2.523,1790,2.523,1791,2.523,1792,3.766,1793,2.523,1794,2.523,1795,2.272,1796,2.272,1797,2.523,1798,2.523,1799,2.905,1800,2.905,1801,2.905,1802,2.905,1803,2.523,1804,2.523,1805,2.523,1806,4.745,1807,2.523,1808,3.766,1809,2.523,1810,3.766,1811,2.523,1812,4.997,1813,2.523,1814,2.523,1815,2.523,1816,2.523,1817,2.523,1818,4.506,1819,2.523,1820,2.523,1821,4.057,1822,2.905,1823,2.905,1824,4.506,1825,2.523,1826,2.523,1827,2.523,1828,2.523,1829,4.506,1830,4.057,1831,2.523,1832,3.391,1833,2.523,1834,2.523,1835,4.506,1836,2.523,1837,2.523,1838,2.523,1839,2.523,1840,2.523,1841,3.766,1842,2.523,1843,2.523,1844,2.523,1845,2.523,1846,2.523,1847,2.523,1848,3.766,1849,2.523,1850,2.523,1851,2.523,1852,2.523,1853,2.523,1854,2.523,1855,2.523,1856,2.905,1857,4.336,1858,2.523,1859,2.905,1860,2.905,1861,2.272,1862,2.905,1863,2.905,1864,2.905,1865,2.523,1866,2.905]],["t/101",[7,0.027,8,0.045,9,0.027,10,0.027,25,0.042,26,0.027,27,0.037,28,0.044,31,0.119,32,0.119,33,0.044,122,0.817,123,0.564,124,0.885,136,0.35,179,1.278,247,2.611,265,1.621,456,5.452,1077,3.133,1110,2.745,1302,2.986,1867,3.301,1868,5.385,1869,4.96,1870,4.308,1871,4.308,1872,3.878,1873,4.96,1874,4.96,1875,4.96,1876,4.96,1877,4.96,1878,4.96,1879,4.96,1880,4.96,1881,4.96,1882,4.96,1883,4.96,1884,6.277,1885,6.277,1886,4.96,1887,4.96,1888,3.557,1889,6.277,1890,3.301,1891,6.277,1892,4.96,1893,4.96]],["t/103",[7,0.021,8,0.045,9,0.021,10,0.021,25,0.041,26,0.021,27,0.036,28,0.036,31,0.096,32,0.096,33,0.036,123,0.645,124,1.106,131,2.085,136,0.282,143,0.972,147,1.47,148,1.005,160,1.211,167,1.877,179,1.011,262,2.098,370,1.123,376,1.53,391,2.098,411,1.995,413,1.737,416,3.126,452,1.816,462,1.902,494,2.867,495,1.816,499,2.867,500,2.867,556,1.47,563,4.429,727,2.098,729,3.126,733,2.661,1077,2.719,1101,3.126,1102,3.126,1108,1.816,1110,3.854,1117,2.661,1118,2.661,1428,2.661,1502,3.472,1645,2.867,1713,4.259,1716,3.472,1865,4.731,1867,2.661,1890,4.124,1894,3.472,1895,3.472,1896,3.472,1897,3.998,1898,3.472,1899,3.472,1900,3.472,1901,3.472,1902,3.472,1903,3.472,1904,3.998,1905,3.472,1906,3.472,1907,3.472,1908,3.998,1909,3.472,1910,3.472,1911,3.472,1912,3.998,1913,5.779,1914,3.472,1915,3.472,1916,3.472,1917,3.472,1918,3.472,1919,3.472,1920,3.472,1921,3.472,1922,3.126,1923,3.472,1924,3.472,1925,3.472,1926,3.998,1927,3.998,1928,3.998,1929,3.998,1930,3.998,1931,3.998,1932,3.998]],["t/105",[7,0.019,8,0.045,9,0.019,10,0.019,25,0.041,26,0.019,27,0.036,28,0.033,31,0.087,32,0.087,33,0.033,42,2.611,57,0.915,84,2.423,122,0.6,123,0.574,124,0.911,133,3.162,136,0.416,143,0.65,147,1.338,148,0.915,167,1.103,179,0.948,247,1.515,265,1.19,334,2.847,343,1.654,370,1.023,376,1.394,391,1.911,452,1.654,512,2.037,668,3.203,727,1.911,1025,2.133,1042,2.133,1053,2.423,1061,2.267,1063,2.611,1077,2.549,1110,2.015,1132,4.435,1146,2.611,1150,3.162,1151,3.162,1630,4.435,1691,2.847,1759,3.162,1867,2.423,1868,3.993,1870,3.162,1871,3.162,1933,6.732,1934,5.106,1935,3.641,1936,3.641,1937,3.641,1938,5.898,1939,5.898,1940,5.106,1941,6.979,1942,6.393,1943,6.979,1944,6.393,1945,3.641,1946,3.641,1947,3.641,1948,3.641,1949,3.162,1950,3.641,1951,4.435,1952,3.162,1953,3.162,1954,3.162,1955,3.162,1956,3.641,1957,3.641,1958,3.641,1959,3.641,1960,5.106,1961,3.641,1962,3.641,1963,2.847,1964,3.641,1965,3.641,1966,5.106,1967,3.641,1968,3.641,1969,3.641,1970,3.641,1971,3.641,1972,3.641,1973,3.641,1974,3.641,1975,3.641,1976,3.641,1977,3.641,1978,5.106,1979,5.106]],["t/107",[7,0.026,8,0.044,9,0.026,10,0.026,25,0.04,26,0.026,27,0.036,28,0.043,31,0.115,32,0.115,33,0.043,122,1.013,136,0.434,145,1.839,147,1.766,148,1.207,159,1.766,187,2.398,265,1.571,266,3.446,322,2.522,353,2.559,376,1.839,452,2.182,453,1.999,556,1.766,582,4.173,583,2.522,597,3.757,657,1.546,727,2.522,743,2.522,910,3.198,923,4.173,1269,3.198,1334,4.173,1463,4.094,1858,5.343,1861,3.757,1868,4.81,1949,4.173,1951,5.343,1952,4.173,1953,4.173,1954,4.173,1955,4.173,1980,4.805,1981,4.805,1982,4.805,1983,4.805,1984,4.805,1985,4.805,1986,4.805,1987,4.805,1988,4.805,1989,4.805,1990,4.173,1991,4.805,1992,4.805,1993,4.805,1994,4.173,1995,3.757,1996,4.805,1997,4.805,1998,6.785,1999,4.173,2000,4.805,2001,4.805,2002,4.805,2003,4.805]],["t/109",[7,0.019,8,0.045,9,0.019,10,0.019,25,0.041,26,0.019,27,0.04,28,0.032,31,0.087,32,0.087,33,0.032,122,1.179,123,0.643,131,1.947,136,0.359,143,1.199,237,1.544,247,2.116,274,4.418,308,2.962,311,2.47,312,2.254,322,3.087,363,2.67,370,1.018,391,3.087,409,2.004,433,4.349,512,2.779,556,1.331,657,0.91,733,2.41,743,2.67,1302,3.196,1403,1.807,1651,3.977,2004,5.88,2005,3.621,2006,3.621,2007,3.621,2008,3.621,2009,3.621,2010,3.621,2011,3.621,2012,3.621,2013,3.621,2014,3.621,2015,3.621,2016,3.621,2017,3.621,2018,3.621,2019,5.087,2020,3.621,2021,3.621,2022,3.621,2023,3.621,2024,3.621,2025,3.621,2026,3.621,2027,3.621,2028,3.621,2029,3.621,2030,3.621,2031,3.621,2032,3.621,2033,3.621,2034,5.88,2035,3.621,2036,3.621,2037,3.621,2038,3.621,2039,6.378,2040,3.621,2041,3.621,2042,3.621,2043,3.621,2044,3.621,2045,3.621,2046,3.621,2047,3.621,2048,3.621,2049,3.621,2050,3.621,2051,3.621,2052,3.621,2053,3.145,2054,3.621,2055,3.621,2056,3.621,2057,3.621,2058,3.621,2059,3.621,2060,3.977,2061,3.621,2062,3.621,2063,3.621,2064,3.621,2065,3.621,2066,3.621,2067,3.621,2068,3.621,2069,3.621,2070,3.621,2071,3.621,2072,3.621,2073,3.621,2074,3.621,2075,3.621,2076,3.621]],["t/111",[7,0.019,8,0.045,9,0.019,10,0.019,25,0.031,26,0.027,27,0.031,28,0.032,31,0.086,32,0.086,33,0.032,122,1.236,123,0.453,136,0.356,140,3.942,143,1.193,147,1.315,148,0.899,149,1.701,150,1.701,187,2.517,195,1.586,227,2.011,234,1.624,247,3.122,250,0.613,265,1.169,306,2.226,308,2.011,311,2.147,312,3.139,363,1.877,370,1.005,390,3.105,403,1.838,409,2.791,413,2.19,559,4.163,668,3.464,671,2.38,708,2.796,809,2.796,836,2.796,1027,2.226,1042,2.094,1077,2.915,1092,5.808,1099,2.565,1108,2.29,1110,3.702,1302,2.398,1318,4.959,1344,3.105,1403,1.785,1586,2.796,1651,2.796,1655,4.796,1890,4.451,2060,2.796,2077,3.105,2078,4.379,2079,3.105,2080,4.567,2081,3.105,2082,4.379,2083,3.105,2084,3.942,2085,4.379,2086,4.379,2087,5.072,2088,3.576,2089,2.796,2090,3.576,2091,3.576,2092,3.576,2093,3.576,2094,3.105,2095,3.576,2096,3.576,2097,3.576,2098,3.105,2099,3.576,2100,3.105,2101,3.105,2102,3.105,2103,3.576,2104,3.576,2105,3.576,2106,3.576,2107,3.576,2108,3.576,2109,3.105,2110,3.105,2111,3.105,2112,3.105,2113,3.105,2114,3.576,2115,3.576,2116,3.576,2117,3.576,2118,3.105,2119,3.576,2120,3.576,2121,3.105,2122,4.379,2123,4.379,2124,3.576,2125,3.105]],["t/113",[7,0.025,8,0.045,9,0.025,10,0.025,25,0.042,26,0.025,27,0.04,28,0.043,29,0.881,31,0.114,32,0.114,33,0.043,122,0.782,123,0.64,124,0.847,136,0.335,143,0.847,147,1.745,148,1.193,149,2.258,150,2.258,152,2.781,154,3.712,156,3.712,179,0.881,237,1.149,306,3.8,308,1.894,393,2.492,455,4.123,564,3.712,801,6.55,1010,2.956,1011,2.956,1012,2.956,1063,4.378,1177,3.405,1291,3.712,1329,3.16,2126,4.748,2127,7.368,2128,4.748,2129,4.748,2130,4.748,2131,4.748,2132,4.748,2133,4.748,2134,4.748,2135,4.748,2136,4.748,2137,6.104,2138,4.748,2139,4.748,2140,4.748,2141,4.748,2142,4.748,2143,4.748]],["t/115",[7,0.028,8,0.043,9,0.02,10,0.02,25,0.032,26,0.02,27,0.028,28,0.034,31,0.09,32,0.09,33,0.034,49,1.56,122,1.232,123,0.611,131,1.435,143,1.424,227,1.496,306,4.237,308,1.496,311,2.815,312,4.237,361,2.69,363,3.572,370,1.054,401,2.076,409,3.767,462,1.784,517,2.932,559,2.335,644,4.685,781,3.257,808,3.257,809,5.322,861,2.496,996,3.257,1168,1.968,1313,2.496,1403,1.872,1468,3.257,1469,3.257,1586,2.932,1655,5.183,2053,3.257,2060,4.685,2077,3.257,2078,4.527,2079,3.257,2080,2.932,2081,3.257,2082,3.257,2083,3.257,2085,3.257,2086,3.257,2087,6.802,2098,6.276,2100,3.257,2101,5.625,2102,4.527,2109,3.257,2144,5.213,2145,5.213,2146,5.992,2147,3.75,2148,5.213,2149,5.213,2150,3.75,2151,5.213,2152,3.75,2153,3.75,2154,3.75,2155,3.75,2156,3.75,2157,3.75,2158,3.75,2159,3.75,2160,3.75,2161,3.75,2162,5.213,2163,3.75,2164,3.75,2165,3.75,2166,3.75,2167,5.213,2168,3.75,2169,3.75,2170,3.75,2171,3.75,2172,3.75,2173,2.932,2174,3.75,2175,3.75,2176,3.75,2177,3.75,2178,3.75,2179,3.75,2180,3.75,2181,3.75,2182,3.75,2183,3.75]],["t/117",[7,0.02,8,0.045,9,0.02,10,0.02,25,0.04,26,0.02,27,0.035,28,0.033,31,0.09,32,0.09,33,0.033,122,1.064,123,0.632,124,1.153,136,0.263,143,0.926,147,1.371,148,0.937,167,1.81,179,1.109,233,1.318,247,3.061,250,0.639,262,1.957,265,1.219,308,1.487,370,1.048,376,1.427,411,1.861,413,1.62,416,2.916,452,1.694,494,2.675,495,1.694,499,2.675,500,2.675,556,1.371,708,2.916,727,1.957,729,2.916,733,2.482,817,3.239,1027,2.322,1077,2.982,1084,3.239,1101,2.916,1102,2.916,1108,2.359,1110,3.759,1117,2.482,1118,2.482,1127,2.675,1318,4.06,1403,1.861,1428,2.482,1645,2.675,1713,4.06,1867,2.482,1872,2.916,1890,4.52,1894,3.239,1895,3.239,1896,3.239,1898,3.239,1899,3.239,1900,3.239,1901,4.51,1902,3.239,1903,3.239,1905,4.51,1906,3.239,1907,3.239,1909,4.51,1910,3.239,1911,3.239,1914,3.239,1915,3.239,1916,3.239,1917,3.239,1918,3.239,1919,3.239,1920,3.239,1921,3.239,1922,2.916,1923,3.239,1924,3.239,1925,3.239,1963,2.916,2080,2.916,2110,5.189,2111,3.239,2112,3.239,2113,3.239,2118,3.239,2121,3.239,2122,4.51,2123,3.239,2125,3.239,2184,3.729,2185,6.46,2186,3.239,2187,3.729]],["t/119",[7,0.027,8,0.045,9,0.027,10,0.027,25,0.04,26,0.027,27,0.034,28,0.046,31,0.123,32,0.123,33,0.046,57,1.291,84,3.42,143,0.917,147,1.889,148,1.291,265,1.68,403,1.617,553,4.603,554,3.199,736,4.603,1022,4.463,1108,2.915,1632,4.463,1867,3.42,1872,4.018,1999,6.079,2188,5.138,2189,6.418,2190,5.138,2191,5.138,2192,5.138,2193,6.999,2194,5.138,2195,6.999,2196,5.138,2197,5.138,2198,5.138,2199,6.999,2200,6.418,2201,5.138]],["t/121",[7,0.023,8,0.044,9,0.023,10,0.023,25,0.037,26,0.023,27,0.035,28,0.039,31,0.105,32,0.105,33,0.039,122,1.256,123,0.619,131,1.667,136,0.506,143,1.279,145,2.477,146,2.379,160,1.319,167,1.319,403,1.37,730,2.621,944,2.507,1706,1.667,1718,2.621,1723,2.621,1724,2.621,1730,2.811,1734,2.507,1735,2.621,1736,2.993,1740,2.507,1741,2.507,1747,1.892,1749,1.892,1784,2.286,2202,2.072,2203,2.072,2204,2.173,2205,3.504,2206,2.41,2207,3.582,2208,3.582,2209,2.898,2210,4.355,2211,2.711,2212,2.173,2213,3.194,2214,2.745,2215,2.745,2216,2.072,2217,3.813,2218,2.072,2219,2.072,2220,2.173,2221,2.072,2222,3.84,2223,2.898,2224,2.711,2225,3.123,2226,2.173,2227,3.123,2228,3.123,2229,3.123,2230,3.405]],["t/123",[7,0.022,8,0.045,9,0.022,10,0.022,25,0.04,26,0.022,27,0.036,28,0.036,31,0.097,32,0.097,33,0.036,49,1.687,122,0.906,123,0.494,131,2.105,136,0.509,160,1.228,167,1.228,343,2.498,370,1.754,403,1.276,433,2.375,462,3.184,668,2.969,1313,2.698,1381,5.421,1706,1.552,1718,2.498,1723,2.498,1724,2.498,1730,2.389,1734,2.389,1735,2.498,1736,2.389,1740,2.389,1741,2.389,1747,1.761,1749,2.389,1806,3.886,2202,1.929,2203,1.929,2205,2.969,2211,2.524,2214,2.616,2215,2.616,2216,1.929,2218,1.929,2219,1.929,2221,1.929,2226,2.024,2231,4.054,2232,4.054,2233,5.5,2234,7.379,2235,7.215,2236,4.054,2237,4.054,2238,5.5,2239,6.242,2240,5.5,2241,6.242,2242,4.054,2243,6.693,2244,4.054,2245,6.242,2246,4.054,2247,4.054,2248,4.054,2249,4.054,2250,4.054,2251,4.054]],["t/125",[7,0.02,8,0.045,9,0.02,10,0.02,25,0.038,26,0.02,27,0.035,28,0.034,31,0.092,32,0.092,33,0.034,122,1.312,123,0.652,131,1.46,136,0.522,143,1.34,145,2.711,146,2.604,160,1.156,167,1.156,403,1.2,730,2.963,944,2.834,1706,1.46,1718,2.396,1723,2.396,1724,2.396,1730,2.627,1734,2.292,1735,2.396,1736,2.834,1740,2.292,1741,2.292,1747,1.657,1749,1.657,1784,2.002,2202,1.815,2203,2.509,2204,2.633,2205,3.617,2206,2.92,2207,3.92,2208,3.92,2209,3.511,2211,2.375,2212,1.904,2213,2.92,2214,2.509,2215,2.509,2216,1.815,2217,3.611,2218,1.815,2219,1.815,2220,1.904,2221,1.815,2222,3.511,2223,2.539,2224,2.375,2225,2.736,2227,2.736,2228,2.736,2229,2.736,2230,2.983,2252,5.275,2253,3.814,2254,3.814,2255,3.814]],["t/127",[7,0.011,8,0.045,9,0.011,10,0.011,25,0.042,26,0.011,27,0.035,28,0.018,31,0.049,32,0.049,33,0.018,89,2.194,106,1.464,123,0.469,131,0.782,136,0.476,143,0.996,145,1.587,146,1.524,160,0.619,191,1.801,195,1.643,202,0.971,223,1.359,233,0.721,234,0.927,237,0.798,279,2.577,322,2.497,323,3.058,328,3.72,359,1.596,362,4.004,376,1.821,437,0.971,445,1.271,547,1.072,556,1.524,557,2.536,564,2.577,598,2.759,620,2.577,730,1.497,743,1.072,831,1.464,850,1.464,911,1.13,944,1.432,991,1.568,1003,1.464,1042,1.931,1114,3.412,1302,3.213,1517,1.596,1535,3.72,1559,1.464,1609,2.863,1706,0.782,1718,1.497,1723,2.536,1724,2.536,1728,1.773,1730,2.982,1734,3.025,1735,2.536,1736,2.934,1738,5.101,1740,2.425,1741,2.425,1747,2.268,1749,1.801,1767,1.773,1768,1.773,1784,2.74,1786,3.72,1796,1.596,1806,1.271,1821,4.593,1832,1.596,1963,2.577,1990,2.863,1995,1.596,2084,2.577,2089,2.577,2202,1.568,2203,0.971,2204,1.019,2205,2.656,2206,1.13,2207,2.294,2208,2.294,2209,1.359,2212,1.019,2213,1.824,2214,1.568,2215,1.568,2216,0.971,2217,3.8,2218,0.971,2219,0.971,2220,1.019,2221,0.971,2226,2.606,2256,2.042,2257,3.296,2258,1.464,2259,2.042,2260,2.042,2261,3.296,2262,1.773,2263,3.296,2264,3.296,2265,3.296,2266,2.863,2267,3.296,2268,3.296,2269,2.042,2270,2.042,2271,3.296,2272,2.042,2273,3.296,2274,2.042,2275,5.874,2276,2.042,2277,2.042,2278,3.296,2279,3.296,2280,3.744,2281,2.042,2282,2.042,2283,2.042,2284,2.042,2285,2.042,2286,4.145,2287,4.757,2288,2.042,2289,2.042,2290,2.042,2291,2.042,2292,3.296,2293,3.296,2294,3.296,2295,2.042,2296,2.042,2297,2.042,2298,2.042,2299,2.042,2300,3.296,2301,3.296,2302,4.145,2303,2.042,2304,2.042,2305,2.042,2306,3.296,2307,2.042,2308,3.296,2309,3.296,2310,2.042,2311,2.042,2312,2.042,2313,3.296,2314,3.296,2315,4.145,2316,2.042,2317,2.042,2318,2.042,2319,2.042,2320,3.296,2321,3.296,2322,2.042,2323,2.042,2324,2.042,2325,2.042,2326,2.042,2327,2.042,2328,2.042,2329,2.042,2330,2.042,2331,2.042,2332,2.042,2333,2.042,2334,2.042,2335,2.042,2336,2.042,2337,3.296,2338,3.296,2339,4.145,2340,2.042,2341,2.042,2342,2.042,2343,2.042,2344,2.042,2345,3.296,2346,3.296,2347,3.296,2348,3.296,2349,2.042,2350,2.042,2351,2.042,2352,2.042,2353,2.042,2354,2.042,2355,2.042,2356,3.296,2357,3.296,2358,2.042,2359,2.042,2360,2.042,2361,2.042,2362,2.042,2363,2.042,2364,2.042,2365,3.296,2366,2.042,2367,2.042,2368,2.042,2369,2.042,2370,2.042,2371,2.042,2372,2.042,2373,1.596,2374,2.042,2375,2.042,2376,2.042,2377,2.042,2378,2.042,2379,2.042,2380,2.042,2381,2.042,2382,2.042,2383,2.042,2384,2.042]],["t/129",[7,0.015,8,0.045,9,0.015,10,0.015,11,1.716,25,0.035,26,0.015,27,0.027,28,0.025,31,0.066,32,0.066,33,0.025,54,1.977,57,1.048,64,1.983,73,1.977,89,2.775,122,1.141,123,0.622,131,1.596,136,0.519,143,1.26,145,1.924,146,1.848,160,0.835,195,0.867,272,3.931,295,2.775,323,2.442,343,1.252,353,1.147,403,0.867,445,2.596,547,1.447,554,2.596,557,2.734,574,1.526,598,1.835,648,2.156,650,2.156,659,2.156,662,2.156,685,1.894,690,3.26,730,1.894,743,1.447,748,2.775,762,3.26,850,1.977,944,1.811,1061,1.716,1188,3.606,1376,2.156,1463,1.835,1643,3.26,1706,1.055,1709,2.99,1718,2.284,1723,1.894,1724,1.894,1730,2.435,1734,2.856,1735,1.894,1736,3.011,1740,1.811,1741,1.811,1747,1.198,1749,1.811,1783,2.394,1784,1.447,1786,3.26,1787,2.394,1788,2.394,1789,2.394,1790,2.394,1791,2.394,1792,3.621,1793,2.394,1794,2.394,1795,2.156,1796,2.156,1797,2.394,1798,2.394,1803,2.394,1804,2.394,1805,2.394,1806,4.704,1807,2.394,1808,3.621,1809,2.394,1810,3.621,1811,2.394,1812,4.868,1813,2.394,1814,2.394,1815,2.394,1816,2.394,1817,2.394,1818,4.366,1819,2.394,1820,2.394,1821,3.931,1824,4.366,1825,2.394,1826,2.394,1827,2.394,1828,2.394,1829,4.366,1830,3.931,1831,2.394,1832,3.26,1833,2.394,1834,2.394,1835,4.366,1836,2.394,1837,2.394,1838,2.394,1839,2.394,1840,2.394,1841,3.621,1842,2.394,1843,2.394,1844,2.394,1845,2.394,1846,2.394,1847,2.394,1848,3.621,1849,2.394,1850,2.394,1851,2.394,1852,2.394,1853,2.394,1854,2.394,1855,2.394,1861,2.156,1994,2.394,2202,1.983,2203,1.312,2204,1.376,2205,3.012,2206,1.526,2207,2.783,2208,2.783,2209,1.835,2212,1.376,2213,2.308,2214,1.983,2215,1.983,2216,1.312,2217,2.783,2218,1.312,2219,1.312,2220,1.376,2221,1.312,2225,2.99,2226,1.376,2227,1.977,2228,1.977,2229,1.977,2258,1.977,2262,2.394,2280,1.977,2373,2.156,2385,3.26,2386,2.757,2387,2.757,2388,2.757,2389,2.757,2390,2.757,2391,2.757,2392,2.394,2393,2.757,2394,2.757]],["t/131",[7,0.02,8,0.045,9,0.02,10,0.02,25,0.038,26,0.02,27,0.035,28,0.034,31,0.09,32,0.09,33,0.034,122,1.162,123,0.469,136,0.424,143,1.071,145,2.298,146,2.207,160,1.14,167,1.14,195,1.645,401,2.084,403,1.184,944,2.271,1706,2.001,1718,2.374,1723,2.946,1724,2.946,1730,3.064,1734,2.818,1735,2.946,1736,3.204,1740,2.818,1741,2.818,1747,2.271,1749,2.271,1784,2.743,1888,2.7,2202,1.791,2203,1.791,2204,1.879,2205,3.355,2206,2.084,2207,3.323,2208,3.323,2211,3.254,2212,2.609,2213,3.59,2214,3.086,2215,3.086,2216,2.486,2217,4.082,2218,2.486,2219,2.486,2220,2.609,2221,2.486,2222,4.317,2223,3.479,2224,3.254,2226,2.609,2395,5.227,2396,3.764,2397,3.764,2398,5.227,2399,3.764,2400,3.764,2401,3.479,2402,3.269,2403,2.505,2404,2.7,2405,3.764,2406,3.764,2407,3.764,2408,2.505,2409,3.269]],["t/133",[7,0.022,8,0.045,9,0.022,10,0.022,25,0.039,26,0.022,27,0.04,28,0.037,31,0.099,32,0.099,33,0.037,122,1.222,123,0.501,136,0.445,143,1.125,145,2.414,146,2.319,160,1.254,167,1.689,401,2.291,403,1.302,730,2.533,944,2.423,1706,1.584,1723,2.533,1724,2.533,1730,2.74,1734,2.423,1735,2.533,1736,2.932,1740,2.423,1741,2.423,1747,1.798,1749,1.798,1784,2.172,1888,2.968,2202,1.969,2203,1.969,2204,2.065,2205,3.453,2206,2.291,2207,3.491,2208,3.491,2212,2.065,2213,3.087,2214,2.653,2215,2.653,2216,1.969,2217,3.736,2218,1.969,2219,1.969,2220,2.065,2221,1.969,2224,2.576,2226,3.148,2401,3.712,2402,4.843,2403,2.754,2404,2.968,2408,2.754,2409,3.594,2410,4.138,2411,4.138,2412,6.749,2413,4.138,2414,6.307,2415,4.138,2416,4.138,2417,4.138,2418,4.138,2419,4.138,2420,4.138,2421,4.138,2422,4.138]],["t/135",[7,0.024,8,0.045,9,0.024,10,0.024,25,0.039,26,0.024,27,0.035,28,0.041,31,0.11,32,0.11,33,0.041,57,1.152,108,3.972,136,0.496,143,1.065,187,2.288,195,1.442,238,3.584,247,1.907,255,3.584,265,1.499,308,1.829,353,1.907,391,2.406,396,3.051,403,1.442,445,2.854,547,2.406,556,1.685,1025,2.685,1077,3.508,1108,2.082,1319,3.982,2423,5.763,2424,3.982,2425,3.982,2426,3.982,2427,5.183,2428,5.968,2429,4.584,2430,3.584,2431,4.584,2432,4.584,2433,4.584,2434,3.584,2435,3.982,2436,5.763,2437,5.763,2438,3.982,2439,3.982,2440,3.982,2441,5.968,2442,4.584,2443,4.584,2444,4.584,2445,4.584,2446,4.584,2447,4.584,2448,4.584,2449,4.584,2450,4.584]],["t/137",[7,0.026,8,0.045,9,0.026,10,0.026,25,0.04,26,0.026,27,0.037,28,0.044,31,0.118,32,0.118,33,0.044,108,4.158,136,0.509,187,2.457,195,1.549,238,3.849,247,2.855,255,3.849,265,1.609,353,2.048,376,1.884,401,2.725,403,1.549,445,3.065,1025,2.884,1077,3.603,1108,2.236,2423,5.961,2424,4.276,2425,4.276,2426,4.276,2427,4.276,2435,4.276,2436,4.276,2437,4.276,2438,4.276,2439,4.276,2440,4.276,2451,4.923,2452,4.923,2453,4.923,2454,4.923,2455,4.923,2456,4.923,2457,4.923,2458,4.923,2459,4.923]],["t/139",[7,0.027,8,0.044,9,0.027,10,0.027,25,0.039,26,0.027,27,0.037,28,0.046,31,0.123,32,0.123,33,0.046,122,1.151,136,0.362,160,1.553,167,1.553,311,2.356,403,1.613,1706,2.676,1718,2.911,1723,2.911,1724,2.911,1730,2.784,1734,2.784,1736,2.226,1740,2.784,1741,2.784,1747,2.226,1748,4.451,1749,2.784,2202,2.438,2203,2.438,2204,2.558,2205,2.438,2211,3.191,2212,2.558,2214,3.048,2215,3.048,2216,2.438,2218,2.438,2219,2.438,2220,2.558,2221,2.438,2226,2.558,2401,3.411,2403,3.411,2408,3.411,2460,4.007]],["t/141",[7,0.024,8,0.044,9,0.024,10,0.024,25,0.037,26,0.024,27,0.035,28,0.04,31,0.108,32,0.108,33,0.04,113,5.131,122,0.968,123,0.402,131,1.715,136,0.524,143,1.171,145,2.512,146,2.413,160,1.358,167,1.358,311,2.162,403,1.41,550,5.131,730,2.671,944,2.554,1706,2.251,1718,2.671,1723,2.671,1724,2.671,1730,2.554,1734,2.554,1735,2.671,1736,1.947,1740,2.554,1741,2.554,1747,1.947,1749,2.554,1806,4.086,2202,2.132,2203,2.132,2204,2.237,2205,3.532,2211,2.79,2212,2.237,2214,2.797,2215,2.797,2216,2.132,2218,2.132,2219,2.132,2220,2.237,2221,2.132,2226,2.237,2401,2.983,2403,2.983,2404,3.214,2408,2.983,2430,5.131,2460,3.504,2461,4.482,2462,3.892,2463,5.107,2464,5.7,2465,3.892]],["t/143",[7,0.021,8,0.045,9,0.021,10,0.021,25,0.039,26,0.021,27,0.033,28,0.036,31,0.095,32,0.095,33,0.036,113,4.83,122,1.181,123,0.487,131,1.521,136,0.535,143,1.279,145,2.365,146,2.271,160,1.204,167,1.204,403,1.25,550,4.83,730,2.806,944,2.684,1706,1.521,1709,3.891,1718,2.464,1723,2.464,1724,2.464,1730,2.684,1734,2.357,1735,3.015,1736,2.883,1740,2.357,1741,2.357,1747,1.726,1749,2.357,1784,2.086,1806,3.846,2202,1.89,2203,1.89,2204,1.983,2205,3.605,2206,2.199,2207,3.419,2208,3.419,2212,1.983,2213,3.003,2214,2.581,2215,2.581,2216,1.89,2217,3.674,2218,1.89,2219,1.89,2220,1.983,2221,1.89,2222,3.611,2223,2.645,2224,2.474,2226,1.983,2258,2.85,2280,2.85,2385,4.242,2401,2.645,2403,2.645,2404,2.85,2408,2.645,2430,4.83,2460,3.107,2462,3.451,2463,4.712,2464,5.365,2465,3.451]],["t/145",[7,0.022,8,0.045,9,0.022,10,0.022,25,0.039,26,0.022,27,0.033,28,0.036,31,0.097,32,0.097,33,0.036,122,1.236,123,0.601,131,1.552,136,0.509,143,1.248,145,2.389,146,2.295,160,1.228,167,1.228,403,1.276,547,2.128,557,2.835,730,2.498,792,3.521,944,2.389,1108,2.498,1416,3.521,1706,1.552,1709,3.945,1718,2.498,1723,2.498,1724,2.498,1730,2.908,1734,2.712,1735,2.498,1736,2.908,1740,2.389,1741,2.389,1747,1.761,1749,1.761,1784,2.128,2202,1.929,2203,1.929,2204,2.024,2205,3.432,2206,2.244,2207,3.455,2208,3.455,2209,2.698,2212,2.024,2213,3.044,2214,2.616,2215,2.616,2216,1.929,2217,3.705,2218,1.929,2219,1.929,2220,2.024,2221,1.929,2222,3.66,2223,2.698,2224,2.524,2225,2.908,2226,2.024,2227,2.908,2228,2.908,2229,2.908,2230,3.17,2258,2.908,2280,2.908,2373,3.17,2385,4.3,2392,3.521,2466,4.054,2467,4.054]],["t/147",[7,0.025,8,0.045,9,0.025,10,0.025,11,2.874,25,0.04,26,0.025,27,0.038,28,0.041,29,0.857,31,0.111,32,0.111,49,2.494,123,0.633,124,0.824,132,2.196,136,0.326,157,2.097,158,2.097,159,1.697,160,1.398,167,1.398,179,0.857,191,2.604,202,2.196,231,3.146,237,1.451,250,1.141,360,2.304,374,3.072,376,1.767,391,2.423,392,2.992,393,2.423,394,2.423,395,2.304,396,3.99,397,2.304,398,3.311,437,2.196,452,3.201,570,2.874,657,1.16,727,2.423,910,3.072,1105,2.555,1113,4.009,1114,3.311,1115,3.609,1116,3.609,1117,3.072,1118,3.072,1119,4.009,1120,4.009,1121,4.009,1122,4.009,1123,4.009,1124,3.609,1125,3.609,1126,4.009,1459,2.874,2468,4.616,2469,4.616,2470,3.609,2471,5.995,2472,4.616,2473,4.616,2474,4.616]],["t/149",[7,0.026,8,0.045,9,0.026,10,0.026,25,0.042,26,0.026,27,0.036,28,0.043,31,0.116,32,0.116,33,0.043,37,4.817,123,0.643,124,1.099,136,0.34,179,1.143,195,1.515,237,1.492,250,1.165,252,2.404,343,2.188,389,3.206,462,2.291,547,2.528,556,1.771,557,2.799,777,4.183,991,2.931,1013,2.666,2434,3.766,2475,4.183,2476,4.816,2477,4.816,2478,4.816,2479,4.816,2480,4.816,2481,4.816,2482,4.816,2483,6.161,2484,4.817,2485,6.161,2486,4.816,2487,4.816,2488,4.816,2489,4.816,2490,4.816,2491,4.816,2492,4.816,2493,4.816,2494,4.816,2495,4.816,2496,4.816,2497,4.816,2498,4.816,2499,4.816,2500,4.816]],["t/151",[7,0.027,8,0.045,9,0.027,10,0.027,25,0.039,26,0.027,27,0.034,28,0.046,31,0.123,32,0.123,33,0.046,124,0.912,136,0.493,179,0.949,195,1.608,237,1.238,250,1.097,252,2.551,311,1.879,343,2.322,389,3.402,512,2.039,547,2.683,668,3.481,991,2.432,1013,2.829,2186,5.556,2434,3.997,2475,4.44,2484,3.997,2501,5.112,2502,5.112,2503,5.112,2504,5.112,2505,5.112,2506,6.397,2507,5.112,2508,5.112,2509,5.112,2510,5.112,2511,5.112,2512,5.112,2513,5.112,2514,5.112]],["t/153",[7,0.026,8,0.045,9,0.037,10,0.026,25,0.038,26,0.026,27,0.033,28,0.044,29,0.905,31,0.117,32,0.117,33,0.044,123,0.558,124,0.87,136,0.344,158,2.214,167,1.477,179,0.905,185,3.812,187,2.433,195,1.534,236,1.225,250,1.065,252,2.433,265,1.594,453,2.028,556,1.792,613,3.035,657,1.225,696,3.496,717,2.855,720,2.559,736,3.496,748,3.245,823,2.028,829,4.234,991,2.319,1035,3.812,1168,2.559,2484,4.855,2515,4.875,2516,4.875,2517,4.875,2518,4.875,2519,4.875,2520,4.875,2521,4.234,2522,4.875,2523,4.875,2524,4.875,2525,4.875,2526,4.875,2527,4.875,2528,4.875,2529,4.875,2530,4.875,2531,4.875,2532,4.875,2533,4.875,2534,4.875,2535,4.875,2536,4.875,2537,4.875]],["t/155",[7,0.028,8,0.044,9,0.028,10,0.028,25,0.035,26,0.028,27,0.035,28,0.047,29,0.971,31,0.126,32,0.126,33,0.047,122,0.862,123,0.583,124,0.934,132,2.489,143,0.934,157,2.377,158,2.377,159,1.924,160,1.585,175,2.746,179,0.971,191,2.82,192,2.377,231,3.407,236,1.315,250,0.897,351,2.896,392,2.612,394,2.746,395,2.612,397,2.612,546,4.544,570,3.257,657,1.631,719,3.753,720,2.746,721,3.482,813,4.544,823,2.177,1027,3.257,1105,2.896,1108,2.377,1124,4.091,1168,2.746,1169,4.091,1170,4.544,1171,4.544,1172,4.544,1173,4.091,2538,5.232,2539,5.232]],["t/157",[7,0.027,8,0.045,9,0.027,10,0.027,25,0.039,26,0.027,27,0.037,28,0.045,29,0.93,31,0.12,32,0.12,33,0.045,123,0.567,124,0.894,132,2.383,148,1.259,175,2.629,179,0.93,191,2.744,192,2.275,198,2.275,236,1.259,237,1.759,250,0.859,265,1.638,353,2.084,360,2.5,370,1.408,393,2.629,441,4.351,442,4.351,584,3.917,657,1.739,720,2.629,927,4.351,928,4.351,929,4.351,930,4.351,931,4.351,932,4.351,933,4.351,934,4.351,938,4.351,1082,2.934,1127,3.593,1922,3.917,2540,7.264,2541,6.317,2542,5.009,2543,5.009]],["t/159",[7,0.028,8,0.044,9,0.028,10,0.028,25,0.038,26,0.028,27,0.035,28,0.047,31,0.126,32,0.126,33,0.047,47,3.772,123,0.585,124,0.938,136,0.371,143,1.162,179,0.976,237,1.79,250,1.117,265,1.719,322,2.761,323,3.081,657,1.322,730,2.389,823,2.709,1077,3.25,1110,2.911,1168,2.761,1888,3.772,1890,3.501,2544,5.26,2545,5.26,2546,5.26,2547,4.113,2548,5.26,2549,5.26,2550,5.26,2551,5.26,2552,5.26,2553,5.26,2554,5.26,2555,5.26,2556,5.26]],["t/161",[7,0.031,8,0.044,9,0.031,10,0.031,25,0.037,26,0.031,27,0.037,28,0.051,29,1.063,31,0.137,32,0.137,33,0.051,236,1.439,311,2.105,495,2.601,749,4.107,1302,2.724,1314,4.974,1628,4.974,1668,3.812,2557,5.727,2558,5.727,2559,5.727,2560,5.727,2561,5.727,2562,4.974,2563,5.727,2564,5.727,2565,5.727,2566,5.727,2567,5.727,2568,5.727]],["t/163",[7,0.023,8,0.044,9,0.034,10,0.023,25,0.037,26,0.023,27,0.037,28,0.039,31,0.104,32,0.104,33,0.039,57,1.085,122,0.945,123,0.515,124,1.023,136,0.405,148,1.085,152,3.36,157,1.961,179,1.065,187,2.155,189,3.096,195,1.358,198,1.961,203,3.375,233,1.525,234,1.961,237,1.56,250,1.105,308,1.722,309,2.529,311,1.587,360,2.155,393,2.266,437,2.054,453,1.796,492,3.749,541,2.873,547,2.266,548,3.749,556,1.587,657,1.085,685,1.961,1167,3.749,1168,2.266,1190,3.749,1228,4.756,1230,3.375,1233,3.375,1235,3.375,1236,3.375,1243,3.375,1260,3.096,1269,2.873,1287,3.375,1329,2.873,1559,4.114,1771,3.096,2569,4.317,2570,7.146,2571,4.317,2572,4.317,2573,4.317,2574,4.317,2575,4.317,2576,4.317,2577,4.317,2578,4.317,2579,5.737,2580,4.317,2581,4.317,2582,4.317,2583,4.317,2584,6.443,2585,4.317,2586,4.317,2587,4.317,2588,4.317,2589,4.317,2590,4.317,2591,4.317,2592,4.317,2593,5.737,2594,4.317,2595,4.317,2596,5.737,2597,4.317,2598,4.317,2599,4.317,2600,4.317,2601,4.317,2602,4.317,2603,4.317,2604,4.317,2605,4.317,2606,4.317,2607,4.317]],["t/165",[7,0.026,8,0.044,9,0.026,10,0.026,25,0.04,26,0.026,27,0.042,28,0.044,29,0.911,31,0.118,32,0.118,33,0.044,236,1.234,311,2.651,403,1.545,410,4.8,411,3.6,433,2.876,495,3.276,911,2.718,1349,4.265,1356,4.265,1361,4.265,1363,4.265,1367,4.265,1368,4.265,1371,4.265,1780,4.265,2173,3.84,2608,4.265,2609,4.911,2610,6.238,2611,7.212,2612,4.911,2613,6.238,2614,4.911,2615,6.238,2616,6.238,2617,4.911,2618,6.238,2619,6.238,2620,4.911,2621,4.911,2622,4.911,2623,4.911,2624,4.911,2625,4.911,2626,4.911,2627,4.911,2628,4.911,2629,4.911]],["t/167",[7,0.024,8,0.044,9,0.032,10,0.024,25,0.04,26,0.024,27,0.04,28,0.041,29,0.839,31,0.109,32,0.109,33,0.041,34,3.927,49,1.881,122,0.745,195,1.423,236,1.136,311,2.174,370,1.852,403,1.423,409,3.274,410,3.937,411,2.952,413,2.57,462,2.814,493,3.937,494,4.242,495,2.687,496,3.927,497,3.927,498,3.927,499,4.242,500,3.243,501,4.625,502,3.927,503,3.243,504,5.137,505,3.927,506,5.137,507,5.137,508,5.137,509,3.927,510,5.137,511,5.137,512,1.804,513,4.625,514,5.137,515,3.927,516,3.927,517,3.536,556,1.662,743,2.374,836,3.536,1025,2.649,1042,2.649,1460,3.927,1645,3.243,2084,3.536,2094,3.927,2630,4.522,2631,4.522,2632,4.522,2633,4.522,2634,4.522,2635,5.915,2636,5.915,2637,4.522,2638,4.522,2639,3.927,2640,3.927,2641,4.522,2642,4.522,2643,4.522,2644,5.915,2645,4.522,2646,4.522,2647,4.522,2648,4.522,2649,4.522,2650,4.522,2651,4.522,2652,4.522,2653,4.522,2654,4.522,2655,4.522,2656,4.522]],["t/169",[7,0.026,8,0.045,9,0.026,10,0.026,25,0.038,26,0.026,27,0.033,28,0.043,29,0.889,31,0.115,32,0.115,33,0.043,57,1.543,236,1.204,250,0.822,311,1.762,360,3.066,370,1.347,411,2.392,413,2.082,493,4.088,495,2.177,577,5.334,714,4.802,749,3.438,844,3.438,911,2.653,1302,2.28,1406,3.748,1428,4.088,1537,5.334,1538,4.163,1668,3.19,1913,4.163,2521,4.163,2562,4.163,2608,4.163,2657,6.142,2658,4.793,2659,4.793,2660,4.793,2661,7.148,2662,4.793,2663,4.793,2664,4.793,2665,4.793,2666,4.793,2667,4.793,2668,4.793,2669,4.793,2670,6.142,2671,4.793,2672,4.793,2673,4.793,2674,4.793,2675,4.793,2676,4.793,2677,4.793,2678,6.142,2679,4.793,2680,4.163,2681,4.793,2682,4.793,2683,4.793]],["t/171",[7,0.026,8,0.044,9,0.026,10,0.026,25,0.041,26,0.026,27,0.033,28,0.043,31,0.115,32,0.115,33,0.043,38,3.757,57,1.207,64,2.286,117,3.757,122,0.791,136,0.479,143,1.098,202,2.286,250,0.824,311,1.766,370,1.35,503,4.412,512,1.916,565,3.757,574,2.659,597,4.81,657,1.207,1018,3.198,1197,3.446,1403,2.398,1459,2.991,1594,4.173,1706,1.839,1771,3.446,2470,3.757,2684,4.805,2685,5.343,2686,5.343,2687,4.805,2688,4.805,2689,6.151,2690,4.805,2691,4.805,2692,7.395,2693,4.805,2694,4.805,2695,4.805,2696,4.173,2697,4.173,2698,4.173,2699,4.173,2700,5.343,2701,4.173,2702,4.173,2703,4.173,2704,5.343,2705,4.173,2706,4.173,2707,4.173,2708,4.173,2709,4.173,2710,4.173,2711,4.805,2712,4.173,2713,4.173,2714,4.173,2715,4.173,2716,4.805,2717,4.805]],["t/173",[1,3.778,7,0.02,8,0.045,9,0.02,10,0.02,25,0.041,26,0.02,27,0.035,28,0.034,31,0.091,32,0.091,33,0.034,38,2.977,57,0.957,64,1.811,77,3.307,117,2.977,122,0.627,136,0.46,143,0.94,202,1.811,237,1.275,311,1.4,322,3.715,323,4.146,354,3.307,370,1.48,503,4.332,512,1.519,557,1.729,574,2.107,657,0.957,685,1.729,730,2.393,795,2.977,1031,2.731,1061,2.37,1127,2.731,1197,2.731,1287,2.977,1403,1.9,1459,3.76,1493,3.307,1494,3.307,1496,2.977,1501,3.307,1535,2.977,1706,1.457,1727,3.307,1731,3.307,1764,3.307,1771,2.731,1782,4.575,2089,2.977,2266,3.307,2470,2.977,2547,4.119,2640,3.307,2680,4.575,2685,3.307,2686,5.246,2696,3.307,2697,3.307,2698,3.307,2699,3.307,2700,4.575,2701,3.307,2702,3.307,2703,3.307,2704,4.575,2705,3.307,2706,3.307,2707,3.307,2708,3.307,2709,3.307,2710,3.307,2712,3.307,2713,3.307,2714,3.307,2715,3.307,2718,3.807,2719,3.807,2720,5.268,2721,3.807,2722,5.268,2723,3.807,2724,5.268,2725,3.807,2726,3.807,2727,3.807,2728,3.807,2729,3.807,2730,6.04,2731,3.807,2732,3.807,2733,3.807,2734,3.807,2735,3.807,2736,3.807,2737,3.807,2738,3.807,2739,3.807,2740,3.807,2741,3.807,2742,3.807,2743,3.807,2744,3.807,2745,3.807,2746,3.807,2747,3.807,2748,3.807,2749,3.807,2750,3.807,2751,5.268,2752,3.807,2753,3.807,2754,3.807,2755,3.807,2756,3.307,2757,3.807,2758,3.807,2759,3.807,2760,3.807,2761,3.807,2762,3.807,2763,3.807,2764,3.807]],["t/175",[7,0.02,8,0.045,9,0.02,10,0.02,25,0.041,26,0.02,27,0.036,28,0.034,31,0.091,32,0.091,33,0.034,47,2.715,124,0.675,136,0.425,167,1.59,179,0.702,203,2.96,223,2.52,227,1.51,233,1.338,234,2.383,237,1.574,247,1.575,250,1.171,252,2.619,265,1.238,322,1.987,323,2.217,324,3.288,328,5.525,329,4.557,343,1.72,348,3.288,370,1.064,376,1.449,401,3.599,403,1.651,452,1.72,453,1.575,568,2.96,584,2.96,657,1.319,668,2.496,685,2.383,794,3.288,823,1.575,844,2.715,991,2.496,1018,2.52,1077,2.619,1105,2.095,1108,1.72,1110,2.095,1146,2.715,1302,2.496,1402,2.52,1480,2.96,1499,3.288,1559,4.319,1655,2.715,1668,2.52,1830,2.96,2765,3.786,2766,6.502,2767,3.786,2768,3.786,2769,3.786,2770,3.786,2771,3.786,2772,3.786,2773,3.786,2774,3.786,2775,3.786,2776,3.786,2777,3.786,2778,3.786,2779,3.786,2780,3.786,2781,3.786,2782,3.786,2783,3.786,2784,3.786,2785,3.786,2786,3.786,2787,3.786,2788,3.786,2789,6.022,2790,3.786,2791,3.786,2792,6.022,2793,3.786,2794,3.786,2795,3.786,2796,3.786,2797,3.786,2798,3.786,2799,3.786,2800,3.786,2801,3.786,2802,3.786,2803,3.786,2804,3.786,2805,5.247,2806,3.786,2807,3.786,2808,3.786,2809,3.786,2810,3.786,2811,3.786]],["t/177",[7,0.025,8,0.045,9,0.025,10,0.025,25,0.041,26,0.025,27,0.04,28,0.042,29,0.875,31,0.113,32,0.113,33,0.042,40,3.686,49,2.528,122,0.776,123,0.423,136,0.333,143,0.841,175,2.474,187,3.033,236,1.185,237,1.141,265,1.541,374,3.137,376,1.804,391,2.474,392,2.353,393,2.474,395,2.353,397,2.353,398,3.381,403,1.483,452,3.227,453,1.961,512,1.88,657,1.185,668,2.242,727,2.474,743,3.189,1115,4.751,1116,3.686,1117,3.137,1118,3.137,1173,3.686,1179,4.094,1180,4.094,1197,3.381,1270,4.094,1484,4.094,1995,3.686,2173,3.686,2639,4.094,2812,4.714,2813,4.714,2814,4.714,2815,6.077,2816,4.714,2817,4.714,2818,4.714,2819,4.714,2820,4.714,2821,6.077,2822,4.714,2823,4.714,2824,4.714,2825,4.714]],["t/179",[7,0.02,8,0.045,9,0.028,10,0.02,25,0.042,26,0.02,27,0.039,28,0.033,31,0.089,32,0.089,33,0.033,49,1.549,55,2.18,123,0.536,124,0.925,136,0.509,143,1.065,179,0.962,195,1.632,237,1.445,247,1.549,250,0.889,360,1.858,411,1.858,413,1.617,462,2.839,493,2.477,495,1.691,570,3.716,574,3.303,657,0.935,749,2.67,861,3.972,991,2.467,1021,2.67,1028,3.719,1029,3.719,1048,2.91,1105,3.89,1114,2.67,1129,3.233,1152,3.233,1428,2.477,1459,2.317,1668,2.477,1776,3.233,1795,4.055,2547,2.91,2756,3.233,2826,3.722,2827,5.186,2828,3.722,2829,3.722,2830,5.186,2831,5.186,2832,5.186,2833,5.186,2834,6.455,2835,3.722,2836,3.722,2837,5.968,2838,5.968,2839,5.186,2840,3.722,2841,3.722,2842,3.722,2843,3.722,2844,3.722,2845,3.722,2846,3.722,2847,5.186,2848,5.186,2849,5.186,2850,5.186,2851,3.722,2852,3.722,2853,3.722,2854,3.722,2855,3.722,2856,3.722,2857,3.722,2858,3.722,2859,3.722,2860,3.722,2861,3.722,2862,3.722]]],"invertedIndex":[["",{"_index":8,"t":{"39":{"position":[[7,1],[33,2],[84,2],[219,1],[281,3],[322,2],[358,2],[411,1],[419,2],[490,1],[495,2],[511,2],[602,1],[618,1],[655,1],[695,1],[707,1],[723,2],[736,1],[752,1],[764,2],[777,1],[789,1],[806,2],[819,1],[836,1],[849,1],[851,2],[929,2],[998,1],[1013,2],[1026,1],[1054,1],[1073,1],[1137,2],[1155,1],[1192,1],[1218,1],[1244,1],[1271,2],[1295,1],[1326,1],[1351,1],[1363,2],[1390,1],[1506,2],[1521,1],[1543,1],[1562,1],[1584,1],[1618,1],[1633,1],[1641,1],[1657,1],[1705,1],[1733,1],[1753,2],[1756,1],[1758,2],[1851,1],[1861,1],[1884,1],[1924,1],[1926,2],[1984,1],[2073,1],[2104,1],[2128,1],[2154,1],[2178,1],[2215,1],[2253,1],[2258,2],[2304,1],[2389,1],[2413,1],[2435,1],[2470,1],[2506,1],[2529,1],[2531,1],[2544,2],[2567,1],[2597,1],[2645,2],[2648,1],[2664,1],[2696,1],[2714,3],[2718,2],[2770,2],[2773,1],[2775,2],[2840,2],[2948,1],[2981,1],[3046,1],[3081,1],[3090,2],[3150,2],[3217,1],[3221,2],[3238,1],[3266,1],[3295,1],[3326,1],[3346,1],[3350,2],[3367,1],[3396,1],[3425,1],[3456,1],[3458,2],[3527,2],[3556,1],[3562,2],[3579,1],[3599,1],[3606,2],[3623,1],[3629,2],[3646,1],[3667,1],[3674,1],[3726,1],[3757,1],[3763,1],[3765,2],[3847,1],[3863,2],[3880,1],[3884,2],[3905,1],[3921,2],[3938,1],[3943,1],[3945,2],[4012,1],[4042,1],[4061,1],[4081,1],[4101,1],[4109,2],[4112,2],[4176,2],[4217,1],[4321,2],[4324,2],[4403,1],[4457,2],[4460,2],[4525,2],[4619,1],[4685,2],[4703,1],[4724,1],[4741,2],[4840,1],[4875,1],[4887,2],[4890,1],[4892,2],[4969,1],[4971,2],[5040,2],[5104,1],[5149,2],[5246,1],[5284,1],[5305,2],[5356,1],[5393,1],[5412,2],[5415,1],[5431,2],[5461,1],[5484,2],[5514,1],[5535,2],[5563,1],[5584,2],[5612,1],[5621,3],[5625,2]]},"41":{"position":[[7,1],[43,1],[108,3],[149,2],[197,1],[272,1],[274,3],[293,1],[295,3],[299,2],[371,1],[377,2],[445,1],[465,1],[467,3],[471,2],[507,1],[514,1],[534,1],[572,1],[574,2],[608,1],[615,1],[632,1],[669,1],[671,2],[701,1],[746,2],[782,1],[850,1],[878,1],[908,1],[956,2],[959,1],[975,1],[991,2],[994,1],[1007,2],[1026,1],[1060,1],[1078,3],[1082,2],[1129,2],[1132,1],[1162,2],[1302,2],[1362,1],[1369,1],[1386,1],[1396,1],[1409,2],[1487,1],[1520,1],[1531,1],[1556,1],[1589,1],[1600,1],[1620,1],[1630,1],[1636,1],[1638,3],[1642,3],[1646,1],[1714,2],[1744,1],[1752,1],[1759,1],[1770,1],[1790,1],[1823,1],[1863,1],[1879,1],[1894,1],[1933,1],[1938,1],[1993,1],[2013,3],[2037,1],[2050,1],[2075,1],[2128,1],[2165,1],[2201,1],[2218,1],[2232,1],[2236,1],[2250,1],[2254,1],[2270,1],[2279,1],[2284,1],[2289,1],[2296,1],[2306,1],[2311,1],[2316,1],[2323,1],[2325,1],[2329,1],[2334,1],[2338,1],[2344,1],[2351,1],[2363,1],[2371,1]]},"43":{"position":[[7,1],[43,1],[85,3],[126,2],[188,1],[254,2],[321,1],[536,1],[544,1],[560,1],[562,1],[592,1],[594,1],[610,2],[630,1],[702,1],[774,1],[840,1],[893,1],[984,2],[1007,1],[1037,1],[1202,1],[1230,1],[1269,1],[1276,1],[1278,2],[1281,1],[1297,1],[1352,1],[1411,3],[1415,2],[1476,2],[1537,2],[1573,1],[1630,2],[1718,1],[1777,3],[1781,1],[1798,1],[1815,2],[1862,1],[1864,1],[1894,1],[1905,1],[1933,1],[1961,1],[1972,1],[1996,1],[2004,1],[2006,1]]},"45":{"position":[[7,1],[43,1],[110,3],[165,1],[246,1],[302,1],[326,1],[387,1],[454,1],[477,1],[520,1],[542,1],[572,1],[642,1],[649,1],[660,1],[674,1],[733,1],[738,1],[743,1],[757,1],[772,1],[777,1],[815,1],[834,1],[858,1],[888,1],[911,1],[939,1],[963,1],[991,2],[994,1],[1020,2],[1028,1],[1037,3],[1053,1],[1112,3],[1137,1],[1206,1],[1261,1],[1284,1],[1319,1]]},"47":{"position":[[7,1],[43,1],[108,3],[375,1],[400,1],[407,2],[479,1],[481,2],[534,1],[536,1],[779,2],[782,2],[813,1],[815,3],[839,1],[874,1],[881,1],[891,1],[902,1],[931,1],[935,1],[988,1],[990,1],[1016,3],[1091,2],[1110,1],[1131,1],[1147,1],[1162,2],[1194,1],[1201,1],[1211,1],[1226,1],[1282,1],[1308,2],[1357,1],[1361,1],[1391,1],[1408,1],[1431,1],[1459,1],[1486,1],[1528,1],[1582,1],[1602,1],[1639,2],[1652,1],[1708,1],[1743,1],[1748,1],[1769,1],[1795,1],[1838,1],[1854,1],[1957,1],[2035,1],[2039,1],[2076,2],[2105,1],[2234,2],[2375,1],[2439,3],[2458,1],[2513,1],[2558,1],[2575,1],[2604,1],[2644,1],[2677,2],[2713,1],[2773,1],[2817,1],[2836,1],[2878,1],[2963,2],[3006,1],[3032,1],[3079,2],[3082,2],[3085,1],[3100,3],[3116,1],[3125,2],[3176,1],[3207,1],[3226,1],[3233,1],[3254,1],[3264,1],[3288,1],[3315,1],[3334,1],[3347,1],[3352,1],[3356,1],[3360,1],[3380,1],[3387,1],[3391,1],[3397,1],[3405,1],[3471,3],[3492,1],[3508,1],[3517,1],[3519,1],[3521,2],[3569,1],[3579,1],[3588,1],[3590,2],[3643,2],[3646,1],[3648,2],[3680,1],[3687,1],[3708,1],[3718,1],[3730,2],[3777,2],[3884,1],[3920,1],[3944,1],[3958,2],[4005,1],[4012,1],[4037,1],[4047,1],[4075,1],[4086,1],[4101,1],[4106,1],[4126,1],[4163,1],[4167,2],[4176,1],[4191,1],[4193,2],[4234,2],[4315,1],[4355,1],[4390,1],[4402,1],[4425,1],[4456,1],[4481,1],[4518,1],[4524,1],[4526,1],[4528,1],[4530,3],[4534,1],[4536,2],[4667,1],[4669,3],[4752,1],[4766,1],[4768,1],[4907,2],[4946,1],[4948,2],[5001,2],[5004,1],[5016,1],[5043,1],[5045,3],[5060,1],[5067,1],[5091,1],[5101,1],[5128,1],[5158,1],[5190,1],[5284,3],[5291,1],[5314,1],[5373,1],[5375,1],[5388,1],[5395,1],[5417,1],[5468,1],[5470,3],[5474,2],[5522,1],[5534,1],[5544,1],[5549,1],[5554,1],[5556,2],[5590,2],[5686,1],[5699,2],[5702,1],[5707,1],[5711,1],[5722,1],[5727,1],[5731,1],[5741,1],[5747,1]]},"49":{"position":[[7,1],[43,1],[85,3],[126,2],[173,1],[249,1],[269,1],[284,1],[306,1],[325,1],[344,1],[367,1],[391,1],[399,2],[431,1],[433,3],[448,1],[455,1],[474,1],[487,1],[489,1],[547,2],[571,1],[599,1],[684,1],[724,1],[733,1],[743,1],[759,1],[766,1],[776,1],[792,1],[799,1],[807,2],[903,1],[919,1],[929,1],[949,1],[965,1],[970,1],[982,1],[998,1],[1017,1],[1033,1],[1045,1],[1047,2],[1101,2],[1104,1],[1116,1],[1128,1],[1132,1],[1136,1],[1141,2],[1151,2],[1203,2],[1206,1],[1208,2],[1301,2],[1324,1],[1338,2],[1347,1],[1352,1],[1361,1],[1386,1],[1393,1],[1412,1],[1425,1],[1448,1],[1480,2],[1548,1],[1582,1],[1591,1],[1598,1],[1603,1],[1631,1],[1659,1],[1678,1],[1687,1],[1694,1],[1699,1],[1727,1],[1756,1],[1761,2],[1785,1],[1812,1],[1856,1],[1876,1],[1921,1],[1947,1],[1968,1],[1979,1],[1990,1],[2023,1],[2048,1],[2077,1],[2093,1],[2109,2],[2177,2],[2258,2],[2334,1],[2350,1],[2365,1],[2381,1],[2389,1],[2403,1],[2420,1],[2470,1],[2503,1],[2513,1],[2518,1],[2520,3]]},"51":{"position":[[7,1],[43,1],[108,3],[149,2],[222,1],[238,1],[303,2],[370,1],[399,2],[458,2],[513,1],[532,1],[545,1],[565,1],[597,1],[599,2]]},"53":{"position":[[7,1],[43,1],[108,3],[149,2],[273,2],[299,1],[312,2],[315,1],[333,1],[376,1],[430,1],[510,1],[528,1],[548,1],[569,1],[645,1],[667,1],[686,1],[732,1],[742,1],[758,1],[778,1],[876,1],[896,2],[899,1],[901,2],[923,2],[932,1],[944,2],[956,1],[962,2],[997,1],[1024,1],[1029,1],[1045,1],[1072,1],[1077,1],[1100,1],[1102,1],[1104,1],[1111,1],[1122,1],[1132,1],[1143,1],[1149,2],[1170,1],[1181,1],[1191,1],[1201,1],[1207,2],[1216,1],[1223,1],[1233,1],[1243,1],[1253,1],[1259,2],[1269,1],[1276,1],[1287,1],[1298,1],[1308,1],[1314,2],[1322,2],[1325,2],[1376,1],[1396,1],[1412,1],[1419,1],[1443,1],[1459,1],[1484,1],[1566,1],[1581,1],[1594,3],[1609,1],[1617,1],[1621,1],[1625,1],[1643,1],[1655,1],[1657,1],[1673,1],[1675,1],[1682,1],[1693,1],[1698,2],[1716,1],[1726,1],[1731,2],[1753,1],[1763,1],[1768,2],[1789,1],[1800,1],[1805,2],[1827,1],[1832,2],[1845,2],[1848,2],[1959,1],[2029,2],[2060,1],[2073,1],[2090,1],[2100,1],[2124,1],[2140,1],[2144,1],[2151,1],[2169,2],[2172,2],[2175,2],[2251,2],[2277,1],[2290,2],[2293,1],[2311,1],[2354,1],[2408,1],[2432,1],[2449,1],[2451,3],[2466,1],[2473,1],[2492,1],[2505,1],[2637,1],[2641,1],[2654,1],[2667,1],[2677,1],[2682,1],[2689,1],[2699,1],[2703,1],[2716,1],[2729,1],[2739,1],[2744,1],[2751,1],[2756,2],[2777,1],[2789,1],[2809,2],[2812,1],[2814,2],[2836,2],[2845,1],[2857,2],[2869,1],[2875,2],[2918,2],[2921,1],[2933,1],[2946,1],[2959,1],[2979,2],[3058,1],[3064,1],[3070,1],[3077,1],[3085,3],[3089,2],[3092,2],[3095,2],[3165,2],[3191,1],[3204,2],[3207,1],[3225,1],[3268,1],[3322,1],[3402,1],[3420,1],[3440,1],[3459,1],[3505,1],[3515,1],[3531,1],[3551,1],[3621,1],[3641,2],[3644,1],[3646,2],[3668,2],[3677,1],[3689,2],[3701,1],[3724,1],[3738,1],[3755,1],[3763,1],[3790,1],[3805,1],[3828,1],[3847,1],[3870,1],[3880,2],[4095,2],[4098,2],[4101,2],[4206,2],[4232,1],[4245,2],[4248,1],[4266,1],[4309,1],[4363,1],[4386,1],[4403,1],[4483,1],[4503,1],[4511,2],[4611,1],[4797,1],[4813,2],[4878,1],[4894,1],[5023,2],[5093,2],[5181,1],[5227,1],[5237,1],[5253,1],[5383,1],[5403,2],[5406,1],[5408,2],[5430,2],[5439,1],[5452,2],[5464,1],[5470,2],[5505,1],[5532,1],[5537,1],[5553,1],[5580,1],[5585,1],[5593,2],[5625,1],[5627,1],[5629,1],[5636,1],[5640,1],[5658,1],[5662,1],[5679,1],[5701,1],[5705,1],[5718,2],[5739,1],[5761,1],[5765,1],[5782,1],[5803,1],[5820,2],[5829,1],[5836,1],[5840,1],[5857,1],[5878,1],[5899,1],[5916,2],[5926,1],[5933,1],[5937,1],[5955,1],[5959,1],[5977,1],[5981,1],[5998,1],[6015,2],[6023,2],[6026,2],[6090,1],[6092,1],[6119,1],[6128,2],[6131,2],[6182,1],[6202,1],[6207,2],[6315,1],[6322,1],[6346,1],[6362,1],[6387,1],[6469,1],[6484,1],[6497,3],[6512,1],[6520,1],[6524,1],[6528,1],[6546,1],[6562,1],[6582,1],[6584,1],[6600,1],[6602,1],[6610,1],[6632,1],[6648,2],[6667,1],[6688,1],[6692,1],[6704,2],[6724,1],[6728,1],[6745,1],[6749,1],[6761,2],[6782,1],[6786,1],[6804,1],[6820,2],[6833,2],[6836,2],[6966,1],[6983,2],[7014,1],[7021,1],[7037,1],[7061,1],[7077,1],[7081,1],[7088,1],[7117,1],[7129,1],[7140,1],[7160,1],[7172,1],[7183,1],[7269,2],[7272,2],[7275,2],[7384,2],[7410,1],[7423,2],[7426,1],[7444,1],[7487,1],[7547,1],[7747,1],[7890,1],[7977,1],[7997,2],[8000,1],[8002,2],[8024,2],[8033,1],[8044,2],[8056,1],[8082,1],[8091,2],[8094,2],[8110,1],[8112,1],[8328,2],[8331,2],[8383,2],[8386,1],[8388,2],[8448,2],[8451,1],[8464,3],[8468,3],[8472,3],[8476,1],[8739,2],[8793,1],[8795,2],[8849,3],[8856,2],[8862,3],[8870,2],[8877,3],[8884,2],[8890,3],[8899,1],[8915,1],[8935,1],[8948,1],[8972,1],[8986,2],[9024,3],[9031,1],[9047,1],[9058,1],[9071,1],[9095,1],[9108,1],[9132,1],[9145,1],[9169,1],[9182,1],[9197,2],[9246,1],[9250,2],[9256,1],[9260,2],[9266,1],[9270,2],[9276,1],[9281,1],[9297,1],[9299,2],[9375,1],[9380,1],[9385,1],[9406,1],[9411,1],[9416,1],[9436,1],[9443,2],[9446,1]]},"55":{"position":[[7,1],[43,1],[108,3],[149,2],[317,2],[417,2],[560,2],[563,1],[565,2],[621,1],[629,2],[701,1],[768,1],[787,1],[804,1],[824,1],[849,1],[878,1],[955,2],[958,2],[961,1],[973,1],[987,2],[1057,1],[1092,1],[1104,1],[1120,3],[1124,3]]},"57":{"position":[[7,1],[43,1],[108,3],[171,1],[173,2],[215,1],[217,1],[228,2],[260,1],[262,1],[332,2],[335,2],[338,2],[341,1],[372,1],[374,1],[440,2],[443,2],[446,3],[450,2],[504,3],[508,2],[640,1],[674,1],[676,2],[723,2],[818,1],[865,2],[934,1],[1014,1],[1033,1],[1047,1],[1067,1],[1117,1],[1143,1],[1186,2],[1189,2],[1192,1],[1230,3],[1234,1],[1268,1],[1270,2],[1308,2],[1400,2],[1495,1],[1542,2],[1611,1],[1689,1],[1708,1],[1722,1],[1742,1],[1792,1],[1818,1],[1861,2],[1864,2],[1867,1],[1887,2],[1966,3],[1970,1]]},"59":{"position":[[7,1],[43,1],[108,3],[149,2],[317,2],[406,1],[452,2],[455,2],[506,2],[589,2],[592,1],[594,2],[664,1],[737,1],[756,1],[773,1],[793,1],[836,1],[901,1],[920,1],[934,1],[954,1],[984,3]]},"61":{"position":[[7,1],[43,1],[108,3],[149,2],[219,1],[278,2],[367,2],[370,1],[372,2],[440,1],[477,2],[536,2],[591,1],[610,1],[623,1],[643,1],[675,3]]},"63":{"position":[[7,1],[43,1],[85,3],[126,2],[177,1],[257,1],[295,1],[348,2],[417,1],[419,3],[440,1],[457,1],[464,1],[483,1],[485,2],[581,1],[666,2],[720,1],[736,1],[744,2],[811,1],[838,1],[866,1],[893,1],[915,2],[1028,1],[1052,2],[1126,1],[1142,1],[1152,1],[1157,2],[1249,1],[1272,2],[1335,1],[1339,1],[1355,1],[1360,2],[1493,1],[1495,2],[1565,1],[1589,1],[1668,1],[1688,1],[1711,1],[1731,1],[1736,2],[1757,2],[1760,1],[1762,2],[1827,1],[1834,1],[1859,1],[1872,1],[1903,2],[1924,1],[1939,2],[1967,1],[1988,2],[2016,1],[2044,1],[2072,1],[2077,2],[2133,1],[2149,1],[2158,2],[2179,1],[2197,1],[2212,1],[2232,1],[2242,1],[2262,1],[2275,1],[2291,1],[2300,2],[2322,1],[2340,1],[2355,1],[2376,1],[2386,1],[2407,1],[2409,1],[2411,3]]},"65":{"position":[[7,1],[43,1],[85,3],[138,2],[251,2],[290,1],[292,3],[314,1],[316,1],[379,2],[392,1],[397,2],[447,1],[488,1],[512,1],[519,2],[569,1],[643,1],[645,2],[712,1],[719,1],[731,1],[749,1],[765,1],[771,2],[825,1],[867,1],[883,1],[903,1],[919,1],[940,1],[956,1],[984,1],[1006,1],[1065,1],[1080,1],[1082,2],[1111,1],[1179,1],[1210,1],[1243,1],[1263,2],[1266,1],[1268,2],[1319,1],[1326,1],[1338,1],[1352,1],[1380,2],[1388,1],[1396,2],[1428,1],[1470,1],[1513,2],[1522,3]]},"67":{"position":[[7,1],[43,1],[108,3],[165,1],[220,2],[258,1],[318,2],[361,1],[368,1],[379,1],[393,1],[452,1],[457,1],[462,1],[476,1],[491,1],[496,1],[529,1],[531,2],[575,1],[594,1],[611,1],[631,1],[636,2],[708,1],[726,1],[749,1],[768,1],[773,2],[825,2],[828,1],[830,2],[855,2],[926,1],[933,1],[942,3]]},"69":{"position":[[7,1],[43,1],[85,3],[140,1],[176,1],[247,3],[280,2],[338,1],[340,3],[363,1],[403,1],[411,1],[429,1],[436,1],[457,1],[459,2],[493,1],[558,2],[644,2],[701,1],[717,1],[725,2],[752,1],[768,1],[795,1],[811,1],[842,1],[858,1],[870,2],[925,1],[941,1],[951,1],[956,2],[1050,1],[1073,2],[1153,1],[1158,1],[1174,1],[1179,1],[1198,1],[1214,1],[1221,2],[1354,1],[1356,2],[1432,1],[1456,1],[1535,1],[1555,1],[1578,1],[1598,1],[1603,2],[1615,1],[1638,2],[1641,1],[1643,2],[1711,1],[1718,1],[1741,1],[1754,1],[1781,1],[1788,1],[1804,1],[1819,1],[1842,2],[1863,1],[1878,2],[1906,1],[1920,1],[1944,2],[1972,1],[1986,1],[2017,1],[2035,1],[2046,2],[2077,1],[2093,1],[2102,2],[2123,1],[2141,1],[2156,1],[2176,1],[2186,1],[2206,1],[2219,1],[2235,1],[2244,2],[2266,1],[2284,1],[2299,1],[2320,1],[2330,1],[2351,1],[2353,1],[2355,2],[2384,2],[2392,3]]},"71":{"position":[[7,1],[43,1],[85,3],[126,2],[169,1],[171,3],[192,1],[209,1],[216,1],[235,1],[237,2],[333,1],[394,2],[481,2],[576,1],[592,1],[600,2],[665,1],[681,1],[708,1],[724,1],[755,1],[771,1],[783,2],[842,1],[844,2],[979,1],[995,1],[1005,1],[1010,2],[1102,1],[1125,2],[1188,1],[1192,1],[1208,1],[1213,2],[1346,1],[1348,2],[1418,1],[1442,1],[1520,1],[1540,1],[1563,1],[1583,1],[1607,2],[1610,1],[1612,2],[1678,1],[1685,1],[1707,1],[1720,1],[1748,2],[1769,1],[1784,2],[1812,1],[1833,2],[1861,1],[1889,1],[1917,1],[1922,2],[1978,1],[1994,1],[2003,2],[2024,1],[2042,1],[2057,1],[2077,1],[2087,1],[2107,1],[2120,1],[2136,1],[2145,2],[2167,1],[2185,1],[2200,1],[2221,1],[2231,1],[2252,1],[2254,1],[2256,3]]},"73":{"position":[[7,1],[43,1],[105,3],[146,2],[201,1],[260,2],[319,2],[374,1],[393,1],[406,1],[426,1],[476,2],[479,1],[481,2],[545,2],[553,3]]},"75":{"position":[[7,1],[43,1],[108,3],[149,2],[229,1],[270,1],[329,2],[390,1],[409,1],[423,1],[443,1],[448,2],[492,1],[504,2],[539,1],[552,2],[655,2],[687,1],[703,2],[735,2],[749,2],[779,2],[840,1],[857,2],[881,2],[890,1]]},"77":{"position":[[7,1],[43,1],[108,3],[149,2],[190,1],[261,1],[326,2],[395,1],[449,1],[462,2],[505,1],[585,1],[623,1],[644,2],[706,2],[769,1],[854,1],[944,1],[1024,1],[1026,3],[1052,1],[1054,1],[1104,2],[1118,1],[1125,1],[1135,1],[1150,1],[1198,1],[1242,1],[1262,1],[1277,1],[1297,1],[1301,1],[1307,2],[1358,1],[1540,2],[1591,2],[1636,1],[1638,2],[1713,1],[1723,1],[1808,1],[1843,1],[1857,1],[1878,1],[1910,1],[1915,1],[1939,1],[1953,1],[1979,1],[1994,1],[2015,1],[2022,1],[2037,1],[2054,1],[2056,1],[2082,1],[2096,1],[2121,1],[2131,1],[2146,1],[2167,1],[2192,1],[2206,1],[2232,1],[2242,1],[2257,1],[2274,1]]},"79":{"position":[[7,1],[43,1],[108,3],[149,2],[202,1],[262,2],[321,1],[360,1],[367,1],[378,1],[418,1],[464,1],[486,2],[489,1],[518,1],[520,2],[568,1],[596,2],[709,1],[721,2],[833,1],[846,2],[904,2],[972,2],[998,1],[1012,2],[1079,2],[1133,1],[1146,1],[1151,2],[1201,1],[1218,1],[1246,1],[1276,1],[1400,1],[1418,1],[1488,1],[1490,1],[1515,1],[1517,2],[1550,2],[1598,2],[1656,2],[1669,1],[1694,1],[1712,1],[1761,1],[1784,1],[1802,1],[1863,1],[1879,1],[1887,1],[1889,1]]},"81":{"position":[[7,1],[43,1],[76,1],[100,3],[158,1],[223,2],[267,1],[352,1],[387,1],[545,2],[588,1],[655,2],[729,2],[765,1],[871,3],[894,1],[929,1],[1087,2],[1131,1],[1217,1],[1252,1],[1281,1],[1402,1],[1562,2],[1590,2],[1666,2],[1721,1],[1806,1],[1927,1],[1942,2],[2004,1],[2110,3],[2133,1],[2168,1],[2338,1],[2377,3],[2393,1],[2437,1],[2453,1],[2467,1],[2483,1],[2502,1],[2546,1],[2562,1],[2576,1],[2592,1],[2611,1],[2651,1],[2667,1],[2681,1],[2697,1],[2716,1],[2738,1],[2767,1],[2797,1],[2813,1],[2820,2],[2961,2],[2983,1],[2995,1],[3007,1],[3034,1],[3046,1],[3058,1],[3084,1],[3096,1],[3108,1]]},"83":{"position":[[7,1],[43,1],[108,3],[223,2],[226,1],[240,1],[289,1],[304,1],[338,2],[392,1],[439,2],[478,1],[501,2],[504,1],[506,2],[578,1],[585,1],[612,1],[629,2],[648,1],[654,1],[659,1],[666,1],[694,3],[698,3]]},"85":{"position":[[7,1],[43,1],[85,3],[126,2],[169,1],[249,1],[287,1],[308,2],[370,2],[433,1],[518,1],[608,1],[688,1],[690,3],[716,1],[718,1],[768,2],[782,1],[789,1],[799,1],[814,1],[881,1],[901,1],[916,1],[936,1],[940,1],[946,2],[997,1],[1023,1],[1043,2],[1052,1],[1087,2],[1133,2],[1314,2],[1339,2],[1373,2],[1403,2],[1440,2],[1474,2],[1506,2],[1531,2],[1566,2],[1597,2],[1635,2],[1686,2],[1731,1],[1733,2],[1808,1],[1818,1],[1903,1],[1938,1],[1952,1],[1973,1],[2005,1],[2010,1],[2034,1],[2048,1],[2074,1],[2089,1],[2110,1],[2117,1],[2132,1],[2149,1],[2151,1],[2177,1],[2191,1],[2216,1],[2226,1],[2241,1],[2262,1],[2287,1],[2301,1],[2327,1],[2337,1],[2352,1],[2369,1]]},"87":{"position":[[7,1],[33,2],[119,1],[184,3],[237,1],[409,1],[425,2],[428,3],[440,1],[456,1],[458,3],[476,1],[515,1],[531,4],[546,1],[562,1],[582,1],[593,2],[633,1],[741,1],[767,1],[774,2],[829,1],[947,1],[962,2],[1018,1],[1048,1],[1081,1],[1112,1],[1144,1],[1157,1],[1184,1],[1225,1],[1249,2],[1383,3],[1395,2],[1403,3],[1422,2],[1430,3],[1450,1],[1504,2],[1507,4],[1512,1],[1514,2],[1568,1],[1574,1],[1595,1],[1601,1],[1617,1],[1619,1],[1621,2],[1652,1],[1671,1],[1722,2],[1725,1],[1924,3]]},"89":{"position":[[7,1],[33,2],[100,2],[136,1],[201,3],[242,2],[276,1],[390,2],[464,1],[487,1],[493,2],[538,1],[550,2],[640,1],[654,2],[722,2],[725,1],[763,3]]},"91":{"position":[[7,1],[65,2],[143,2],[222,2],[258,1],[323,3],[364,2],[436,2],[512,2],[591,2],[652,2],[655,2],[725,2],[789,1],[805,1],[816,2],[880,1],[904,2],[991,1],[1012,2],[1081,2],[1105,1],[1145,2],[1206,2],[1251,1],[1264,2],[1267,1],[1269,2],[1381,2],[1486,2],[1552,2],[1576,1],[1627,2],[1630,2],[1693,1],[1794,2],[1797,1],[1832,2],[1863,3],[1882,1],[1894,1],[1896,2],[1932,1],[1963,1],[1965,2],[2034,1],[2106,1],[2108,2],[2158,1],[2180,1],[2335,2],[2338,1],[2340,2],[2391,1],[2443,1],[2445,2],[2496,1],[2545,1],[2594,1],[2647,1],[2676,2],[3069,1],[3071,2],[3141,1],[3271,1],[3273,1],[3275,2],[3308,1],[3347,2],[3463,2],[3533,2],[3536,2],[3579,1],[3599,2],[3668,1],[3677,1],[3681,1],[3688,2],[3718,1],[3734,1],[3752,1],[3759,2],[3827,2],[3871,1],[3890,1],[3923,1],[3994,2],[4052,2],[4097,1],[4154,1],[4166,2],[4192,1],[4234,2],[4237,1],[4239,2],[4279,1],[4291,2],[4325,1],[4338,2],[4404,2],[4407,1],[4422,1],[4444,1],[4494,2],[4504,1],[4511,3],[4515,2],[4588,2],[4591,1],[4610,3],[4617,1],[4653,1],[4667,1],[4674,1],[4707,1],[4720,1],[4722,3],[4726,3],[4766,1],[4821,2],[4824,1],[4852,4],[4869,3],[4891,1],[4947,1],[4974,3],[4992,1],[5013,1],[5107,2],[5110,1],[5125,1],[5142,1],[5161,1],[5182,1],[5199,1],[5218,1],[5243,1],[5285,3],[5307,1],[5415,1],[5421,1],[5462,1],[5468,1],[5496,1],[5551,2],[5554,2]]},"93":{"position":[[7,1],[43,1],[108,3],[167,1],[205,1],[225,2],[285,1],[299,2],[336,1],[356,1],[441,1],[470,1],[484,1],[498,1],[506,2],[538,1],[612,1],[628,1],[642,1],[656,1],[678,1],[704,1],[873,2],[946,1],[1061,1],[1140,1],[1153,1],[1166,1],[1180,1],[1185,2],[1210,1],[1275,1],[1347,3],[1369,1],[1385,1],[1398,1],[1411,1],[1470,2],[1551,1],[1573,1],[1636,1],[1638,2],[1715,1],[1737,1],[1801,1],[1803,2],[1835,1],[1896,1],[1920,1],[1935,1],[1940,2],[2027,1],[2124,3],[2128,2],[2183,1],[2187,1],[2200,1],[2241,1],[2248,1],[2255,1]]},"95":{"position":[[7,1],[43,1],[85,3],[126,2],[170,1],[249,1],[287,1],[340,2],[468,2],[512,2],[565,1],[567,2],[641,1],[671,1],[693,3],[697,2],[700,3],[712,3],[716,2],[758,2],[790,2],[823,1],[829,2],[866,1],[878,2],[920,1],[922,2],[967,2],[970,1],[1002,2],[1010,1],[1019,3]]},"97":{"position":[[7,1],[33,3],[37,1],[98,2],[111,1],[153,3],[194,2],[238,1],[317,1],[355,1],[408,2],[507,2],[610,2],[643,2],[663,1],[665,1],[820,1],[837,1],[853,1],[868,1],[916,1],[924,1],[939,1],[966,1],[1000,1],[1007,1],[1009,2],[1064,1],[1111,1],[1134,1],[1141,1],[1143,1],[1145,2],[1164,1],[1209,1],[1334,1],[1370,1],[1397,3],[1419,1],[1449,1],[1483,1],[1531,2],[1534,1],[1582,3]]},"99":{"position":[[7,1],[33,3],[37,1],[158,1],[280,1],[301,3],[315,1],[380,3],[511,1],[530,1],[556,1],[587,3],[662,1],[694,1],[740,1],[745,2],[828,2],[897,1],[1056,2],[1157,2],[1229,1],[1240,1],[1268,1],[1291,1],[1347,1],[1413,1],[1468,1],[1479,1],[1506,1],[1641,3],[1652,1],[1695,1],[1709,1],[1719,1],[1790,1],[1828,1],[1872,2],[1885,1],[1905,1],[1941,1],[1999,1],[2046,1],[2073,1],[2080,1],[2088,1],[2132,1],[2152,1],[2169,1],[2176,1],[2188,1],[2197,1],[2201,1],[2210,1],[2224,1],[2349,1],[2358,1],[2368,1],[2374,1],[2380,1],[2400,1],[2426,1],[2438,1],[2461,1],[2489,1],[2496,1],[2505,1],[2514,1],[2516,1],[2531,1],[2548,1],[2550,2],[2585,1],[2587,2],[2697,1],[2749,1],[2758,2],[2785,1],[2819,1],[2847,3],[2872,1],[2913,1],[2925,2],[2978,2],[2981,1],[3004,1],[3027,2],[3036,1],[3042,3],[3046,1]]},"101":{"position":[[7,1],[43,1],[85,3],[135,1],[224,1],[254,1],[317,1],[414,1],[434,1],[460,1],[518,1],[614,1],[634,1],[660,1],[718,1],[769,1],[822,1],[859,1],[886,1],[909,2],[912,1],[920,2],[947,1],[984,1],[1020,1],[1025,1],[1058,1],[1063,1],[1080,3]]},"103":{"position":[[7,1],[43,1],[85,3],[146,1],[167,1],[255,1],[274,1],[284,1],[304,1],[322,1],[378,1],[414,1],[433,1],[450,1],[470,1],[489,1],[625,1],[758,1],[890,1],[1048,1],[1070,1],[1087,1],[1122,2],[1125,2],[1128,1],[1138,1],[1168,1],[1178,1],[1189,1],[1197,3],[1212,1],[1261,1],[1270,1],[1342,3],[1353,1],[1386,1],[1441,2],[1444,1],[1458,2],[1485,1],[1509,2],[1534,2],[1557,1],[1561,1],[1579,1],[1601,1],[1605,1],[1623,1],[1637,2],[1651,1],[1660,1],[1662,1],[1682,1],[1700,1],[1715,1],[1744,1],[1762,1],[1779,1],[1796,1],[1801,1],[1816,1],[1833,1],[1849,1],[1866,1],[1872,3]]},"105":{"position":[[7,1],[43,1],[85,3],[146,1],[174,1],[243,1],[263,1],[322,1],[332,1],[355,1],[365,1],[370,2],[387,1],[389,3],[404,1],[411,1],[422,1],[437,1],[566,1],[582,1],[592,1],[610,1],[632,1],[664,1],[680,1],[705,1],[721,1],[757,1],[773,1],[797,1],[879,1],[906,1],[1006,1],[1123,1],[1174,1],[1208,1],[1262,1],[1368,1],[1412,1],[1483,1],[1513,1],[1543,1],[1683,1],[1698,1],[1847,1],[1859,1],[1882,2],[1885,1],[1893,2],[1913,1],[1920,1],[1943,1],[1958,1],[1989,2],[2009,1],[2026,2],[2056,1],[2081,2],[2111,1],[2143,1],[2173,1],[2193,1],[2213,1],[2231,1],[2238,2],[2291,1],[2303,1],[2314,2],[2331,1],[2351,1],[2362,1],[2378,1],[2390,1],[2406,1],[2421,1],[2433,1],[2444,2],[2462,1],[2482,1],[2493,1],[2510,1],[2522,1],[2539,1],[2541,1],[2543,3]]},"107":{"position":[[7,1],[43,1],[85,3],[146,1],[174,1],[240,1],[344,1],[358,1],[390,1],[480,2],[565,1],[616,1],[702,1],[736,1],[806,1],[857,1],[890,1],[914,2],[917,1],[919,2],[994,2],[1089,2],[1199,1],[1227,1],[1250,1],[1255,1],[1257,3]]},"109":{"position":[[7,1],[43,1],[102,3],[156,1],[219,2],[222,2],[238,4],[243,2],[317,1],[500,1],[526,1],[575,1],[702,1],[726,1],[760,2],[763,2],[781,4],[802,1],[990,1],[1018,1],[1070,1],[1155,3],[1230,1],[1256,1],[1292,2],[1295,2],[1302,4],[1317,1],[1404,1],[1441,2],[1444,2],[1453,4],[1469,1],[1549,1],[1562,1],[1572,1],[1604,2],[1607,2],[1616,4],[1632,1],[1714,3],[1743,1],[1758,1],[1768,1],[1800,2],[1803,1],[1810,4],[1833,1],[2149,2],[2152,2],[2174,4],[2198,1],[2288,3]]},"111":{"position":[[7,1],[43,1],[102,3],[163,1],[193,1],[222,1],[245,2],[341,2],[555,2],[662,2],[934,2],[1028,2],[1275,2],[1318,1],[1376,1],[1382,1],[1395,1],[1401,1],[1416,1],[1421,2],[1480,1],[1515,2],[1518,2],[1521,1],[1556,1],[1576,1],[1622,1],[1643,1],[1689,1],[1710,1],[1731,1],[1752,1],[1773,1],[1794,1],[1801,2],[1804,3],[1826,2],[1829,1],[1837,2],[1944,1],[1962,1],[1973,1],[1991,1],[2015,1],[2033,1],[2044,1],[2062,1],[2086,1],[2104,1],[2114,1],[2132,1],[2157,1],[2175,1],[2185,1],[2203,1],[2228,1],[2246,1],[2257,1],[2275,1],[2316,1],[2324,1],[2331,3]]},"113":{"position":[[7,1],[43,1],[85,3],[126,2],[169,1],[176,2],[210,1],[295,2],[298,1],[317,1],[399,1],[437,1],[471,1],[533,1],[552,1],[599,1],[655,1],[690,1],[702,1],[715,1],[727,1],[747,1],[836,1],[907,1],[936,1],[966,1],[1016,2],[1019,1],[1038,1],[1069,1],[1091,1],[1123,1],[1128,3],[1132,3]]},"115":{"position":[[7,1],[75,1],[134,3],[190,1],[213,2],[313,2],[326,1],[465,2],[478,1],[618,2],[757,2],[790,2],[960,2],[970,1],[1109,2],[1119,1],[1259,2],[1270,1],[1414,2],[1644,2],[1813,2],[1948,2],[2085,2],[2222,2],[2249,1]]},"117":{"position":[[7,1],[43,1],[102,3],[163,1],[184,1],[272,1],[291,1],[301,1],[321,1],[366,1],[402,1],[421,1],[438,1],[458,1],[463,2],[503,1],[610,1],[715,1],[819,1],[984,2],[1027,1],[1085,1],[1104,1],[1117,1],[1137,1],[1177,1],[1196,1],[1228,2],[1231,2],[1234,1],[1257,1],[1274,1],[1283,1],[1290,1],[1307,1],[1315,1],[1317,3],[1332,1],[1381,1],[1390,1],[1462,3],[1473,1],[1506,1],[1556,2],[1559,1],[1573,2],[1600,1],[1624,2],[1649,2],[1672,1],[1676,1],[1694,1],[1716,1],[1720,1],[1738,1],[1752,2],[1825,1],[1843,1],[1854,1],[1872,1],[1896,1],[1914,1],[1925,1],[1943,1],[1967,1],[1985,1],[1995,1],[2013,1],[2038,1],[2056,1],[2066,1],[2084,1],[2106,1],[2114,1],[2121,3]]},"119":{"position":[[7,1],[43,1],[85,3],[146,1],[167,1],[265,1],[357,1],[449,1],[463,1],[481,1],[535,1],[581,1],[592,1],[619,1],[636,1],[663,1],[671,1],[691,2],[694,1],[703,2],[726,1],[740,2],[763,1],[802,1],[807,1],[818,1],[820,3]]},"121":{"position":[[7,1],[43,1],[85,3],[141,1],[196,2],[218,1],[231,2],[250,2],[280,2],[291,2],[342,2],[371,2],[385,2],[406,2],[417,2],[504,1],[697,1],[704,1],[724,1],[749,1],[769,1],[814,3],[904,1],[919,1],[947,2],[950,1],[952,2],[955,1],[1036,3],[1051,1],[1183,2],[1186,1],[1202,2],[1211,3]]},"123":{"position":[[7,1],[43,1],[85,3],[141,1],[186,1],[234,1],[265,1],[289,1],[310,1],[328,1],[386,1],[402,1],[499,1],[515,1],[537,2],[618,1],[634,1],[650,1],[671,2],[685,1],[692,1],[723,1],[746,1],[750,1],[766,1],[807,1],[812,1],[816,1],[849,1],[854,1],[898,1],[903,1],[947,1],[952,1],[969,1],[984,1],[1190,1],[1197,1],[1218,1],[1243,1],[1263,1],[1276,1],[1306,3],[1367,1],[1382,1],[1401,1],[1403,3],[1423,1],[1546,2],[1549,1],[1570,2],[1579,3]]},"125":{"position":[[7,1],[43,1],[85,3],[141,1],[196,2],[218,1],[231,2],[250,2],[280,2],[291,2],[342,2],[371,2],[385,2],[406,2],[417,2],[493,1],[548,2],[570,1],[576,1],[589,2],[601,1],[614,2],[626,1],[639,2],[650,2],[701,2],[730,2],[744,2],[759,2],[770,2],[837,1],[896,1],[1089,1],[1096,1],[1116,1],[1141,1],[1161,1],[1206,3],[1296,1],[1311,1],[1339,2],[1342,1],[1344,2],[1347,1],[1428,3],[1443,1],[1576,2],[1579,1],[1595,2],[1604,3]]},"127":{"position":[[7,1],[43,1],[98,3],[139,2],[173,1],[228,2],[257,2],[273,2],[300,2],[311,2],[362,2],[391,2],[405,2],[426,2],[437,2],[497,2],[563,1],[565,1],[739,1],[746,1],[766,1],[791,1],[811,1],[856,3],[860,2],[934,1],[995,2],[1050,1],[1052,1],[1130,1],[1219,1],[1252,1],[1282,1],[1322,1],[1364,1],[1376,1],[1389,1],[1395,1],[1404,1],[1427,1],[1439,3],[1462,1],[1464,1],[1476,2],[1496,1],[1558,2],[1602,2],[1705,1],[1759,3],[1778,1],[1837,1],[1895,2],[1976,1],[1978,1],[2104,1],[2140,1],[2196,1],[2234,1],[2268,2],[2296,1],[2322,1],[2331,3],[2356,1],[2358,1],[2403,2],[2425,1],[2511,1],[2565,3],[2586,1],[2649,1],[2711,2],[2780,1],[2782,1],[2886,1],[2900,1],[2934,1],[2969,1],[2984,3],[3008,1],[3010,1],[3046,2],[3067,1],[3150,1],[3204,3],[3224,1],[3285,1],[3345,2],[3383,1],[3385,1],[3488,1],[3551,1],[3589,1],[3666,2],[3744,2],[3823,2],[3904,2],[3979,1],[4001,3],[4024,1],[4026,1],[4054,2],[4074,1],[4154,1],[4208,3],[4227,1],[4286,1],[4344,2],[4395,1],[4397,1],[4539,1],[4575,1],[4616,1],[4655,1],[4696,1],[4725,3],[4751,1],[4753,1],[4827,2],[4850,1],[4936,1],[5164,2],[5409,2],[5443,1],[5471,2],[5474,1],[5481,2],[5486,1],[5492,2],[5525,1],[5581,1],[5620,1],[5660,1],[5676,1],[5683,1],[5690,1],[5697,2],[5765,1],[5794,3],[5830,1],[5861,3],[5896,1],[5926,3],[5960,1],[5989,3],[5993,3]]},"129":{"position":[[7,1],[43,1],[85,3],[126,2],[160,1],[215,2],[237,1],[250,2],[269,2],[299,2],[310,2],[361,2],[390,2],[404,2],[425,2],[436,2],[512,1],[514,1],[688,1],[695,1],[715,1],[740,1],[760,1],[805,3],[827,1],[829,1],[975,2],[1076,2],[1148,1],[1159,1],[1187,1],[1210,1],[1280,1],[1335,1],[1346,1],[1373,1],[1508,3],[1519,1],[1562,1],[1576,1],[1586,1],[1638,1],[1676,1],[1720,2],[1733,1],[1753,1],[1789,1],[1847,1],[1894,1],[1921,1],[1928,1],[1936,1],[1980,1],[2000,1],[2017,1],[2024,1],[2036,1],[2045,1],[2049,1],[2058,1],[2072,1],[2197,1],[2206,1],[2216,1],[2222,1],[2228,1],[2248,1],[2274,1],[2286,1],[2309,1],[2337,1],[2344,1],[2353,1],[2362,1],[2364,1],[2379,1],[2396,3],[2415,1],[2417,1],[2494,2],[2497,2],[2585,1],[2645,1],[2654,2],[2701,1],[2766,1],[2875,2],[2909,1],[2937,2],[2940,1],[2947,2],[2952,1],[2984,1],[3030,1],[3056,1],[3064,1],[3070,3]]},"131":{"position":[[7,1],[43,1],[85,3],[141,1],[196,2],[218,1],[231,2],[250,2],[269,2],[299,2],[328,2],[342,2],[358,2],[379,1],[572,1],[579,1],[599,1],[624,1],[644,1],[689,3],[779,1],[794,1],[824,1],[826,2],[829,1],[910,3],[928,1],[1121,1],[1128,1],[1148,1],[1173,1],[1193,1],[1238,3],[1328,1],[1343,1],[1388,2],[1415,1],[1424,1],[1431,1],[1452,2],[1479,1],[1488,1],[1495,1],[1501,1],[1503,2],[1506,1],[1587,3],[1606,1],[1657,1],[1871,2],[1874,1],[1894,2],[1923,1],[1932,3]]},"133":{"position":[[7,1],[43,1],[85,3],[141,1],[196,2],[218,1],[231,2],[250,2],[269,2],[280,2],[331,2],[360,2],[374,2],[389,2],[401,2],[444,1],[638,1],[645,1],[665,1],[690,1],[710,1],[755,3],[851,1],[866,1],[902,1],[904,3],[923,1],[974,1],[1061,4],[1082,1],[1133,1],[1214,4],[1235,1],[1286,1],[1373,4],[1601,2],[1604,1],[1624,2],[1653,1],[1681,1],[1690,3]]},"135":{"position":[[7,1],[43,1],[85,3],[136,1],[141,2],[175,1],[194,1],[196,3],[211,1],[218,1],[229,1],[260,1],[279,1],[293,1],[390,1],[405,1],[447,1],[474,1],[489,1],[523,2],[560,2],[563,1],[571,2],[579,2],[608,1],[615,1],[637,1],[651,1],[665,1],[672,1],[681,1],[699,1],[703,1],[716,1],[730,1],[737,1],[746,1],[752,1],[770,3],[798,1],[884,1],[891,1],[913,1],[951,1],[964,1],[971,1],[993,1],[1075,1],[1077,1]]},"137":{"position":[[7,1],[43,1],[85,3],[136,1],[141,2],[175,1],[181,1],[200,1],[202,3],[217,1],[224,1],[235,1],[266,1],[285,1],[299,1],[396,1],[425,1],[466,1],[490,1],[526,1],[621,2],[624,1],[632,2],[640,2],[669,1],[676,1],[698,1],[712,1],[726,1],[733,1],[742,1],[760,1],[764,1],[777,1],[791,1],[798,1],[807,1],[813,1],[815,3]]},"139":{"position":[[7,1],[43,1],[85,3],[141,1],[196,1],[241,1],[394,1],[408,1],[433,1],[453,1],[498,3],[540,1],[555,1],[583,1],[585,3],[604,1],[725,2],[728,1],[748,2],[757,3]]},"141":{"position":[[7,1],[43,1],[85,3],[141,1],[196,2],[218,1],[230,2],[248,2],[269,2],[280,2],[333,2],[365,2],[385,2],[406,2],[421,2],[463,1],[660,1],[669,1],[691,1],[716,1],[736,1],[781,3],[844,1],[859,1],[880,1],[882,3],[901,1],[1045,2],[1048,1],[1068,2],[1077,3]]},"143":{"position":[[7,1],[43,1],[85,3],[141,1],[196,2],[218,1],[231,2],[250,2],[269,2],[280,2],[333,2],[365,2],[385,2],[406,2],[420,2],[471,2],[500,2],[514,2],[529,2],[541,2],[586,1],[588,1],[806,1],[813,1],[828,1],[850,1],[875,1],[895,1],[940,3],[962,1],[964,1],[1072,1],[1087,1],[1116,1],[1137,3],[1156,1],[1158,1],[1238,2],[1254,1],[1323,1],[1467,2],[1470,1],[1490,2],[1499,3]]},"145":{"position":[[7,1],[43,1],[85,3],[141,1],[196,2],[218,1],[231,2],[250,2],[280,2],[291,2],[342,2],[371,2],[385,2],[406,2],[417,2],[493,1],[495,1],[669,1],[676,1],[696,1],[721,1],[741,1],[786,3],[808,1],[810,1],[917,1],[932,1],[960,1],[973,1],[984,1],[991,1],[993,1],[999,2],[1002,3],[1021,1],[1023,1],[1113,2],[1129,1],[1194,1],[1303,2],[1328,2],[1386,2],[1389,1],[1405,2],[1440,2],[1448,3]]},"147":{"position":[[7,1],[33,2],[122,1],[169,1],[218,1],[288,3],[343,1],[398,2],[436,1],[496,2],[539,1],[546,1],[557,1],[571,1],[630,1],[635,1],[640,1],[654,1],[669,1],[674,1],[707,1],[709,2],[753,1],[772,1],[789,1],[809,1],[814,2],[886,1],[904,1],[927,1],[946,1],[951,2],[1003,2],[1006,1],[1008,2],[1033,2],[1104,1],[1111,1],[1120,3]]},"149":{"position":[[7,1],[43,1],[103,3],[237,2],[240,1],[242,2],[298,1],[300,3],[318,1],[325,1],[336,1],[353,1],[392,1],[434,1],[510,3],[514,1],[530,1],[535,2],[578,1],[682,1],[696,1],[730,1],[742,1],[762,1],[806,2],[849,1],[940,1],[960,1],[974,1],[986,1],[1006,1],[1050,2],[1082,3]]},"151":{"position":[[7,1],[43,1],[103,3],[218,2],[221,1],[223,2],[288,1],[290,3],[308,1],[315,1],[326,1],[342,1],[388,1],[433,1],[442,1],[449,1],[460,1],[462,2],[516,1],[574,1],[590,1],[622,1],[638,1],[705,1],[721,1],[757,1],[773,1],[817,1],[822,1],[859,1],[861,2],[893,3]]},"153":{"position":[[7,1],[43,1],[108,3],[228,2],[231,1],[233,2],[296,1],[298,3],[313,1],[320,1],[331,1],[343,1],[347,1],[352,1],[362,1],[367,2],[500,1],[502,2],[582,2],[596,1],[631,2],[634,1],[699,1],[758,2],[768,1],[787,1],[799,1],[819,1],[866,1],[912,2],[954,2],[957,1],[973,2],[982,3],[986,3]]},"155":{"position":[[7,1],[43,1],[108,3],[149,2],[203,1],[262,2],[321,2],[376,1],[395,1],[408,1],[428,1],[460,2],[512,2],[515,1],[517,2],[566,2],[611,2],[670,2],[677,1],[686,3]]},"157":{"position":[[7,1],[43,1],[108,3],[162,1],[184,1],[268,1],[330,2],[387,1],[415,2],[477,2],[536,1],[555,1],[572,1],[592,1],[628,2],[679,1],[708,1],[748,2],[751,2],[754,1],[765,1],[778,2],[828,1],[839,1],[849,1],[866,3],[888,2],[891,1],[912,2],[921,3]]},"159":{"position":[[7,1],[43,1],[85,3],[126,2],[179,1],[237,2],[263,3],[267,1],[310,1],[372,2],[394,1],[465,2],[512,1],[535,2],[538,1],[546,2],[581,1],[585,1],[629,1],[633,1],[680,2],[714,2],[720,3]]},"161":{"position":[[7,1],[43,1],[108,3],[227,2],[230,1],[253,1],[317,1],[369,2],[372,2],[392,1],[415,1],[458,3]]},"163":{"position":[[7,1],[43,1],[105,3],[146,2],[219,1],[380,2],[412,1],[448,1],[462,1],[500,1],[505,2],[560,1],[586,1],[599,2],[647,2],[706,2],[764,2],[821,2],[883,2],[945,2],[1006,2],[1096,1],[1098,2],[1149,2],[1201,1],[1261,2],[1347,1],[1375,2],[1418,1],[1457,1],[1511,1]]},"165":{"position":[[7,1],[43,1],[108,3],[149,2],[208,1],[499,3],[543,2],[546,1],[560,1],[652,4],[669,1],[755,4],[772,1],[877,4],[894,1],[990,4],[1003,1],[1018,1],[1033,1],[1148,3]]},"167":{"position":[[7,1],[43,1],[108,3],[165,1],[216,1],[234,1],[284,1],[413,2],[554,1],[637,3],[656,1],[752,1],[769,1],[822,1],[1115,3],[1134,1],[1251,1],[1269,1]]},"169":{"position":[[7,1],[43,1],[108,3],[149,2],[215,1],[217,1],[227,1],[252,2],[264,1],[274,2],[277,2],[280,2],[298,2],[301,2],[351,1],[362,1],[405,1],[437,3],[450,1],[460,1],[534,1],[564,1],[582,1],[662,5],[668,2],[686,2],[705,1],[707,2],[776,1],[844,1],[913,1],[915,2],[984,1]]},"171":{"position":[[7,1],[33,2],[73,2],[181,1],[240,3],[310,1],[312,2],[399,1],[419,1],[468,1],[493,1],[508,1],[535,2],[584,1],[784,1],[857,1],[877,1],[913,1],[992,1],[1002,1],[1020,1],[1041,1]]},"173":{"position":[[7,1],[33,2],[67,1],[91,1],[110,2],[153,2],[306,1],[322,1],[324,2],[376,2],[429,1],[472,1],[480,1],[488,1],[490,1],[498,2],[541,1],[550,1],[552,1],[560,2],[576,2],[659,1],[708,1],[731,1],[751,1],[788,1],[986,1],[1028,2],[1083,2],[1144,1],[1170,1],[1180,2],[1229,2],[1296,1],[1301,1],[1303,1],[1513,1],[1515,1],[1527,1],[1586,3],[1649,1],[1697,2],[1765,2],[1833,2],[1925,1],[1975,1],[2054,1],[2064,1]]},"175":{"position":[[7,1],[43,1],[85,3],[142,1],[144,1],[198,2],[201,2],[318,1],[377,1],[438,1],[455,2],[543,1],[578,2],[613,1],[635,1],[672,2],[743,1],[784,1],[808,1],[851,2],[898,1],[900,1],[1270,2],[1273,2],[1313,1],[1315,3],[1319,2],[1405,1],[1412,1],[1423,1],[1436,1],[1464,1],[1490,1],[1506,1],[1526,1],[1542,1],[1626,1],[1628,2],[1660,1],[1683,2],[1686,1],[1699,1],[1706,1],[1727,1],[1729,2],[1760,1],[1786,2],[1794,1],[1802,2],[1811,2],[1831,3],[1846,1],[1877,1],[1910,1],[1918,2],[1962,1],[1979,2],[2022,1],[2055,1],[2073,1],[2081,2],[2116,2],[2211,1],[2258,3],[2262,3]]},"177":{"position":[[7,1],[43,1],[108,3],[165,1],[234,1],[305,1],[312,1],[323,1],[337,1],[373,1],[378,1],[383,1],[397,1],[412,1],[417,1],[438,1],[454,1],[465,1],[498,1],[510,1],[587,1],[631,1],[663,1],[679,1],[713,2],[716,1],[786,1],[884,1],[910,1],[1003,2],[1018,1],[1037,1],[1061,2],[1064,1],[1102,3]]},"179":{"position":[[7,1],[43,1],[85,3],[201,2],[204,1],[206,2],[248,1],[270,1],[302,1],[314,1],[330,1],[340,1],[364,1],[386,1],[418,1],[442,1],[465,1],[494,1],[502,1],[504,1],[526,1],[599,1],[638,1],[642,3],[649,1],[666,1],[734,1],[741,1],[743,2],[770,2],[872,1],[969,1],[1002,1],[1018,1],[1037,1],[1042,1],[1061,1],[1081,1],[1085,1],[1102,1],[1121,1],[1125,1],[1142,1],[1162,1],[1166,1],[1171,2],[1214,1],[1221,1],[1232,1],[1234,2],[1290,1],[1319,1],[1323,1],[1327,1],[1331,1],[1341,1],[1345,1],[1365,1],[1385,1],[1392,2],[1418,1],[1428,1],[1436,1],[1441,1],[1454,1],[1464,1],[1472,1],[1477,1],[1481,1],[1524,1],[1548,1],[1575,1],[1652,3],[1663,1],[1680,1],[1721,1],[1723,3]]}}}],["0",{"_index":136,"t":{"39":{"position":[[2369,3],[2536,2],[2542,1],[3219,1],[3348,1],[3882,1],[3940,2]]},"41":{"position":[[509,2],[610,2],[664,4],[999,2],[1005,1],[1364,2],[1754,2],[1761,2]]},"43":{"position":[[246,2]]},"45":{"position":[[644,2]]},"47":{"position":[[876,2],[1030,2],[1051,2],[1112,2],[1133,2],[1196,2],[1914,2],[3228,2],[3682,2],[4007,2],[4165,1],[5062,2],[5390,2]]},"49":{"position":[[271,2],[327,2],[346,2],[450,2],[532,2],[538,2],[544,2],[1130,1],[1134,1],[1388,2]]},"53":{"position":[[878,2],[1398,2],[1414,2],[1499,2],[1598,2],[1619,1],[1623,1],[1818,2],[1980,3],[2468,2],[2791,2],[3623,2],[3726,1],[3985,3],[4022,2],[4075,3],[4736,2],[4980,2],[5385,2],[6094,3],[6107,3],[6111,3],[6124,3],[6204,2],[6317,2],[6402,2],[6501,2],[6522,1],[6526,1],[6941,3],[7016,2],[7249,3],[7655,2],[7663,2],[7836,2],[7979,2],[8839,1],[9028,2],[9248,1],[9268,1]]},"63":{"position":[[459,2],[1318,1],[1829,2]]},"65":{"position":[[394,2],[714,2],[1321,2]]},"67":{"position":[[363,2]]},"69":{"position":[[431,2],[1106,1],[1617,2],[1713,2]]},"71":{"position":[[211,2],[910,1],[948,1],[1680,2]]},"73":{"position":[[85,2]]},"77":{"position":[[1120,2]]},"79":{"position":[[362,2]]},"81":{"position":[[790,2],[856,2],[2029,2],[2095,2]]},"83":{"position":[[480,2],[580,2]]},"85":{"position":[[784,2]]},"87":{"position":[[701,2]]},"89":{"position":[[408,2]]},"91":{"position":[[3439,2],[3513,2],[3529,3],[3662,2],[3720,2],[4857,5],[4922,3],[4938,3],[4942,4],[5144,3],[5163,5],[5201,3],[5220,5],[5329,3],[5333,2]]},"93":{"position":[[412,2],[596,2],[1439,3]]},"99":{"position":[[742,2],[1487,3],[1665,3],[1869,2],[2154,3],[2171,2],[2396,3]]},"101":{"position":[[888,2]]},"103":{"position":[[1072,2]]},"105":{"position":[[406,2],[1861,2],[1915,2]]},"107":{"position":[[1103,1],[1252,2]]},"109":{"position":[[395,3],[882,3]]},"111":{"position":[[797,2],[1418,2]]},"113":{"position":[[679,2]]},"117":{"position":[[1198,2]]},"121":{"position":[[364,3],[368,2],[382,2],[399,2],[466,2]]},"123":{"position":[[193,2],[201,2],[204,2],[529,2],[687,2],[809,2]]},"125":{"position":[[364,3],[368,2],[382,2],[399,2],[466,2],[723,3],[727,2],[741,2]]},"127":{"position":[[250,3],[254,2],[270,2],[291,2],[384,3],[388,2],[402,2],[419,2],[486,2],[2380,2],[4051,2],[5445,2]]},"129":{"position":[[383,3],[387,2],[401,2],[418,2],[485,2],[1354,3],[1532,3],[1717,2],[2002,3],[2019,2],[2244,3],[2491,2],[2911,2]]},"131":{"position":[[321,3],[325,2],[339,2]]},"133":{"position":[[353,3],[357,2],[371,2]]},"135":{"position":[[138,2],[213,2],[274,4],[610,2]]},"137":{"position":[[138,2],[219,2],[280,4],[671,2]]},"139":{"position":[[218,2]]},"141":{"position":[[359,2],[362,2],[376,2],[382,2],[396,2],[399,2]]},"143":{"position":[[359,2],[362,2],[376,2],[382,2],[396,2],[399,2],[493,3],[497,2],[511,2]]},"145":{"position":[[364,3],[368,2],[382,2],[399,2],[466,2],[1110,2]]},"147":{"position":[[541,2]]},"149":{"position":[[320,2]]},"151":{"position":[[310,2],[444,2],[824,3]]},"153":{"position":[[315,2]]},"159":{"position":[[514,2]]},"163":{"position":[[85,2],[282,2]]},"171":{"position":[[614,2],[626,3],[807,2]]},"173":{"position":[[818,2],[828,3],[1009,2],[1430,2]]},"175":{"position":[[1407,2],[1662,2],[1701,2]]},"177":{"position":[[307,2]]},"179":{"position":[[646,2],[1044,2],[1087,2],[1127,2],[1168,2],[1216,2],[1483,3]]}}}],["0${i",{"_index":2518,"t":{"153":{"position":[[354,7]]}}}],["0)\\nscreen",{"_index":1627,"t":{"91":{"position":[[4926,11]]}}}],["0,0",{"_index":2266,"t":{"127":{"position":[[1188,3],[3520,3]]},"173":{"position":[[350,5]]}}}],["0.0",{"_index":1706,"t":{"95":{"position":[[688,4],[825,3]]},"97":{"position":[[956,4]]},"99":{"position":[[2827,4]]},"121":{"position":[[803,4]]},"123":{"position":[[1295,4]]},"125":{"position":[[1195,4]]},"127":{"position":[[845,4]]},"129":{"position":[[794,4]]},"131":{"position":[[678,4],[1227,4]]},"133":{"position":[[744,4]]},"139":{"position":[[487,4],[567,4],[572,4]]},"141":{"position":[[256,4],[770,4]]},"143":{"position":[[929,4]]},"145":{"position":[[775,4]]},"171":{"position":[[671,7]]},"173":{"position":[[873,7]]}}}],["0.001",{"_index":1810,"t":{"99":{"position":[[1491,7],[2351,6]]},"129":{"position":[[1358,7],[2199,6]]}}}],["0.005",{"_index":1888,"t":{"101":{"position":[[923,6]]},"131":{"position":[[1925,6]]},"133":{"position":[[1683,6]]},"159":{"position":[[549,6]]}}}],["0.01",{"_index":167,"t":{"39":{"position":[[2859,5]]},"45":{"position":[[1023,4]]},"63":{"position":[[1926,5]]},"65":{"position":[[1399,5],[1516,5]]},"67":{"position":[[928,4]]},"69":{"position":[[1865,5]]},"71":{"position":[[1771,5]]},"103":{"position":[[1461,5],[1487,5],[1537,5]]},"105":{"position":[[2011,5]]},"117":{"position":[[1576,5],[1602,5],[1652,5]]},"121":{"position":[[1205,5]]},"123":{"position":[[1573,5]]},"125":{"position":[[1598,5]]},"131":{"position":[[1897,5]]},"133":{"position":[[1627,5],[1655,5]]},"139":{"position":[[751,5]]},"141":{"position":[[1071,5]]},"143":{"position":[[1493,5]]},"145":{"position":[[1408,5]]},"147":{"position":[[1106,4]]},"153":{"position":[[976,5]]},"175":{"position":[[1805,5],[2024,5]]}}}],["0.02",{"_index":1922,"t":{"103":{"position":[[1512,5]]},"117":{"position":[[1627,5]]},"157":{"position":[[915,5]]}}}],["0.025",{"_index":652,"t":{"49":{"position":[[308,6]]}}}],["0.04",{"_index":1713,"t":{"95":{"position":[[1005,4]]},"103":{"position":[[1581,5],[1625,5]]},"117":{"position":[[1696,5],[1740,5]]}}}],["0.05",{"_index":42,"t":{"39":{"position":[[413,5]]},"49":{"position":[[393,5]]},"69":{"position":[[1821,5]]},"105":{"position":[[1896,5]]}}}],["0.06",{"_index":2398,"t":{"131":{"position":[[1417,6],[1481,6]]}}}],["0.1",{"_index":1108,"t":{"65":{"position":[[1383,4]]},"69":{"position":[[2387,4]]},"73":{"position":[[548,4]]},"103":{"position":[[1640,4]]},"111":{"position":[[1840,4],[2326,4]]},"117":{"position":[[1755,4],[2116,4]]},"119":{"position":[[728,4],[765,4]]},"135":{"position":[[574,4]]},"137":{"position":[[635,4]]},"145":{"position":[[995,3],[1443,4]]},"155":{"position":[[673,3]]},"175":{"position":[[1789,4]]}}}],["0.2",{"_index":1146,"t":{"69":{"position":[[1181,4]]},"91":{"position":[[3449,4]]},"105":{"position":[[2233,4]]},"175":{"position":[[2075,5]]}}}],["0.25",{"_index":996,"t":{"59":{"position":[[758,5]]},"115":{"position":[[1737,6]]}}}],["0.3",{"_index":1025,"t":{"63":{"position":[[738,5]]},"69":{"position":[[719,5]]},"71":{"position":[[594,5]]},"105":{"position":[[775,5]]},"135":{"position":[[732,4]]},"137":{"position":[[793,4]]},"167":{"position":[[1203,5]]}}}],["0.35",{"_index":2380,"t":{"127":{"position":[[5685,4]]}}}],["0.4",{"_index":1963,"t":{"105":{"position":[[1545,4]]},"117":{"position":[[1801,5]]},"127":{"position":[[1334,4],[1339,4]]}}}],["0.5",{"_index":195,"t":{"39":{"position":[[4063,5],[4103,5]]},"49":{"position":[[573,4]]},"53":{"position":[[3072,4],[3079,5]]},"65":{"position":[[986,4],[1008,4]]},"79":{"position":[[1696,4]]},"83":{"position":[[661,4]]},"93":{"position":[[2217,5]]},"97":{"position":[[1136,4]]},"99":{"position":[[612,5],[2376,3]]},"111":{"position":[[1097,5],[1920,5]]},"127":{"position":[[1391,3],[2368,4],[3019,4],[5678,4],[5692,4]]},"129":{"position":[[2224,3]]},"131":{"position":[[1426,4],[1490,4]]},"135":{"position":[[667,4]]},"137":{"position":[[728,4]]},"149":{"position":[[684,4]]},"151":{"position":[[775,5]]},"153":{"position":[[868,4]]},"163":{"position":[[257,4]]},"167":{"position":[[1234,5]]},"179":{"position":[[1367,4],[1387,4]]}}}],["0.7",{"_index":662,"t":{"49":{"position":[[601,4]]},"97":{"position":[[968,4]]},"129":{"position":[[3058,5]]}}}],["0.75",{"_index":1003,"t":{"59":{"position":[[922,5]]},"91":{"position":[[3643,5]]},"93":{"position":[[500,5]]},"127":{"position":[[4039,5]]}}}],["0.8",{"_index":1042,"t":{"63":{"position":[[1267,4]]},"69":{"position":[[1068,4]]},"71":{"position":[[1120,4]]},"105":{"position":[[650,4]]},"111":{"position":[[623,5]]},"127":{"position":[[1294,4],[1299,4]]},"167":{"position":[[901,4]]}}}],["0.87",{"_index":1461,"t":{"89":{"position":[[375,5]]}}}],["0.95",{"_index":1153,"t":{"69":{"position":[[1783,4]]}}}],["0.99",{"_index":170,"t":{"39":{"position":[[2950,5],[2983,6],[3048,5],[3083,6]]}}}],["000000",{"_index":509,"t":{"47":{"position":[[2320,10]]},"167":{"position":[[499,10]]}}}],["004620",{"_index":2647,"t":{"167":{"position":[[1027,10]]}}}],["00ff99",{"_index":502,"t":{"47":{"position":[[2222,11]]},"167":{"position":[[401,11]]}}}],["0123456789",{"_index":2478,"t":{"149":{"position":[[355,11]]}}}],["0x0000ff",{"_index":2099,"t":{"111":{"position":[[976,9]]}}}],["0x00ff00",{"_index":128,"t":{"39":{"position":[[2180,9]]},"53":{"position":[[6883,9]]}}}],["0x1099bb",{"_index":2473,"t":{"147":{"position":[[261,9]]}}}],["0x111111",{"_index":1460,"t":{"89":{"position":[[358,9]]},"167":{"position":[[964,11]]}}}],["0x333333",{"_index":1373,"t":{"81":{"position":[[2997,9]]}}}],["0x3333dd",{"_index":2046,"t":{"109":{"position":[[1510,9]]}}}],["0x33ff00",{"_index":2106,"t":{"111":{"position":[[1182,10]]}}}],["0x666666",{"_index":1374,"t":{"81":{"position":[[3048,9]]}}}],["0x808080",{"_index":1143,"t":{"69":{"position":[[860,9]]}}}],["0xaa0000",{"_index":2017,"t":{"109":{"position":[[618,9]]}}}],["0xaa00bb",{"_index":2041,"t":{"109":{"position":[[1357,9]]}}}],["0xfeeb77",{"_index":2145,"t":{"115":{"position":[[363,9],[1007,9]]}}}],["0xff0000",{"_index":140,"t":{"39":{"position":[[2437,9]]},"53":{"position":[[1895,9],[3927,9],[4690,9],[4942,9]]},"111":{"position":[[613,9],[1880,9]]}}}],["0xff00ff",{"_index":2163,"t":{"115":{"position":[[1694,9]]}}}],["0xffbd01",{"_index":2148,"t":{"115":{"position":[[516,9],[1157,9]]}}}],["0xffc2c2",{"_index":2444,"t":{"135":{"position":[[826,10]]}}}],["0xffd900",{"_index":2079,"t":{"111":{"position":[[327,9]]},"115":{"position":[[1482,9]]}}}],["0xffffff",{"_index":363,"t":{"43":{"position":[[1621,8]]},"53":{"position":[[7626,10],[7793,9]]},"65":{"position":[[885,9]]},"71":{"position":[[773,9]]},"81":{"position":[[3098,9]]},"99":{"position":[[564,9]]},"109":{"position":[[362,9],[848,9]]},"111":{"position":[[1578,9]]},"115":{"position":[[655,9],[1307,9],[1848,10],[1985,10],[2122,10]]}}}],["1",{"_index":143,"t":{"39":{"position":[[2508,2]]},"41":{"position":[[1785,2],[1805,2],[1896,2],[1922,2],[2039,2],[2130,2],[2203,2],[2286,2]]},"47":{"position":[[1894,3],[2000,3],[3490,1],[5288,2],[5464,3],[5536,2],[5724,2],[5743,3]]},"49":{"position":[[972,2],[1138,2]]},"53":{"position":[[200,2],[1905,3],[1934,3],[2146,4],[3937,3],[3966,3],[4660,3],[4700,3],[4952,3],[5090,2],[6099,3],[6103,3],[6115,3],[6121,2],[6893,3],[6922,3],[7083,4],[7803,3],[9258,1],[9278,2]]},"77":{"position":[[1303,3],[1912,2]]},"79":{"position":[[1865,2]]},"85":{"position":[[942,3],[2007,2]]},"89":{"position":[[388,1]]},"91":{"position":[[2849,2],[3035,2],[3581,3],[4614,2]]},"93":{"position":[[2166,1],[2172,2]]},"99":{"position":[[1743,2],[1776,4],[2434,3],[2463,3],[2543,4]]},"103":{"position":[[1559,1],[1603,1]]},"105":{"position":[[612,2]]},"109":{"position":[[372,3],[628,3],[858,3],[1367,3],[1520,3]]},"111":{"position":[[337,3],[658,3],[986,3],[1588,3],[1890,3]]},"113":{"position":[[812,2]]},"115":{"position":[[339,1],[373,3],[526,3],[665,3],[901,3],[983,1],[1017,3],[1050,3],[1167,3],[1200,3],[1317,3],[1350,3],[1492,3],[1704,3],[1888,3],[2025,3],[2162,3],[2355,3]]},"117":{"position":[[1674,1],[1718,1]]},"119":{"position":[[804,2]]},"121":{"position":[[379,2],[393,2],[396,2],[402,3],[460,2]]},"125":{"position":[[379,2],[393,2],[396,2],[402,3],[460,2],[738,2],[752,2],[755,3],[813,2]]},"127":{"position":[[399,2],[413,2],[416,2],[422,3],[480,2],[5484,1]]},"129":{"position":[[398,2],[412,2],[415,2],[421,3],[479,2],[1624,4],[2282,3],[2311,3],[2391,4],[2950,1]]},"131":{"position":[[336,2],[350,2],[353,4]]},"133":{"position":[[368,2],[382,2],[385,3]]},"135":{"position":[[886,2],[966,2]]},"141":{"position":[[355,3],[379,2],[402,3]]},"143":{"position":[[355,3],[379,2],[402,3],[508,2],[522,2],[525,3]]},"145":{"position":[[379,2],[393,2],[396,2],[402,3],[460,2]]},"155":{"position":[[578,1]]},"159":{"position":[[683,2],[717,2]]},"171":{"position":[[495,2],[819,3]]},"173":{"position":[[399,1],[425,3]]},"177":{"position":[[574,3]]},"179":{"position":[[304,2],[940,3],[1347,4]]}}}],["1,1",{"_index":2267,"t":{"127":{"position":[[1207,3],[3539,3]]}}}],["1.,0",{"_index":1833,"t":{"99":{"position":[[1978,9]]},"129":{"position":[[1826,9]]}}}],["1.0",{"_index":1749,"t":{"97":{"position":[[951,4],[961,4],[1129,4]]},"99":{"position":[[2416,5]]},"121":{"position":[[808,5]]},"123":{"position":[[1300,5],[1395,5]]},"125":{"position":[[1200,5]]},"127":{"position":[[850,5],[1304,5],[1344,5]]},"129":{"position":[[799,5],[2264,5]]},"131":{"position":[[683,5],[1232,5]]},"133":{"position":[[749,5]]},"139":{"position":[[492,5],[577,5]]},"141":{"position":[[775,5],[874,5]]},"143":{"position":[[934,5],[1131,5]]},"145":{"position":[[780,5]]}}}],["1.0)).xy",{"_index":2221,"t":{"121":{"position":[[793,9]]},"123":{"position":[[1285,9]]},"125":{"position":[[1185,9]]},"127":{"position":[[835,9]]},"129":{"position":[[784,9]]},"131":{"position":[[668,9],[1217,9]]},"133":{"position":[[734,9]]},"139":{"position":[[477,9]]},"141":{"position":[[760,9]]},"143":{"position":[[919,9]]},"145":{"position":[[765,9]]}}}],["1.1",{"_index":1690,"t":{"93":{"position":[[2243,4]]}}}],["1.2",{"_index":1250,"t":{"77":{"position":[[1782,5]]},"85":{"position":[[1877,5]]}}}],["1.25",{"_index":1199,"t":{"75":{"position":[[860,5],[884,5]]}}}],["1.5",{"_index":1929,"t":{"103":{"position":[[1764,4]]}}}],["10",{"_index":556,"t":{"47":{"position":[[3349,2]]},"49":{"position":[[1349,2]]},"77":{"position":[[1725,3]]},"79":{"position":[[369,3]]},"81":{"position":[[2669,3],[2785,3]]},"83":{"position":[[272,3],[276,4],[650,3]]},"85":{"position":[[1820,3]]},"103":{"position":[[1388,3]]},"107":{"position":[[704,3]]},"109":{"position":[[1127,3]]},"117":{"position":[[1508,3]]},"127":{"position":[[1472,3],[5009,4],[5048,4]]},"135":{"position":[[1057,4]]},"149":{"position":[[327,3]]},"153":{"position":[[349,2]]},"163":{"position":[[295,3]]},"167":{"position":[[996,3]]}}}],["100",{"_index":122,"t":{"39":{"position":[[2068,4],[2099,4],[2130,4],[2156,4],[2391,4],[2415,4],[3260,5],[3390,5],[3721,4],[3752,4]]},"41":{"position":[[447,4]]},"43":{"position":[[1609,4]]},"53":{"position":[[512,4],[2410,4],[3404,4],[4365,4],[7658,4],[7839,4],[7844,4]]},"63":{"position":[[1567,4]]},"65":{"position":[[721,4],[1328,4]]},"69":{"position":[[413,4],[1216,4],[1434,4]]},"71":{"position":[[1420,4]]},"81":{"position":[[793,4],[2032,4]]},"83":{"position":[[291,4],[306,4]]},"87":{"position":[[905,4]]},"91":{"position":[[3508,4],[3673,3],[3873,4],[3945,4],[4506,4]]},"97":{"position":[[1235,4]]},"99":{"position":[[2178,4]]},"101":{"position":[[662,4]]},"105":{"position":[[245,4]]},"107":{"position":[[346,4],[360,4]]},"109":{"position":[[474,5],[678,5],[907,5],[963,5],[1185,4],[1205,5],[1384,4]]},"111":{"position":[[429,5],[805,5],[1017,4],[1022,5],[1133,5],[1969,3],[2040,3],[2110,3],[2181,3],[2253,3]]},"113":{"position":[[171,4]]},"115":{"position":[[282,4],[287,5],[434,4],[439,5],[587,4],[592,5],[731,5],[1778,4],[1783,4]]},"117":{"position":[[1850,3],[1921,3],[1991,3],[2062,3]]},"121":{"position":[[220,4],[226,4],[239,4],[245,4],[258,4],[263,4],[269,4],[274,5]]},"123":{"position":[[188,4],[196,4]]},"125":{"position":[[220,4],[226,4],[239,4],[245,4],[258,4],[263,4],[269,4],[274,5],[572,3],[578,4],[584,4],[597,3],[603,4],[609,4],[622,3],[628,4],[633,5]]},"129":{"position":[[239,4],[245,4],[258,4],[264,4],[277,4],[282,4],[288,4],[293,5],[2026,4]]},"131":{"position":[[220,4],[226,4],[239,4],[245,4],[258,4],[263,5]]},"133":{"position":[[220,4],[226,4],[239,4],[245,4],[258,4],[263,5],[1462,5]]},"139":{"position":[[198,4],[208,4],[221,6]]},"141":{"position":[[220,4],[238,4]]},"143":{"position":[[220,4],[226,4],[239,4],[245,4],[258,4],[263,5]]},"145":{"position":[[220,4],[226,4],[239,4],[245,4],[258,4],[263,4],[269,4],[274,5]]},"155":{"position":[[594,4]]},"163":{"position":[[285,4],[290,4]]},"167":{"position":[[236,4]]},"171":{"position":[[970,5]]},"173":{"position":[[2032,5]]},"177":{"position":[[1020,4]]}}}],["100.0",{"_index":2461,"t":{"141":{"position":[[261,7]]}}}],["100.0*sin(uv.x*0.5+time*0.5)*amplitude*1.2",{"_index":2331,"t":{"127":{"position":[[3769,44]]}}}],["1000",{"_index":648,"t":{"49":{"position":[[251,5],[794,4]]},"99":{"position":[[2498,6]]},"129":{"position":[[2346,6]]}}}],["10000",{"_index":1137,"t":{"69":{"position":[[405,5]]}}}],["1099bb",{"_index":236,"t":{"41":{"position":[[80,10]]},"47":{"position":[[80,10]]},"51":{"position":[[80,10]]},"53":{"position":[[80,10]]},"55":{"position":[[80,10]]},"57":{"position":[[80,10]]},"59":{"position":[[80,10]]},"61":{"position":[[80,10]]},"67":{"position":[[80,10]]},"75":{"position":[[80,10]]},"77":{"position":[[80,10]]},"79":{"position":[[80,10]]},"81":{"position":[[90,9]]},"83":{"position":[[80,10]]},"87":{"position":[[173,10]]},"89":{"position":[[190,10]]},"91":{"position":[[312,10]]},"93":{"position":[[97,10]]},"99":{"position":[[352,10]]},"153":{"position":[[80,10]]},"155":{"position":[[80,10]]},"157":{"position":[[80,10]]},"161":{"position":[[80,10]]},"165":{"position":[[80,10]]},"167":{"position":[[80,10]]},"169":{"position":[[80,10]]},"177":{"position":[[80,10]]}}}],["110",{"_index":1630,"t":{"91":{"position":[[4994,4]]},"105":{"position":[[1176,4],[1210,4]]}}}],["1100",{"_index":2457,"t":{"137":{"position":[[528,6]]}}}],["111",{"_index":30,"t":{"39":{"position":[[256,7]]},"45":{"position":[[85,7]]}}}],["115",{"_index":1315,"t":{"81":{"position":[[811,4],[2050,4]]}}}],["12",{"_index":1645,"t":{"91":{"position":[[5587,4]]},"103":{"position":[[1303,3]]},"117":{"position":[[1423,3]]},"167":{"position":[[1111,3]]}}}],["120",{"_index":1318,"t":{"81":{"position":[[834,4],[2073,4]]},"111":{"position":[[832,5],[1940,3],[2153,3],[2224,3]]},"117":{"position":[[1821,3],[2034,3]]}}}],["12px",{"_index":2860,"t":{"179":{"position":[[1614,7]]}}}],["130",{"_index":1317,"t":{"81":{"position":[[820,4],[2059,4]]}}}],["14",{"_index":1416,"t":{"87":{"position":[[527,3]]},"145":{"position":[[986,4]]}}}],["140",{"_index":2153,"t":{"115":{"position":[[726,4]]}}}],["15",{"_index":812,"t":{"53":{"position":[[4388,3]]}}}],["150",{"_index":433,"t":{"47":{"position":[[402,4]]},"77":{"position":[[1084,4]]},"81":{"position":[[825,4],[843,4],[2064,4],[2082,4]]},"85":{"position":[[748,4]]},"109":{"position":[[935,5],[1020,4],[1190,4],[1195,4],[1258,4],[1920,4],[1925,5],[2357,4],[2362,5]]},"123":{"position":[[208,6]]},"165":{"position":[[1005,4]]}}}],["150.0*sin(uv.x*0.75+time*0.75)*amplitude*1.4",{"_index":2333,"t":{"127":{"position":[[3848,46]]}}}],["16",{"_index":861,"t":{"53":{"position":[[7849,4]]},"87":{"position":[[421,3]]},"91":{"position":[[4800,3],[5508,3]]},"115":{"position":[[1788,4]]},"179":{"position":[[316,3],[1039,2],[1223,3]]}}}],["160",{"_index":431,"t":{"47":{"position":[[377,4]]},"53":{"position":[[5441,4]]},"81":{"position":[[802,4],[2041,4]]}}}],["170",{"_index":1355,"t":{"81":{"position":[[2485,4],[2594,4],[2699,4],[2815,4]]}}}],["175",{"_index":1220,"t":{"77":{"position":[[1056,4]]},"85":{"position":[[720,4]]}}}],["18",{"_index":1589,"t":{"91":{"position":[[3665,2]]}}}],["190",{"_index":2196,"t":{"119":{"position":[[465,4]]}}}],["1}.png",{"_index":2504,"t":{"151":{"position":[[390,9]]}}}],["2",{"_index":123,"t":{"39":{"position":[[2075,2],[2106,3],[3728,2],[3759,3]]},"41":{"position":[[1935,2],[2267,2],[2304,1],[2327,1]]},"45":{"position":[[913,2],[965,2],[1263,3],[1321,3]]},"47":{"position":[[1530,3],[1750,2],[2560,3],[2646,3],[2819,3],[2880,3],[4520,3]]},"49":{"position":[[931,2],[1661,2],[1758,2],[1858,2],[1923,2],[2515,2]]},"51":{"position":[[534,2],[567,2]]},"53":{"position":[[734,2],[744,3],[958,3],[1026,2],[1074,2],[1113,2],[1124,2],[1134,2],[1145,3],[1172,2],[1183,2],[1193,2],[1203,3],[1225,2],[1235,2],[1245,2],[1255,3],[1278,2],[1289,2],[1300,2],[1310,3],[1684,2],[1695,2],[1718,2],[1728,2],[1755,2],[1765,2],[1791,2],[1802,2],[1829,2],[1961,3],[2092,2],[2126,3],[2142,1],[2210,2],[2639,1],[2679,2],[2701,1],[2741,2],[2871,3],[3507,2],[3517,3],[3703,3],[3740,2],[5229,2],[5239,3],[5466,3],[5534,2],[5582,2],[5638,1],[5660,1],[5681,1],[5703,1],[5741,1],[5763,1],[5784,1],[5805,1],[5838,1],[5859,1],[5880,1],[5901,1],[5935,1],[5957,1],[5979,1],[6000,1],[6612,1],[6634,1],[6669,1],[6690,1],[6726,1],[6747,1],[6784,1],[6806,1],[6968,1],[7063,3],[7079,1],[7142,2],[7185,3],[8058,3]]},"55":{"position":[[789,2],[826,2]]},"57":{"position":[[1035,2],[1069,2],[1710,2],[1744,2]]},"59":{"position":[[795,2],[956,2]]},"61":{"position":[[612,2],[645,2]]},"63":{"position":[[1154,2],[1322,1],[1337,1],[1357,2],[1690,2],[1733,2],[2074,2]]},"67":{"position":[[596,2],[633,2],[728,2],[770,2]]},"69":{"position":[[953,2],[1110,2],[1155,2],[1176,2],[1557,2],[1600,2]]},"71":{"position":[[1007,2],[1171,1],[1190,1],[1210,2],[1542,2],[1585,3],[1919,2]]},"73":{"position":[[395,2],[428,2]]},"75":{"position":[[411,2],[445,2]]},"77":{"position":[[1264,3],[1299,1]]},"85":{"position":[[903,3],[938,1]]},"87":{"position":[[442,2],[564,2]]},"89":{"position":[[466,2],[489,3]]},"91":{"position":[[3461,1],[3585,2],[3683,4]]},"93":{"position":[[472,2],[630,2],[658,2],[1155,2],[1182,2],[1400,2],[1937,2],[2185,1]]},"99":{"position":[[664,2],[696,3],[1278,4],[1767,5],[1806,3]]},"101":{"position":[[436,2],[636,2]]},"103":{"position":[[276,2],[306,2],[435,2],[472,2],[1803,2],[1835,3]]},"105":{"position":[[334,2],[367,2],[594,2],[2175,2]]},"109":{"position":[[779,1],[1402,1],[1451,1],[1547,1],[1574,3],[1741,1],[1770,3]]},"111":{"position":[[1384,2],[1403,2]]},"113":{"position":[[704,2],[729,3],[1071,2],[1125,2]]},"115":{"position":[[491,1],[631,1],[1132,1],[1283,1],[1961,1]]},"117":{"position":[[293,2],[323,2],[423,2],[460,2],[1106,2],[1139,2]]},"121":{"position":[[288,2],[414,2],[463,2],[469,2]]},"123":{"position":[[291,2],[851,2]]},"125":{"position":[[288,2],[414,2],[463,2],[469,2],[647,2],[767,2],[816,4]]},"127":{"position":[[308,2],[434,2],[483,2],[489,2],[1385,3]]},"129":{"position":[[307,2],[433,2],[482,2],[488,2],[1197,4],[1615,5],[1654,3],[3032,2],[3066,3]]},"131":{"position":[[1433,3],[1497,3]]},"133":{"position":[[277,2],[397,3]]},"141":{"position":[[277,2]]},"143":{"position":[[277,2],[537,3]]},"145":{"position":[[288,2],[414,2],[463,2],[469,2]]},"147":{"position":[[774,2],[811,2],[906,2],[948,2]]},"149":{"position":[[732,2],[764,2],[976,2],[1008,2]]},"153":{"position":[[789,2],[821,2]]},"155":{"position":[[397,2],[430,2]]},"157":{"position":[[557,2],[594,2]]},"159":{"position":[[583,1],[631,1]]},"163":{"position":[[450,2],[502,2]]},"177":{"position":[[467,3]]},"179":{"position":[[640,1],[1329,1],[1343,1]]}}}],["2./length(uv.y*500",{"_index":2334,"t":{"127":{"position":[[3907,19]]}}}],["2.1",{"_index":2646,"t":{"167":{"position":[[923,4]]}}}],["2.2",{"_index":1828,"t":{"99":{"position":[[1887,4]]},"129":{"position":[[1735,4]]}}}],["2.5",{"_index":2054,"t":{"109":{"position":[[1754,3]]}}}],["20",{"_index":247,"t":{"41":{"position":[[373,3]]},"49":{"position":[[286,3],[1326,3]]},"63":{"position":[[442,3]]},"71":{"position":[[194,3]]},"93":{"position":[[1326,3]]},"101":{"position":[[1022,2],[1060,2]]},"105":{"position":[[413,3]]},"109":{"position":[[1686,3],[2260,3]]},"111":{"position":[[1964,3],[1993,4],[2035,3],[2064,4],[2106,3],[2134,4],[2177,3],[2205,4],[2248,3],[2277,4]]},"117":{"position":[[1845,3],[1874,4],[1916,3],[1945,4],[1987,3],[2015,4],[2058,3],[2086,4]]},"135":{"position":[[748,3]]},"137":{"position":[[183,3],[226,3],[809,3]]},"175":{"position":[[1414,3]]},"179":{"position":[[1691,3]]}}}],["200",{"_index":1302,"t":{"81":{"position":[[327,5],[649,5],[1192,5],[1368,4],[1782,5],[1893,4]]},"87":{"position":[[910,4],[915,4]]},"91":{"position":[[3736,4]]},"97":{"position":[[1259,4],[1284,5]]},"101":{"position":[[462,4],[641,4]]},"109":{"position":[[420,5],[447,5],[658,4],[663,4],[668,4]]},"111":{"position":[[859,5],[1128,4]]},"127":{"position":[[265,4],[281,4],[286,4],[294,5],[1742,4],[1755,3],[2548,4],[2561,3],[3187,4],[3200,3],[4191,4],[4204,3]]},"161":{"position":[[417,4]]},"169":{"position":[[946,5]]},"175":{"position":[[1514,4],[1550,4]]}}}],["200.0*sin(uv.x+time)*amplitude*1.6",{"_index":2335,"t":{"127":{"position":[[3929,36]]}}}],["2000",{"_index":669,"t":{"49":{"position":[[761,4],[801,5],[2037,5],[2050,6]]}}}],["220",{"_index":2084,"t":{"111":{"position":[[456,5],[482,5]]},"127":{"position":[[5085,5],[5158,5]]},"167":{"position":[[771,4]]}}}],["240",{"_index":2019,"t":{"109":{"position":[[673,4],[1200,4]]}}}],["25",{"_index":391,"t":{"45":{"position":[[651,3]]},"67":{"position":[[370,3]]},"81":{"position":[[2455,3]]},"103":{"position":[[1375,3]]},"105":{"position":[[1764,3]]},"109":{"position":[[1989,4],[2027,4],[2065,4]]},"135":{"position":[[220,3]]},"147":{"position":[[548,3]]},"177":{"position":[[314,3]]}}}],["25.0",{"_index":1746,"t":{"97":{"position":[[918,5]]}}}],["250",{"_index":2101,"t":{"111":{"position":[[1012,4]]},"115":{"position":[[930,4],[1079,4],[1229,4],[1380,4]]}}}],["2500",{"_index":558,"t":{"47":{"position":[[3382,4]]}}}],["255",{"_index":2704,"t":{"171":{"position":[[661,4],[666,4]]},"173":{"position":[[863,4],[868,4]]}}}],["256",{"_index":2695,"t":{"171":{"position":[[401,4]]}}}],["26",{"_index":2186,"t":{"117":{"position":[[1495,3]]},"151":{"position":[[317,3],[819,2]]}}}],["270",{"_index":2048,"t":{"109":{"position":[[1538,4]]}}}],["272d37",{"_index":1623,"t":{"91":{"position":[[4810,10],[5540,10]]},"93":{"position":[[1283,10]]}}}],["2d",{"_index":689,"t":{"49":{"position":[[1507,2]]}}}],["3",{"_index":131,"t":{"39":{"position":[[2255,2]]},"41":{"position":[[2277,1],[2336,1]]},"47":{"position":[[1745,2],[2037,1],[3317,3]]},"53":{"position":[[2691,2],[2753,2],[3128,2]]},"99":{"position":[[1811,4]]},"103":{"position":[[1702,2],[1798,2]]},"109":{"position":[[1560,1],[1614,1]]},"115":{"position":[[2098,1]]},"121":{"position":[[472,3]]},"123":{"position":[[312,2],[900,2]]},"125":{"position":[[472,4]]},"127":{"position":[[492,4]]},"129":{"position":[[491,4],[1659,4]]},"141":{"position":[[417,3]]},"143":{"position":[[417,2]]},"145":{"position":[[472,4]]}}}],["3./length(uv.y*400",{"_index":2332,"t":{"127":{"position":[[3826,19]]}}}],["30",{"_index":187,"t":{"39":{"position":[[3559,2],[3601,4],[3626,2],[3669,4]]},"81":{"position":[[839,3],[2078,3]]},"87":{"position":[[1570,3],[1597,3]]},"107":{"position":[[859,3]]},"111":{"position":[[1213,4],[1558,3]]},"135":{"position":[[683,3]]},"137":{"position":[[744,3]]},"153":{"position":[[322,3]]},"163":{"position":[[343,3]]},"177":{"position":[[385,3],[419,3]]}}}],["300",{"_index":403,"t":{"45":{"position":[[860,4]]},"65":{"position":[[514,4],[964,4]]},"91":{"position":[[3478,4],[3892,4],[3951,4]]},"111":{"position":[[706,5],[886,5],[1239,5]]},"119":{"position":[[665,5]]},"121":{"position":[[1109,5]]},"123":{"position":[[1486,5]]},"125":{"position":[[1502,5]]},"129":{"position":[[2824,5]]},"131":{"position":[[1720,5]]},"133":{"position":[[1405,5]]},"135":{"position":[[407,4]]},"137":{"position":[[492,4]]},"139":{"position":[[666,5]]},"141":{"position":[[963,5]]},"143":{"position":[[1385,5]]},"145":{"position":[[1252,5]]},"165":{"position":[[1020,4]]},"167":{"position":[[1253,4]]},"175":{"position":[[637,4],[810,4]]},"177":{"position":[[544,4]]}}}],["310",{"_index":2194,"t":{"119":{"position":[[451,4]]}}}],["315",{"_index":1876,"t":{"101":{"position":[[441,4]]}}}],["32",{"_index":2128,"t":{"113":{"position":[[212,3]]}}}],["320",{"_index":1651,"t":{"93":{"position":[[338,4]]},"109":{"position":[[992,4],[1232,4]]},"111":{"position":[[733,5]]}}}],["325",{"_index":1224,"t":{"77":{"position":[[1079,4]]},"85":{"position":[[743,4]]}}}],["35",{"_index":1360,"t":{"81":{"position":[[2564,3]]}}}],["350",{"_index":2060,"t":{"109":{"position":[[1915,4],[2352,4]]},"111":{"position":[[760,5]]},"115":{"position":[[1516,5],[1543,5],[1596,5]]}}}],["36",{"_index":496,"t":{"47":{"position":[[2159,3]]},"167":{"position":[[338,3]]}}}],["360",{"_index":1163,"t":{"71":{"position":[[952,3]]}}}],["370",{"_index":2167,"t":{"115":{"position":[[1915,4],[2257,4]]}}}],["375",{"_index":2063,"t":{"109":{"position":[[1984,4]]}}}],["3].map((i",{"_index":1587,"t":{"91":{"position":[[3588,10]]}}}],["3d",{"_index":688,"t":{"49":{"position":[[1492,2]]}}}],["4",{"_index":462,"t":{"47":{"position":[[1203,2],[2347,2]]},"53":{"position":[[1627,2],[4146,2],[6530,2],[6548,1]]},"65":{"position":[[767,3]]},"71":{"position":[[1175,1]]},"93":{"position":[[428,3],[1994,3],[2014,3]]},"103":{"position":[[1868,3]]},"115":{"position":[[2194,2]]},"123":{"position":[[497,1],[616,1],[648,1],[949,2]]},"149":{"position":[[532,2]]},"167":{"position":[[526,2],[944,2]]},"179":{"position":[[1123,1],[1443,3],[1479,1]]}}}],["4./length(uv.y*300",{"_index":2330,"t":{"127":{"position":[[3747,19]]}}}],["40",{"_index":396,"t":{"45":{"position":[[745,3],[779,3]]},"67":{"position":[[464,3],[498,3]]},"93":{"position":[[1413,3]]},"135":{"position":[[393,3]]},"147":{"position":[[642,3],[676,3]]}}}],["400",{"_index":401,"t":{"45":{"position":[[836,4]]},"65":{"position":[[490,4],[927,4]]},"87":{"position":[[704,4],[709,4],[769,4]]},"115":{"position":[[1570,5]]},"131":{"position":[[1777,5]]},"133":{"position":[[1496,5]]},"137":{"position":[[468,4]]},"175":{"position":[[615,4],[786,4],[1508,3],[1544,3]]}}}],["410",{"_index":1223,"t":{"77":{"position":[[1074,4]]},"85":{"position":[[738,4]]}}}],["420",{"_index":2053,"t":{"109":{"position":[[1732,4]]},"115":{"position":[[2277,4]]}}}],["425",{"_index":2065,"t":{"109":{"position":[[2022,4]]}}}],["430",{"_index":2363,"t":{"127":{"position":[[5122,5]]}}}],["440",{"_index":517,"t":{"47":{"position":[[2434,4]]},"115":{"position":[[1773,4]]},"167":{"position":[[613,4]]}}}],["445",{"_index":1227,"t":{"77":{"position":[[1099,4]]},"85":{"position":[[763,4]]}}}],["45",{"_index":1319,"t":{"81":{"position":[[848,3],[2087,3]]},"135":{"position":[[177,3]]}}}],["450",{"_index":2173,"t":{"115":{"position":[[2189,4]]},"165":{"position":[[1035,4]]},"177":{"position":[[665,4]]}}}],["459",{"_index":2452,"t":{"137":{"position":[[399,4]]}}}],["460",{"_index":2176,"t":{"115":{"position":[[2267,4]]}}}],["465",{"_index":1225,"t":{"77":{"position":[[1089,4]]},"85":{"position":[[753,4]]}}}],["475",{"_index":2067,"t":{"109":{"position":[[2060,4]]}}}],["480",{"_index":2094,"t":{"111":{"position":[[800,4]]},"167":{"position":[[1271,4]]}}}],["4a1850",{"_index":505,"t":{"47":{"position":[[2254,10]]},"167":{"position":[[433,10]]}}}],["5",{"_index":49,"t":{"39":{"position":[[492,2]]},"45":{"position":[[740,2],[774,2]]},"47":{"position":[[883,2],[1840,3],[2282,2],[3358,1]]},"49":{"position":[[369,2],[1076,1]]},"53":{"position":[[4880,2],[7308,2]]},"67":{"position":[[459,2],[493,2]]},"77":{"position":[[1127,2]]},"85":{"position":[[791,2]]},"115":{"position":[[1920,2]]},"123":{"position":[[267,2]]},"147":{"position":[[637,2],[671,2]]},"167":{"position":[[461,2]]},"177":{"position":[[380,2],[414,2]]},"179":{"position":[[1164,1]]}}}],["5./length(uv.y*200",{"_index":2326,"t":{"127":{"position":[[3669,19]]}}}],["50",{"_index":311,"t":{"43":{"position":[[249,4]]},"49":{"position":[[967,2]]},"53":{"position":[[3792,3],[7726,4],[8150,5],[8193,5],[8236,5],[8279,5],[8322,5]]},"81":{"position":[[798,3],[867,3],[2037,3],[2106,3]]},"109":{"position":[[502,3],[528,3],[704,3],[728,3],[1389,3]]},"111":{"position":[[377,4],[403,4],[508,4]]},"115":{"position":[[278,3],[430,3],[583,3],[722,3],[935,4],[1084,4],[1234,4],[1389,4],[1923,4],[2060,4],[2197,4]]},"139":{"position":[[204,3],[214,3]]},"141":{"position":[[226,3],[244,3]]},"151":{"position":[[451,3]]},"161":{"position":[[394,3]]},"163":{"position":[[375,4]]},"165":{"position":[[649,2],[752,2],[874,2],[987,2]]},"167":{"position":[[218,3],[754,3]]},"169":{"position":[[879,3]]},"171":{"position":[[1043,3]]},"173":{"position":[[1902,4]]}}}],["50.0*sin",{"_index":2327,"t":{"127":{"position":[[3691,9]]}}}],["500",{"_index":1594,"t":{"91":{"position":[[3754,4]]},"171":{"position":[[1022,4]]}}}],["5000",{"_index":683,"t":{"49":{"position":[[1144,6]]}}}],["510",{"_index":2170,"t":{"115":{"position":[[2052,4]]}}}],["520",{"_index":2181,"t":{"115":{"position":[[2297,5]]}}}],["55",{"_index":1314,"t":{"81":{"position":[[807,3],[859,3],[2046,3],[2098,3]]},"161":{"position":[[350,3]]}}}],["550",{"_index":1632,"t":{"91":{"position":[[5015,4]]},"119":{"position":[[621,5]]}}}],["570",{"_index":2179,"t":{"115":{"position":[[2287,4]]}}}],["590",{"_index":2180,"t":{"115":{"position":[[2292,4]]}}}],["5x5",{"_index":1113,"t":{"67":{"position":[[330,3]]},"147":{"position":[[508,3]]}}}],["6",{"_index":513,"t":{"47":{"position":[[2377,2],[2400,2]]},"53":{"position":[[8035,2]]},"167":{"position":[[556,2],[579,2]]}}}],["60",{"_index":743,"t":{"53":{"position":[[934,3],[2847,3],[3679,3]]},"81":{"position":[[863,3],[2102,3]]},"99":{"position":[[3038,3]]},"107":{"position":[[892,3]]},"109":{"position":[[1543,3],[1737,3]]},"127":{"position":[[5488,3]]},"129":{"position":[[2954,3]]},"167":{"position":[[1048,3]]},"177":{"position":[[681,3],[1039,3]]}}}],["600",{"_index":559,"t":{"47":{"position":[[3393,3],[3407,4]]},"65":{"position":[[958,3]]},"81":{"position":[[71,4]]},"91":{"position":[[3494,4]]},"111":{"position":[[1397,3],[1645,5],[1712,4],[1754,4],[1796,4]]},"115":{"position":[[2251,5]]}}}],["640",{"_index":2256,"t":{"127":{"position":[[76,4]]}}}],["655",{"_index":1222,"t":{"77":{"position":[[1065,4]]},"85":{"position":[[729,4]]}}}],["685",{"_index":1226,"t":{"77":{"position":[[1094,4]]},"85":{"position":[[758,4]]}}}],["7",{"_index":781,"t":{"53":{"position":[[2434,2]]},"115":{"position":[[2057,2]]}}}],["70",{"_index":2575,"t":{"163":{"position":[[359,3]]}}}],["700",{"_index":2175,"t":{"115":{"position":[[2262,4]]}}}],["730",{"_index":2178,"t":{"115":{"position":[[2282,4]]}}}],["75",{"_index":1221,"t":{"77":{"position":[[1061,3],[1070,3]]},"81":{"position":[[1364,3],[1889,3]]},"85":{"position":[[725,3],[734,3]]}}}],["780",{"_index":2177,"t":{"115":{"position":[[2272,4]]}}}],["8",{"_index":574,"t":{"47":{"position":[[3922,2]]},"89":{"position":[[411,2]]},"93":{"position":[[599,3]]},"99":{"position":[[2392,3]]},"129":{"position":[[2240,3]]},"171":{"position":[[1004,2]]},"173":{"position":[[2066,2]]},"179":{"position":[[1083,1],[1321,1],[1338,2]]}}}],["80",{"_index":1313,"t":{"81":{"position":[[786,3],[830,3],[2025,3],[2069,3]]},"87":{"position":[[548,3]]},"99":{"position":[[584,2]]},"115":{"position":[[1385,3]]},"123":{"position":[[818,3]]}}}],["800",{"_index":1092,"t":{"65":{"position":[[921,3]]},"111":{"position":[[1378,3],[1624,4],[1691,4],[1733,4],[1775,4]]}}}],["9",{"_index":1625,"t":{"91":{"position":[[4863,5]]}}}],["918",{"_index":2451,"t":{"137":{"position":[[177,3]]}}}],["95",{"_index":1316,"t":{"81":{"position":[[816,3],[852,3],[2055,3],[2091,3]]}}}],["999",{"_index":414,"t":{"45":{"position":[[1104,7]]}}}],["a.click",{"_index":387,"t":{"45":{"position":[[484,10]]}}}],["a.download",{"_index":384,"t":{"45":{"position":[[443,10]]}}}],["a.href",{"_index":386,"t":{"45":{"position":[[470,6]]}}}],["a.remove",{"_index":388,"t":{"45":{"position":[[495,11]]}}}],["a1",{"_index":639,"t":{"47":{"position":[[5531,2]]}}}],["a2",{"_index":638,"t":{"47":{"position":[[5515,3],[5546,2]]}}}],["aabb",{"_index":53,"t":{"39":{"position":[[522,4]]}}}],["above",{"_index":203,"t":{"39":{"position":[[4335,5]]},"163":{"position":[[896,5]]},"175":{"position":[[518,5]]}}}],["abs(cos(gl_fragcoord.y",{"_index":2400,"t":{"131":{"position":[[1455,23]]}}}],["abs(sin(gl_fragcoord.x",{"_index":2397,"t":{"131":{"position":[[1391,23]]}}}],["acceess",{"_index":2745,"t":{"173":{"position":[[1275,7]]}}}],["acceleration",{"_index":166,"t":{"39":{"position":[[2843,12],[2872,12],[3168,12],[4758,12],[4999,12],[5171,12]]}}}],["accessed",{"_index":1045,"t":{"63":{"position":[[1430,8]]},"69":{"position":[[1295,8]]},"71":{"position":[[1286,8]]}}}],["achieve",{"_index":1483,"t":{"91":{"position":[[504,7]]}}}],["acolor",{"_index":2463,"t":{"141":{"position":[[556,7],[671,7]]},"143":{"position":[[662,7],[830,7]]}}}],["active",{"_index":2662,"t":{"169":{"position":[[255,8]]}}}],["add",{"_index":233,"t":{"39":{"position":[[5628,3]]},"47":{"position":[[2079,3],[2680,3]]},"55":{"position":[[152,3]]},"59":{"position":[[152,3]]},"65":{"position":[[648,3]]},"77":{"position":[[329,3],[647,3],[1543,3],[1594,3]]},"79":{"position":[[1154,3]]},"81":{"position":[[2823,3]]},"85":{"position":[[311,3],[1638,3],[1689,3]]},"87":{"position":[[1252,3]]},"91":{"position":[[3350,3],[3762,3],[4194,3],[4341,3],[4518,3]]},"93":{"position":[[876,3],[1188,3]]},"95":{"position":[[832,3]]},"99":{"position":[[2590,3]]},"117":{"position":[[466,3]]},"127":{"position":[[5167,3]]},"163":{"position":[[602,3]]},"175":{"position":[[675,3]]}}}],["addattribute('acolor",{"_index":2462,"t":{"141":{"position":[[309,23]]},"143":{"position":[[309,23]]}}}],["addattribute('auvs",{"_index":2206,"t":{"121":{"position":[[320,21]]},"125":{"position":[[320,21],[679,21]]},"127":{"position":[[340,21]]},"129":{"position":[[339,21]]},"131":{"position":[[277,21]]},"133":{"position":[[309,21]]},"143":{"position":[[449,21]]},"145":{"position":[[320,21]]}}}],["addattribute('avertexposition",{"_index":2204,"t":{"121":{"position":[[163,32]]},"125":{"position":[[163,32],[515,32]]},"127":{"position":[[195,32]]},"129":{"position":[[182,32]]},"131":{"position":[[163,32]]},"133":{"position":[[163,32]]},"139":{"position":[[163,32]]},"141":{"position":[[163,32]]},"143":{"position":[[163,32]]},"145":{"position":[[163,32]]}}}],["addattribute('avpos",{"_index":2231,"t":{"123":{"position":[[163,22]]}}}],["addchild",{"_index":2818,"t":{"177":{"position":[[770,8]]}}}],["added",{"_index":1484,"t":{"91":{"position":[[540,5]]},"177":{"position":[[738,5]]}}}],["addeventlistener",{"_index":1492,"t":{"91":{"position":[[728,17]]}}}],["addindex([0",{"_index":2209,"t":{"121":{"position":[[446,13]]},"125":{"position":[[446,13],[799,13]]},"127":{"position":[[466,13]]},"129":{"position":[[465,13]]},"145":{"position":[[446,13]]}}}],["adjust",{"_index":2690,"t":{"171":{"position":[[315,6]]}}}],["advanced",{"_index":2719,"t":{"173":{"position":[[127,8]]}}}],["again",{"_index":1344,"t":{"81":{"position":[[1945,6]]},"111":{"position":[[584,5]]}}}],["aicol",{"_index":2241,"t":{"123":{"position":[[563,8],[1089,6],[1199,6]]}}}],["aipos",{"_index":2239,"t":{"123":{"position":[[441,8],[1067,6],[1278,6]]}}}],["ajax.googleapis.com/ajax/libs/webfont/1/webfont.js",{"_index":2672,"t":{"169":{"position":[[469,56]]}}}],["alien",{"_index":1088,"t":{"65":{"position":[[784,5],[819,5],[1346,5]]}}}],["alien.anchor.x",{"_index":1094,"t":{"65":{"position":[[969,14]]}}}],["alien.anchor.y",{"_index":1095,"t":{"65":{"position":[[991,14]]}}}],["alien.rotation",{"_index":1107,"t":{"65":{"position":[[1365,14]]}}}],["alien.tint",{"_index":1090,"t":{"65":{"position":[[856,10]]}}}],["alien.x",{"_index":1091,"t":{"65":{"position":[[895,7]]}}}],["alien.y",{"_index":1093,"t":{"65":{"position":[[932,7]]}}}],["aliencontainer",{"_index":1079,"t":{"65":{"position":[[432,14]]}}}],["aliencontainer.addchild(alien",{"_index":1097,"t":{"65":{"position":[[1033,31]]}}}],["aliencontainer.cacheasbitmap",{"_index":1104,"t":{"65":{"position":[[1181,28],[1212,30]]}}}],["aliencontainer.rotation",{"_index":1112,"t":{"65":{"position":[[1489,23]]}}}],["aliencontainer.scale.x",{"_index":1109,"t":{"65":{"position":[[1405,22]]}}}],["aliencontainer.scale.y",{"_index":1111,"t":{"65":{"position":[[1447,22]]}}}],["aliencontainer.x",{"_index":1080,"t":{"65":{"position":[[471,16]]}}}],["aliencontainer.y",{"_index":1081,"t":{"65":{"position":[[495,16]]}}}],["alienframes",{"_index":1072,"t":{"65":{"position":[[302,11]]}}}],["alienframes[i",{"_index":1087,"t":{"65":{"position":[[751,13]]}}}],["aliens",{"_index":1071,"t":{"65":{"position":[[270,6],[283,6],[663,6],[1288,6]]},"71":{"position":[[149,6],[162,6],[1250,6]]}}}],["aliens.length",{"_index":1166,"t":{"71":{"position":[[1687,14]]}}}],["aliens.push(alien",{"_index":1096,"t":{"65":{"position":[[1013,19]]}}}],["aliens.push(dude",{"_index":1165,"t":{"71":{"position":[[1301,18]]}}}],["aliens[i",{"_index":1106,"t":{"65":{"position":[[1354,10]]},"71":{"position":[[1722,10]]}}}],["align",{"_index":1668,"t":{"93":{"position":[[1330,6]]},"161":{"position":[[354,6]]},"169":{"position":[[898,6]]},"175":{"position":[[581,5]]},"179":{"position":[[1637,6]]}}}],["allow",{"_index":914,"t":{"55":{"position":[[320,5]]},"79":{"position":[[647,5]]}}}],["allowing",{"_index":76,"t":{"39":{"position":[[893,8]]}}}],["along",{"_index":909,"t":{"53":{"position":[[9220,5]]}}}],["alpha",{"_index":1130,"t":{"69":{"position":[[234,6]]},"89":{"position":[[368,6]]},"91":{"position":[[3442,6]]}}}],["alpha=0.5",{"_index":1753,"t":{"97":{"position":[[1041,9]]}}}],["alpha=0.7",{"_index":1751,"t":{"97":{"position":[[990,9]]}}}],["already",{"_index":936,"t":{"55":{"position":[[1008,7]]},"57":{"position":[[744,7],[1929,7]]}}}],["alternatively",{"_index":1193,"t":{"75":{"position":[[658,14]]}}}],["amount",{"_index":564,"t":{"47":{"position":[[3754,6],[5713,8],[5733,7]]},"113":{"position":[[188,6]]},"127":{"position":[[2038,7],[2360,7]]}}}],["amount+1",{"_index":2299,"t":{"127":{"position":[[2298,10]]}}}],["amplitude",{"_index":2321,"t":{"127":{"position":[[3445,10],[4028,10]]}}}],["anchor",{"_index":720,"t":{"51":{"position":[[422,6]]},"61":{"position":[[500,6]]},"69":{"position":[[569,6]]},"71":{"position":[[405,6]]},"73":{"position":[[283,6]]},"79":{"position":[[868,6]]},"153":{"position":[[737,7]]},"155":{"position":[[285,6]]},"157":{"position":[[437,6]]}}}],["angle",{"_index":205,"t":{"39":{"position":[[4359,5]]},"53":{"position":[[3749,5],[4045,6]]}}}],["anglestart",{"_index":800,"t":{"53":{"position":[[3713,10],[3765,11],[4033,11]]}}}],["angletomouse",{"_index":206,"t":{"39":{"position":[[4390,12]]}}}],["anim",{"_index":2527,"t":{"153":{"position":[[591,4]]}}}],["anim.anchor.set(0.5",{"_index":2533,"t":{"153":{"position":[[824,21]]}}}],["anim.animationspeed",{"_index":2534,"t":{"153":{"position":[[846,19]]}}}],["anim.play",{"_index":2535,"t":{"153":{"position":[[873,12]]}}}],["anim.rotation",{"_index":2537,"t":{"153":{"position":[[959,13]]}}}],["anim.x",{"_index":2531,"t":{"153":{"position":[[761,6]]}}}],["anim.y",{"_index":2532,"t":{"153":{"position":[[792,6]]}}}],["animate",{"_index":158,"t":{"39":{"position":[[2732,7]]},"41":{"position":[[1096,7]]},"47":{"position":[[3604,7],[4962,7]]},"49":{"position":[[1165,7]]},"53":{"position":[[8345,7]]},"67":{"position":[[787,7]]},"83":{"position":[[453,7]]},"95":{"position":[[925,7]]},"99":{"position":[[2939,7]]},"147":{"position":[[965,7]]},"153":{"position":[[915,7]]},"155":{"position":[[474,7]]}}}],["animatedsprite",{"_index":2484,"t":{"149":{"position":[[552,14],[823,14]]},"151":{"position":[[485,14]]},"153":{"position":[[515,14],[639,14]]}}}],["animating",{"_index":2434,"t":{"135":{"position":[[532,9]]},"149":{"position":[[1059,9]]},"151":{"position":[[870,9]]}}}],["animation",{"_index":2373,"t":{"127":{"position":[[5422,11]]},"129":{"position":[[2888,11]]},"145":{"position":[[1316,11]]}}}],["antialias",{"_index":1403,"t":{"87":{"position":[[144,10]]},"89":{"position":[[161,10]]},"91":{"position":[[283,10]]},"93":{"position":[[68,10]]},"109":{"position":[[68,10]]},"111":{"position":[[68,10]]},"115":{"position":[[100,10]]},"117":{"position":[[68,10]]},"171":{"position":[[206,10]]},"173":{"position":[[1552,10]]}}}],["anymore",{"_index":2597,"t":{"163":{"position":[[1123,7]]}}}],["apart",{"_index":79,"t":{"39":{"position":[[947,5]]}}}],["api",{"_index":2686,"t":{"171":{"position":[[69,3],[551,3]]},"173":{"position":[[63,3],[87,3],[1258,4]]}}}],["app",{"_index":26,"t":{"39":{"position":[[215,3]]},"41":{"position":[[39,3]]},"43":{"position":[[39,3]]},"45":{"position":[[39,3]]},"47":{"position":[[39,3]]},"49":{"position":[[39,3]]},"51":{"position":[[39,3]]},"53":{"position":[[39,3]]},"55":{"position":[[39,3]]},"57":{"position":[[39,3]]},"59":{"position":[[39,3]]},"61":{"position":[[39,3]]},"63":{"position":[[39,3]]},"65":{"position":[[39,3]]},"67":{"position":[[39,3]]},"69":{"position":[[39,3]]},"71":{"position":[[39,3]]},"73":{"position":[[39,3]]},"75":{"position":[[39,3]]},"77":{"position":[[39,3]]},"79":{"position":[[39,3]]},"81":{"position":[[39,3]]},"83":{"position":[[39,3]]},"85":{"position":[[39,3]]},"87":{"position":[[115,3]]},"89":{"position":[[132,3]]},"91":{"position":[[254,3]]},"93":{"position":[[39,3]]},"95":{"position":[[39,3]]},"97":{"position":[[107,3]]},"99":{"position":[[311,3]]},"101":{"position":[[39,3]]},"103":{"position":[[39,3]]},"105":{"position":[[39,3]]},"107":{"position":[[39,3]]},"109":{"position":[[39,3]]},"111":{"position":[[39,3],[1482,4]]},"113":{"position":[[39,3]]},"115":{"position":[[71,3]]},"117":{"position":[[39,3]]},"119":{"position":[[39,3]]},"121":{"position":[[39,3]]},"123":{"position":[[39,3]]},"125":{"position":[[39,3]]},"127":{"position":[[39,3]]},"129":{"position":[[39,3]]},"131":{"position":[[39,3]]},"133":{"position":[[39,3]]},"135":{"position":[[39,3]]},"137":{"position":[[39,3]]},"139":{"position":[[39,3]]},"141":{"position":[[39,3]]},"143":{"position":[[39,3]]},"145":{"position":[[39,3]]},"147":{"position":[[214,3]]},"149":{"position":[[39,3]]},"151":{"position":[[39,3]]},"153":{"position":[[39,3]]},"155":{"position":[[39,3]]},"157":{"position":[[39,3]]},"159":{"position":[[39,3]]},"161":{"position":[[39,3]]},"163":{"position":[[39,3]]},"165":{"position":[[39,3]]},"167":{"position":[[39,3]]},"169":{"position":[[39,3]]},"171":{"position":[[177,3]]},"173":{"position":[[1523,3]]},"175":{"position":[[39,3]]},"177":{"position":[[39,3]]},"179":{"position":[[39,3]]}}}],["app.renderer",{"_index":1134,"t":{"69":{"position":[[365,12]]}}}],["app.renderer.events.cursorstyles.default",{"_index":1209,"t":{"77":{"position":[[354,40]]}}}],["app.renderer.events.cursorstyles.hover",{"_index":1210,"t":{"77":{"position":[[410,38]]}}}],["app.renderer.extract.base64(bunnycontainer",{"_index":381,"t":{"45":{"position":[[334,44]]}}}],["app.renderer.generatetexture(circle",{"_index":2136,"t":{"113":{"position":[[749,36]]}}}],["app.renderer.render(app.stage",{"_index":2811,"t":{"175":{"position":[[2180,30]]}}}],["app.renderer.render(brush",{"_index":347,"t":{"43":{"position":[[1325,26]]}}}],["app.renderer.render(container",{"_index":2825,"t":{"177":{"position":[[1066,30]]}}}],["app.renderer.render(gridquad",{"_index":2381,"t":{"127":{"position":[[5735,29]]}}}],["app.renderer.render(line",{"_index":367,"t":{"43":{"position":[[1692,25]]}}}],["app.renderer.render(noisequad",{"_index":2383,"t":{"127":{"position":[[5865,30]]}}}],["app.renderer.render(ripplequad",{"_index":2382,"t":{"127":{"position":[[5798,31]]}}}],["app.renderer.render(wavequad",{"_index":2384,"t":{"127":{"position":[[5930,29]]}}}],["app.renderer.screen",{"_index":1864,"t":{"99":{"position":[[2874,20]]}}}],["app.renderer.screen.height",{"_index":695,"t":{"49":{"position":[[1729,26],[1894,26]]},"99":{"position":[[667,26]]}}}],["app.renderer.screen.width",{"_index":693,"t":{"49":{"position":[[1605,25],[1633,25],[1701,25],[1830,25],[2422,26]]}}}],["app.screen",{"_index":150,"t":{"39":{"position":[[2599,11]]},"41":{"position":[[910,11]]},"43":{"position":[[564,11],[1039,11]]},"45":{"position":[[574,11]]},"79":{"position":[[1278,11]]},"87":{"position":[[1050,11]]},"89":{"position":[[642,11]]},"93":{"position":[[287,11]]},"97":{"position":[[1451,11]]},"111":{"position":[[195,11]]},"113":{"position":[[968,11]]}}}],["app.screen.height",{"_index":124,"t":{"39":{"position":[[2078,18],[3369,18],[3648,18],[3731,18],[3887,17]]},"47":{"position":[[1710,18],[2577,17]]},"51":{"position":[[547,17]]},"55":{"position":[[806,17]]},"57":{"position":[[1049,17],[1724,17]]},"59":{"position":[[775,17],[936,17]]},"61":{"position":[[625,17]]},"63":{"position":[[297,18],[895,19],[1693,17]]},"67":{"position":[[613,17]]},"69":{"position":[[813,18],[1560,17]]},"71":{"position":[[726,18],[1545,17]]},"73":{"position":[[408,17]]},"75":{"position":[[425,17]]},"77":{"position":[[625,18]]},"79":{"position":[[466,19]]},"85":{"position":[[289,18]]},"89":{"position":[[469,17]]},"91":{"position":[[3974,19]]},"93":{"position":[[169,18]]},"95":{"position":[[289,18]]},"97":{"position":[[357,18],[1264,17]]},"101":{"position":[[256,18]]},"103":{"position":[[286,17],[452,17],[1355,17]]},"105":{"position":[[337,17],[1515,18]]},"113":{"position":[[439,18]]},"117":{"position":[[303,17],[440,17],[1119,17],[1475,17]]},"147":{"position":[[791,17]]},"149":{"position":[[744,17],[988,17]]},"151":{"position":[[640,18]]},"153":{"position":[[801,17]]},"155":{"position":[[410,17]]},"157":{"position":[[574,17]]},"159":{"position":[[446,18]]},"163":{"position":[[464,18],[1459,18]]},"175":{"position":[[179,18]]},"179":{"position":[[1063,17],[1144,17]]}}}],["app.screen.width",{"_index":179,"t":{"39":{"position":[[3240,17],[3581,17],[3829,17]]},"47":{"position":[[1917,17],[2049,17]]},"51":{"position":[[515,16]]},"55":{"position":[[770,16]]},"57":{"position":[[1016,16],[1691,16]]},"59":{"position":[[739,16],[903,16]]},"61":{"position":[[593,16]]},"63":{"position":[[259,17],[840,18],[1651,16]]},"67":{"position":[[577,16]]},"69":{"position":[[770,17],[1518,16]]},"71":{"position":[[683,17],[1503,16]]},"73":{"position":[[376,16]]},"75":{"position":[[392,16]]},"77":{"position":[[587,17]]},"79":{"position":[[420,18]]},"85":{"position":[[251,17]]},"91":{"position":[[3956,17]]},"93":{"position":[[207,17]]},"95":{"position":[[251,17]]},"97":{"position":[[319,17],[1240,16]]},"101":{"position":[[226,17],[416,17],[616,17]]},"103":{"position":[[257,16],[416,16]]},"105":{"position":[[305,16],[1485,17]]},"113":{"position":[[401,17]]},"117":{"position":[[274,16],[404,16],[1087,16]]},"147":{"position":[[755,16]]},"149":{"position":[[698,17],[942,17]]},"151":{"position":[[592,17]]},"153":{"position":[[770,16]]},"155":{"position":[[378,16]]},"157":{"position":[[538,16]]},"159":{"position":[[428,17]]},"163":{"position":[[414,17],[1420,17]]},"175":{"position":[[153,17]]},"179":{"position":[[1020,16],[1104,16]]}}}],["app.stage",{"_index":334,"t":{"43":{"position":[[1051,9]]},"87":{"position":[[1673,11]]},"105":{"position":[[1574,9]]}}}],["app.stage.addchild",{"_index":333,"t":{"43":{"position":[[916,19]]},"81":{"position":[[2836,19]]}}}],["app.stage.addchild(aliencontainer",{"_index":1083,"t":{"65":{"position":[[581,35]]}}}],["app.stage.addchild(anim",{"_index":2536,"t":{"153":{"position":[[886,25]]}}}],["app.stage.addchild(arc",{"_index":2043,"t":{"109":{"position":[[1416,24]]}}}],["app.stage.addchild(arc2",{"_index":2049,"t":{"109":{"position":[[1578,25]]}}}],["app.stage.addchild(arc3",{"_index":2055,"t":{"109":{"position":[[1774,25]]}}}],["app.stage.addchild(background",{"_index":1012,"t":{"63":{"position":[[316,31]]},"77":{"position":[[674,31]]},"85":{"position":[[338,31]]},"95":{"position":[[308,31]]},"97":{"position":[[376,31]]},"113":{"position":[[350,31]]}}}],["app.stage.addchild(basictext",{"_index":2634,"t":{"167":{"position":[[241,30]]}}}],["app.stage.addchild(beatifulrect",{"_index":2076,"t":{"109":{"position":[[2392,33]]}}}],["app.stage.addchild(bezier",{"_index":2022,"t":{"109":{"position":[[732,27]]}}}],["app.stage.addchild(bezier2",{"_index":2038,"t":{"109":{"position":[[1263,28]]}}}],["app.stage.addchild(bg",{"_index":1872,"t":{"101":{"position":[[275,23]]},"117":{"position":[[326,23]]},"119":{"position":[[229,23]]}}}],["app.stage.addchild(bitmapfonttext",{"_index":2568,"t":{"161":{"position":[[422,35]]}}}],["app.stage.addchild(bottom",{"_index":540,"t":{"47":{"position":[[2935,27]]}}}],["app.stage.addchild(bunny",{"_index":721,"t":{"51":{"position":[[570,26]]},"61":{"position":[[648,26]]},"73":{"position":[[431,26]]},"79":{"position":[[1174,26]]},"155":{"position":[[433,26]]}}}],["app.stage.addchild(button",{"_index":1243,"t":{"77":{"position":[[1563,27]]},"85":{"position":[[1658,27]]},"163":{"position":[[619,27]]}}}],["app.stage.addchild(character",{"_index":933,"t":{"55":{"position":[[891,30]]},"157":{"position":[[597,30]]}}}],["app.stage.addchild(combinequad",{"_index":2372,"t":{"127":{"position":[[5376,32]]}}}],["app.stage.addchild(container",{"_index":727,"t":{"53":{"position":[[388,30],[2366,30],[3280,30],[4321,30],[7499,30]]},"67":{"position":[[189,30]]},"97":{"position":[[1290,30]]},"103":{"position":[[999,30]]},"105":{"position":[[198,30]]},"107":{"position":[[198,30]]},"117":{"position":[[953,30]]},"147":{"position":[[367,30]]},"177":{"position":[[189,30]]}}}],["app.stage.addchild(coordinates",{"_index":1633,"t":{"91":{"position":[[5020,32]]}}}],["app.stage.addchild(description",{"_index":1646,"t":{"91":{"position":[[5592,32]]}}}],["app.stage.addchild(displacementsprite",{"_index":1953,"t":{"105":{"position":[[1065,39]]},"107":{"position":[[753,39]]}}}],["app.stage.addchild(dude",{"_index":1048,"t":{"63":{"position":[[1467,25]]},"71":{"position":[[1320,25]]},"179":{"position":[[1487,25]]}}}],["app.stage.addchild(egg",{"_index":1005,"t":{"59":{"position":[[959,24]]}}}],["app.stage.addchild(explosion",{"_index":2514,"t":{"151":{"position":[[828,30]]}}}],["app.stage.addchild(fast",{"_index":2500,"t":{"149":{"position":[[1024,25]]}}}],["app.stage.addchild(flower",{"_index":998,"t":{"59":{"position":[[798,27]]}}}],["app.stage.addchild(focus",{"_index":2138,"t":{"113":{"position":[[864,26]]}}}],["app.stage.addchild(g",{"_index":2433,"t":{"135":{"position":[[500,22]]}}}],["app.stage.addchild(goback",{"_index":979,"t":{"57":{"position":[[1747,27]]}}}],["app.stage.addchild(gonext",{"_index":960,"t":{"57":{"position":[[1072,27]]}}}],["app.stage.addchild(graphics",{"_index":2109,"t":{"111":{"position":[[1245,29]]},"115":{"position":[[2407,29]]}}}],["app.stage.addchild(gridcontainer",{"_index":2368,"t":{"127":{"position":[[5233,34]]}}}],["app.stage.addchild(help",{"_index":1918,"t":{"103":{"position":[[1392,25]]},"117":{"position":[[1512,25]]}}}],["app.stage.addchild(littledudes",{"_index":1878,"t":{"101":{"position":[[467,32]]}}}],["app.stage.addchild(littlerobot",{"_index":1883,"t":{"101":{"position":[[667,32]]}}}],["app.stage.addchild(mask",{"_index":2198,"t":{"119":{"position":[[489,24]]}}}],["app.stage.addchild(new",{"_index":1405,"t":{"87":{"position":[[239,22],[478,22],[635,22]]},"89":{"position":[[278,22]]},"91":{"position":[[3310,22]]}}}],["app.stage.addchild(noisecontainer",{"_index":2370,"t":{"127":{"position":[[5305,35]]}}}],["app.stage.addchild(outputsprite",{"_index":2774,"t":{"175":{"position":[[688,33]]}}}],["app.stage.addchild(pixi.sprite.from('https://pixijs.com/assets/bunny.png",{"_index":1665,"t":{"93":{"position":[[948,76]]}}}],["app.stage.addchild(plane",{"_index":1380,"t":{"83":{"position":[[311,26]]}}}],["app.stage.addchild(quad",{"_index":2229,"t":{"121":{"position":[[1134,25]]},"125":{"position":[[1527,25]]},"129":{"position":[[2849,25]]},"145":{"position":[[1277,25]]}}}],["app.stage.addchild(realpath",{"_index":2015,"t":{"109":{"position":[[532,29]]}}}],["app.stage.addchild(realpath2",{"_index":2031,"t":{"109":{"position":[[1025,30]]}}}],["app.stage.addchild(rectandhole",{"_index":2070,"t":{"109":{"position":[[2116,32]]}}}],["app.stage.addchild(redsquare",{"_index":235,"t":{"39":{"position":[[5641,29]]}}}],["app.stage.addchild(reelcontainer",{"_index":480,"t":{"47":{"position":[[1604,34]]}}}],["app.stage.addchild(richtext",{"_index":2643,"t":{"167":{"position":[[776,29]]}}}],["app.stage.addchild(ring",{"_index":1961,"t":{"105":{"position":[[1377,25]]}}}],["app.stage.addchild(ripplecontainer",{"_index":2369,"t":{"127":{"position":[[5268,36]]}}}],["app.stage.addchild(rope",{"_index":260,"t":{"41":{"position":[[806,25]]}}}],["app.stage.addchild(screenshottext",{"_index":423,"t":{"45":{"position":[[1325,34]]}}}],["app.stage.addchild(skewtext",{"_index":2656,"t":{"167":{"position":[[1276,29]]}}}],["app.stage.addchild(slider",{"_index":1662,"t":{"93":{"position":[[820,27]]}}}],["app.stage.addchild(slow",{"_index":2493,"t":{"149":{"position":[[780,25]]}}}],["app.stage.addchild(snakecontainer",{"_index":2458,"t":{"137":{"position":[[535,35]]}}}],["app.stage.addchild(sprite",{"_index":1197,"t":{"75":{"position":[[793,27]]},"171":{"position":[[1047,27]]},"173":{"position":[[2069,27]]},"177":{"position":[[685,27]]}}}],["app.stage.addchild(sprites",{"_index":1131,"t":{"69":{"position":[[251,28]]}}}],["app.stage.addchild(star.sprite",{"_index":664,"t":{"49":{"position":[[633,32]]}}}],["app.stage.addchild(strip",{"_index":2429,"t":{"135":{"position":[[412,26]]}}}],["app.stage.addchild(stuffcontainer",{"_index":2778,"t":{"175":{"position":[[815,35]]}}}],["app.stage.addchild(text",{"_index":1776,"t":{"99":{"position":[[700,25]]},"179":{"position":[[1695,25]]}}}],["app.stage.addchild(text1",{"_index":2626,"t":{"165":{"position":[[1040,26]]}}}],["app.stage.addchild(text2",{"_index":2627,"t":{"165":{"position":[[1067,26]]}}}],["app.stage.addchild(text3",{"_index":2628,"t":{"165":{"position":[[1094,26]]}}}],["app.stage.addchild(text4",{"_index":2629,"t":{"165":{"position":[[1121,26]]}}}],["app.stage.addchild(textsample",{"_index":2683,"t":{"169":{"position":[[952,31]]}}}],["app.stage.addchild(thing",{"_index":2111,"t":{"111":{"position":[[1341,26]]},"117":{"position":[[1050,26]]}}}],["app.stage.addchild(tilingsprite",{"_index":2552,"t":{"159":{"position":[[468,33]]}}}],["app.stage.addchild(title",{"_index":1672,"t":{"93":{"position":[[1443,26]]}}}],["app.stage.addchild(top",{"_index":539,"t":{"47":{"position":[[2910,24]]}}}],["app.stage.addchild(triangle",{"_index":2460,"t":{"139":{"position":[[672,29]]},"141":{"position":[[992,29]]},"143":{"position":[[1414,29]]}}}],["app.stage.addchild(triangle2",{"_index":2407,"t":{"131":{"position":[[1807,29]]}}}],["app.stage.addchild(triangle3",{"_index":2421,"t":{"133":{"position":[[1526,29]]}}}],["app.stage.addchild(triangles",{"_index":2250,"t":{"123":{"position":[[1492,30]]}}}],["app.stage.addchild(videosprite",{"_index":2607,"t":{"163":{"position":[[1478,32]]}}}],["app.stage.addchild(wavecontainer",{"_index":2371,"t":{"127":{"position":[[5341,34]]}}}],["app.stage.addeventlistener('pointermove",{"_index":1465,"t":{"89":{"position":[[676,41]]},"93":{"position":[[1585,41]]}}}],["app.stage.eventmode",{"_index":147,"t":{"39":{"position":[[2547,19]]},"41":{"position":[[858,19]]},"43":{"position":[[987,19]]},"45":{"position":[[522,19]]},"65":{"position":[[549,19]]},"79":{"position":[[1226,19]]},"87":{"position":[[998,19]]},"89":{"position":[[518,19]]},"93":{"position":[[1553,19],[1717,19]]},"97":{"position":[[1463,19]]},"103":{"position":[[126,19]]},"105":{"position":[[126,19]]},"107":{"position":[[126,19]]},"111":{"position":[[143,19]]},"113":{"position":[[916,19]]},"117":{"position":[[143,19]]},"119":{"position":[[126,19]]}}}],["app.stage.filterarea",{"_index":1863,"t":{"99":{"position":[[2851,20]]}}}],["app.stage.filters",{"_index":1865,"t":{"99":{"position":[[2895,17]]},"103":{"position":[[1030,17],[1150,17]]}}}],["app.stage.hitarea",{"_index":149,"t":{"39":{"position":[[2579,17]]},"41":{"position":[[890,17]]},"43":{"position":[[1019,17]]},"45":{"position":[[554,17]]},"79":{"position":[[1258,17]]},"87":{"position":[[1030,17]]},"89":{"position":[[622,17]]},"93":{"position":[[267,17]]},"97":{"position":[[1431,17]]},"111":{"position":[[175,17]]},"113":{"position":[[948,17]]}}}],["app.stage.name",{"_index":1419,"t":{"87":{"position":[[567,14]]}}}],["app.stage.off('pointermove",{"_index":1293,"t":{"79":{"position":[[1804,28]]}}}],["app.stage.on('mousemove",{"_index":151,"t":{"39":{"position":[[2611,25]]},"41":{"position":[[922,25]]}}}],["app.stage.on('pointerdown",{"_index":390,"t":{"45":{"position":[[586,27]]},"111":{"position":[[1487,27]]}}}],["app.stage.on('pointermove",{"_index":1291,"t":{"79":{"position":[[1720,27]]},"97":{"position":[[1495,27]]},"113":{"position":[[980,27]]}}}],["app.stage.on('pointertap",{"_index":1102,"t":{"65":{"position":[[1123,26]]},"103":{"position":[[1095,26]]},"117":{"position":[[1201,26]]}}}],["app.stage.on('pointerup",{"_index":1277,"t":{"79":{"position":[[1290,25]]}}}],["app.stage.on('pointerupoutside",{"_index":1279,"t":{"79":{"position":[[1328,32]]}}}],["app.stage.removeeventlistener('pointermove",{"_index":1679,"t":{"93":{"position":[[1747,44]]}}}],["app.start",{"_index":389,"t":{"45":{"position":[[507,12]]},"65":{"position":[[1067,12]]},"95":{"position":[[907,12]]},"149":{"position":[[1069,12]]},"151":{"position":[[880,12]]}}}],["app.stop",{"_index":379,"t":{"45":{"position":[[304,11]]},"65":{"position":[[126,11]]},"95":{"position":[[384,11]]}}}],["app.ticker.add",{"_index":265,"t":{"41":{"position":[[1111,17]]},"63":{"position":[[1739,17]]},"65":{"position":[[1245,17]]},"69":{"position":[[1620,17]]},"71":{"position":[[1589,17]]},"73":{"position":[[458,17]]},"83":{"position":[[483,17]]},"101":{"position":[[891,17]]},"105":{"position":[[1864,17]]},"107":{"position":[[896,17]]},"111":{"position":[[1808,17]]},"117":{"position":[[1538,17]]},"119":{"position":[[673,17]]},"135":{"position":[[542,17]]},"137":{"position":[[603,17]]},"153":{"position":[[936,17]]},"157":{"position":[[870,17]]},"159":{"position":[[517,17]]},"175":{"position":[[1665,17]]},"177":{"position":[[1043,17]]}}}],["app.ticker.add((delta",{"_index":160,"t":{"39":{"position":[[2747,22]]},"45":{"position":[[968,22]]},"47":{"position":[[3620,22],[4978,22]]},"49":{"position":[[1180,22]]},"53":{"position":[[8360,22]]},"67":{"position":[[802,22]]},"95":{"position":[[944,22]]},"99":{"position":[[2955,22]]},"103":{"position":[[1418,22]]},"121":{"position":[[1160,22]]},"123":{"position":[[1523,22]]},"125":{"position":[[1553,22]]},"127":{"position":[[5448,22]]},"129":{"position":[[2914,22]]},"131":{"position":[[1848,22]]},"133":{"position":[[1578,22]]},"139":{"position":[[702,22]]},"141":{"position":[[1022,22]]},"143":{"position":[[1444,22]]},"145":{"position":[[1363,22]]},"147":{"position":[[980,22]]},"155":{"position":[[489,22]]}}}],["appears",{"_index":1264,"t":{"79":{"position":[[767,7]]}}}],["application",{"_index":1692,"t":{"95":{"position":[[348,11],[888,11]]},"99":{"position":[[852,11]]}}}],["applied",{"_index":161,"t":{"39":{"position":[[2778,7]]}}}],["apply",{"_index":1511,"t":{"91":{"position":[[1174,5],[1272,5]]}}}],["arc",{"_index":2039,"t":{"109":{"position":[[1298,3],[1313,3],[1447,3],[1610,3]]}}}],["arc.arc(600",{"_index":2042,"t":{"109":{"position":[[1371,12]]}}}],["arc.linestyle(5",{"_index":2040,"t":{"109":{"position":[[1340,16]]}}}],["arc2",{"_index":2044,"t":{"109":{"position":[[1464,4]]}}}],["arc2.arc(650",{"_index":2047,"t":{"109":{"position":[[1524,13]]}}}],["arc2.linestyle(6",{"_index":2045,"t":{"109":{"position":[[1492,17]]}}}],["arc3",{"_index":2050,"t":{"109":{"position":[[1627,4]]}}}],["arc3.arc(650",{"_index":2052,"t":{"109":{"position":[[1718,13]]}}}],["arc3.linetexturestyle",{"_index":2051,"t":{"109":{"position":[[1655,23]]}}}],["arcradius",{"_index":811,"t":{"53":{"position":[[4376,9],[4751,11],[4995,11]]}}}],["area",{"_index":468,"t":{"47":{"position":[[1342,5]]},"81":{"position":[[1108,4],[1585,4],[2523,6],[2744,6]]},"89":{"position":[[580,4]]},"91":{"position":[[4006,4]]}}}],["areas",{"_index":1336,"t":{"81":{"position":[[1679,5]]}}}],["arguments",{"_index":1701,"t":{"95":{"position":[[593,10]]}}}],["arial",{"_index":494,"t":{"47":{"position":[[2140,8]]},"103":{"position":[[1284,8]]},"117":{"position":[[1404,8]]},"167":{"position":[[319,8],[857,8]]}}}],["around",{"_index":133,"t":{"39":{"position":[[2281,6]]},"105":{"position":[[2258,6]]}}}],["arr",{"_index":288,"t":{"41":{"position":[[1739,4]]}}}],["arr.length",{"_index":290,"t":{"41":{"position":[[1772,10],[1792,10]]}}}],["arr[k",{"_index":291,"t":{"41":{"position":[[1815,7]]}}}],["array",{"_index":252,"t":{"41":{"position":[[489,6],[1856,6],[1899,6],[1925,7],[2107,7],[2148,8],[2181,7],[2206,8]]},"63":{"position":[[361,5]]},"69":{"position":[[293,5],[1266,5]]},"71":{"position":[[1257,5]]},"77":{"position":[[1608,5]]},"85":{"position":[[1703,5]]},"149":{"position":[[255,5]]},"151":{"position":[[236,5]]},"153":{"position":[[246,5]]},"175":{"position":[[864,5],[1286,5]]}}}],["article",{"_index":13,"t":{"39":{"position":[[59,7]]}}}],["asset",{"_index":918,"t":{"55":{"position":[[462,5],[498,5]]}}}],["assets",{"_index":815,"t":{"53":{"position":[[4544,6]]},"55":{"position":[[160,6],[330,6]]},"57":{"position":[[252,7],[364,7],[687,6],[1301,6],[1407,6]]},"59":{"position":[[160,6],[329,6]]}}}],["async",{"_index":377,"t":{"45":{"position":[[270,5]]},"51":{"position":[[185,5],[200,5],[612,5]]},"55":{"position":[[949,5]]},"57":{"position":[[149,5],[642,5],[1180,5],[1236,5],[1855,5]]}}}],["attribute",{"_index":2205,"t":{"121":{"position":[[203,9],[310,9],[349,9],[436,9],[550,9],[582,9]]},"123":{"position":[[1030,9],[1052,9],[1074,9]]},"125":{"position":[[203,9],[310,9],[349,9],[436,9],[555,9],[669,9],[708,9],[789,9],[942,9],[974,9]]},"127":{"position":[[235,9],[330,9],[369,9],[456,9],[592,9],[624,9]]},"129":{"position":[[222,9],[329,9],[368,9],[455,9],[541,9],[573,9]]},"131":{"position":[[203,9],[306,9],[425,9],[457,9],[974,9],[1006,9]]},"133":{"position":[[203,9],[299,9],[338,9],[420,9],[491,9],[523,9]]},"139":{"position":[[287,9]]},"141":{"position":[[203,9],[299,9],[340,9],[440,9],[509,9],[541,9]]},"143":{"position":[[203,9],[299,9],[340,9],[439,9],[478,9],[560,9],[615,9],[647,9],[670,9]]},"145":{"position":[[203,9],[310,9],[349,9],[436,9],[522,9],[554,9]]}}}],["audio",{"_index":2593,"t":{"163":{"position":[[961,5],[991,5]]}}}],["auto",{"_index":1678,"t":{"93":{"position":[[1739,7]]}}}],["autostart",{"_index":2475,"t":{"149":{"position":[[68,10]]},"151":{"position":[[68,10]]}}}],["auvs",{"_index":2213,"t":{"121":{"position":[[597,5],[706,5]]},"125":{"position":[[989,5],[1098,5]]},"127":{"position":[[639,5],[748,5]]},"129":{"position":[[588,5],[697,5]]},"131":{"position":[[472,5],[581,5],[1021,5],[1130,5]]},"133":{"position":[[538,5],[647,5]]},"143":{"position":[[685,5],[815,5]]},"145":{"position":[[569,5],[678,5]]}}}],["auxiliar",{"_index":922,"t":{"55":{"position":[[568,8]]}}}],["avertexposition",{"_index":2212,"t":{"121":{"position":[[565,16]]},"125":{"position":[[957,16]]},"127":{"position":[[607,16]]},"129":{"position":[[556,16]]},"131":{"position":[[440,16],[989,16]]},"133":{"position":[[506,16]]},"139":{"position":[[302,16]]},"141":{"position":[[524,16]]},"143":{"position":[[630,16]]},"145":{"position":[[537,16]]}}}],["avoid",{"_index":2756,"t":{"173":{"position":[[1738,5]]},"179":{"position":[[754,5]]}}}],["avpos",{"_index":2244,"t":{"123":{"position":[[1045,6]]}}}],["await",{"_index":380,"t":{"45":{"position":[[328,5]]},"51":{"position":[[152,5],[240,5]]},"55":{"position":[[1059,5]]},"57":{"position":[[453,5],[820,5],[1497,5]]}}}],["awaited",{"_index":716,"t":{"51":{"position":[[335,7]]}}}],["away",{"_index":212,"t":{"39":{"position":[[4548,4]]},"49":{"position":[[2286,4]]},"61":{"position":[[172,4]]}}}],["axes",{"_index":1579,"t":{"91":{"position":[[3365,5]]}}}],["axis",{"_index":706,"t":{"49":{"position":[[2153,4]]}}}],["b",{"_index":113,"t":{"39":{"position":[[1882,1],[1920,3]]},"141":{"position":[[374,1],[394,1],[415,1]]},"143":{"position":[[374,1],[394,1],[415,1]]}}}],["b.scale.set(math.abs(sin",{"_index":798,"t":{"53":{"position":[[3033,24]]}}}],["back",{"_index":185,"t":{"39":{"position":[[3513,4]]},"57":{"position":[[1906,4]]},"153":{"position":[[538,4]]}}}],["background",{"_index":29,"t":{"39":{"position":[[244,11]]},"41":{"position":[[68,11]]},"43":{"position":[[619,10],[936,11]]},"47":{"position":[[68,11]]},"51":{"position":[[68,11]]},"53":{"position":[[68,11]]},"55":{"position":[[68,11],[352,10],[427,10]]},"57":{"position":[[68,11],[540,10]]},"59":{"position":[[68,11]]},"61":{"position":[[68,11]]},"63":{"position":[[142,10],[166,10]]},"67":{"position":[[68,11]]},"75":{"position":[[68,11]]},"77":{"position":[[68,11],[474,13],[494,10],[651,10]]},"79":{"position":[[68,11]]},"81":{"position":[[78,11]]},"83":{"position":[[68,11]]},"85":{"position":[[138,13],[158,10],[315,10]]},"87":{"position":[[161,11]]},"89":{"position":[[178,11]]},"91":{"position":[[300,11]]},"93":{"position":[[85,11]]},"95":{"position":[[136,10],[159,10]]},"97":{"position":[[204,10],[227,10]]},"99":{"position":[[340,11]]},"113":{"position":[[306,10]]},"147":{"position":[[249,11]]},"153":{"position":[[68,11]]},"155":{"position":[[68,11]]},"157":{"position":[[68,11]]},"161":{"position":[[68,11]]},"165":{"position":[[68,11]]},"167":{"position":[[68,11]]},"169":{"position":[[68,11]]},"177":{"position":[[68,11]]}}}],["background.filters",{"_index":1711,"t":{"95":{"position":[[847,18]]}}}],["background.height",{"_index":1011,"t":{"63":{"position":[[277,17]]},"77":{"position":[[605,17]]},"85":{"position":[[269,17]]},"95":{"position":[[269,17]]},"97":{"position":[[337,17]]},"113":{"position":[[419,17]]}}}],["background.mask",{"_index":2139,"t":{"113":{"position":[[891,15]]}}}],["background.width",{"_index":1010,"t":{"63":{"position":[[240,16]]},"77":{"position":[[568,16]]},"85":{"position":[[232,16]]},"95":{"position":[[232,16]]},"97":{"position":[[300,16]]},"113":{"position":[[382,16]]}}}],["backgroundalpha",{"_index":1167,"t":{"73":{"position":[[68,16]]},"163":{"position":[[68,16]]}}}],["backgroundcolor",{"_index":373,"t":{"45":{"position":[[68,16]]}}}],["backout",{"_index":640,"t":{"47":{"position":[[5559,7]]}}}],["backout(0.5",{"_index":561,"t":{"47":{"position":[[3449,13]]}}}],["backout(amount",{"_index":643,"t":{"47":{"position":[[5670,15]]}}}],["ball",{"_index":782,"t":{"53":{"position":[[2500,4],[2885,4]]}}}],["ball.anchor.set(0.5",{"_index":784,"t":{"53":{"position":[[2565,21]]}}}],["ball.position.set",{"_index":786,"t":{"53":{"position":[[2613,18]]}}}],["ballamount",{"_index":780,"t":{"53":{"position":[[2421,10],[2475,11],[2656,10],[2718,10],[2948,10]]}}}],["balls",{"_index":778,"t":{"53":{"position":[[2221,6],[2443,5]]}}}],["balls.foreach((b",{"_index":791,"t":{"53":{"position":[[2897,17]]}}}],["balls.push(ball",{"_index":789,"t":{"53":{"position":[[2759,17]]}}}],["base",{"_index":728,"t":{"53":{"position":[[425,4],[3317,4],[4398,4]]}}}],["base.height",{"_index":732,"t":{"53":{"position":[[536,11],[3428,11],[4491,11]]}}}],["base.mask",{"_index":738,"t":{"53":{"position":[[748,9],[3521,9],[4787,9]]}}}],["base.width",{"_index":731,"t":{"53":{"position":[[517,10],[3409,10],[4472,10]]}}}],["based",{"_index":11,"t":{"39":{"position":[[36,5]]},"41":{"position":[[1668,5]]},"47":{"position":[[3761,5]]},"99":{"position":[[899,8]]},"129":{"position":[[831,7]]},"147":{"position":[[56,5]]}}}],["basespeed",{"_index":651,"t":{"49":{"position":[[296,9],[1363,11]]}}}],["basetexture",{"_index":2730,"t":{"173":{"position":[[448,12],[522,12],[1718,11]]}}}],["basetexture.format",{"_index":2751,"t":{"173":{"position":[[1433,19],[1453,19]]}}}],["basetexture.premultiplyalpha",{"_index":2749,"t":{"173":{"position":[[1365,30]]}}}],["basetexture.type",{"_index":2752,"t":{"173":{"position":[[1473,17]]}}}],["basetextures",{"_index":2758,"t":{"173":{"position":[[1790,12]]}}}],["basic",{"_index":52,"t":{"39":{"position":[[516,5]]},"47":{"position":[[5477,5]]}}}],["basic/container",{"_index":2468,"t":{"147":{"position":[[65,16]]}}}],["basically",{"_index":830,"t":{"53":{"position":[[5053,9]]}}}],["basictext",{"_index":2630,"t":{"167":{"position":[[155,9]]}}}],["basictext.x",{"_index":2632,"t":{"167":{"position":[[204,11]]}}}],["basictext.y",{"_index":2633,"t":{"167":{"position":[[222,11]]}}}],["bc",{"_index":1848,"t":{"99":{"position":[[2365,2],[2477,4]]},"129":{"position":[[2213,2],[2325,4]]}}}],["beatifulrect",{"_index":2071,"t":{"109":{"position":[[2185,12]]}}}],["beatifulrect.beginfill(0xff0000",{"_index":2073,"t":{"109":{"position":[[2292,33]]}}}],["beatifulrect.drawrect(80",{"_index":2074,"t":{"109":{"position":[[2326,25]]}}}],["beatifulrect.endfill",{"_index":2075,"t":{"109":{"position":[[2368,23]]}}}],["beatifulrect.linetexturestyle",{"_index":2072,"t":{"109":{"position":[[2221,31]]}}}],["become",{"_index":2820,"t":{"177":{"position":[[822,6]]}}}],["before",{"_index":844,"t":{"53":{"position":[[6275,6]]},"95":{"position":[[773,6]]},"169":{"position":[[175,6]]},"175":{"position":[[2149,6]]}}}],["beginfill(0",{"_index":1424,"t":{"87":{"position":[[674,13]]}}}],["beginfill(0x0",{"_index":2571,"t":{"163":{"position":[[241,15]]}}}],["beginfill(0x272d37",{"_index":1652,"t":{"93":{"position":[[378,20]]}}}],["beginfill(0xff0000",{"_index":2131,"t":{"113":{"position":[[493,20]]}}}],["beginfill(0xffffff",{"_index":309,"t":{"43":{"position":[[210,20]]},"81":{"position":[[1303,20],[1828,20]]},"87":{"position":[[869,20]]},"89":{"position":[[317,20]]},"91":{"position":[[3622,20]]},"93":{"position":[[560,20]]},"163":{"position":[[310,20]]}}}],["being",{"_index":1159,"t":{"71":{"position":[[536,5]]}}}],["best",{"_index":1845,"t":{"99":{"position":[[2321,4]]},"129":{"position":[[2169,4]]}}}],["better",{"_index":565,"t":{"47":{"position":[[3794,6]]},"53":{"position":[[4518,6],[4571,6]]},"171":{"position":[[345,6]]}}}],["between",{"_index":46,"t":{"39":{"position":[[451,7],[533,7],[1784,7],[4146,7],[5032,7]]},"63":{"position":[[1310,7]]},"69":{"position":[[1098,7]]},"71":{"position":[[902,7],[1163,7]]},"93":{"position":[[2157,7]]}}}],["bezier",{"_index":2004,"t":{"109":{"position":[[225,6],[568,6],[766,6]]}}}],["bezier.beziercurveto(100",{"_index":2018,"t":{"109":{"position":[[632,25]]}}}],["bezier.linestyle(5",{"_index":2016,"t":{"109":{"position":[[598,19]]}}}],["bezier.position.x",{"_index":2020,"t":{"109":{"position":[[684,17]]}}}],["bezier.position.y",{"_index":2021,"t":{"109":{"position":[[708,17]]}}}],["bezier2",{"_index":2032,"t":{"109":{"position":[[1062,7]]}}}],["bezier2.beziercurveto(0",{"_index":2035,"t":{"109":{"position":[[1159,24]]}}}],["bezier2.linetexturestyle",{"_index":2033,"t":{"109":{"position":[[1093,26]]}}}],["bezier2.position.x",{"_index":2036,"t":{"109":{"position":[[1211,18]]}}}],["bezier2.position.y",{"_index":2037,"t":{"109":{"position":[[1237,18]]}}}],["bg",{"_index":1867,"t":{"101":{"position":[[132,2]]},"103":{"position":[[164,2]]},"105":{"position":[[1409,2]]},"117":{"position":[[181,2]]},"119":{"position":[[164,2]]}}}],["bg.alpha",{"_index":1962,"t":{"105":{"position":[[1534,8]]}}}],["bg.anchor.set(0.5",{"_index":1894,"t":{"103":{"position":[[230,19]]},"117":{"position":[[247,19]]}}}],["bg.height",{"_index":1871,"t":{"101":{"position":[[244,9]]},"105":{"position":[[1503,9]]}}}],["bg.rotation",{"_index":1919,"t":{"103":{"position":[[1446,11]]},"117":{"position":[[1561,11]]}}}],["bg.width",{"_index":1870,"t":{"101":{"position":[[215,8]]},"105":{"position":[[1474,8]]}}}],["bg.x",{"_index":1895,"t":{"103":{"position":[[250,4]]},"117":{"position":[[267,4]]}}}],["bg.y",{"_index":1896,"t":{"103":{"position":[[279,4]]},"117":{"position":[[296,4]]}}}],["bgfront",{"_index":1898,"t":{"103":{"position":[[481,7]]},"117":{"position":[[495,7]]}}}],["bgfront.anchor.set(0.5",{"_index":1899,"t":{"103":{"position":[[558,24]]},"117":{"position":[[572,24]]}}}],["bgfront.rotation",{"_index":1920,"t":{"103":{"position":[[1467,16]]},"117":{"position":[[1582,16]]}}}],["big",{"_index":2693,"t":{"171":{"position":[[374,3]]}}}],["bigger",{"_index":1268,"t":{"79":{"position":[[921,7]]}}}],["bit",{"_index":352,"t":{"43":{"position":[[1450,3]]},"63":{"position":[[932,3]]},"65":{"position":[[1304,3]]},"79":{"position":[[917,3]]},"83":{"position":[[543,3]]}}}],["bitmap",{"_index":2561,"t":{"161":{"position":[[276,7]]}}}],["bitmapfonttext",{"_index":2559,"t":{"161":{"position":[[238,14]]}}}],["bitmapfonttext.x",{"_index":2566,"t":{"161":{"position":[[375,16]]}}}],["bitmapfonttext.y",{"_index":2567,"t":{"161":{"position":[[398,16]]}}}],["black",{"_index":1422,"t":{"87":{"position":[[608,5],[743,6]]}}}],["blackbox",{"_index":1423,"t":{"87":{"position":[[624,8]]}}}],["blackbox.addchild(new",{"_index":1430,"t":{"87":{"position":[[831,21]]}}}],["blackbox.eventmode",{"_index":1435,"t":{"87":{"position":[[1093,18]]}}}],["blackbox.name",{"_index":1426,"t":{"87":{"position":[[727,13]]}}}],["blackbox.x",{"_index":1427,"t":{"87":{"position":[[756,10]]}}}],["blackbox].foreach((object",{"_index":1451,"t":{"87":{"position":[[1695,26]]}}}],["blend",{"_index":1032,"t":{"63":{"position":[[988,5]]},"97":{"position":[[1012,5]]}}}],["blendmode",{"_index":257,"t":{"41":{"position":[[757,9]]}}}],["blur",{"_index":455,"t":{"47":{"position":[[1054,5],[3740,4],[3843,4]]},"113":{"position":[[183,4]]}}}],["bluramount",{"_index":1889,"t":{"101":{"position":[[936,10],[1027,13]]}}}],["bluramount2",{"_index":1891,"t":{"101":{"position":[[972,11],[1065,14]]}}}],["blurfilter1",{"_index":1884,"t":{"101":{"position":[[706,11],[824,14]]}}}],["blurfilter1.blur",{"_index":1892,"t":{"101":{"position":[[1003,16]]}}}],["blurfilter2",{"_index":1885,"t":{"101":{"position":[[757,11],[861,14]]}}}],["blurfilter2.blur",{"_index":1893,"t":{"101":{"position":[[1041,16]]}}}],["blursize",{"_index":2127,"t":{"113":{"position":[[201,8],[535,9],[554,9],[692,9],[717,9]]}}}],["bold",{"_index":500,"t":{"47":{"position":[[2196,7]]},"103":{"position":[[1319,7]]},"117":{"position":[[1439,7]]},"167":{"position":[[375,7]]}}}],["both",{"_index":163,"t":{"39":{"position":[[2805,4],[5188,4]]},"59":{"position":[[368,4]]},"65":{"position":[[1094,4]]}}}],["bottom",{"_index":482,"t":{"47":{"position":[[1654,6],[1950,6]]},"53":{"position":[[562,6],[1262,6],[1734,6],[1771,6],[5919,6],[6707,6],[6764,6]]}}}],["bottom.addchild(playtext",{"_index":527,"t":{"47":{"position":[[2650,26]]}}}],["bottom.addlistener('pointerdown",{"_index":544,"t":{"47":{"position":[[3045,33]]}}}],["bottom.beginfill(0",{"_index":490,"t":{"47":{"position":[[1980,19]]}}}],["bottom.cursor",{"_index":543,"t":{"47":{"position":[[3018,13]]}}}],["bottom.drawrect(0",{"_index":491,"t":{"47":{"position":[[2004,18]]}}}],["bottom.eventmode",{"_index":542,"t":{"47":{"position":[[2989,16]]}}}],["bottom.height",{"_index":735,"t":{"53":{"position":[[653,13]]}}}],["bottom.width",{"_index":734,"t":{"53":{"position":[[632,12]]}}}],["boundary",{"_index":1471,"t":{"91":{"position":[[114,8],[1025,8]]}}}],["bounding",{"_index":1049,"t":{"63":{"position":[[1507,8]]},"69":{"position":[[1368,8]]},"71":{"position":[[1360,8]]}}}],["bounds",{"_index":1063,"t":{"63":{"position":[[2112,9]]},"71":{"position":[[1957,9]]},"105":{"position":[[256,6]]},"113":{"position":[[648,6],[815,8]]}}}],["bounds.height",{"_index":1944,"t":{"105":{"position":[[723,14],[2447,14],[2495,14],[2524,14]]}}}],["bounds.width",{"_index":1942,"t":{"105":{"position":[[682,13],[2317,13],[2364,13],[2392,13]]}}}],["bounds.x",{"_index":1978,"t":{"105":{"position":[[2293,9],[2353,8]]}}}],["bounds.y",{"_index":1979,"t":{"105":{"position":[[2423,9],[2484,8]]}}}],["bounds1",{"_index":60,"t":{"39":{"position":[[610,7]]}}}],["bounds1.height",{"_index":72,"t":{"39":{"position":[[821,14]]}}}],["bounds1.width",{"_index":68,"t":{"39":{"position":[[738,13]]}}}],["bounds1.x",{"_index":65,"t":{"39":{"position":[[685,9],[726,9]]}}}],["bounds1.y",{"_index":69,"t":{"39":{"position":[[767,9],[809,9]]}}}],["bounds2",{"_index":62,"t":{"39":{"position":[[647,7]]}}}],["bounds2.height",{"_index":71,"t":{"39":{"position":[[791,14]]}}}],["bounds2.width",{"_index":67,"t":{"39":{"position":[[709,13]]}}}],["bounds2.x",{"_index":66,"t":{"39":{"position":[[697,9],[754,9]]}}}],["bounds2.y",{"_index":70,"t":{"39":{"position":[[779,9],[838,10]]}}}],["bourke",{"_index":887,"t":{"53":{"position":[[8523,6]]}}}],["box",{"_index":1050,"t":{"63":{"position":[[1516,3]]},"69":{"position":[[1377,3],[1381,3]]},"71":{"position":[[1369,3]]},"87":{"position":[[614,3],[750,5],[789,3],[956,5]]}}}],["boxes",{"_index":1408,"t":{"87":{"position":[[306,5]]}}}],["break",{"_index":762,"t":{"53":{"position":[[1648,6],[6575,6]]},"99":{"position":[[2482,6],[2507,6]]},"129":{"position":[[2330,6],[2355,6]]}}}],["bring",{"_index":1519,"t":{"91":{"position":[[1389,5]]}}}],["brings",{"_index":2523,"t":{"153":{"position":[[530,7]]}}}],["brt",{"_index":2812,"t":{"177":{"position":[[506,3]]}}}],["brush",{"_index":307,"t":{"43":{"position":[[170,5],[182,5]]}}}],["brush.position.set(x",{"_index":346,"t":{"43":{"position":[[1299,21]]}}}],["buffer",{"_index":1381,"t":{"83":{"position":[[349,6],[385,6]]},"123":{"position":[[321,6],[450,7],[572,7]]}}}],["buffer.data.length",{"_index":1386,"t":{"83":{"position":[[587,19]]}}}],["buffer.data[i",{"_index":1387,"t":{"83":{"position":[[614,14]]}}}],["buffer.data[instanceoffset",{"_index":2243,"t":{"123":{"position":[[780,26],[822,26],[871,26],[920,26]]}}}],["buffer.update",{"_index":1389,"t":{"83":{"position":[[668,16]]}}}],["buffers",{"_index":2804,"t":{"175":{"position":[[1823,7]]}}}],["build",{"_index":445,"t":{"47":{"position":[[785,5],[1165,5],[1642,5]]},"99":{"position":[[2761,5]]},"127":{"position":[[142,5]]},"129":{"position":[[129,5],[2657,5]]},"135":{"position":[[144,5]]},"137":{"position":[[144,5]]}}}],["builds",{"_index":436,"t":{"47":{"position":[[433,6]]}}}],["bunch",{"_index":1084,"t":{"65":{"position":[[654,5]]},"117":{"position":[[472,5]]}}}],["bundle",{"_index":949,"t":{"57":{"position":[[715,7],[733,6]]}}}],["bundles",{"_index":943,"t":{"57":{"position":[[219,8],[511,7]]}}}],["bunnies",{"_index":1115,"t":{"67":{"position":[[342,7]]},"147":{"position":[[520,7]]},"177":{"position":[[726,7],[814,7]]}}}],["bunny",{"_index":392,"t":{"45":{"position":[[668,5]]},"51":{"position":[[364,5]]},"61":{"position":[[434,5]]},"67":{"position":[[387,5],[646,5]]},"73":{"position":[[195,5]]},"79":{"position":[[541,5],[562,5],[610,5],[798,5],[1071,7]]},"93":{"position":[[880,5],[940,5],[1266,8]]},"147":{"position":[[565,5],[824,5]]},"155":{"position":[[197,5]]},"177":{"position":[[331,5]]}}}],["bunny's",{"_index":1267,"t":{"79":{"position":[[860,7]]},"93":{"position":[[1837,7]]}}}],["bunny.anchor.set(0.5",{"_index":394,"t":{"45":{"position":[[702,22]]},"51":{"position":[[435,22]]},"61":{"position":[[513,22]]},"67":{"position":[[421,22]]},"73":{"position":[[296,22]]},"79":{"position":[[881,22]]},"93":{"position":[[1109,22]]},"147":{"position":[[599,22]]},"155":{"position":[[298,22]]}}}],["bunny.cursor",{"_index":1266,"t":{"79":{"position":[[820,12]]}}}],["bunny.eventmode",{"_index":1262,"t":{"79":{"position":[[693,15]]}}}],["bunny.on('pointerdown",{"_index":1273,"t":{"79":{"position":[[1034,23]]}}}],["bunny.rotation",{"_index":1173,"t":{"73":{"position":[[530,14]]},"155":{"position":[[655,14]]},"177":{"position":[[423,14]]}}}],["bunny.scale.set(3",{"_index":1272,"t":{"79":{"position":[[952,19]]},"93":{"position":[[1089,19],[2223,17]]}}}],["bunny.texture.basetexture.scalemode",{"_index":1666,"t":{"93":{"position":[[1025,35]]}}}],["bunny.x",{"_index":395,"t":{"45":{"position":[[725,7]]},"51":{"position":[[505,7]]},"61":{"position":[[583,7]]},"67":{"position":[[444,7]]},"73":{"position":[[366,7]]},"79":{"position":[[1125,7]]},"93":{"position":[[1132,7]]},"147":{"position":[[622,7]]},"155":{"position":[[368,7]]},"177":{"position":[[365,7]]}}}],["bunny.y",{"_index":397,"t":{"45":{"position":[[749,7]]},"51":{"position":[[537,7]]},"61":{"position":[[615,7]]},"67":{"position":[[468,7]]},"73":{"position":[[398,7]]},"79":{"position":[[1138,7]]},"93":{"position":[[1158,7]]},"147":{"position":[[646,7]]},"155":{"position":[[400,7]]},"177":{"position":[[389,7]]}}}],["bunnycontainer",{"_index":375,"t":{"45":{"position":[[231,14],[1360,16]]}}}],["bunnycontainer.addchild(bunny",{"_index":399,"t":{"45":{"position":[[783,31]]}}}],["bunnycontainer.height",{"_index":407,"t":{"45":{"position":[[941,21]]}}}],["bunnycontainer.pivot.x",{"_index":404,"t":{"45":{"position":[[865,22]]}}}],["bunnycontainer.pivot.y",{"_index":406,"t":{"45":{"position":[[916,22]]}}}],["bunnycontainer.rotation",{"_index":408,"t":{"45":{"position":[[996,23]]}}}],["bunnycontainer.width",{"_index":405,"t":{"45":{"position":[[890,20]]}}}],["bunnycontainer.x",{"_index":400,"t":{"45":{"position":[[817,16]]}}}],["bunnycontainer.y",{"_index":402,"t":{"45":{"position":[[841,16]]}}}],["button",{"_index":1228,"t":{"77":{"position":[[1143,6],[1319,6],[1370,6],[1598,6]]},"79":{"position":[[729,6]]},"81":{"position":[[242,6],[563,6],[1641,6]]},"85":{"position":[[807,6],[958,6],[1036,6],[1136,6],[1693,6]]},"163":{"position":[[161,6],[212,6],[396,6],[536,6],[1116,6]]}}}],["button.anchor.set(0.5",{"_index":1232,"t":{"77":{"position":[[1209,23]]},"85":{"position":[[848,23]]}}}],["button.cursor",{"_index":1230,"t":{"77":{"position":[[1184,13]]},"85":{"position":[[1009,13]]},"163":{"position":[[572,13]]}}}],["button.destroy",{"_index":2598,"t":{"163":{"position":[[1131,17]]}}}],["button.eventmode",{"_index":1236,"t":{"77":{"position":[[1341,16]]},"85":{"position":[[980,16]]},"163":{"position":[[543,16]]}}}],["button.height",{"_index":2578,"t":{"163":{"position":[[485,14]]}}}],["button.on('pointertap",{"_index":2595,"t":{"163":{"position":[[1035,23]]}}}],["button.width",{"_index":2577,"t":{"163":{"position":[[434,13]]}}}],["button.x",{"_index":1233,"t":{"77":{"position":[[1233,8]]},"85":{"position":[[872,8]]},"163":{"position":[[403,8]]}}}],["button.y",{"_index":1235,"t":{"77":{"position":[[1268,8]]},"85":{"position":[[907,8]]},"163":{"position":[[453,8]]}}}],["buttonpositions",{"_index":1219,"t":{"77":{"position":[[1036,15]]},"85":{"position":[[700,15]]}}}],["buttonpositions[i",{"_index":1234,"t":{"77":{"position":[[1244,17],[1279,17]]},"85":{"position":[[883,17],[918,17]]}}}],["buttons",{"_index":1218,"t":{"77":{"position":[[1016,7]]},"85":{"position":[[680,7]]}}}],["buttons.push(button",{"_index":1244,"t":{"77":{"position":[[1614,21]]},"85":{"position":[[1709,21]]}}}],["buttons[0].scale.set(1.2",{"_index":1246,"t":{"77":{"position":[[1666,26]]},"85":{"position":[[1761,26]]}}}],["buttons[2].rotation",{"_index":1247,"t":{"77":{"position":[[1693,19]]},"85":{"position":[[1788,19]]}}}],["buttons[3].scale.set(0.8",{"_index":1248,"t":{"77":{"position":[[1729,26]]},"85":{"position":[[1824,26]]}}}],["buttons[4].rotation",{"_index":1251,"t":{"77":{"position":[[1788,19]]},"85":{"position":[[1883,19]]}}}],["buttons[4].scale.set(0.8",{"_index":1249,"t":{"77":{"position":[[1756,25]]},"85":{"position":[[1851,25]]}}}],["cache",{"_index":937,"t":{"55":{"position":[[1032,6]]}}}],["calclight(p",{"_index":1852,"t":{"99":{"position":[[2440,12]]},"129":{"position":[[2288,12]]}}}],["calclight(vec3",{"_index":1807,"t":{"99":{"position":[[1441,14]]},"129":{"position":[[1308,14]]}}}],["calculate",{"_index":106,"t":{"39":{"position":[[1761,9],[4115,9],[4744,9],[4974,9]]},"49":{"position":[[810,9],[1764,9]]},"53":{"position":[[965,9],[5473,9]]},"127":{"position":[[2148,11]]}}}],["calculatebounds",{"_index":1546,"t":{"91":{"position":[[2124,15],[2140,17]]}}}],["calculated",{"_index":566,"t":{"47":{"position":[[3804,10]]}}}],["calculates",{"_index":73,"t":{"39":{"position":[[854,10]]},"53":{"position":[[5122,10]]},"99":{"position":[[1083,10]]},"129":{"position":[[1002,10]]}}}],["calculation",{"_index":1805,"t":{"99":{"position":[[1423,12]]},"129":{"position":[[1290,12]]}}}],["call",{"_index":722,"t":{"51":{"position":[[602,4]]},"53":{"position":[[8391,4]]}}}],["calling",{"_index":919,"t":{"55":{"position":[[473,7]]}}}],["calls",{"_index":2743,"t":{"173":{"position":[[1194,5]]}}}],["cam",{"_index":1824,"t":{"99":{"position":[[1786,3],[1927,5],[2212,4]]},"129":{"position":[[1634,3],[1775,5],[2060,4]]}}}],["camera",{"_index":674,"t":{"49":{"position":[[885,7]]},"91":{"position":[[183,6],[493,7],[859,7]]}}}],["camera\\'s",{"_index":1544,"t":{"91":{"position":[[2057,9]]}}}],["cameraz",{"_index":649,"t":{"49":{"position":[[261,7],[768,7],[1330,7],[1450,8],[1559,8]]}}}],["cant",{"_index":1731,"t":{"97":{"position":[[613,4]]},"173":{"position":[[1239,4]]}}}],["canvas",{"_index":1459,"t":{"89":{"position":[[118,7],[573,6]]},"91":{"position":[[240,7]]},"147":{"position":[[115,6]]},"171":{"position":[[412,6]]},"173":{"position":[[589,7],[652,6],[1491,8]]},"179":{"position":[[840,6]]}}}],["canvas.getcontext('2d",{"_index":2699,"t":{"171":{"position":[[510,24]]},"173":{"position":[[753,24]]}}}],["canvas.height",{"_index":2697,"t":{"171":{"position":[[479,13]]},"173":{"position":[[717,13]]}}}],["canvas.transfercontroltooffscreen",{"_index":2472,"t":{"147":{"position":[[171,36]]}}}],["canvas.width",{"_index":2696,"t":{"171":{"position":[[455,12]]},"173":{"position":[[695,12]]}}}],["canvas2d",{"_index":2685,"t":{"171":{"position":[[51,8],[542,8]]},"173":{"position":[[69,8]]}}}],["capture",{"_index":1602,"t":{"91":{"position":[[4044,7]]}}}],["careful",{"_index":2760,"t":{"173":{"position":[[1824,8]]}}}],["cb(delta",{"_index":881,"t":{"53":{"position":[[8453,10]]}}}],["cells",{"_index":2189,"t":{"119":{"position":[[259,5],[514,7]]}}}],["cells.mask",{"_index":2197,"t":{"119":{"position":[[470,10]]}}}],["cells.scale.set(1.5",{"_index":2191,"t":{"119":{"position":[[324,21]]}}}],["center",{"_index":191,"t":{"39":{"position":[[3969,6]]},"49":{"position":[[2136,6],[2169,7],[2306,7]]},"51":{"position":[[402,6],[484,6]]},"61":{"position":[[480,6],[562,6]]},"67":{"position":[[556,6],[639,6]]},"73":{"position":[[263,6],[345,6]]},"79":{"position":[[849,6]]},"91":{"position":[[5388,6]]},"93":{"position":[[1337,9]]},"127":{"position":[[1178,6],[2174,6],[3510,6]]},"147":{"position":[[734,6],[817,6]]},"155":{"position":[[265,6],[347,6]]},"157":{"position":[[418,6],[503,6]]}}}],["centerd",{"_index":1139,"t":{"69":{"position":[[600,7]]}}}],["centered",{"_index":1158,"t":{"71":{"position":[[436,8]]}}}],["chachicle",{"_index":2610,"t":{"165":{"position":[[210,10],[626,12]]}}}],["change",{"_index":613,"t":{"47":{"position":[[4848,7]]},"49":{"position":[[1050,6]]},"63":{"position":[[969,6]]},"91":{"position":[[470,6]]},"93":{"position":[[1246,6]]},"153":{"position":[[712,6]]}}}],["changed",{"_index":684,"t":{"49":{"position":[[1241,7]]},"93":{"position":[[905,7]]}}}],["changes",{"_index":221,"t":{"39":{"position":[[4988,7],[5160,7]]}}}],["character",{"_index":927,"t":{"55":{"position":[[691,9]]},"157":{"position":[[377,9]]}}}],["character.anchor.set(0.5",{"_index":928,"t":{"55":{"position":[[729,26]]},"157":{"position":[[450,26]]}}}],["character.cursor",{"_index":932,"t":{"55":{"position":[[861,16]]},"157":{"position":[[691,16]]}}}],["character.eventmode",{"_index":931,"t":{"55":{"position":[[829,19]]},"157":{"position":[[659,19]]}}}],["character.on('pointertap",{"_index":934,"t":{"55":{"position":[[922,26]]},"157":{"position":[[721,26]]}}}],["character.rotation",{"_index":2543,"t":{"157":{"position":[[893,18]]}}}],["character.texture",{"_index":938,"t":{"55":{"position":[[1039,17]]},"157":{"position":[[810,17]]}}}],["character.x",{"_index":929,"t":{"55":{"position":[[756,11]]},"157":{"position":[[524,11]]}}}],["character.y",{"_index":930,"t":{"55":{"position":[[792,11]]},"157":{"position":[[560,11]]}}}],["chars",{"_index":1624,"t":{"91":{"position":[[4826,6]]}}}],["check",{"_index":54,"t":{"39":{"position":[[527,5],[3093,5]]},"53":{"position":[[8798,5]]},"99":{"position":[[194,5],[1150,6]]},"129":{"position":[[1069,6]]}}}],["checks",{"_index":1345,"t":{"81":{"position":[[1977,6]]}}}],["child",{"_index":1485,"t":{"91":{"position":[[551,7]]}}}],["children",{"_index":2821,"t":{"177":{"position":[[829,8],[900,9]]}}}],["choice",{"_index":2732,"t":{"173":{"position":[[568,7]]}}}],["circle",{"_index":306,"t":{"43":{"position":[[137,6]]},"89":{"position":[[57,6],[256,6],[269,6],[614,7]]},"97":{"position":[[982,7]]},"111":{"position":[[1038,6]]},"113":{"position":[[149,6],[464,6]]},"115":{"position":[[760,6],[800,7],[841,6],[963,6],[1112,6]]}}}],["circle.filters",{"_index":2133,"t":{"113":{"position":[[584,14]]}}}],["circle.position.copyfrom(e.global",{"_index":1467,"t":{"89":{"position":[[727,35]]}}}],["circle.position.set(app.screen.width",{"_index":1462,"t":{"89":{"position":[[427,36]]}}}],["clamped",{"_index":1685,"t":{"93":{"position":[[1983,7]]}}}],["class",{"_index":1493,"t":{"91":{"position":[[746,5],[1993,5]]},"173":{"position":[[261,5]]}}}],["cleaner",{"_index":1779,"t":{"99":{"position":[[796,7]]}}}],["clear",{"_index":348,"t":{"43":{"position":[[1369,6],[1580,8],[1735,6]]},"175":{"position":[[2244,6]]}}}],["clears",{"_index":2810,"t":{"175":{"position":[[2130,6]]}}}],["click",{"_index":1099,"t":{"65":{"position":[[1105,5]]},"81":{"position":[[1630,5]]},"91":{"position":[[4522,5],[5470,5]]},"111":{"position":[[1429,5]]}}}],["click/tap",{"_index":2579,"t":{"163":{"position":[[663,9],[912,9]]}}}],["clipinput(k",{"_index":287,"t":{"41":{"position":[[1726,12],[1881,12],[1908,11],[2167,13],[2189,11]]}}}],["code",{"_index":891,"t":{"53":{"position":[[8673,4]]}}}],["col",{"_index":1841,"t":{"99":{"position":[[2128,3],[2422,3]]},"129":{"position":[[1976,3],[2270,3]]}}}],["colliding",{"_index":219,"t":{"39":{"position":[[4918,9]]}}}],["collision",{"_index":75,"t":{"39":{"position":[[882,10],[5074,9]]}}}],["collisionpush",{"_index":225,"t":{"39":{"position":[[5090,13]]}}}],["collisionpush.x",{"_index":228,"t":{"39":{"position":[[5229,16],[5339,16]]}}}],["collisionpush.y",{"_index":229,"t":{"39":{"position":[[5267,16],[5376,16]]}}}],["collisionresponse(greensquare",{"_index":226,"t":{"39":{"position":[[5106,30]]}}}],["collisionresponse(object1",{"_index":80,"t":{"39":{"position":[[962,26]]}}}],["color",{"_index":362,"t":{"43":{"position":[[1614,6]]},"89":{"position":[[351,6]]},"91":{"position":[[3432,6]]},"127":{"position":[[2228,5],[2324,6],[2894,5],[2928,5],[2948,7],[4548,5]]}}}],["color.rgb",{"_index":2297,"t":{"127":{"position":[[2258,9]]}}}],["color1",{"_index":2271,"t":{"127":{"position":[[1275,6],[1397,6]]}}}],["color2",{"_index":2273,"t":{"127":{"position":[[1315,6],[1406,7]]}}}],["colorsize",{"_index":2235,"t":{"123":{"position":[[300,9],[404,13],[517,11],[580,10],[636,11],[768,11]]}}}],["combination",{"_index":2344,"t":{"127":{"position":[[4353,11]]}}}],["combinequad",{"_index":2358,"t":{"127":{"position":[[4924,11]]}}}],["combinequad.position.set(430",{"_index":2364,"t":{"127":{"position":[[5128,29]]}}}],["combines",{"_index":1098,"t":{"65":{"position":[[1085,8]]}}}],["combineshader",{"_index":2357,"t":{"127":{"position":[[4836,13],[4962,15]]}}}],["combineuniforms",{"_index":2356,"t":{"127":{"position":[[4735,15],[4900,17]]}}}],["complete",{"_index":614,"t":{"47":{"position":[[4866,9]]}}}],["completed",{"_index":1699,"t":{"95":{"position":[[531,9]]}}}],["completely",{"_index":972,"t":{"57":{"position":[[1418,10]]}}}],["completion",{"_index":724,"t":{"53":{"position":[[222,11]]}}}],["connect",{"_index":1491,"t":{"91":{"position":[[708,7]]}}}],["connects",{"_index":356,"t":{"43":{"position":[[1484,8]]}}}],["const",{"_index":25,"t":{"39":{"position":[[209,5],[391,5],[471,5],[604,5],[641,5],[1056,5],[1140,5],[1274,5],[1366,5],[1509,5],[1604,5],[1853,5],[1876,5],[1966,5],[2288,5],[2511,5],[3982,5],[4194,5],[4384,5],[4594,5],[4688,5],[5084,5]]},"41":{"position":[[33,5],[178,5],[257,5],[278,5],[353,5],[430,5],[452,5],[690,5],[1388,5],[1478,5],[1547,5],[2042,5],[2067,5],[2157,5],[2223,5],[2241,5]]},"43":{"position":[[33,5],[176,5],[310,5],[538,5],[576,5],[613,5],[682,5],[754,5],[814,5]]},"45":{"position":[[33,5],[151,5],[225,5],[316,5],[379,5],[662,5],[1041,5],[1116,5]]},"47":{"position":[[33,5],[358,5],[382,5],[515,5],[801,5],[819,5],[893,5],[977,5],[1213,5],[1695,5],[1844,5],[1944,5],[2093,5],[2443,5],[2696,5],[3256,5],[3276,5],[3321,5],[3369,5],[3710,5],[4039,5],[4063,5],[4652,5],[4754,5],[5006,5],[5030,5],[5093,5],[5116,5]]},"49":{"position":[[33,5],[155,5],[232,5],[274,5],[290,5],[349,5],[372,5],[419,5],[476,5],[893,5],[934,5],[1414,5],[1540,5],[1797,5],[1861,5],[1926,5],[2003,5]]},"51":{"position":[[33,5],[224,5],[358,5]]},"53":{"position":[[33,5],[276,5],[317,5],[419,5],[499,5],[556,5],[675,5],[989,5],[1037,5],[1085,5],[1445,5],[1474,5],[1659,5],[2254,5],[2295,5],[2397,5],[2415,5],[2437,5],[2494,5],[2923,5],[3168,5],[3209,5],[3311,5],[3391,5],[3448,5],[3707,5],[3743,5],[3777,5],[3796,5],[3838,5],[4209,5],[4250,5],[4352,5],[4370,5],[4392,5],[4592,5],[4863,5],[4883,5],[5170,5],[5497,5],[5545,5],[5610,5],[6348,5],[6377,5],[6586,5],[7387,5],[7428,5],[7530,5],[7731,5],[8097,5],[8917,5],[9049,5],[9123,5],[9367,5],[9398,5]]},"55":{"position":[[33,5],[685,5]]},"57":{"position":[[33,5],[193,5],[795,5],[921,5],[1472,5],[1598,5]]},"59":{"position":[[33,5],[384,5],[651,5],[826,5]]},"61":{"position":[[33,5],[198,5],[428,5]]},"63":{"position":[[33,5],[160,5],[401,5],[423,5],[570,5],[1541,5],[1572,5],[1861,5]]},"65":{"position":[[33,5],[277,5],[296,5],[426,5],[733,5],[813,5],[1340,5]]},"67":{"position":[[33,5],[149,5],[244,5],[381,5]]},"69":{"position":[[33,5],[126,5],[324,5],[344,5],[482,5],[1408,5],[1439,5],[1743,5]]},"71":{"position":[[33,5],[156,5],[175,5],[322,5],[1394,5],[1425,5],[1709,5]]},"73":{"position":[[33,5],[189,5]]},"75":{"position":[[33,5],[257,5]]},"77":{"position":[[33,5],[172,5],[245,5],[488,5],[749,5],[830,5],[920,5],[1010,5],[1030,5],[1137,5]]},"79":{"position":[[33,5],[188,5],[556,5]]},"81":{"position":[[33,5],[141,5],[249,5],[570,5],[1113,5],[1264,5],[1703,5],[1788,5],[2326,5],[2381,5],[2490,5],[2599,5],[2704,5]]},"83":{"position":[[33,5],[228,5],[379,5]]},"85":{"position":[[33,5],[152,5],[413,5],[494,5],[584,5],[674,5],[694,5],[801,5]]},"87":{"position":[[109,5],[225,5],[445,5],[462,5],[618,5],[814,5],[1146,5],[1167,5],[1201,5]]},"89":{"position":[[126,5],[263,5]]},"91":{"position":[[248,5],[2160,5],[2522,5],[2568,5],[3292,5],[3567,5],[4409,5],[4873,5],[5112,5],[5169,5],[5289,5]]},"93":{"position":[[33,5],[149,5],[188,5],[318,5],[343,5],[525,5],[934,5],[1198,5],[1898,5],[2175,5]]},"95":{"position":[[33,5],[153,5]]},"97":{"position":[[101,5],[221,5],[646,5],[1148,5],[1321,5]]},"99":{"position":[[305,5],[519,5],[882,5]]},"101":{"position":[[33,5],[126,5],[299,5],[500,5],[700,5],[751,5],[930,5],[966,5]]},"103":{"position":[[33,5],[158,5],[309,5],[362,5],[475,5],[612,5],[745,5],[878,5],[1201,5],[1645,5]]},"105":{"position":[[33,5],[158,5],[229,5],[250,5],[373,5],[424,5],[881,5],[981,5],[1251,5],[1403,5],[1945,5]]},"107":{"position":[[33,5],[158,5],[229,5],[365,5],[591,5]]},"109":{"position":[[33,5],[143,5],[302,5],[562,5],[786,5],[1056,5],[1307,5],[1458,5],[1621,5],[1815,5],[2179,5]]},"111":{"position":[[33,5],[207,5],[1306,5]]},"113":{"position":[[33,5],[156,5],[195,5],[300,5],[458,5],[642,5],[733,5],[824,5]]},"115":{"position":[[65,5],[175,5],[2238,5]]},"117":{"position":[[33,5],[175,5],[350,5],[489,5],[597,5],[702,5],[807,5],[1015,5],[1321,5]]},"119":{"position":[[33,5],[158,5],[253,5],[346,5],[522,5]]},"121":{"position":[[33,5],[126,5],[491,5],[1040,5]]},"123":{"position":[[33,5],[126,5],[270,5],[294,5],[315,5],[725,5],[971,5],[1407,5]]},"125":{"position":[[33,5],[126,5],[477,5],[821,5],[883,5],[1432,5]]},"127":{"position":[[33,5],[158,5],[547,5],[914,5],[1028,5],[1443,5],[1479,5],[1687,5],[1763,5],[1817,5],[1952,5],[2335,5],[2406,5],[2491,5],[2569,5],[2627,5],[2757,5],[2988,5],[3049,5],[3131,5],[3208,5],[3264,5],[3361,5],[4005,5],[4057,5],[4136,5],[4212,5],[4266,5],[4370,5],[4729,5],[4830,5],[4918,5]]},"129":{"position":[[33,5],[145,5],[496,5],[809,5],[2400,5],[2688,5],[2755,5]]},"131":{"position":[[33,5],[126,5],[366,5],[914,5],[1591,5],[1641,5]]},"133":{"position":[[33,5],[126,5],[430,5],[908,5],[1066,5],[1219,5]]},"135":{"position":[[33,5],[158,5],[181,5],[281,5],[439,5]]},"137":{"position":[[33,5],[158,5],[187,5],[287,5],[404,5]]},"139":{"position":[[33,5],[126,5],[228,5],[589,5]]},"141":{"position":[[33,5],[126,5],[450,5],[886,5]]},"143":{"position":[[33,5],[126,5],[570,5],[944,5],[1141,5],[1241,5],[1308,5]]},"145":{"position":[[33,5],[126,5],[477,5],[790,5],[1006,5],[1116,5],[1183,5]]},"147":{"position":[[109,5],[158,5],[208,5],[327,5],[422,5],[559,5]]},"149":{"position":[[33,5],[283,5],[338,5],[378,5],[423,5],[516,5],[567,5],[838,5]]},"151":{"position":[[33,5],[264,5],[328,5],[500,5]]},"153":{"position":[[33,5],[283,5],[333,5],[585,5]]},"155":{"position":[[33,5],[191,5]]},"157":{"position":[[33,5],[170,5],[248,5],[371,5]]},"159":{"position":[[33,5],[165,5],[375,5]]},"161":{"position":[[33,5],[232,5]]},"163":{"position":[[33,5],[206,5],[1187,5],[1329,5]]},"165":{"position":[[33,5],[548,5],[657,5],[760,5],[882,5]]},"167":{"position":[[33,5],[149,5],[272,5],[641,5],[806,5],[1119,5]]},"169":{"position":[[33,5],[353,5],[574,5],[759,5]]},"171":{"position":[[171,5],[385,5],[406,5],[498,5],[574,5],[859,5],[900,5]]},"173":{"position":[[474,5],[535,5],[646,5],[741,5],[778,5],[1290,5],[1517,5],[1627,5],[1907,5],[1962,5]]},"175":{"position":[[33,5],[126,5],[417,5],[524,5],[722,5],[885,5],[1301,5],[1425,5],[1749,5],[1835,5]]},"177":{"position":[[33,5],[149,5],[220,5],[325,5],[500,5],[578,5],[618,5]]},"179":{"position":[[33,5],[233,5],[261,5],[332,5],[410,5],[488,5],[515,5],[588,5],[1004,5],[1047,5],[1090,5],[1130,5],[1279,5],[1513,5]]}}}],["construct",{"_index":1585,"t":{"91":{"position":[[3539,9]]}}}],["constructor",{"_index":1496,"t":{"91":{"position":[[791,13]]},"95":{"position":[[746,11]]},"173":{"position":[[308,13]]}}}],["contain",{"_index":2592,"t":{"163":{"position":[[953,7]]}}}],["container",{"_index":452,"t":{"47":{"position":[[992,10]]},"53":{"position":[[323,9],[2301,9],[3215,9],[4256,9],[7434,9]]},"65":{"position":[[416,9]]},"67":{"position":[[155,9],[539,9],[668,9],[844,10]]},"97":{"position":[[1154,9]]},"103":{"position":[[368,9]]},"105":{"position":[[164,9]]},"107":{"position":[[164,9]]},"117":{"position":[[356,9]]},"147":{"position":[[333,9],[717,9],[846,9],[1022,10]]},"175":{"position":[[1384,9]]},"177":{"position":[[155,9],[751,9],[845,10],[867,9]]}}}],["container.addchild(ball",{"_index":785,"t":{"53":{"position":[[2587,25]]}}}],["container.addchild(base",{"_index":741,"t":{"53":{"position":[[814,25],[3559,25],[5261,25]]}}}],["container.addchild(bg",{"_index":1964,"t":{"105":{"position":[[1550,23]]}}}],["container.addchild(bgfront",{"_index":1900,"t":{"103":{"position":[[583,28]]},"117":{"position":[[901,27]]}}}],["container.addchild(bottom",{"_index":740,"t":{"53":{"position":[[786,27]]}}}],["container.addchild(bunny",{"_index":1116,"t":{"67":{"position":[[502,26]]},"147":{"position":[[680,26]]},"177":{"position":[[471,26]]}}}],["container.addchild(edge",{"_index":839,"t":{"53":{"position":[[5321,25]]}}}],["container.addchild(flag",{"_index":1981,"t":{"107":{"position":[[311,25]]}}}],["container.addchild(halfcircle",{"_index":865,"t":{"53":{"position":[[7935,31]]}}}],["container.addchild(light1",{"_index":1908,"t":{"103":{"position":[[850,27]]}}}],["container.addchild(light2",{"_index":1904,"t":{"103":{"position":[[717,27]]}}}],["container.addchild(maggot",{"_index":1937,"t":{"105":{"position":[[521,27]]}}}],["container.addchild(mask",{"_index":742,"t":{"53":{"position":[[840,25],[3585,25],[5347,25]]}}}],["container.addchild(panda",{"_index":1912,"t":{"103":{"position":[[972,26]]}}}],["container.addchild(rectangle",{"_index":864,"t":{"53":{"position":[[7904,30]]}}}],["container.addchild(roundingmask",{"_index":838,"t":{"53":{"position":[[5287,33]]}}}],["container.filterarea",{"_index":1757,"t":{"97":{"position":[[1188,20]]}}}],["container.filters",{"_index":1759,"t":{"97":{"position":[[1401,17]]},"105":{"position":[[1105,17]]}}}],["container.height",{"_index":1123,"t":{"67":{"position":[[751,16]]},"147":{"position":[[929,16]]}}}],["container.mask",{"_index":2185,"t":{"117":{"position":[[1162,14],[1239,17],[1259,14],[1292,14]]}}}],["container.pivot.x",{"_index":1120,"t":{"67":{"position":[[690,17]]},"147":{"position":[[868,17]]}}}],["container.pivot.y",{"_index":1122,"t":{"67":{"position":[[731,17]]},"147":{"position":[[909,17]]}}}],["container.position",{"_index":726,"t":{"53":{"position":[[357,18],[2335,18],[3249,18],[4290,18],[7468,18]]}}}],["container.rotation",{"_index":1126,"t":{"67":{"position":[[906,18]]},"147":{"position":[[1084,18]]}}}],["container.width",{"_index":1121,"t":{"67":{"position":[[710,15]]},"147":{"position":[[888,15]]}}}],["container.x",{"_index":1117,"t":{"67":{"position":[[563,11]]},"103":{"position":[[402,11]]},"117":{"position":[[390,11]]},"147":{"position":[[741,11]]},"177":{"position":[[1006,11]]}}}],["container.y",{"_index":1118,"t":{"67":{"position":[[599,11]]},"103":{"position":[[438,11]]},"117":{"position":[[426,11]]},"147":{"position":[[777,11]]},"177":{"position":[[1025,11]]}}}],["containspoint",{"_index":1555,"t":{"91":{"position":[[2356,13]]}}}],["containspoint(point",{"_index":1556,"t":{"91":{"position":[[2370,20]]}}}],["content",{"_index":1480,"t":{"91":{"position":[[392,7],[525,7],[632,7],[823,7],[1073,7],[2094,11],[2455,7],[5362,7]]},"99":{"position":[[292,8]]},"175":{"position":[[2160,7]]}}}],["content's",{"_index":1520,"t":{"91":{"position":[[1414,9],[1670,9],[3103,9]]}}}],["contentbounds",{"_index":1547,"t":{"91":{"position":[[2166,13]]}}}],["contentbounds.height",{"_index":1554,"t":{"91":{"position":[[2313,21]]}}}],["contentbounds.width",{"_index":1553,"t":{"91":{"position":[[2292,20]]}}}],["contentbounds.x",{"_index":1551,"t":{"91":{"position":[[2258,16]]}}}],["contentbounds.y",{"_index":1552,"t":{"91":{"position":[[2275,16]]}}}],["contents",{"_index":1482,"t":{"91":{"position":[[443,8]]}}}],["continue",{"_index":841,"t":{"53":{"position":[[6054,8],[6241,8]]}}}],["control",{"_index":1036,"t":{"63":{"position":[[1094,7]]},"71":{"position":[[825,7]]}}}],["cool",{"_index":2651,"t":{"167":{"position":[[1159,6]]}}}],["coordinate",{"_index":672,"t":{"49":{"position":[[854,10]]},"91":{"position":[[3354,10]]}}}],["coordinates",{"_index":910,"t":{"53":{"position":[[9335,11]]},"67":{"position":[[678,11]]},"91":{"position":[[4879,11],[4959,14],[5342,11]]},"107":{"position":[[1052,12]]},"147":{"position":[[856,11]]}}}],["coordinates.text",{"_index":1639,"t":{"91":{"position":[[5226,16]]}}}],["coordinates.x",{"_index":1629,"t":{"91":{"position":[[4978,13]]}}}],["coordinates.y",{"_index":1631,"t":{"91":{"position":[[4999,13]]}}}],["coords",{"_index":1514,"t":{"91":{"position":[[1216,6],[1402,6]]}}}],["copymousedata",{"_index":1510,"t":{"91":{"position":[[1157,13]]}}}],["cordon",{"_index":184,"t":{"39":{"position":[[3497,7]]}}}],["corners",{"_index":763,"t":{"53":{"position":[[1665,7],[2041,7],[6592,7],[6995,7]]}}}],["corners.length",{"_index":773,"t":{"53":{"position":[[2075,14]]}}}],["corners[i",{"_index":775,"t":{"53":{"position":[[2130,9],[7067,9]]}}}],["correspond",{"_index":271,"t":{"41":{"position":[[1326,10]]}}}],["count",{"_index":1077,"t":{"65":{"position":[[386,5],[1390,5]]},"101":{"position":[[880,5],[914,5]]},"103":{"position":[[1064,5],[1631,5]]},"105":{"position":[[1853,5],[1887,5]]},"111":{"position":[[1410,5],[1831,5],[2318,5]]},"117":{"position":[[1190,5],[1746,5],[2108,5]]},"135":{"position":[[130,5],[565,5],[674,6],[739,6]]},"137":{"position":[[130,5],[626,5],[735,6],[800,6]]},"159":{"position":[[506,5],[540,5]]},"175":{"position":[[1654,5],[1796,5]]}}}],["courier",{"_index":2859,"t":{"179":{"position":[[1589,8]]}}}],["cover",{"_index":1601,"t":{"91":{"position":[[4011,5]]}}}],["covered",{"_index":1337,"t":{"81":{"position":[[1685,7]]}}}],["covers",{"_index":483,"t":{"47":{"position":[[1661,6]]},"93":{"position":[[244,6]]}}}],["crawl",{"_index":1977,"t":{"105":{"position":[[2272,5]]}}}],["create",{"_index":250,"t":{"41":{"position":[[474,6],[577,6],[674,6]]},"43":{"position":[[257,6]]},"47":{"position":[[484,6]]},"49":{"position":[[402,6]]},"51":{"position":[[306,6]]},"55":{"position":[[632,6]]},"57":{"position":[[868,6],[1545,6]]},"59":{"position":[[597,6]]},"61":{"position":[[181,6],[375,6]]},"63":{"position":[[129,6],[351,6],[488,6],[1055,6],[1275,6],[1498,6]]},"65":{"position":[[400,6],[774,6]]},"67":{"position":[[223,6],[321,6],[871,6]]},"69":{"position":[[283,6],[462,6],[873,6],[1076,6],[1359,6]]},"71":{"position":[[240,6],[786,6],[847,6],[1128,6],[1351,6]]},"73":{"position":[[149,6]]},"77":{"position":[[465,6],[709,6]]},"79":{"position":[[152,6],[523,6]]},"81":{"position":[[658,6]]},"83":{"position":[[550,6]]},"85":{"position":[[129,6],[373,6]]},"89":{"position":[[245,6]]},"95":{"position":[[129,6],[570,6]]},"97":{"position":[[197,6]]},"111":{"position":[[1284,6]]},"117":{"position":[[993,6]]},"147":{"position":[[401,6],[499,6],[1049,6]]},"149":{"position":[[245,6],[538,6],[809,6]]},"151":{"position":[[226,6],[465,6]]},"153":{"position":[[236,6],[505,6]]},"155":{"position":[[152,6]]},"157":{"position":[[333,6]]},"159":{"position":[[129,6],[240,6]]},"163":{"position":[[149,6],[1152,6],[1264,6]]},"169":{"position":[[710,6]]},"171":{"position":[[558,6]]},"175":{"position":[[204,6],[458,6],[854,6],[1276,6],[1326,6]]},"179":{"position":[[209,6],[1237,6]]}}}],["createbunny",{"_index":1257,"t":{"79":{"position":[[380,12]]}}}],["createbunny(x",{"_index":1258,"t":{"79":{"position":[[500,14]]}}}],["created",{"_index":2768,"t":{"175":{"position":[[510,7]]}}}],["creategradtexture",{"_index":2689,"t":{"171":{"position":[[290,19],[879,20]]}}}],["creates",{"_index":2538,"t":{"155":{"position":[[614,7]]}}}],["creating",{"_index":1715,"t":{"97":{"position":[[81,8]]}}}],["crop",{"_index":2834,"t":{"179":{"position":[[521,4],[601,5],[713,5],[919,5]]}}}],["cross",{"_index":1834,"t":{"99":{"position":[[2012,6]]},"129":{"position":[[1860,6]]}}}],["crosterian",{"_index":2619,"t":{"165":{"position":[[426,11],[963,13]]}}}],["css",{"_index":1201,"t":{"77":{"position":[[152,3]]}}}],["ctx",{"_index":2698,"t":{"171":{"position":[[504,3]]},"173":{"position":[[747,3]]}}}],["ctx.createlineargradient(0",{"_index":2701,"t":{"171":{"position":[[586,27]]},"173":{"position":[[790,27]]}}}],["ctx.fillrect(0",{"_index":2710,"t":{"171":{"position":[[791,15]]},"173":{"position":[[993,15]]}}}],["ctx.fillstyle",{"_index":2709,"t":{"171":{"position":[[770,13]]},"173":{"position":[[972,13]]}}}],["cubic",{"_index":275,"t":{"41":{"position":[[1434,5],[1648,5]]}}}],["cubicinterpolation(array",{"_index":294,"t":{"41":{"position":[[1949,25]]}}}],["cubicinterpolation(historyx",{"_index":281,"t":{"41":{"position":[[1489,28]]}}}],["cubicinterpolation(historyy",{"_index":283,"t":{"41":{"position":[[1558,28]]}}}],["current",{"_index":358,"t":{"43":{"position":[[1525,7]]}}}],["currenttargetname",{"_index":1441,"t":{"87":{"position":[[1207,17],[1364,18]]}}}],["currenttexture",{"_index":2767,"t":{"175":{"position":[[423,14]]}}}],["cursor",{"_index":1185,"t":{"75":{"position":[[518,6]]},"77":{"position":[[340,6]]},"79":{"position":[[760,6]]},"91":{"position":[[1912,6],[1923,8],[2067,6],[4306,6]]}}}],["cursor(value",{"_index":1541,"t":{"91":{"position":[[2020,13]]}}}],["curve",{"_index":274,"t":{"41":{"position":[[1423,5]]},"109":{"position":[[232,5],[773,5]]}}}],["custom",{"_index":1207,"t":{"77":{"position":[[333,6]]},"81":{"position":[[548,6]]}}}],["customuniform",{"_index":1705,"t":{"95":{"position":[[673,14]]}}}],["cyan",{"_index":2706,"t":{"171":{"position":[[701,8]]},"173":{"position":[[903,8]]}}}],["d",{"_index":1818,"t":{"99":{"position":[[1650,1],[1692,2],[2222,1]]},"129":{"position":[[1517,1],[1559,2],[2070,1]]}}}],["d.y",{"_index":1849,"t":{"99":{"position":[[2370,3]]},"129":{"position":[[2218,3]]}}}],["d8",{"_index":2828,"t":{"179":{"position":[[267,2]]}}}],["d8.isvertical(rotate",{"_index":2830,"t":{"179":{"position":[[342,21],[420,21]]}}}],["data",{"_index":1283,"t":{"79":{"position":[[1545,4]]},"95":{"position":[[665,5]]},"99":{"position":[[867,4]]}}}],["date.now",{"_index":615,"t":{"47":{"position":[[4895,11],[5018,11]]}}}],["days",{"_index":2525,"t":{"153":{"position":[[561,4]]}}}],["deacceleration",{"_index":162,"t":{"39":{"position":[[2786,14]]}}}],["default",{"_index":1031,"t":{"63":{"position":[[980,7]]},"91":{"position":[[643,8],[1278,7]]},"97":{"position":[[521,7]]},"173":{"position":[[501,7]]}}}],["defaulticon",{"_index":1203,"t":{"77":{"position":[[178,11],[397,12]]}}}],["deg",{"_index":675,"t":{"49":{"position":[[899,3]]}}}],["degrees",{"_index":1164,"t":{"71":{"position":[[956,7]]}}}],["delta",{"_index":231,"t":{"39":{"position":[[5463,6],[5516,6],[5565,6],[5614,6]]},"45":{"position":[[1030,6]]},"49":{"position":[[1341,5]]},"53":{"position":[[888,7],[926,5],[2801,7],[2839,5],[3633,7],[3671,5],[5395,7],[5433,5],[7989,7],[8027,5]]},"67":{"position":[[862,5],[935,6]]},"95":{"position":[[1012,6]]},"99":{"position":[[3030,5]]},"147":{"position":[[1040,5],[1113,6]]},"155":{"position":[[569,5],[679,6]]}}}],["demo",{"_index":2684,"t":{"171":{"position":[[41,4]]}}}],["denominator",{"_index":905,"t":{"53":{"position":[[8923,11],[9011,12],[9110,12],[9184,12]]}}}],["depending",{"_index":707,"t":{"49":{"position":[[2195,9],[2265,9]]}}}],["depends",{"_index":569,"t":{"47":{"position":[[3848,7]]}}}],["derived",{"_index":1545,"t":{"91":{"position":[[2077,7]]}}}],["description",{"_index":1641,"t":{"91":{"position":[[5295,11]]}}}],["description.position.set(110",{"_index":1644,"t":{"91":{"position":[[5557,29]]}}}],["designated",{"_index":1275,"t":{"79":{"position":[[1105,10]]}}}],["desktop",{"_index":1191,"t":{"75":{"position":[[611,8]]}}}],["desyrel",{"_index":2565,"t":{"161":{"position":[[329,10]]}}}],["detect",{"_index":581,"t":{"47":{"position":[[4196,6]]}}}],["detection",{"_index":23,"t":{"39":{"position":[[191,9]]}}}],["determine",{"_index":889,"t":{"53":{"position":[[8577,9]]}}}],["determined",{"_index":587,"t":{"47":{"position":[[4270,10]]}}}],["determines",{"_index":244,"t":{"41":{"position":[[314,10],[389,10]]}}}],["development/collision",{"_index":22,"t":{"39":{"position":[[169,21]]}}}],["devices",{"_index":1722,"t":{"97":{"position":[[446,7]]}}}],["diamond",{"_index":2843,"t":{"179":{"position":[[790,7]]}}}],["different",{"_index":55,"t":{"39":{"position":[[545,9]]},"47":{"position":[[491,9]]},"69":{"position":[[647,9],[666,9]]},"85":{"position":[[1123,9]]},"91":{"position":[[212,9]]},"97":{"position":[[623,9]]},"179":{"position":[[827,9]]}}}],["dir",{"_index":840,"t":{"53":{"position":[[6038,3]]}}}],["direction",{"_index":177,"t":{"39":{"position":[[3189,9],[4129,9],[4370,9]]},"53":{"position":[[6215,9]]},"63":{"position":[[1199,9]]},"69":{"position":[[889,9],[998,9]]},"71":{"position":[[863,9],[1052,9]]}}}],["disable",{"_index":1538,"t":{"91":{"position":[[1975,7]]},"169":{"position":[[290,7]]}}}],["disjoint",{"_index":1473,"t":{"91":{"position":[[153,8]]}}}],["displacementfilter",{"_index":1951,"t":{"105":{"position":[[987,18],[1125,21]]},"107":{"position":[[597,18],[808,21]]}}}],["displacementfilter.padding",{"_index":1986,"t":{"107":{"position":[[675,26]]}}}],["displacementfilter.scale.x",{"_index":1954,"t":{"105":{"position":[[1147,26]]},"107":{"position":[[830,26]]}}}],["displacementfilter.scale.y",{"_index":1955,"t":{"105":{"position":[[1181,26]]},"107":{"position":[[863,26]]}}}],["displacementsprite",{"_index":1949,"t":{"105":{"position":[[887,18]]},"107":{"position":[[371,18]]}}}],["displacementsprite.anchor.set(0.5",{"_index":1956,"t":{"105":{"position":[[1215,35]]}}}],["displacementsprite.position",{"_index":1987,"t":{"107":{"position":[[708,27]]}}}],["displacementsprite.position.set(eventdata.data.global.x",{"_index":1969,"t":{"105":{"position":[[1706,55]]}}}],["displacementsprite.texture.basetexture.wrapmode",{"_index":1985,"t":{"107":{"position":[[517,47]]}}}],["displacementsprite.width",{"_index":2003,"t":{"107":{"position":[[1201,25]]}}}],["displacementsprite.x",{"_index":1998,"t":{"107":{"position":[[1065,23],[1177,21],[1229,20]]}}}],["dist(p",{"_index":1812,"t":{"99":{"position":[[1545,6],[1584,6],[1623,6],[2226,8]]},"129":{"position":[[1412,6],[1451,6],[1490,6],[2074,8]]}}}],["dist(p+eps.xxy).x",{"_index":1816,"t":{"99":{"position":[[1603,17]]},"129":{"position":[[1470,17]]}}}],["dist(p+eps.xyx).x",{"_index":1814,"t":{"99":{"position":[[1564,17]]},"129":{"position":[[1431,17]]}}}],["dist(p+eps.yxx).x",{"_index":1811,"t":{"99":{"position":[[1525,17]]},"129":{"position":[[1392,17]]}}}],["dist(vec3",{"_index":1791,"t":{"99":{"position":[[1216,9]]},"129":{"position":[[1135,9]]}}}],["distance",{"_index":89,"t":{"39":{"position":[[1146,8],[1328,9],[1353,9],[1775,8]]},"49":{"position":[[940,8],[1000,9],[1035,9]]},"99":{"position":[[1059,8],[2270,8]]},"127":{"position":[[2160,8],[2187,8]]},"129":{"position":[[978,8],[2118,8]]}}}],["distancebetweentwopoints",{"_index":214,"t":{"39":{"position":[[4621,25]]}}}],["distancebetweentwopoints(p1",{"_index":109,"t":{"39":{"position":[[1818,28]]}}}],["distancecenter",{"_index":699,"t":{"49":{"position":[[1932,14],[2405,14]]}}}],["distances",{"_index":1790,"t":{"99":{"position":[[1200,10]]},"129":{"position":[[1119,10]]}}}],["distancescale",{"_index":701,"t":{"49":{"position":[[2009,13],[2079,13],[2336,13],[2367,13]]}}}],["distmouseredsquare",{"_index":213,"t":{"39":{"position":[[4600,18],[4705,18]]}}}],["document.body.append(a",{"_index":383,"t":{"45":{"position":[[418,24]]}}}],["document.body.appendchild(app.view",{"_index":33,"t":{"39":{"position":[[285,36]]},"41":{"position":[[112,36]]},"43":{"position":[[89,36]]},"45":{"position":[[114,36]]},"47":{"position":[[112,36]]},"49":{"position":[[89,36]]},"51":{"position":[[112,36]]},"53":{"position":[[112,36]]},"55":{"position":[[112,36]]},"57":{"position":[[112,36]]},"59":{"position":[[112,36]]},"61":{"position":[[112,36]]},"63":{"position":[[89,36]]},"65":{"position":[[89,36]]},"67":{"position":[[112,36]]},"69":{"position":[[89,36]]},"71":{"position":[[89,36]]},"73":{"position":[[109,36]]},"75":{"position":[[112,36]]},"77":{"position":[[112,36]]},"79":{"position":[[112,36]]},"81":{"position":[[104,36]]},"83":{"position":[[112,36]]},"85":{"position":[[89,36]]},"87":{"position":[[188,36]]},"89":{"position":[[205,36]]},"91":{"position":[[327,36]]},"93":{"position":[[112,36]]},"95":{"position":[[89,36]]},"97":{"position":[[157,36]]},"99":{"position":[[384,36]]},"101":{"position":[[89,36]]},"103":{"position":[[89,36]]},"105":{"position":[[89,36]]},"107":{"position":[[89,36]]},"109":{"position":[[106,36]]},"111":{"position":[[106,36]]},"113":{"position":[[89,36]]},"115":{"position":[[138,36]]},"117":{"position":[[106,36]]},"119":{"position":[[89,36]]},"121":{"position":[[89,36]]},"123":{"position":[[89,36]]},"125":{"position":[[89,36]]},"127":{"position":[[102,36]]},"129":{"position":[[89,36]]},"131":{"position":[[89,36]]},"133":{"position":[[89,36]]},"135":{"position":[[89,36]]},"137":{"position":[[89,36]]},"139":{"position":[[89,36]]},"141":{"position":[[89,36]]},"143":{"position":[[89,36]]},"145":{"position":[[89,36]]},"149":{"position":[[107,36]]},"151":{"position":[[107,36]]},"153":{"position":[[112,36]]},"155":{"position":[[112,36]]},"157":{"position":[[112,36]]},"159":{"position":[[89,36]]},"161":{"position":[[112,36]]},"163":{"position":[[109,36]]},"165":{"position":[[112,36]]},"167":{"position":[[112,36]]},"169":{"position":[[112,36]]},"171":{"position":[[244,36]]},"173":{"position":[[1590,36]]},"175":{"position":[[89,36]]},"177":{"position":[[112,36]]},"179":{"position":[[89,36]]}}}],["document.body.appendchild(canvas",{"_index":2474,"t":{"147":{"position":[[292,34]]}}}],["document.createelement('a",{"_index":382,"t":{"45":{"position":[[389,28]]}}}],["document.createelement('canvas",{"_index":2470,"t":{"147":{"position":[[124,33]]},"171":{"position":[[421,33]]},"173":{"position":[[661,33]]}}}],["document.createelement('script",{"_index":2667,"t":{"169":{"position":[[364,33]]}}}],["document.getelementsbytagname('script')[0",{"_index":2676,"t":{"169":{"position":[[584,43]]}}}],["document.location.protocol",{"_index":2669,"t":{"169":{"position":[[407,29]]}}}],["doesn't",{"_index":2155,"t":{"115":{"position":[[848,7]]}}}],["doesnt",{"_index":2842,"t":{"179":{"position":[[778,6]]}}}],["doing",{"_index":1763,"t":{"99":{"position":[[92,5]]}}}],["don't",{"_index":189,"t":{"39":{"position":[[3801,5]]},"53":{"position":[[8657,5]]},"91":{"position":[[464,5]]},"163":{"position":[[1101,5]]}}}],["done",{"_index":164,"t":{"39":{"position":[[2819,4]]},"47":{"position":[[3530,4]]}}}],["dont",{"_index":2724,"t":{"173":{"position":[[362,4],[600,4]]}}}],["dot",{"_index":1820,"t":{"99":{"position":[[1669,4]]},"129":{"position":[[1536,4]]}}}],["dotrice",{"_index":2615,"t":{"165":{"position":[[342,8],[845,8]]}}}],["down",{"_index":1529,"t":{"91":{"position":[[1656,4]]}}}],["downloaded",{"_index":950,"t":{"57":{"position":[[752,10],[1937,10]]}}}],["downstream",{"_index":1506,"t":{"91":{"position":[[1053,10]]}}}],["dragging",{"_index":342,"t":{"43":{"position":[[1193,8],[1286,10],[1896,8],[1963,8]]},"93":{"position":[[1646,8]]}}}],["dragtarget",{"_index":1276,"t":{"79":{"position":[[1207,10],[1405,12],[1701,10],[1789,12],[1868,10]]}}}],["dragtarget.alpha",{"_index":1294,"t":{"79":{"position":[[1846,16]]}}}],["dragtarget.parent.tolocal(event.global",{"_index":1281,"t":{"79":{"position":[[1420,39]]}}}],["dragtarget.position",{"_index":1282,"t":{"79":{"position":[[1466,21]]}}}],["draw",{"_index":1655,"t":{"93":{"position":[[509,4]]},"111":{"position":[[344,4],[665,4],[937,4],[1031,4],[1451,4]]},"115":{"position":[[793,4],[1417,4],[1647,4],[1816,4],[1951,4],[2088,4],[2225,4]]},"175":{"position":[[273,4]]}}}],["drawcircle(0",{"_index":310,"t":{"43":{"position":[[231,14]]},"89":{"position":[[393,14]]},"93":{"position":[[581,14]]}}}],["drawcircle(radius",{"_index":2132,"t":{"113":{"position":[[514,18]]}}}],["drawing",{"_index":350,"t":{"43":{"position":[[1433,7]]}}}],["drawn",{"_index":314,"t":{"43":{"position":[[297,5],[1506,5]]}}}],["drawrect(0",{"_index":1425,"t":{"87":{"position":[[688,12]]},"93":{"position":[[399,12]]}}}],["drawrect(100",{"_index":1431,"t":{"87":{"position":[[890,14]]}}}],["drawrect(starbutton3.x",{"_index":1327,"t":{"81":{"position":[[1324,24]]}}}],["drawrect(starbutton4.x",{"_index":1341,"t":{"81":{"position":[[1849,24]]}}}],["drawroundedrect(0",{"_index":2572,"t":{"163":{"position":[[262,19]]}}}],["drawstar(0",{"_index":1588,"t":{"91":{"position":[[3649,12]]}}}],["dropshadow",{"_index":507,"t":{"47":{"position":[[2285,11]]},"167":{"position":[[464,11],[866,11]]}}}],["dropshadowalpha",{"_index":2645,"t":{"167":{"position":[[884,16]]}}}],["dropshadowangle",{"_index":511,"t":{"47":{"position":[[2350,16]]},"167":{"position":[[529,16],[906,16]]}}}],["dropshadowblur",{"_index":510,"t":{"47":{"position":[[2331,15]]},"167":{"position":[[510,15],[928,15]]}}}],["dropshadowcolor",{"_index":508,"t":{"47":{"position":[[2303,16]]},"167":{"position":[[482,16],[947,16]]}}}],["dropshadowdistance",{"_index":514,"t":{"47":{"position":[[2380,19]]},"167":{"position":[[559,19],[976,19]]}}}],["dude",{"_index":1021,"t":{"63":{"position":[[576,4],[696,4],[769,4],[1216,4],[1305,4],[1383,4],[1867,4]]},"69":{"position":[[488,4],[1244,4],[1749,4]]},"71":{"position":[[328,4],[511,4],[624,4],[1069,4],[1158,4],[1236,4],[1715,4]]},"179":{"position":[[1285,4]]}}}],["dude.anchor.set(0.5",{"_index":1023,"t":{"63":{"position":[[644,21]]},"69":{"position":[[622,21]]},"71":{"position":[[459,21]]}}}],["dude.blendmode",{"_index":1034,"t":{"63":{"position":[[1013,14]]}}}],["dude.direction",{"_index":1038,"t":{"63":{"position":[[1111,14],[1888,14],[2047,14]]},"69":{"position":[[910,14],[1827,14],[2020,14]]},"71":{"position":[[964,14],[1733,14],[1892,14]]}}}],["dude.offset",{"_index":1147,"t":{"69":{"position":[[1186,11],[1806,12]]}}}],["dude.rotation",{"_index":1060,"t":{"63":{"position":[[2030,13]]},"69":{"position":[[2003,13]]},"71":{"position":[[1875,13]]}}}],["dude.scale.set(0.8",{"_index":1024,"t":{"63":{"position":[[701,18]]},"69":{"position":[[682,18]]},"71":{"position":[[557,18]]}}}],["dude.scale.x",{"_index":2855,"t":{"179":{"position":[[1352,12]]}}}],["dude.scale.y",{"_index":1152,"t":{"69":{"position":[[1768,12],[1922,14],[1988,14]]},"179":{"position":[[1372,12]]}}}],["dude.speed",{"_index":1043,"t":{"63":{"position":[[1324,10],[1969,11],[2018,11]]},"69":{"position":[[1142,10],[1908,11],[1974,11]]},"71":{"position":[[1177,10],[1814,11],[1863,11]]}}}],["dude.texture.rotate",{"_index":2858,"t":{"179":{"position":[[1550,24]]}}}],["dude.tint",{"_index":1142,"t":{"69":{"position":[[832,9]]},"71":{"position":[[745,9]]}}}],["dude.turningspeed",{"_index":1041,"t":{"63":{"position":[[1231,17],[1906,17]]},"69":{"position":[[1032,17],[1845,17]]},"71":{"position":[[1084,17],[1751,17]]}}}],["dude.x",{"_index":1028,"t":{"63":{"position":[[804,6],[1932,6],[2125,7],[2151,6],[2189,7],[2234,6]]},"69":{"position":[[745,6],[1871,6],[2069,7],[2095,6],[2133,7],[2178,6]]},"71":{"position":[[658,6],[1777,6],[1970,7],[1996,6],[2034,7],[2079,6]]},"179":{"position":[[1411,6],[1665,7]]}}}],["dude.y",{"_index":1029,"t":{"63":{"position":[[859,6],[1981,6],[2267,7],[2293,6],[2332,7],[2378,6]]},"69":{"position":[[788,6],[1937,6],[2211,7],[2237,6],[2276,7],[2322,6]]},"71":{"position":[[701,6],[1826,6],[2112,7],[2138,6],[2177,7],[2223,6]]},"179":{"position":[[1447,6],[1682,6]]}}}],["dudearray",{"_index":1016,"t":{"63":{"position":[[407,9],[1397,9]]}}}],["dudearray.length",{"_index":1056,"t":{"63":{"position":[[1836,17]]}}}],["dudearray.push(dude",{"_index":1047,"t":{"63":{"position":[[1445,21]]}}}],["dudearray[i",{"_index":1057,"t":{"63":{"position":[[1874,13]]}}}],["dudebounds",{"_index":1052,"t":{"63":{"position":[[1578,10]]},"69":{"position":[[1445,10]]},"71":{"position":[[1431,10]]}}}],["dudebounds.height",{"_index":1067,"t":{"63":{"position":[[2303,18],[2357,18],[2388,18]]},"69":{"position":[[2247,18],[2301,18],[2332,18]]},"71":{"position":[[2148,18],[2202,18],[2233,18]]}}}],["dudebounds.width",{"_index":1065,"t":{"63":{"position":[[2161,17],[2214,17],[2244,17]]},"69":{"position":[[2105,17],[2158,17],[2188,17]]},"71":{"position":[[2006,17],[2059,17],[2089,17]]}}}],["dudebounds.x",{"_index":1064,"t":{"63":{"position":[[2135,13],[2199,12]]},"69":{"position":[[2079,13],[2143,12]]},"71":{"position":[[1980,13],[2044,12]]}}}],["dudebounds.y",{"_index":1066,"t":{"63":{"position":[[2277,13],[2342,12]]},"69":{"position":[[2221,13],[2286,12]]},"71":{"position":[[2122,13],[2187,12]]}}}],["dudeboundspadding",{"_index":1051,"t":{"63":{"position":[[1547,17],[1612,18],[1632,18],[1670,17],[1713,17]]},"69":{"position":[[1414,17],[1479,18],[1499,18],[1537,17],[1580,17]]},"71":{"position":[[1400,17],[1464,18],[1484,18],[1522,17],[1565,17]]}}}],["dudes",{"_index":1015,"t":{"63":{"position":[[395,5],[1535,5],[1785,5],[2089,5]]},"71":{"position":[[1388,5],[1635,5],[1934,5]]}}}],["dxcenter",{"_index":697,"t":{"49":{"position":[[1803,8],[1970,8],[2493,9]]}}}],["dycenter",{"_index":698,"t":{"49":{"position":[[1867,8],[1981,8],[1992,10]]}}}],["dynamic",{"_index":2765,"t":{"175":{"position":[[240,7]]}}}],["dynamically",{"_index":2542,"t":{"157":{"position":[[781,11]]}}}],["e",{"_index":1466,"t":{"89":{"position":[[718,3]]},"91":{"position":[[1828,3],[4400,3],[4584,3],[5103,3]]}}}],["e.currenttarget.name",{"_index":1442,"t":{"87":{"position":[[1227,21]]}}}],["e.global.x",{"_index":1635,"t":{"91":{"position":[[5127,14]]}}}],["e.global.y",{"_index":1636,"t":{"91":{"position":[[5148,12]]}}}],["e.screen.x",{"_index":1637,"t":{"91":{"position":[[5184,14]]}}}],["e.screen.y",{"_index":1638,"t":{"91":{"position":[[5205,12]]}}}],["e.target.name",{"_index":1440,"t":{"87":{"position":[[1186,14]]}}}],["e.type",{"_index":1438,"t":{"87":{"position":[[1159,7]]}}}],["each",{"_index":223,"t":{"39":{"position":[[5043,4]]},"53":{"position":[[6066,4],[8414,4]]},"87":{"position":[[394,4]]},"127":{"position":[[1624,4]]},"175":{"position":[[1739,4]]}}}],["easier",{"_index":1270,"t":{"79":{"position":[[937,6]]},"177":{"position":[[961,6]]}}}],["easily",{"_index":1044,"t":{"63":{"position":[[1423,6]]},"69":{"position":[[1288,6]]},"71":{"position":[[1279,6]]}}}],["easing",{"_index":606,"t":{"47":{"position":[[4722,7],[4834,7]]},"49":{"position":[[1218,7],[1259,6]]}}}],["easy",{"_index":2601,"t":{"163":{"position":[[1323,5]]}}}],["edge",{"_index":797,"t":{"53":{"position":[[3027,5],[4820,4],[4889,4]]}}}],["edge.drawroundedrect(0",{"_index":827,"t":{"53":{"position":[[4956,23]]}}}],["edge.endfill",{"_index":828,"t":{"53":{"position":[[5007,15]]}}}],["edge.linestyle(linesize",{"_index":826,"t":{"53":{"position":[[4917,24]]}}}],["edge.mask",{"_index":837,"t":{"53":{"position":[[5243,9]]}}}],["edges",{"_index":279,"t":{"41":{"position":[[1471,6]]},"53":{"position":[[4167,6],[5163,6]]},"127":{"position":[[1196,5],[3528,5]]}}}],["effect",{"_index":2306,"t":{"127":{"position":[[2721,7],[3354,6]]}}}],["egg",{"_index":999,"t":{"59":{"position":[[832,3]]}}}],["egg.anchor.set(0.5",{"_index":1001,"t":{"59":{"position":[[874,20]]}}}],["egg.x",{"_index":1002,"t":{"59":{"position":[[895,5]]}}}],["egg.y",{"_index":1004,"t":{"59":{"position":[[928,5]]}}}],["egghead",{"_index":916,"t":{"55":{"position":[[404,12],[1094,9]]},"57":{"position":[[382,10]]},"59":{"position":[[439,12],[487,8]]}}}],["egghead.png",{"_index":1073,"t":{"65":{"position":[[318,14]]}}}],["elements",{"_index":2824,"t":{"177":{"position":[[980,8]]}}}],["ellipse",{"_index":2160,"t":{"115":{"position":[[1262,7]]}}}],["embedded",{"_index":1781,"t":{"99":{"position":[[834,8]]}}}],["empty",{"_index":1078,"t":{"65":{"position":[[410,5]]}}}],["enable",{"_index":1260,"t":{"79":{"position":[[599,6]]},"87":{"position":[[965,6]]},"89":{"position":[[496,6]]},"163":{"position":[[508,6]]}}}],["enabled",{"_index":1913,"t":{"103":{"position":[[1079,7],[1130,7],[1140,9],[1170,7]]},"169":{"position":[[678,7]]}}}],["end",{"_index":764,"t":{"53":{"position":[[1835,3]]}}}],["endfill",{"_index":1329,"t":{"81":{"position":[[1373,11],[1898,11]]},"87":{"position":[[714,12],[920,12]]},"89":{"position":[[414,12]]},"113":{"position":[[572,11]]},"163":{"position":[[299,10]]}}}],["enough",{"_index":970,"t":{"57":{"position":[[1330,6]]}}}],["eps",{"_index":1809,"t":{"99":{"position":[[1475,3]]},"129":{"position":[[1342,3]]}}}],["eps.xxy).x",{"_index":1817,"t":{"99":{"position":[[1630,10]]},"129":{"position":[[1497,10]]}}}],["eps.xyx).x",{"_index":1815,"t":{"99":{"position":[[1591,11]]},"129":{"position":[[1458,11]]}}}],["eps.yxx).x",{"_index":1813,"t":{"99":{"position":[[1552,11]]},"129":{"position":[[1419,11]]}}}],["equivalent",{"_index":1162,"t":{"71":{"position":[[934,10]]}}}],["error('the",{"_index":1543,"t":{"91":{"position":[[2046,10]]}}}],["eslint",{"_index":1537,"t":{"91":{"position":[[1968,6]]},"169":{"position":[[283,6],[671,6]]}}}],["etc",{"_index":2530,"t":{"153":{"position":[[754,3]]}}}],["even",{"_index":1335,"t":{"81":{"position":[[1669,4]]}}}],["event",{"_index":152,"t":{"39":{"position":[[2637,7]]},"41":{"position":[[948,7]]},"87":{"position":[[1256,5],[1326,5]]},"91":{"position":[[1019,5]]},"97":{"position":[[1523,7]]},"113":{"position":[[1008,7]]},"163":{"position":[[673,5],[922,5]]}}}],["event.data",{"_index":1290,"t":{"79":{"position":[[1671,11]]}}}],["event.global.x",{"_index":154,"t":{"39":{"position":[[2666,15]]},"41":{"position":[[1028,15]]},"113":{"position":[[1040,14]]}}}],["event.global.y",{"_index":156,"t":{"39":{"position":[[2698,15]]},"41":{"position":[[1062,15]]},"113":{"position":[[1093,14]]}}}],["eventboundary",{"_index":1490,"t":{"91":{"position":[[689,14]]}}}],["eventdata.data.global.y",{"_index":1970,"t":{"105":{"position":[[1768,25]]}}}],["events",{"_index":1194,"t":{"75":{"position":[[695,7]]},"79":{"position":[[686,6],[981,6],[1027,6]]},"85":{"position":[[1060,6],[1103,6],[1143,7],[1332,6],[1524,6]]},"87":{"position":[[67,6],[88,6],[384,6]]},"91":{"position":[[136,6],[600,6],[1046,6],[1649,6]]}}}],["everywhere",{"_index":1433,"t":{"87":{"position":[[986,11]]},"91":{"position":[[4067,11]]}}}],["exact",{"_index":1788,"t":{"99":{"position":[[1168,5]]},"129":{"position":[[1087,5]]}}}],["example",{"_index":437,"t":{"47":{"position":[[444,8]]},"53":{"position":[[5039,7],[5082,7]]},"57":{"position":[[185,7]]},"63":{"position":[[944,8]]},"87":{"position":[[41,7]]},"89":{"position":[[46,8]]},"91":{"position":[[73,7]]},"99":{"position":[[220,7]]},"127":{"position":[[1678,8]]},"147":{"position":[[41,7]]},"163":{"position":[[755,8]]}}}],["examples",{"_index":3,"t":{"3":{"position":[[29,8],[66,9]]},"53":{"position":[[8715,8]]}}}],["except",{"_index":833,"t":{"53":{"position":[[5096,6]]}}}],["exception",{"_index":2841,"t":{"179":{"position":[[760,9]]}}}],["explaining",{"_index":2,"t":{"3":{"position":[[18,10]]}}}],["explosion",{"_index":2506,"t":{"151":{"position":[[475,9],[506,9]]}}}],["explosion.anchor.set(0.5",{"_index":2510,"t":{"151":{"position":[[659,26]]}}}],["explosion.gotoandplay(math.random",{"_index":2513,"t":{"151":{"position":[[781,35]]}}}],["explosion.rotation",{"_index":2511,"t":{"151":{"position":[[686,18]]}}}],["explosion.scale.set(0.75",{"_index":2512,"t":{"151":{"position":[[732,24]]}}}],["explosion.x",{"_index":2508,"t":{"151":{"position":[[562,11]]}}}],["explosion.y",{"_index":2509,"t":{"151":{"position":[[610,11]]}}}],["explosiontextures",{"_index":2502,"t":{"151":{"position":[[270,17]]}}}],["explosiontextures.push(texture",{"_index":2505,"t":{"151":{"position":[[400,32]]}}}],["extends",{"_index":1494,"t":{"91":{"position":[[762,7]]},"173":{"position":[[284,7]]}}}],["extra",{"_index":552,"t":{"47":{"position":[[3282,5],[3362,6],[3399,5]]},"63":{"position":[[1067,5]]},"71":{"position":[[798,5]]}}}],["extras",{"_index":1469,"t":{"91":{"position":[[56,8]]},"115":{"position":[[56,8]]}}}],["factor",{"_index":293,"t":{"41":{"position":[[1848,7],[1872,6]]}}}],["fake",{"_index":2755,"t":{"173":{"position":[[1713,4]]}}}],["false",{"_index":343,"t":{"43":{"position":[[1204,6],[1376,6],[1404,6],[1742,6],[1770,6],[1974,6]]},"47":{"position":[[3118,6],[3581,6]]},"53":{"position":[[4052,7],[8638,5],[8908,6],[9040,6],[9290,6]]},"77":{"position":[[1955,6],[2208,6]]},"85":{"position":[[2050,6],[2303,6]]},"99":{"position":[[2751,6]]},"105":{"position":[[1370,6]]},"123":{"position":[[472,6],[591,6]]},"129":{"position":[[2647,6]]},"149":{"position":[[79,6]]},"151":{"position":[[79,6]]},"175":{"position":[[2251,6]]}}}],["families",{"_index":2660,"t":{"169":{"position":[[229,9]]}}}],["far",{"_index":211,"t":{"39":{"position":[[4544,3]]},"49":{"position":[[2282,3]]}}}],["fast",{"_index":37,"t":{"39":{"position":[[365,4]]},"49":{"position":[[2212,4]]},"149":{"position":[[818,4],[844,4]]}}}],["fast.anchor.set(0.5",{"_index":2494,"t":{"149":{"position":[[886,21]]}}}],["fast.play",{"_index":2499,"t":{"149":{"position":[[1011,12]]}}}],["fast.scale.set(scaling",{"_index":2495,"t":{"149":{"position":[[908,24]]}}}],["fast.width",{"_index":2497,"t":{"149":{"position":[[962,11]]}}}],["fast.x",{"_index":2496,"t":{"149":{"position":[[933,6]]}}}],["fast.y",{"_index":2498,"t":{"149":{"position":[[979,6]]}}}],["featured",{"_index":6,"t":{"3":{"position":[[57,8]]}}}],["feedback",{"_index":1610,"t":{"91":{"position":[[4360,8]]},"93":{"position":[[1655,8]]}}}],["fetch('https://pixijs.com/assets/pixi",{"_index":1694,"t":{"95":{"position":[[396,37]]}}}],["ffffff",{"_index":501,"t":{"47":{"position":[[2210,11]]},"81":{"position":[[2367,9]]},"167":{"position":[[389,11],[1006,12]]}}}],["figure",{"_index":204,"t":{"39":{"position":[[4344,6],[4463,6]]}}}],["file",{"_index":1780,"t":{"99":{"position":[[823,4]]},"165":{"position":[[171,5]]}}}],["files",{"_index":985,"t":{"57":{"position":[[1919,5]]}}}],["fill",{"_index":413,"t":{"45":{"position":[[1098,5]]},"47":{"position":[[2204,5]]},"53":{"position":[[2032,4],[6986,4]]},"81":{"position":[[2361,5]]},"91":{"position":[[4804,5],[5534,5]]},"93":{"position":[[1277,5]]},"99":{"position":[[558,5]]},"103":{"position":[[1327,5]]},"111":{"position":[[254,4],[564,4]]},"117":{"position":[[1447,5]]},"167":{"position":[[383,5],[1000,5]]},"169":{"position":[[883,5]]},"179":{"position":[[1622,5]]}}}],["filter",{"_index":563,"t":{"47":{"position":[[3745,6]]},"95":{"position":[[504,7],[585,7],[634,6],[739,6],[840,6],[868,9],[937,6]]},"97":{"position":[[1327,6],[1421,9]]},"99":{"position":[[504,6],[2611,7],[2771,6],[2778,6],[2915,9]]},"103":{"position":[[315,6],[1050,9],[1180,8],[1664,7]]}}}],["filter.uniforms.customuniform",{"_index":1710,"t":{"95":{"position":[[793,29],[972,29]]}}}],["filter.uniforms.mouse.copyfrom(event.global",{"_index":1760,"t":{"97":{"position":[[1536,45]]}}}],["filter.uniforms.time",{"_index":1866,"t":{"99":{"position":[[2983,20]]}}}],["filtered",{"_index":2307,"t":{"127":{"position":[[2741,8]]}}}],["filters",{"_index":1716,"t":{"97":{"position":[[90,7]]},"103":{"position":[[1250,7]]}}}],["filters/bg_depth_blur.jpg",{"_index":1869,"t":{"101":{"position":[[186,28]]}}}],["filters/depth_blur_dudes.jpg",{"_index":1874,"t":{"101":{"position":[[368,31]]}}}],["filters/depth_blur_moby.jpg",{"_index":1880,"t":{"101":{"position":[[569,30]]}}}],["filters/displace.png",{"_index":1950,"t":{"105":{"position":[[957,23]]}}}],["filters/displacement_map_repeat.jpg",{"_index":1984,"t":{"107":{"position":[[441,38]]}}}],["filters/flag.png",{"_index":1980,"t":{"107":{"position":[[291,19]]}}}],["filters/ring.png",{"_index":1958,"t":{"105":{"position":[[1313,19]]}}}],["filters/shader.frag",{"_index":1695,"t":{"95":{"position":[[434,21]]}}}],["final",{"_index":2343,"t":{"127":{"position":[[4347,5]]}}}],["finally",{"_index":1026,"t":{"63":{"position":[[747,7],[1363,7]]},"69":{"position":[[1224,7]]},"71":{"position":[[603,7],[1216,7]]}}}],["find",{"_index":750,"t":{"53":{"position":[[1328,4],[6134,4]]}}}],["finish",{"_index":1693,"t":{"95":{"position":[[377,6]]}}}],["first",{"_index":1517,"t":{"91":{"position":[[1301,5],[5402,5]]},"95":{"position":[[780,5]]},"127":{"position":[[998,5]]}}}],["fit",{"_index":467,"t":{"47":{"position":[[1331,3]]}}}],["fixed",{"_index":849,"t":{"53":{"position":[[7329,5]]}}}],["flag",{"_index":923,"t":{"55":{"position":[[577,4]]},"107":{"position":[[235,4]]}}}],["flag.filters",{"_index":1989,"t":{"107":{"position":[[793,12]]}}}],["flag.position",{"_index":1988,"t":{"107":{"position":[[738,14]]}}}],["flag.x",{"_index":1982,"t":{"107":{"position":[[337,6]]}}}],["flag.y",{"_index":1983,"t":{"107":{"position":[[351,6]]}}}],["flash",{"_index":2526,"t":{"153":{"position":[[569,6]]}}}],["flexibility",{"_index":2823,"t":{"177":{"position":[[936,11]]}}}],["flight",{"_index":680,"t":{"49":{"position":[[1057,6]]}}}],["float",{"_index":1734,"t":{"97":{"position":[[683,6],[796,5]]},"99":{"position":[[1044,5],[1231,5],[1283,5],[1338,5],[1875,5],[2144,5]]},"121":{"position":[[543,6],[837,6]]},"123":{"position":[[1023,6],[1329,6]]},"125":{"position":[[935,6],[1229,6]]},"127":{"position":[[585,6],[1072,6],[1106,5],[1998,6],[2032,5],[2054,5],[2181,5],[2802,6],[2836,5],[2888,5],[3405,6],[3439,5],[3464,5],[4417,6]]},"129":{"position":[[534,6],[904,6],[963,5],[1150,5],[1202,5],[1723,5],[1992,5]]},"131":{"position":[[418,6],[712,6],[967,6],[1261,6]]},"133":{"position":[[484,6],[778,6]]},"139":{"position":[[280,6],[521,6]]},"141":{"position":[[502,6],[804,6]]},"143":{"position":[[608,6],[984,6]]},"145":{"position":[[515,6],[830,6],[893,5]]}}}],["float32array(geometry.instancecount",{"_index":2237,"t":{"123":{"position":[[350,35]]}}}],["floor(p.x)+floor(p.y",{"_index":1793,"t":{"99":{"position":[[1242,22]]},"129":{"position":[[1161,22]]}}}],["floor(uv*zoom",{"_index":2270,"t":{"127":{"position":[[1254,15]]}}}],["flower",{"_index":992,"t":{"59":{"position":[[657,6]]}}}],["flower.anchor.set(0.5",{"_index":994,"t":{"59":{"position":[[704,23]]}}}],["flower.x",{"_index":995,"t":{"59":{"position":[[728,8]]}}}],["flower.y",{"_index":997,"t":{"59":{"position":[[764,8]]}}}],["flowertop",{"_index":940,"t":{"55":{"position":[[1106,13]]},"57":{"position":[[270,12]]}}}],["flowertop.png",{"_index":1074,"t":{"65":{"position":[[333,16]]}}}],["focus",{"_index":2137,"t":{"113":{"position":[[830,5],[909,6]]}}}],["focus.height",{"_index":2143,"t":{"113":{"position":[[1110,12]]}}}],["focus.position.x",{"_index":2140,"t":{"113":{"position":[[1021,16]]}}}],["focus.position.y",{"_index":2142,"t":{"113":{"position":[[1074,16]]}}}],["focus.width",{"_index":2141,"t":{"113":{"position":[[1057,11]]}}}],["follow",{"_index":1457,"t":{"89":{"position":[[69,6],[657,6]]}}}],["font",{"_index":2608,"t":{"165":{"position":[[166,4]]},"169":{"position":[[320,4]]}}}],["font/desyrel.xml').then",{"_index":2558,"t":{"161":{"position":[[200,26]]}}}],["fontfamily",{"_index":411,"t":{"45":{"position":[[1076,11]]},"47":{"position":[[2128,11]]},"91":{"position":[[4768,11],[5512,11]]},"93":{"position":[[1294,11]]},"103":{"position":[[1272,11]]},"117":{"position":[[1392,11]]},"165":{"position":[[614,11],[720,11],[833,11],[951,11]]},"167":{"position":[[307,11],[845,11]]},"169":{"position":[[846,11]]},"179":{"position":[[1577,11]]}}}],["fontname",{"_index":1628,"t":{"91":{"position":[[4949,9]]},"161":{"position":[[319,9]]}}}],["fonts",{"_index":2562,"t":{"161":{"position":[[284,5]]},"169":{"position":[[169,5]]}}}],["fontsize",{"_index":495,"t":{"47":{"position":[[2149,9]]},"87":{"position":[[411,9],[517,9]]},"91":{"position":[[4790,9],[5498,9]]},"93":{"position":[[1316,9]]},"99":{"position":[[574,9]]},"103":{"position":[[1293,9]]},"117":{"position":[[1413,9]]},"161":{"position":[[340,9]]},"165":{"position":[[639,9],[742,9],[864,9],[977,9]]},"167":{"position":[[328,9],[1038,9]]},"169":{"position":[[869,9]]},"179":{"position":[[1604,9]]}}}],["fontstyle",{"_index":497,"t":{"47":{"position":[[2163,10]]},"167":{"position":[[342,10]]}}}],["fontweight",{"_index":499,"t":{"47":{"position":[[2184,11]]},"103":{"position":[[1307,11]]},"117":{"position":[[1427,11]]},"167":{"position":[[363,11],[1052,11]]}}}],["forced",{"_index":1725,"t":{"97":{"position":[[481,6]]}}}],["forces",{"_index":920,"t":{"55":{"position":[[486,6]]}}}],["foreach((event",{"_index":1531,"t":{"91":{"position":[[1776,17]]}}}],["forward",{"_index":1829,"t":{"99":{"position":[[1897,7],[1960,8],[2023,10]]},"129":{"position":[[1745,7],[1808,8],[1871,10]]}}}],["found",{"_index":843,"t":{"53":{"position":[[6269,5]]}}}],["fov",{"_index":650,"t":{"49":{"position":[[280,3],[1593,4],[1689,4]]},"99":{"position":[[1881,3]]},"129":{"position":[[1729,3]]}}}],["fov*forward",{"_index":1839,"t":{"99":{"position":[[2090,14]]},"129":{"position":[[1938,14]]}}}],["fragment",{"_index":1726,"t":{"97":{"position":[[491,8],[583,8]]},"99":{"position":[[748,8],[888,8],[2809,9]]}}}],["fragmentcombinesrc",{"_index":2345,"t":{"127":{"position":[[4376,18],[4880,19]]}}}],["fragmentgridsrc",{"_index":2264,"t":{"127":{"position":[[1034,15],[1526,16]]}}}],["fragmentnoisesrc",{"_index":2308,"t":{"127":{"position":[[2763,16],[3097,17]]}}}],["fragmentripplesrc",{"_index":2293,"t":{"127":{"position":[[1958,17],[2455,18]]}}}],["fragmentsrc",{"_index":2385,"t":{"129":{"position":[[815,11],[2731,12]]},"143":{"position":[[950,11],[1284,12]]},"145":{"position":[[796,11],[1159,12]]}}}],["fragmentwavesrc",{"_index":2320,"t":{"127":{"position":[[3367,15],[4104,16]]}}}],["frame",{"_index":570,"t":{"47":{"position":[[3859,5]]},"65":{"position":[[800,5]]},"67":{"position":[[878,5]]},"147":{"position":[[1056,5]]},"155":{"position":[[622,5]]},"179":{"position":[[496,5],[706,6],[912,6]]}}}],["framekey",{"_index":2477,"t":{"149":{"position":[[344,8]]}}}],["framename",{"_index":1086,"t":{"65":{"position":[[739,9]]}}}],["framentsource",{"_index":1703,"t":{"95":{"position":[[619,14]]}}}],["frames",{"_index":2516,"t":{"153":{"position":[[289,6]]}}}],["frames.push(pixi.texture.from(`rollsequence00${val}.png",{"_index":2522,"t":{"153":{"position":[[440,59]]}}}],["friend",{"_index":1259,"t":{"79":{"position":[[547,8]]}}}],["fruits",{"_index":2780,"t":{"175":{"position":[[891,6]]}}}],["fruits.length",{"_index":2794,"t":{"175":{"position":[[1466,16]]}}}],["fullscreen",{"_index":2604,"t":{"163":{"position":[[1389,10]]}}}],["fun",{"_index":1170,"t":{"73":{"position":[[493,4]]},"155":{"position":[[529,4]]}}}],["function",{"_index":57,"t":{"39":{"position":[[563,8],[953,8],[1809,8],[4528,8]]},"41":{"position":[[1717,8],[1825,8],[1940,8]]},"43":{"position":[[519,8],[1238,8],[1866,8],[1935,8]]},"45":{"position":[[276,8]]},"47":{"position":[[453,8],[3128,8],[3155,8],[3544,8],[4568,9],[4673,8],[5497,8],[5567,8],[5661,8]]},"49":{"position":[[686,8],[1266,8]]},"51":{"position":[[191,8],[206,8],[618,8]]},"53":{"position":[[8742,8]]},"57":{"position":[[155,8],[648,8],[1242,8]]},"65":{"position":[[617,8],[1160,8]]},"75":{"position":[[821,8]]},"77":{"position":[[1819,8],[1917,8],[2058,8],[2169,8]]},"79":{"position":[[491,8],[1373,8],[1492,8],[1763,8]]},"81":{"position":[[2964,8],[3009,8],[3060,8]]},"85":{"position":[[1914,8],[2012,8],[2153,8],[2264,8]]},"87":{"position":[[1124,8]]},"93":{"position":[[1528,8],[1693,8],[1877,8]]},"95":{"position":[[541,8]]},"99":{"position":[[1068,9],[2289,8],[2553,8]]},"105":{"position":[[1649,8]]},"119":{"position":[[564,8]]},"129":{"position":[[987,9],[2137,8]]},"135":{"position":[[774,8]]},"163":{"position":[[1073,8]]},"169":{"position":[[339,11],[689,8]]},"171":{"position":[[281,8]]},"173":{"position":[[143,9]]}}}],["functions",{"_index":883,"t":{"53":{"position":[[8485,9]]}}}],["funtion",{"_index":636,"t":{"47":{"position":[[5488,8]]}}}],["further",{"_index":17,"t":{"39":{"position":[[95,7],[3818,7]]}}}],["g",{"_index":2430,"t":{"135":{"position":[[445,1]]},"141":{"position":[[371,2],[391,2],[412,2]]},"143":{"position":[[371,2],[391,2],[412,2]]}}}],["g.beginfill(0xff0022",{"_index":2448,"t":{"135":{"position":[[995,22]]}}}],["g.clear",{"_index":2442,"t":{"135":{"position":[[800,10]]}}}],["g.drawcircle(points[i].x",{"_index":2449,"t":{"135":{"position":[[1018,25]]}}}],["g.endfill",{"_index":2450,"t":{"135":{"position":[[1062,12]]}}}],["g.linestyle(2",{"_index":2443,"t":{"135":{"position":[[811,14]]}}}],["g.lineto(points[i].x",{"_index":2447,"t":{"135":{"position":[[915,21]]}}}],["g.moveto(points[0].x",{"_index":2445,"t":{"135":{"position":[[837,21]]}}}],["g.x",{"_index":2431,"t":{"135":{"position":[[470,3]]}}}],["g.y",{"_index":2432,"t":{"135":{"position":[[485,3]]}}}],["game",{"_index":21,"t":{"39":{"position":[[164,4]]},"57":{"position":[[349,5],[605,5],[1388,4]]}}}],["generate",{"_index":2265,"t":{"127":{"position":[[1132,10],[2106,10]]}}}],["generated",{"_index":1019,"t":{"63":{"position":[[546,9]]},"71":{"position":[[298,9]]},"99":{"position":[[110,9],[282,9]]}}}],["generates",{"_index":2263,"t":{"127":{"position":[[1010,9],[2729,9]]}}}],["generatespinner1",{"_index":725,"t":{"53":{"position":[[282,16]]}}}],["generatespinner1(new",{"_index":868,"t":{"53":{"position":[[8114,20]]}}}],["generatespinner2",{"_index":779,"t":{"53":{"position":[[2260,16]]}}}],["generatespinner2(new",{"_index":870,"t":{"53":{"position":[[8156,20]]}}}],["generatespinner3",{"_index":799,"t":{"53":{"position":[[3174,16]]}}}],["generatespinner3(new",{"_index":872,"t":{"53":{"position":[[8199,20]]}}}],["generatespinner4",{"_index":810,"t":{"53":{"position":[[4215,16]]}}}],["generatespinner4(new",{"_index":874,"t":{"53":{"position":[[8242,20]]}}}],["generatespinner5",{"_index":852,"t":{"53":{"position":[[7393,16]]}}}],["generatespinner5(new",{"_index":876,"t":{"53":{"position":[[8285,20]]}}}],["geometry",{"_index":2202,"t":{"121":{"position":[[132,8]]},"123":{"position":[[132,8]]},"125":{"position":[[132,8]]},"127":{"position":[[148,9],[164,8]]},"129":{"position":[[135,9],[151,8]]},"131":{"position":[[132,8]]},"133":{"position":[[132,8]]},"139":{"position":[[132,8]]},"141":{"position":[[132,8]]},"143":{"position":[[132,8]]},"145":{"position":[[132,8]]}}}],["geometry.addattribute",{"_index":2238,"t":{"123":{"position":[[418,22],[540,22]]}}}],["geometry.instancecount",{"_index":2233,"t":{"123":{"position":[[242,22],[694,23]]}}}],["geometry.instanced",{"_index":2232,"t":{"123":{"position":[[215,18]]}}}],["geometry2",{"_index":2252,"t":{"125":{"position":[[483,9],[870,12]]}}}],["geometry3",{"_index":2253,"t":{"125":{"position":[[827,9]]}}}],["gettangent(k",{"_index":292,"t":{"41":{"position":[[1834,13],[2077,14],[2115,12]]}}}],["give",{"_index":77,"t":{"39":{"position":[[908,4]]},"173":{"position":[[1266,4]]}}}],["given",{"_index":107,"t":{"39":{"position":[[1796,5]]}}}],["gives",{"_index":2822,"t":{"177":{"position":[[917,5]]}}}],["gl",{"_index":2746,"t":{"173":{"position":[[1298,2]]}}}],["gl.pixelstorei(gl.unpack_premultiply_alpha_webgl",{"_index":2748,"t":{"173":{"position":[[1315,49]]}}}],["gl.teximage2d(basetexture.target",{"_index":2750,"t":{"173":{"position":[[1396,33]]}}}],["gl_fragcolor",{"_index":1747,"t":{"97":{"position":[[926,12],[1051,12]]},"99":{"position":[[2518,12]]},"121":{"position":[[906,12]]},"123":{"position":[[1369,12]]},"125":{"position":[[1298,12]]},"127":{"position":[[1414,12],[2309,12],[2956,12],[3966,12],[4683,12]]},"129":{"position":[[2366,12]]},"131":{"position":[[781,12],[1330,12]]},"133":{"position":[[853,12]]},"139":{"position":[[542,12]]},"141":{"position":[[846,12]]},"143":{"position":[[1074,12]]},"145":{"position":[[919,12]]}}}],["gl_fragcolor.g",{"_index":2399,"t":{"131":{"position":[[1437,14]]}}}],["gl_fragcolor.r",{"_index":2396,"t":{"131":{"position":[[1373,14]]}}}],["gl_position",{"_index":2218,"t":{"121":{"position":[[712,11]]},"123":{"position":[[1206,11]]},"125":{"position":[[1104,11]]},"127":{"position":[[754,11]]},"129":{"position":[[703,11]]},"131":{"position":[[587,11],[1136,11]]},"133":{"position":[[653,11]]},"139":{"position":[[396,11]]},"141":{"position":[[679,11]]},"143":{"position":[[838,11]]},"145":{"position":[[684,11]]}}}],["global",{"_index":345,"t":{"43":{"position":[[1261,7]]},"91":{"position":[[1209,6],[1395,6],[4833,11],[5118,6],[5245,8]]}}}],["global}\\nscreen",{"_index":1640,"t":{"91":{"position":[[5254,18]]}}}],["gltexture",{"_index":2731,"t":{"173":{"position":[[461,10]]}}}],["gltexture.height",{"_index":2742,"t":{"173":{"position":[[1153,16]]}}}],["gltexture.width",{"_index":2741,"t":{"173":{"position":[[1128,15]]}}}],["gltextures",{"_index":2762,"t":{"173":{"position":[[1861,11]]}}}],["go",{"_index":984,"t":{"57":{"position":[[1903,2]]}}}],["goback",{"_index":974,"t":{"57":{"position":[[1604,6]]}}}],["goback.anchor.set(0.5",{"_index":976,"t":{"57":{"position":[[1656,23]]}}}],["goback.cursor",{"_index":981,"t":{"57":{"position":[[1804,13]]}}}],["goback.destroy",{"_index":983,"t":{"57":{"position":[[1869,17]]}}}],["goback.eventmode",{"_index":980,"t":{"57":{"position":[[1775,16]]}}}],["goback.on('pointertap",{"_index":982,"t":{"57":{"position":[[1831,23]]}}}],["goback.x",{"_index":977,"t":{"57":{"position":[[1680,8]]}}}],["goback.y",{"_index":978,"t":{"57":{"position":[[1713,8]]}}}],["going",{"_index":582,"t":{"47":{"position":[[4203,5]]},"107":{"position":[[1146,5]]}}}],["gonext",{"_index":955,"t":{"57":{"position":[[927,6]]}}}],["gonext.anchor.set(0.5",{"_index":957,"t":{"57":{"position":[[981,23]]}}}],["gonext.cursor",{"_index":962,"t":{"57":{"position":[[1129,13]]}}}],["gonext.destroy",{"_index":964,"t":{"57":{"position":[[1194,17]]}}}],["gonext.eventmode",{"_index":961,"t":{"57":{"position":[[1100,16]]}}}],["gonext.on('pointertap",{"_index":963,"t":{"57":{"position":[[1156,23]]}}}],["gonext.x",{"_index":958,"t":{"57":{"position":[[1005,8]]}}}],["gonext.y",{"_index":959,"t":{"57":{"position":[[1038,8]]}}}],["good",{"_index":1189,"t":{"75":{"position":[[590,5]]}}}],["google",{"_index":2657,"t":{"169":{"position":[[162,6],[219,7]]}}}],["gpu",{"_index":2734,"t":{"173":{"position":[[642,3]]}}}],["grab",{"_index":1271,"t":{"79":{"position":[[947,4]]}}}],["gradbasetexture",{"_index":2753,"t":{"173":{"position":[[1633,15]]}}}],["gradbasetexture.setsize(500",{"_index":2763,"t":{"173":{"position":[[1873,28]]}}}],["gradient",{"_index":503,"t":{"47":{"position":[[2237,8]]},"167":{"position":[[416,8]]},"171":{"position":[[60,8],[565,8]]},"173":{"position":[[78,8],[379,8],[1807,9]]}}}],["gradientresource",{"_index":2722,"t":{"173":{"position":[[267,16],[1676,20]]}}}],["gradtexture",{"_index":2712,"t":{"171":{"position":[[865,11]]},"173":{"position":[[1913,11]]}}}],["graph",{"_index":1474,"t":{"91":{"position":[[168,6],[458,5],[1686,6]]}}}],["graphics",{"_index":1586,"t":{"91":{"position":[[3558,8]]},"111":{"position":[[213,8]]},"115":{"position":[[181,8]]}}}],["graphics.beginfill(0x3500fa",{"_index":2182,"t":{"115":{"position":[[2326,28]]}}}],["graphics.beginfill(0x35cc5a",{"_index":2165,"t":{"115":{"position":[[1859,28]]}}}],["graphics.beginfill(0x55335a",{"_index":2171,"t":{"115":{"position":[[2133,28]]}}}],["graphics.beginfill(0x650a5a",{"_index":2146,"t":{"115":{"position":[[377,29],[1021,28],[1708,28]]}}}],["graphics.beginfill(0xaa4f08",{"_index":2151,"t":{"115":{"position":[[669,29],[1321,28]]}}}],["graphics.beginfill(0xc34288",{"_index":2149,"t":{"115":{"position":[[530,29],[1171,28]]}}}],["graphics.beginfill(0xde3249",{"_index":2144,"t":{"115":{"position":[[226,29],[872,28]]}}}],["graphics.beginfill(0xff3300",{"_index":2077,"t":{"111":{"position":[[274,29]]},"115":{"position":[[1430,29]]}}}],["graphics.beginfill(0xff700b",{"_index":2088,"t":{"111":{"position":[[629,28]]}}}],["graphics.beginfill(0xffcc5a",{"_index":2168,"t":{"115":{"position":[[1996,28]]}}}],["graphics.beginfill(0xffff0b",{"_index":2103,"t":{"111":{"position":[[1068,28]]}}}],["graphics.beziercurveto",{"_index":2117,"t":{"111":{"position":[[1651,23]]}}}],["graphics.closepath",{"_index":2086,"t":{"111":{"position":[[513,21],[892,21]]},"115":{"position":[[1602,21]]}}}],["graphics.drawcircle(100",{"_index":2157,"t":{"115":{"position":[[905,24]]}}}],["graphics.drawcircle(250",{"_index":2158,"t":{"115":{"position":[[1054,24]]}}}],["graphics.drawcircle(400",{"_index":2159,"t":{"115":{"position":[[1204,24]]}}}],["graphics.drawcircle(470",{"_index":2104,"t":{"111":{"position":[[1103,24]]}}}],["graphics.drawellipse(600",{"_index":2161,"t":{"115":{"position":[[1354,25]]}}}],["graphics.drawpolygon(path",{"_index":2183,"t":{"115":{"position":[[2359,27]]}}}],["graphics.drawrect(200",{"_index":2147,"t":{"115":{"position":[[407,22]]}}}],["graphics.drawrect(350",{"_index":2150,"t":{"115":{"position":[[560,22]]}}}],["graphics.drawrect(50",{"_index":2100,"t":{"111":{"position":[[990,21]]},"115":{"position":[[256,21]]}}}],["graphics.drawrect(530",{"_index":2152,"t":{"115":{"position":[[699,22]]}}}],["graphics.drawroundedrect(50",{"_index":2164,"t":{"115":{"position":[[1744,28]]}}}],["graphics.drawstar(280",{"_index":2169,"t":{"115":{"position":[[2029,22]]}}}],["graphics.drawstar(360",{"_index":2166,"t":{"115":{"position":[[1892,22]]}}}],["graphics.drawstar(470",{"_index":2172,"t":{"115":{"position":[[2166,22]]}}}],["graphics.endfill",{"_index":2087,"t":{"111":{"position":[[535,19],[914,19],[1139,19]]},"115":{"position":[[293,19],[445,19],[598,19],[737,19],[940,19],[1089,19],[1239,19],[1394,19],[1624,19],[1793,19],[1928,19],[2065,19],[2202,19],[2387,19]]}}}],["graphics.linestyle(0",{"_index":2102,"t":{"111":{"position":[[1045,22]]},"115":{"position":[[767,22],[2303,22]]}}}],["graphics.linestyle(10",{"_index":2078,"t":{"111":{"position":[[304,22],[590,22]]},"115":{"position":[[493,22],[1134,22]]}}}],["graphics.linestyle(2",{"_index":2098,"t":{"111":{"position":[[954,21]]},"115":{"position":[[341,21],[633,21],[985,21],[1285,21],[1672,21],[1826,21],[1963,21]]}}}],["graphics.linestyle(20",{"_index":2105,"t":{"111":{"position":[[1159,22]]}}}],["graphics.linestyle(4",{"_index":2162,"t":{"115":{"position":[[1460,21],[2100,21]]}}}],["graphics.linestyle(math.random",{"_index":2115,"t":{"111":{"position":[[1523,32]]}}}],["graphics.lineto(100",{"_index":2083,"t":{"111":{"position":[[408,20]]},"115":{"position":[[1549,20]]}}}],["graphics.lineto(210",{"_index":2097,"t":{"111":{"position":[[865,20]]}}}],["graphics.lineto(250",{"_index":2082,"t":{"111":{"position":[[382,20],[435,20]]},"115":{"position":[[1522,20]]}}}],["graphics.lineto(330",{"_index":2095,"t":{"111":{"position":[[811,20]]}}}],["graphics.lineto(410",{"_index":2096,"t":{"111":{"position":[[838,20]]}}}],["graphics.lineto(450",{"_index":2091,"t":{"111":{"position":[[712,20]]}}}],["graphics.lineto(50",{"_index":2085,"t":{"111":{"position":[[462,19],[488,19]]},"115":{"position":[[1576,19]]}}}],["graphics.lineto(570",{"_index":2092,"t":{"111":{"position":[[739,20]]}}}],["graphics.lineto(600",{"_index":2108,"t":{"111":{"position":[[1218,20]]}}}],["graphics.moveto(210",{"_index":2090,"t":{"111":{"position":[[685,20]]}}}],["graphics.moveto(30",{"_index":2107,"t":{"111":{"position":[[1193,19]]}}}],["graphics.moveto(50",{"_index":2081,"t":{"111":{"position":[[357,19]]},"115":{"position":[[1496,19]]}}}],["graphics.moveto(math.random",{"_index":2116,"t":{"111":{"position":[[1592,29]]}}}],["graphics.quadraticcurveto(600",{"_index":2093,"t":{"111":{"position":[[766,30]]}}}],["grd",{"_index":2700,"t":{"171":{"position":[[580,3],[786,4]]},"173":{"position":[[784,3],[988,4]]}}}],["grd.addcolorstop(0",{"_index":2702,"t":{"171":{"position":[[630,19]]},"173":{"position":[[832,19]]}}}],["grd.addcolorstop(0.3",{"_index":2705,"t":{"171":{"position":[[679,21]]},"173":{"position":[[881,21]]}}}],["grd.addcolorstop(0.7",{"_index":2707,"t":{"171":{"position":[[710,21]]},"173":{"position":[[912,21]]}}}],["grd.addcolorstop(1",{"_index":2708,"t":{"171":{"position":[[740,19]]},"173":{"position":[[942,19]]}}}],["green",{"_index":117,"t":{"39":{"position":[[1933,5],[3111,5],[3468,5]]},"171":{"position":[[760,9]]},"173":{"position":[[962,9]]}}}],["greensquare",{"_index":119,"t":{"39":{"position":[[1972,11],[5671,13]]}}}],["greensquare.acceleration",{"_index":129,"t":{"39":{"position":[[2190,24]]}}}],["greensquare.acceleration.set",{"_index":230,"t":{"39":{"position":[[5308,29]]}}}],["greensquare.acceleration.set(greensquare.acceleration.x",{"_index":172,"t":{"39":{"position":[[2990,55]]}}}],["greensquare.acceleration.x",{"_index":180,"t":{"39":{"position":[[3268,26],[3298,27],[5434,26]]}}}],["greensquare.acceleration.y",{"_index":173,"t":{"39":{"position":[[3054,26],[3398,26],[3428,27],[5487,26]]}}}],["greensquare.height",{"_index":126,"t":{"39":{"position":[[2135,18]]}}}],["greensquare.mass",{"_index":130,"t":{"39":{"position":[[2236,16],[5248,18],[5286,18]]}}}],["greensquare.position.set((app.screen.width",{"_index":121,"t":{"39":{"position":[[2023,42],[3676,42]]}}}],["greensquare.tint",{"_index":127,"t":{"39":{"position":[[2161,16]]}}}],["greensquare.width",{"_index":125,"t":{"39":{"position":[[2110,17]]}}}],["greensquare.x",{"_index":178,"t":{"39":{"position":[[3202,14],[3224,13],[3540,15],[3565,13],[5417,13]]}}}],["greensquare.y",{"_index":181,"t":{"39":{"position":[[3331,14],[3353,13],[3609,13],[3632,13],[5470,13]]}}}],["grid",{"_index":1114,"t":{"67":{"position":[[334,4]]},"127":{"position":[[1022,5],[1152,5],[1917,4],[2126,5]]},"147":{"position":[[512,4]]},"179":{"position":[[1406,4]]}}}],["gridcontainer",{"_index":2289,"t":{"127":{"position":[[1823,13]]}}}],["gridcontainer.addchild(gridquad",{"_index":2290,"t":{"127":{"position":[[1861,33]]}}}],["gridcontainer.position.set(10",{"_index":2359,"t":{"127":{"position":[[4978,30]]}}}],["gridh",{"_index":2850,"t":{"179":{"position":[[1136,5],[1466,5]]}}}],["gridquad",{"_index":2288,"t":{"127":{"position":[[1769,8]]}}}],["gridquad.shader.uniforms.zoom",{"_index":2374,"t":{"127":{"position":[[5495,29]]}}}],["gridshader",{"_index":2279,"t":{"127":{"position":[[1485,10],[1804,12]]}}}],["gridtexture",{"_index":2286,"t":{"127":{"position":[[1693,11],[2390,12],[5782,11]]}}}],["griduniforms",{"_index":2278,"t":{"127":{"position":[[1449,12],[1543,14]]}}}],["gridw",{"_index":2849,"t":{"179":{"position":[[1096,5],[1430,5]]}}}],["growing",{"_index":1446,"t":{"87":{"position":[[1535,7]]}}}],["guv",{"_index":2269,"t":{"127":{"position":[[1248,3]]}}}],["guv.y",{"_index":2277,"t":{"127":{"position":[[1378,6]]}}}],["h",{"_index":1795,"t":{"99":{"position":[[1289,1]]},"129":{"position":[[1208,1]]},"179":{"position":[[338,1],[584,3]]}}}],["h2",{"_index":1799,"t":{"99":{"position":[[1344,2]]}}}],["hack",{"_index":2840,"t":{"179":{"position":[[746,4]]}}}],["half",{"_index":1844,"t":{"99":{"position":[[2258,4]]},"129":{"position":[[2106,4]]}}}],["halfcircle",{"_index":853,"t":{"53":{"position":[[7536,10],[7892,11]]}}}],["halfcircle.arc(0",{"_index":856,"t":{"53":{"position":[[7637,17]]}}}],["halfcircle.beginfill(0xff0000",{"_index":854,"t":{"53":{"position":[[7570,31]]}}}],["halfcircle.endfill",{"_index":857,"t":{"53":{"position":[[7676,21]]}}}],["halfcircle.linestyle(2",{"_index":855,"t":{"53":{"position":[[7602,23]]}}}],["halfcircle.position.set(50",{"_index":858,"t":{"53":{"position":[[7698,27]]}}}],["halfcircle.rotation",{"_index":866,"t":{"53":{"position":[[8062,19]]}}}],["halfhandlewidth",{"_index":1683,"t":{"93":{"position":[[1904,15],[2107,16]]}}}],["hand",{"_index":1184,"t":{"75":{"position":[[513,4]]},"79":{"position":[[755,4]]}}}],["handle",{"_index":1656,"t":{"93":{"position":[[518,6],[531,6],[717,6],[1236,6],[1509,6],[1673,6],[1860,6],[1947,6],[2141,6]]},"95":{"position":[[515,6]]}}}],["handle's",{"_index":1680,"t":{"93":{"position":[[1817,8]]}}}],["handle.cursor",{"_index":1661,"t":{"93":{"position":[[690,13]]}}}],["handle.eventmode",{"_index":1660,"t":{"93":{"position":[[661,16]]}}}],["handle.width",{"_index":1684,"t":{"93":{"position":[[1922,12]]}}}],["handle.x",{"_index":1659,"t":{"93":{"position":[[633,8],[2018,8],[2189,10]]}}}],["handle.y",{"_index":1657,"t":{"93":{"position":[[603,8]]}}}],["handler",{"_index":435,"t":{"47":{"position":[[425,7],[3535,8]]},"91":{"position":[[4545,7]]}}}],["handlers",{"_index":1605,"t":{"91":{"position":[[4204,8]]}}}],["handling",{"_index":879,"t":{"53":{"position":[[8401,8]]},"85":{"position":[[1114,8]]}}}],["happens",{"_index":2738,"t":{"173":{"position":[[1063,7]]}}}],["hasn't",{"_index":917,"t":{"55":{"position":[[443,6]]}}}],["having",{"_index":814,"t":{"53":{"position":[[4537,6]]}}}],["header",{"_index":528,"t":{"47":{"position":[[2684,6]]}}}],["headertext",{"_index":529,"t":{"47":{"position":[[2702,10]]}}}],["headertext.height",{"_index":537,"t":{"47":{"position":[[2859,18]]}}}],["headertext.width",{"_index":535,"t":{"47":{"position":[[2799,17]]}}}],["headertext.x",{"_index":533,"t":{"47":{"position":[[2760,12]]}}}],["headertext.y",{"_index":536,"t":{"47":{"position":[[2823,12]]}}}],["height",{"_index":323,"t":{"43":{"position":[[553,6],[603,6]]},"99":{"position":[[1098,6],[2282,6]]},"127":{"position":[[68,7],[1747,7],[2553,7],[3192,7],[4196,7]]},"129":{"position":[[1017,6],[2130,6]]},"159":{"position":[[303,6]]},"173":{"position":[[342,7],[407,6],[543,6],[733,7],[1019,8],[1172,7]]},"175":{"position":[[171,7]]}}}],["heightmaps",{"_index":1846,"t":{"99":{"position":[[2330,11]]},"129":{"position":[[2178,11]]}}}],["helmlok.png",{"_index":1075,"t":{"65":{"position":[[350,14]]}}}],["help",{"_index":1914,"t":{"103":{"position":[[1207,4]]},"117":{"position":[[1327,4]]}}}],["help.x",{"_index":1917,"t":{"103":{"position":[[1379,6]]},"117":{"position":[[1499,6]]}}}],["help.y",{"_index":1916,"t":{"103":{"position":[[1346,6]]},"117":{"position":[[1466,6]]}}}],["helper",{"_index":882,"t":{"53":{"position":[[8478,6]]}}}],["here",{"_index":1,"t":{"3":{"position":[[13,4]]},"57":{"position":[[1278,4]]},"91":{"position":[[175,5]]},"173":{"position":[[118,4],[1700,4]]}}}],["highp",{"_index":1733,"t":{"97":{"position":[[677,5]]}}}],["history",{"_index":251,"t":{"41":{"position":[[481,7],[1192,7],[1342,8]]}}}],["historysize",{"_index":243,"t":{"41":{"position":[[302,11],[359,11],[516,12],[1533,13],[1602,13]]}}}],["historyx",{"_index":241,"t":{"41":{"position":[[263,8]]}}}],["historyx.pop",{"_index":267,"t":{"41":{"position":[[1200,15]]}}}],["historyx.push(0",{"_index":253,"t":{"41":{"position":[[536,17]]}}}],["historyx.unshift(mouseposition.x",{"_index":268,"t":{"41":{"position":[[1216,34]]}}}],["historyy",{"_index":242,"t":{"41":{"position":[[284,8]]}}}],["historyy.pop",{"_index":269,"t":{"41":{"position":[[1251,15]]}}}],["historyy.push(0",{"_index":254,"t":{"41":{"position":[[554,17]]}}}],["historyy.unshift(mouseposition.y",{"_index":270,"t":{"41":{"position":[[1267,34]]}}}],["hit",{"_index":51,"t":{"39":{"position":[[507,3]]},"53":{"position":[[1480,3],[1560,5],[1583,4],[6256,3],[6383,3],[6463,5],[6486,4]]},"81":{"position":[[1104,3],[1581,3],[2740,3]]},"91":{"position":[[4002,3]]}}}],["hit.x",{"_index":761,"t":{"53":{"position":[[1611,5],[6514,5]]}}}],["hitarea",{"_index":1307,"t":{"81":{"position":[[555,7],[667,7],[1952,7]]}}}],["hitareas",{"_index":1331,"t":{"81":{"position":[[1593,8]]}}}],["hits",{"_index":673,"t":{"49":{"position":[[876,4]]}}}],["hitting",{"_index":845,"t":{"53":{"position":[[6282,7]]}}}],["holder",{"_index":1070,"t":{"65":{"position":[[254,6]]},"71":{"position":[[129,6]]}}}],["hole",{"_index":2056,"t":{"109":{"position":[[1805,4]]}}}],["hover",{"_index":1231,"t":{"77":{"position":[[1200,8]]},"87":{"position":[[74,5]]}}}],["hovericon",{"_index":1205,"t":{"77":{"position":[[251,9],[451,10]]}}}],["http",{"_index":2671,"t":{"169":{"position":[[462,6]]}}}],["http://paulbourke.net/geometry/pointlineplane",{"_index":888,"t":{"53":{"position":[[8530,46]]}}}],["https",{"_index":2670,"t":{"169":{"position":[[441,8],[452,7]]}}}],["https://developer.mozilla.org/en",{"_index":2687,"t":{"171":{"position":[[76,32]]}}}],["https://en.wikipedia.org/wiki/bΓ©zier_curve",{"_index":2006,"t":{"109":{"position":[[259,42]]}}}],["https://github.com/bfred",{"_index":2587,"t":{"163":{"position":[[835,24]]}}}],["https://github.com/createjs/tweenjs/blob/master/src/tweenjs/ease.js",{"_index":642,"t":{"47":{"position":[[5593,67]]}}}],["https://github.com/osuushi/smooth.js",{"_index":286,"t":{"41":{"position":[[1677,36]]}}}],["https://github.com/pixijs/pixi.js/blob/dev/packages/core/src/textures/resources/baseimageresource.js#l54",{"_index":2721,"t":{"173":{"position":[[156,104]]}}}],["https://github.com/pixijs/pixi.js/pull/7381",{"_index":1524,"t":{"91":{"position":[[1508,43]]}}}],["https://github.com/pixijs/pixi.js/wiki/v5",{"_index":1714,"t":{"97":{"position":[[39,41]]}}}],["https://pixijs.com/assets/bg_grass.jpg",{"_index":316,"t":{"43":{"position":[[366,42]]}}}],["https://pixijs.com/assets/bg_rotate.jpg",{"_index":318,"t":{"43":{"position":[[431,43]]}}}],["https://pixijs.com/assets/egghead.png",{"_index":425,"t":{"47":{"position":[[168,40]]},"55":{"position":[[275,41]]},"57":{"position":[[399,40]]},"59":{"position":[[275,41]]}}}],["https://pixijs.com/assets/flowertop.png",{"_index":426,"t":{"47":{"position":[[209,42]]},"55":{"position":[[204,43]]},"57":{"position":[[289,42]]},"59":{"position":[[204,43]]}}}],["https://pixijs.com/assets/helmlok.png",{"_index":427,"t":{"47":{"position":[[252,40]]}}}],["https://pixijs.com/assets/rt_object_01.png",{"_index":2781,"t":{"175":{"position":[[902,45]]}}}],["https://pixijs.com/assets/rt_object_02.png",{"_index":2782,"t":{"175":{"position":[[948,45]]}}}],["https://pixijs.com/assets/rt_object_03.png",{"_index":2783,"t":{"175":{"position":[[994,45]]}}}],["https://pixijs.com/assets/rt_object_04.png",{"_index":2784,"t":{"175":{"position":[[1040,45]]}}}],["https://pixijs.com/assets/rt_object_05.png",{"_index":2785,"t":{"175":{"position":[[1086,45]]}}}],["https://pixijs.com/assets/rt_object_06.png",{"_index":2786,"t":{"175":{"position":[[1132,45]]}}}],["https://pixijs.com/assets/rt_object_07.png",{"_index":2787,"t":{"175":{"position":[[1178,45]]}}}],["https://pixijs.com/assets/rt_object_08.png",{"_index":2788,"t":{"175":{"position":[[1224,45]]}}}],["https://pixijs.com/assets/skully.png",{"_index":428,"t":{"47":{"position":[[293,39]]}}}],["https://pixijs.com/assets/webfont",{"_index":2611,"t":{"165":{"position":[[221,34],[287,34],[361,34],[438,34]]}}}],["https://spicyyoghurt.com/tutorials/html5",{"_index":19,"t":{"39":{"position":[[112,40]]}}}],["https://www.shadertoy.com/view/wtlswx",{"_index":1783,"t":{"99":{"position":[[917,37]]},"129":{"position":[[848,37]]}}}],["huge",{"_index":2001,"t":{"107":{"position":[[1160,4]]}}}],["icons",{"_index":1202,"t":{"77":{"position":[[166,5]]}}}],["id",{"_index":1792,"t":{"99":{"position":[[1237,2],[1265,2]]},"129":{"position":[[1156,2],[1184,2]]}}}],["ids",{"_index":2779,"t":{"175":{"position":[[879,5]]}}}],["if(d.x",{"_index":1847,"t":{"99":{"position":[[2342,6]]},"129":{"position":[[2190,6]]}}}],["if(t",{"_index":1854,"t":{"99":{"position":[[2491,4]]},"129":{"position":[[2339,4]]}}}],["ignore",{"_index":1332,"t":{"81":{"position":[[1602,6]]}}}],["image",{"_index":823,"t":{"53":{"position":[[4848,5]]},"63":{"position":[[522,5]]},"65":{"position":[[689,5]]},"71":{"position":[[274,5]]},"73":{"position":[[177,5]]},"77":{"position":[[738,5]]},"79":{"position":[[177,5]]},"85":{"position":[[402,5]]},"95":{"position":[[147,5]]},"97":{"position":[[215,5],[1034,6]]},"153":{"position":[[272,5]]},"155":{"position":[[180,5]]},"159":{"position":[[154,5],[325,5]]},"175":{"position":[[873,5]]}}}],["images",{"_index":2694,"t":{"171":{"position":[[378,6]]}}}],["imagetoreveal",{"_index":326,"t":{"43":{"position":[[688,13],[948,14]]}}}],["imagetoreveal.mask",{"_index":332,"t":{"43":{"position":[[874,18]]}}}],["implementation",{"_index":1516,"t":{"91":{"position":[[1286,14]]}}}],["import",{"_index":7,"t":{"39":{"position":[[0,6]]},"41":{"position":[[0,6]]},"43":{"position":[[0,6]]},"45":{"position":[[0,6]]},"47":{"position":[[0,6]]},"49":{"position":[[0,6]]},"51":{"position":[[0,6]]},"53":{"position":[[0,6]]},"55":{"position":[[0,6]]},"57":{"position":[[0,6]]},"59":{"position":[[0,6]]},"61":{"position":[[0,6]]},"63":{"position":[[0,6]]},"65":{"position":[[0,6]]},"67":{"position":[[0,6]]},"69":{"position":[[0,6]]},"71":{"position":[[0,6]]},"73":{"position":[[0,6]]},"75":{"position":[[0,6]]},"77":{"position":[[0,6]]},"79":{"position":[[0,6]]},"81":{"position":[[0,6]]},"83":{"position":[[0,6]]},"85":{"position":[[0,6]]},"87":{"position":[[0,6]]},"89":{"position":[[0,6]]},"91":{"position":[[0,6],[33,6]]},"93":{"position":[[0,6]]},"95":{"position":[[0,6]]},"97":{"position":[[0,6]]},"99":{"position":[[0,6]]},"101":{"position":[[0,6]]},"103":{"position":[[0,6]]},"105":{"position":[[0,6]]},"107":{"position":[[0,6]]},"109":{"position":[[0,6]]},"111":{"position":[[0,6]]},"113":{"position":[[0,6]]},"115":{"position":[[0,6],[33,6]]},"117":{"position":[[0,6]]},"119":{"position":[[0,6]]},"121":{"position":[[0,6]]},"123":{"position":[[0,6]]},"125":{"position":[[0,6]]},"127":{"position":[[0,6]]},"129":{"position":[[0,6]]},"131":{"position":[[0,6]]},"133":{"position":[[0,6]]},"135":{"position":[[0,6]]},"137":{"position":[[0,6]]},"139":{"position":[[0,6]]},"141":{"position":[[0,6]]},"143":{"position":[[0,6]]},"145":{"position":[[0,6]]},"147":{"position":[[0,6]]},"149":{"position":[[0,6]]},"151":{"position":[[0,6]]},"153":{"position":[[0,6]]},"155":{"position":[[0,6]]},"157":{"position":[[0,6]]},"159":{"position":[[0,6]]},"161":{"position":[[0,6]]},"163":{"position":[[0,6]]},"165":{"position":[[0,6]]},"167":{"position":[[0,6]]},"169":{"position":[[0,6]]},"171":{"position":[[0,6]]},"173":{"position":[[0,6]]},"175":{"position":[[0,6]]},"177":{"position":[[0,6]]},"179":{"position":[[0,6]]}}}],["important",{"_index":1030,"t":{"63":{"position":[[922,9]]}}}],["impulse",{"_index":44,"t":{"39":{"position":[[438,7],[916,7],[1610,7],[1697,7],[1725,7]]}}}],["impulsepower",{"_index":48,"t":{"39":{"position":[[477,12],[1620,12]]}}}],["in/zoom",{"_index":1617,"t":{"91":{"position":[[4533,7]]}}}],["include",{"_index":2663,"t":{"169":{"position":[[304,7]]}}}],["increment",{"_index":1155,"t":{"69":{"position":[[2358,9]]}}}],["independent",{"_index":1124,"t":{"67":{"position":[[884,11]]},"147":{"position":[[1062,11]]},"155":{"position":[[628,11]]}}}],["info",{"_index":2735,"t":{"173":{"position":[[1036,4]]}}}],["information",{"_index":2005,"t":{"109":{"position":[[246,12]]}}}],["inherits",{"_index":2529,"t":{"153":{"position":[[654,8]]}}}],["init",{"_index":714,"t":{"51":{"position":[[215,6],[627,7]]},"57":{"position":[[164,6],[1972,7]]},"169":{"position":[[266,7],[698,6]]}}}],["initial",{"_index":666,"t":{"49":{"position":[[715,8],[735,7]]},"75":{"position":[[340,7]]},"91":{"position":[[4298,7]]}}}],["inline",{"_index":2589,"t":{"163":{"position":[[870,6]]}}}],["inner",{"_index":2126,"t":{"113":{"position":[[129,5]]}}}],["input",{"_index":1767,"t":{"99":{"position":[[179,5]]},"127":{"position":[[1925,5]]}}}],["inputsize",{"_index":1729,"t":{"97":{"position":[[548,11],[751,10]]}}}],["inputsize.xy",{"_index":1743,"t":{"97":{"position":[[855,12]]}}}],["inside",{"_index":713,"t":{"51":{"position":[[175,6]]},"87":{"position":[[793,6]]}}}],["instanceof",{"_index":1135,"t":{"69":{"position":[[378,10]]}}}],["instanceoffset",{"_index":2242,"t":{"123":{"position":[[731,14]]}}}],["instantly",{"_index":952,"t":{"57":{"position":[[784,10],[1461,10]]}}}],["int",{"_index":1842,"t":{"99":{"position":[[2163,3]]},"129":{"position":[[2011,3]]}}}],["interact",{"_index":36,"t":{"39":{"position":[[349,8]]}}}],["interactive",{"_index":1082,"t":{"65":{"position":[[537,11]]},"77":{"position":[[1326,14]]},"79":{"position":[[622,14]]},"85":{"position":[[965,14]]},"89":{"position":[[588,12]]},"91":{"position":[[4180,11],[4252,11]]},"157":{"position":[[647,11]]}}}],["interactivity",{"_index":541,"t":{"47":{"position":[[2974,14]]},"75":{"position":[[461,13]]},"87":{"position":[[972,13]]},"89":{"position":[[503,14]]},"163":{"position":[[515,13]]}}}],["intercept",{"_index":884,"t":{"53":{"position":[[8500,9]]}}}],["interleave",{"_index":2210,"t":{"121":{"position":[[476,14]]}}}],["interpolate",{"_index":313,"t":{"43":{"position":[[281,11]]}}}],["interpolation",{"_index":276,"t":{"41":{"position":[[1440,13],[1654,13]]}}}],["intersect",{"_index":890,"t":{"53":{"position":[[8663,9]]}}}],["intersect(0",{"_index":756,"t":{"53":{"position":[[1486,12],[6389,12]]}}}],["intersect(x1",{"_index":897,"t":{"53":{"position":[[8751,13]]}}}],["intersecting",{"_index":751,"t":{"53":{"position":[[1337,12],[6143,12]]}}}],["intersection",{"_index":752,"t":{"53":{"position":[[1363,12],[1568,12],[6169,12],[6471,12],[8591,12],[9207,12],[9354,12]]},"81":{"position":[[732,12],[1964,12]]}}}],["intersection.y",{"_index":772,"t":{"53":{"position":[[2012,16],[7145,14],[7217,16]]}}}],["introduction",{"_index":0,"t":{"3":{"position":[[0,12]]}}}],["inverse",{"_index":1512,"t":{"91":{"position":[[1180,7]]}}}],["inversed",{"_index":2323,"t":{"127":{"position":[[3624,8]]}}}],["ios",{"_index":2736,"t":{"173":{"position":[[1041,3]]}}}],["ios10",{"_index":2590,"t":{"163":{"position":[[886,5]]}}}],["ios9",{"_index":2582,"t":{"163":{"position":[[767,4]]}}}],["isegghead",{"_index":925,"t":{"55":{"position":[[611,9],[963,9],[975,11]]}}}],["isflower",{"_index":2540,"t":{"157":{"position":[[153,8],[756,8],[767,10],[830,8]]}}}],["it's",{"_index":1269,"t":{"79":{"position":[[932,4]]},"91":{"position":[[387,4]]},"99":{"position":[[2629,4]]},"107":{"position":[[1110,4]]},"163":{"position":[[1313,4]]}}}],["it/iphone",{"_index":2588,"t":{"163":{"position":[[860,9]]}}}],["italic",{"_index":498,"t":{"47":{"position":[[2174,9]]},"167":{"position":[[353,9]]}}}],["item",{"_index":2792,"t":{"175":{"position":[[1431,4],[1744,4],[1755,4]]}}}],["item.anchor.set(0.5",{"_index":2797,"t":{"175":{"position":[[1555,21]]}}}],["item.rotation",{"_index":2803,"t":{"175":{"position":[[1772,13]]}}}],["item.x",{"_index":2795,"t":{"175":{"position":[[1483,6]]}}}],["item.y",{"_index":2796,"t":{"175":{"position":[[1519,6]]}}}],["items",{"_index":2789,"t":{"175":{"position":[[1295,5],[1307,5],[1338,5]]}}}],["items.length",{"_index":2801,"t":{"175":{"position":[[1708,13]]}}}],["items.push(item",{"_index":2799,"t":{"175":{"position":[[1608,17]]}}}],["items[i",{"_index":2802,"t":{"175":{"position":[[1762,9]]}}}],["iterate",{"_index":1054,"t":{"63":{"position":[[1765,7]]},"69":{"position":[[1646,7]]},"71":{"position":[[1615,7]]}}}],["itself",{"_index":794,"t":{"53":{"position":[[3000,6]]},"175":{"position":[[293,6]]}}}],["ix",{"_index":280,"t":{"41":{"position":[[1484,2],[1622,3]]}}}],["iy",{"_index":282,"t":{"41":{"position":[[1553,2],[1632,3]]}}}],["i}.ase",{"_index":2479,"t":{"149":{"position":[[367,10]]}}}],["j",{"_index":461,"t":{"47":{"position":[[1192,1],[1199,1],[1206,4],[1359,1],[4003,1],[4010,1],[4032,4],[4103,2]]}}}],["javascript",{"_index":20,"t":{"39":{"position":[[153,10]]}}}],["jonlepage",{"_index":851,"t":{"53":{"position":[[7353,9]]}}}],["k",{"_index":289,"t":{"41":{"position":[[1749,2],[1757,1],[1767,2],[1788,1],[2048,1],[2220,2]]}}}],["keep",{"_index":2000,"t":{"107":{"position":[[1129,4]]}}}],["knock",{"_index":118,"t":{"39":{"position":[[1954,5]]}}}],["know",{"_index":2725,"t":{"173":{"position":[[367,4]]}}}],["larger",{"_index":1992,"t":{"107":{"position":[[980,6]]}}}],["lastdrawnpoint",{"_index":344,"t":{"43":{"position":[[1215,14],[1556,16],[1783,14],[1800,14],[1981,14]]}}}],["lastdrawnpoint.set(x",{"_index":368,"t":{"43":{"position":[[1836,21]]}}}],["lastdrawnpoint.y",{"_index":365,"t":{"43":{"position":[[1659,17]]}}}],["later",{"_index":1046,"t":{"63":{"position":[[1439,5]]},"69":{"position":[[1304,5]]},"71":{"position":[[1295,5]]}}}],["left",{"_index":749,"t":{"53":{"position":[[1317,4],[1778,4],[1812,5],[6018,4],[6655,5],[6714,4]]},"161":{"position":[[361,7]]},"169":{"position":[[905,7]]},"179":{"position":[[1644,7]]}}}],["length",{"_index":850,"t":{"53":{"position":[[7335,6],[8832,6]]},"99":{"position":[[1143,6]]},"127":{"position":[[2198,7]]},"129":{"position":[[1062,6]]}}}],["length(mouse",{"_index":1745,"t":{"97":{"position":[[889,13]]}}}],["lerp",{"_index":635,"t":{"47":{"position":[[5483,4]]}}}],["lerp(a1",{"_index":637,"t":{"47":{"position":[[5506,8]]}}}],["lerp(t.propertybeginvalue",{"_index":625,"t":{"47":{"position":[[5192,26]]}}}],["let's",{"_index":1027,"t":{"63":{"position":[[755,5]]},"65":{"position":[[1271,5]]},"73":{"position":[[498,5]]},"111":{"position":[[1278,5]]},"117":{"position":[[987,5]]},"155":{"position":[[534,5]]}}}],["lets",{"_index":1160,"t":{"71":{"position":[[611,4]]}}}],["library",{"_index":602,"t":{"47":{"position":[[4625,7]]}}}],["light",{"_index":1804,"t":{"99":{"position":[[1415,7]]},"129":{"position":[[1282,7]]}}}],["light1",{"_index":1905,"t":{"103":{"position":[[751,6]]},"117":{"position":[[708,6],[937,7]]}}}],["light1.anchor.set(0.5",{"_index":1907,"t":{"103":{"position":[[826,23]]},"117":{"position":[[783,23]]}}}],["light1.rotation",{"_index":1921,"t":{"103":{"position":[[1493,15]]},"117":{"position":[[1608,15]]}}}],["light2",{"_index":1901,"t":{"103":{"position":[[618,6]]},"117":{"position":[[603,6],[929,7]]}}}],["light2.anchor.set(0.5",{"_index":1903,"t":{"103":{"position":[[693,23]]},"117":{"position":[[678,23]]}}}],["light2.rotation",{"_index":1923,"t":{"103":{"position":[[1518,15]]},"117":{"position":[[1633,15]]}}}],["lighter",{"_index":2648,"t":{"167":{"position":[[1064,10]]}}}],["limit",{"_index":2309,"t":{"127":{"position":[[2842,6],[3012,6]]}}}],["line",{"_index":312,"t":{"43":{"position":[[266,4],[316,4],[1548,4],[1575,4]]},"53":{"position":[[5596,4],[6236,4],[6294,4],[8495,4],[8617,4]]},"91":{"position":[[1988,4]]},"109":{"position":[[2155,4]]},"111":{"position":[[263,4],[573,4]]},"115":{"position":[[328,4],[480,4],[972,4],[1121,4],[1272,4]]}}}],["lineal",{"_index":2613,"t":{"165":{"position":[[279,7],[732,9]]}}}],["linejoin",{"_index":2635,"t":{"167":{"position":[[618,9],[1075,9]]}}}],["lines",{"_index":836,"t":{"53":{"position":[[5154,5],[8651,5],[8819,5],[8989,5]]},"111":{"position":[[1463,5]]},"167":{"position":[[725,7]]}}}],["linesize",{"_index":825,"t":{"53":{"position":[[4869,8],[5642,9],[5664,9],[5685,9],[5707,10],[5745,9],[5767,9],[5788,9],[5809,10],[5842,9],[5863,9],[5884,9],[5905,10],[5939,9],[5961,9],[5983,9],[6004,10],[6616,9],[6638,9],[6673,9],[6694,9],[6730,9],[6751,9],[6788,9],[6810,9],[6972,10],[7131,8],[7174,8]]}}}],["linestyle",{"_index":361,"t":{"43":{"position":[[1589,12]]},"89":{"position":[[338,12]]},"91":{"position":[[3419,12]]},"115":{"position":[[816,9]]}}}],["lineto(0",{"_index":1582,"t":{"91":{"position":[[3483,10]]}}}],["lineto(36",{"_index":2574,"t":{"163":{"position":[[347,11]]}}}],["lineto(70",{"_index":2576,"t":{"163":{"position":[[363,11]]}}}],["lineto(700",{"_index":1584,"t":{"91":{"position":[[3516,12]]}}}],["lineto(x",{"_index":366,"t":{"43":{"position":[[1677,10]]}}}],["links",{"_index":5,"t":{"3":{"position":[[48,5]]}}}],["linting",{"_index":895,"t":{"53":{"position":[[8724,7]]}}}],["listen",{"_index":157,"t":{"39":{"position":[[2721,6]]},"41":{"position":[[1085,6]]},"47":{"position":[[3593,6],[4951,6]]},"49":{"position":[[1154,6]]},"53":{"position":[[8334,6]]},"67":{"position":[[776,6]]},"83":{"position":[[442,6]]},"93":{"position":[[1473,6]]},"99":{"position":[[2928,6]]},"147":{"position":[[954,6]]},"155":{"position":[[463,6]]},"163":{"position":[[650,6]]}}}],["little",{"_index":351,"t":{"43":{"position":[[1443,6]]},"63":{"position":[[1528,6]]},"65":{"position":[[1297,6]]},"69":{"position":[[1393,6]]},"71":{"position":[[1381,6]]},"73":{"position":[[523,6]]},"79":{"position":[[534,6]]},"155":{"position":[[559,6]]}}}],["littledudes",{"_index":1873,"t":{"101":{"position":[[305,11]]}}}],["littledudes.filters",{"_index":1886,"t":{"101":{"position":[[802,19]]}}}],["littledudes.x",{"_index":1875,"t":{"101":{"position":[[400,13]]}}}],["littledudes.y",{"_index":1877,"t":{"101":{"position":[[446,13]]}}}],["littlerobot",{"_index":1879,"t":{"101":{"position":[[506,11]]}}}],["littlerobot.filters",{"_index":1887,"t":{"101":{"position":[[839,19]]}}}],["littlerobot.x",{"_index":1881,"t":{"101":{"position":[[600,13]]}}}],["littlerobot.y",{"_index":1882,"t":{"101":{"position":[[646,13]]}}}],["load",{"_index":911,"t":{"55":{"position":[[170,4],[340,4],[438,4],[481,4],[507,4]]},"57":{"position":[[237,5],[703,4],[1349,4]]},"59":{"position":[[170,4],[320,4]]},"65":{"position":[[141,4]]},"95":{"position":[[369,4],[526,4]]},"127":{"position":[[863,4]]},"165":{"position":[[152,4]]},"169":{"position":[[152,4]]}}}],["loaded",{"_index":717,"t":{"51":{"position":[[343,6]]},"55":{"position":[[450,6],[670,6]]},"57":{"position":[[526,6],[906,6],[1429,6],[1583,6]]},"59":{"position":[[377,6],[635,6]]},"61":{"position":[[413,6]]},"99":{"position":[[809,6]]},"153":{"position":[[412,6]]}}}],["loader",{"_index":2521,"t":{"153":{"position":[[433,6]]},"169":{"position":[[325,6]]}}}],["loader/chachicle.ttf",{"_index":2612,"t":{"165":{"position":[[256,22]]}}}],["loader/crosterian.woff2",{"_index":2620,"t":{"165":{"position":[[473,25]]}}}],["loader/dotrice",{"_index":2617,"t":{"165":{"position":[[396,14]]}}}],["loader/lineal.otf",{"_index":2614,"t":{"165":{"position":[[322,19]]}}}],["loading",{"_index":1006,"t":{"61":{"position":[[158,7]]}}}],["loadscreenassets",{"_index":953,"t":{"57":{"position":[[801,16],[1478,16]]}}}],["local",{"_index":1119,"t":{"67":{"position":[[662,5]]},"147":{"position":[[840,5]]}}}],["located",{"_index":1642,"t":{"91":{"position":[[5373,7]]}}}],["logical",{"_index":588,"t":{"47":{"position":[[4291,7]]}}}],["logs",{"_index":1399,"t":{"87":{"position":[[49,4],[451,4],[1272,4],[1525,4]]}}}],["logs.join('\\n",{"_index":1450,"t":{"87":{"position":[[1654,16]]}}}],["logs.length",{"_index":1447,"t":{"87":{"position":[[1555,12],[1582,12]]}}}],["logs.push",{"_index":1445,"t":{"87":{"position":[[1452,11]]}}}],["logs.push(`${currenttargetname",{"_index":1443,"t":{"87":{"position":[[1277,31]]}}}],["logs.shift",{"_index":1448,"t":{"87":{"position":[[1603,13]]}}}],["logtext",{"_index":1415,"t":{"87":{"position":[[468,7],[1631,7]]}}}],["logtext.text",{"_index":1449,"t":{"87":{"position":[[1639,12]]}}}],["logtext.x",{"_index":1418,"t":{"87":{"position":[[552,9]]}}}],["logtext.y",{"_index":1417,"t":{"87":{"position":[[536,9]]}}}],["long",{"_index":245,"t":{"41":{"position":[[329,4]]},"87":{"position":[[1547,4]]}}}],["look",{"_index":354,"t":{"43":{"position":[[1465,4]]},"173":{"position":[[113,4]]}}}],["looking",{"_index":704,"t":{"49":{"position":[[2120,7]]}}}],["loop",{"_index":168,"t":{"39":{"position":[[2891,4]]}}}],["lot",{"_index":2639,"t":{"167":{"position":[[690,3]]},"177":{"position":[[929,3]]}}}],["m",{"_index":298,"t":{"41":{"position":[[2073,1]]}}}],["m[0",{"_index":302,"t":{"41":{"position":[[2318,4]]}}}],["m[1",{"_index":304,"t":{"41":{"position":[[2365,5]]}}}],["made",{"_index":222,"t":{"39":{"position":[[5027,4]]},"81":{"position":[[1648,4]]}}}],["maggot",{"_index":1934,"t":{"105":{"position":[[430,6],[1951,6]]}}}],["maggot.anchor.set(0.5",{"_index":1936,"t":{"105":{"position":[[497,23]]}}}],["maggot.direction",{"_index":1938,"t":{"105":{"position":[[549,16],[1972,16],[2146,16]]}}}],["maggot.original",{"_index":1946,"t":{"105":{"position":[[781,15]]}}}],["maggot.original.copyfrom(maggot.scale",{"_index":1947,"t":{"105":{"position":[[817,39]]}}}],["maggot.original.x",{"_index":1976,"t":{"105":{"position":[[2195,17]]}}}],["maggot.rotation",{"_index":1974,"t":{"105":{"position":[[2127,15]]}}}],["maggot.scale.set(1",{"_index":1945,"t":{"105":{"position":[[738,18]]}}}],["maggot.scale.x",{"_index":1975,"t":{"105":{"position":[[2178,14]]}}}],["maggot.speed",{"_index":1939,"t":{"105":{"position":[[597,12],[2058,13],[2113,13]]}}}],["maggot.turnspeed",{"_index":1940,"t":{"105":{"position":[[615,16],[1992,16]]}}}],["maggot.x",{"_index":1941,"t":{"105":{"position":[[655,8],[2017,8],[2281,9],[2305,8],[2341,9],[2380,8]]}}}],["maggot.y",{"_index":1943,"t":{"105":{"position":[[696,8],[2072,8],[2411,9],[2435,8],[2472,9],[2512,8]]}}}],["maggots",{"_index":1132,"t":{"69":{"position":[[330,7],[657,8],[1123,7],[1258,7],[1400,7],[2058,7]]},"105":{"position":[[379,7],[2250,7]]}}}],["maggots.length",{"_index":1150,"t":{"69":{"position":[[1720,15]]},"105":{"position":[[1922,15]]}}}],["maggots.push(dude",{"_index":1148,"t":{"69":{"position":[[1310,19]]}}}],["maggots.push(maggot",{"_index":1948,"t":{"105":{"position":[[857,21]]}}}],["maggots[i",{"_index":1151,"t":{"69":{"position":[[1756,11]]},"105":{"position":[[1960,11]]}}}],["magically",{"_index":2519,"t":{"153":{"position":[[370,9]]}}}],["main",{"_index":1741,"t":{"97":{"position":[[813,6]]},"99":{"position":[[1702,6]]},"121":{"position":[[690,6],[897,6]]},"123":{"position":[[1183,6],[1360,6]]},"125":{"position":[[1082,6],[1289,6]]},"127":{"position":[[732,6],[1123,6],[2097,6],[2879,6],[3481,6],[4532,6]]},"129":{"position":[[681,6],[1569,6]]},"131":{"position":[[565,6],[772,6],[1114,6],[1321,6]]},"133":{"position":[[631,6],[844,6]]},"139":{"position":[[387,6],[533,6]]},"141":{"position":[[653,6],[837,6]]},"143":{"position":[[799,6],[1065,6]]},"145":{"position":[[662,6],[910,6]]}}}],["make",{"_index":353,"t":{"43":{"position":[[1457,4]]},"65":{"position":[[522,4]]},"77":{"position":[[1310,4]]},"79":{"position":[[907,4]]},"85":{"position":[[949,4]]},"89":{"position":[[553,4]]},"91":{"position":[[3830,4],[3997,4],[4169,4],[4242,4]]},"93":{"position":[[228,4],[302,4]]},"99":{"position":[[2619,4]]},"107":{"position":[[483,4],[952,4]]},"129":{"position":[[2500,4]]},"135":{"position":[[582,4]]},"137":{"position":[[643,4]]},"157":{"position":[[631,4]]}}}],["makegamescreen",{"_index":965,"t":{"57":{"position":[[1212,17],[1251,16]]}}}],["makeloadscreen",{"_index":948,"t":{"57":{"position":[[622,17],[657,16],[1948,17]]}}}],["makes",{"_index":1995,"t":{"107":{"position":[[1013,5]]},"127":{"position":[[1935,5]]},"177":{"position":[[952,5]]}}}],["manifest",{"_index":941,"t":{"57":{"position":[[176,8],[478,9]]}}}],["manifestexample",{"_index":942,"t":{"57":{"position":[[199,15],[488,15]]}}}],["map",{"_index":687,"t":{"49":{"position":[[1483,3]]},"91":{"position":[[1042,3]]}}}],["margin",{"_index":484,"t":{"47":{"position":[[1701,6],[1771,7],[1935,8],[2041,7],[2067,8],[2597,6]]}}}],["mask",{"_index":736,"t":{"53":{"position":[[681,4],[760,5],[780,5],[1858,4],[3138,5],[3454,4],[3533,5],[3553,5],[3890,4],[5026,4],[5137,4],[5176,4],[5255,5],[6049,4],[6846,4]]},"81":{"position":[[1095,5],[1572,4],[1698,4]]},"119":{"position":[[352,4],[483,5]]},"153":{"position":[[745,4]]}}}],["mask.anchor.set(0.5",{"_index":2192,"t":{"119":{"position":[[420,21]]}}}],["mask.arc(0",{"_index":807,"t":{"53":{"position":[[4010,11]]}}}],["mask.beginfill(0xff0000",{"_index":768,"t":{"53":{"position":[[1909,24],[3941,24],[6897,24]]}}}],["mask.clear",{"_index":766,"t":{"53":{"position":[[1863,13],[3895,13],[6851,13]]}}}],["mask.endfill",{"_index":776,"t":{"53":{"position":[[2153,15],[4079,15],[7253,15]]}}}],["mask.linestyle(2",{"_index":767,"t":{"53":{"position":[[1877,17],[3909,17],[6865,17]]}}}],["mask.lineto(0",{"_index":770,"t":{"53":{"position":[[1965,14],[4060,14],[7234,14]]}}}],["mask.lineto(corners[i",{"_index":774,"t":{"53":{"position":[[2102,21],[7039,21]]}}}],["mask.lineto(intersection.x",{"_index":771,"t":{"53":{"position":[[1984,27],[7090,26],[7189,27]]}}}],["mask.lineto(x1",{"_index":806,"t":{"53":{"position":[[3989,15]]}}}],["mask.moveto(0",{"_index":769,"t":{"53":{"position":[[1938,14],[3970,14],[6926,14],[6945,14]]}}}],["mask.position.set(size",{"_index":737,"t":{"53":{"position":[[709,22],[3482,22],[5204,22]]}}}],["mask.x",{"_index":2193,"t":{"119":{"position":[[442,6],[696,6],[718,7]]}}}],["mask.y",{"_index":2195,"t":{"119":{"position":[[456,6],[733,6],[755,7]]}}}],["masking",{"_index":817,"t":{"53":{"position":[[4583,8]]},"117":{"position":[[1370,7]]}}}],["masks",{"_index":1333,"t":{"81":{"position":[[1609,6]]}}}],["mat3",{"_index":2214,"t":{"121":{"position":[[611,4],[643,4]]},"123":{"position":[[1104,4],[1136,4]]},"125":{"position":[[1003,4],[1035,4]]},"127":{"position":[[653,4],[685,4]]},"129":{"position":[[602,4],[634,4]]},"131":{"position":[[486,4],[518,4],[1035,4],[1067,4]]},"133":{"position":[[552,4],[584,4]]},"139":{"position":[[327,4],[359,4]]},"141":{"position":[[572,4],[604,4]]},"143":{"position":[[699,4],[731,4]]},"145":{"position":[[583,4],[615,4]]}}}],["match",{"_index":894,"t":{"53":{"position":[[8704,5]]},"93":{"position":[[1968,5]]}}}],["matches",{"_index":1310,"t":{"81":{"position":[[680,7]]}}}],["math",{"_index":885,"t":{"53":{"position":[[8510,4]]}}}],["math.abs(e.deltay",{"_index":1615,"t":{"91":{"position":[[4459,20]]}}}],["math.abs(mask.x",{"_index":2201,"t":{"119":{"position":[[773,16]]}}}],["math.atan2",{"_index":207,"t":{"39":{"position":[[4405,11]]}}}],["math.atan2(dycenter",{"_index":712,"t":{"49":{"position":[[2472,20]]}}}],["math.cos((i",{"_index":2440,"t":{"135":{"position":[[718,11]]},"137":{"position":[[779,11]]}}}],["math.cos(anglestart",{"_index":803,"t":{"53":{"position":[[3807,20]]}}}],["math.cos(angletomouse",{"_index":217,"t":{"39":{"position":[[4817,22]]}}}],["math.cos(count",{"_index":1890,"t":{"101":{"position":[[949,16]]},"103":{"position":[[1607,15],[1717,16],[1746,15]]},"111":{"position":[[1975,15],[2017,15],[2116,15],[2159,15],[2259,15]]},"117":{"position":[[1722,15],[1856,15],[1898,15],[1997,15],[2040,15]]},"159":{"position":[[635,16]]}}}],["math.cos(deg",{"_index":677,"t":{"49":{"position":[[984,13]]}}}],["math.cos(dude.direction",{"_index":1059,"t":{"63":{"position":[[1991,24]]},"69":{"position":[[1947,24]]},"71":{"position":[[1836,24]]}}}],["math.cos(i",{"_index":787,"t":{"53":{"position":[[2643,10]]}}}],["math.cos(maggot.direction",{"_index":1973,"t":{"105":{"position":[[2084,26]]}}}],["math.cos(phase",{"_index":744,"t":{"53":{"position":[[999,14],[5507,14]]}}}],["math.floor(i",{"_index":398,"t":{"45":{"position":[[759,12]]},"67":{"position":[[478,12]]},"147":{"position":[[656,12]]},"177":{"position":[[399,12]]}}}],["math.floor(math.random",{"_index":553,"t":{"47":{"position":[[3290,24]]},"63":{"position":[[813,24],[868,24]]},"79":{"position":[[393,24],[439,24]]},"119":{"position":[[594,24],[638,24]]}}}],["math.floor(t",{"_index":297,"t":{"41":{"position":[[2052,14]]}}}],["math.hypot(a",{"_index":116,"t":{"39":{"position":[[1906,13]]}}}],["math.max(0",{"_index":702,"t":{"49":{"position":[[2025,11]]}}}],["math.max(halfhandlewidth",{"_index":1687,"t":{"93":{"position":[[2029,25]]}}}],["math.min",{"_index":1688,"t":{"93":{"position":[[2055,9]]}}}],["math.min(1",{"_index":621,"t":{"47":{"position":[[5130,11]]}}}],["math.min(15",{"_index":1614,"t":{"91":{"position":[[4446,12]]}}}],["math.min(symbol_size",{"_index":472,"t":{"47":{"position":[[1410,20],[4404,20]]}}}],["math.pi",{"_index":512,"t":{"47":{"position":[[2367,7]]},"49":{"position":[[921,7],[2505,7]]},"53":{"position":[[947,8],[1016,7],[1064,7],[2669,7],[2731,7],[2860,8],[2961,7],[3692,8],[3730,7],[5455,8],[5524,7],[5572,7],[7666,9],[8047,8]]},"63":{"position":[[1144,7],[2064,7]]},"69":{"position":[[943,7],[2037,8]]},"71":{"position":[[997,7],[1909,7]]},"77":{"position":[[1715,7],[1810,8]]},"85":{"position":[[1810,7],[1905,8]]},"105":{"position":[[584,7],[2165,7]]},"109":{"position":[[1393,8],[1406,9],[1551,8],[1564,7],[1745,8],[1760,7]]},"151":{"position":[[723,8]]},"167":{"position":[[546,7]]},"171":{"position":[[994,7]]},"173":{"position":[[2056,7]]},"177":{"position":[[456,8]]}}}],["math.random",{"_index":668,"t":{"49":{"position":[[745,13],[778,13],[905,13],[951,13]]},"63":{"position":[[722,13],[1128,13],[1251,13],[1341,13]]},"65":{"position":[[869,13],[905,13],[942,13]]},"69":{"position":[[703,13],[754,13],[797,13],[844,13],[927,13],[1052,13],[1160,13],[1200,13]]},"71":{"position":[[578,13],[667,13],[710,13],[757,13],[981,13],[1104,13],[1194,13]]},"105":{"position":[[568,13],[634,13],[666,13],[707,13],[759,13]]},"111":{"position":[[1562,13],[1629,13],[1675,13],[1696,13],[1717,13],[1738,13],[1759,13],[1780,13]]},"123":{"position":[[856,14],[905,14],[954,14]]},"151":{"position":[[576,13],[624,13],[707,13],[759,13]]},"175":{"position":[[1492,13],[1528,13]]},"177":{"position":[[440,13]]}}}],["math.round((app.screen.width",{"_index":419,"t":{"45":{"position":[[1208,28]]}}}],["math.round((bottom.width",{"_index":522,"t":{"47":{"position":[[2515,24]]}}}],["math.round((margin",{"_index":525,"t":{"47":{"position":[[2606,18],[2838,18]]}}}],["math.round((symbol_size",{"_index":476,"t":{"47":{"position":[[1488,23],[4483,23]]}}}],["math.round((top.width",{"_index":534,"t":{"47":{"position":[[2775,21]]}}}],["math.round(app.screen.width",{"_index":487,"t":{"47":{"position":[[1797,27]]}}}],["math.round(screenshottext.height",{"_index":422,"t":{"45":{"position":[[1286,32]]}}}],["math.sign(e.deltay",{"_index":1613,"t":{"91":{"position":[[4424,19]]}}}],["math.sin((i",{"_index":2438,"t":{"135":{"position":[[653,11]]},"137":{"position":[[714,11]]}}}],["math.sin((timer",{"_index":1388,"t":{"83":{"position":[[632,15]]}}}],["math.sin(anglestart",{"_index":805,"t":{"53":{"position":[[3849,20]]}}}],["math.sin(angletomouse",{"_index":218,"t":{"39":{"position":[[4852,22]]}}}],["math.sin(count",{"_index":1110,"t":{"65":{"position":[[1430,16],[1472,16]]},"101":{"position":[[986,16]]},"103":{"position":[[1563,15],[1684,15],[1781,14],[1818,14],[1851,14]]},"105":{"position":[[2215,15]]},"111":{"position":[[1946,15],[2046,15],[2088,15],[2187,15],[2230,15]]},"117":{"position":[[1678,15],[1827,15],[1927,15],[1969,15],[2068,15]]},"159":{"position":[[587,16]]},"175":{"position":[[2057,15]]}}}],["math.sin(deg",{"_index":679,"t":{"49":{"position":[[1019,13]]}}}],["math.sin(dude.direction",{"_index":1058,"t":{"63":{"position":[[1942,24]]},"69":{"position":[[1881,24]]},"71":{"position":[[1787,24]]}}}],["math.sin(i",{"_index":788,"t":{"53":{"position":[[2705,10],[2935,10]]}}}],["math.sin(maggot.direction",{"_index":1972,"t":{"105":{"position":[[2029,26]]}}}],["math.sin(phase",{"_index":745,"t":{"53":{"position":[[1047,14],[5555,14]]}}}],["math.sin(tick",{"_index":1154,"t":{"69":{"position":[[1790,13]]}}}],["math.sin(time",{"_index":2379,"t":{"127":{"position":[[5662,13]]}}}],["math.sin(time)*5+10",{"_index":2375,"t":{"127":{"position":[[5527,20]]}}}],["math.sqrt",{"_index":90,"t":{"39":{"position":[[1157,10]]}}}],["math.sqrt(dxcenter",{"_index":700,"t":{"49":{"position":[[1949,18]]}}}],["matrix",{"_index":1502,"t":{"91":{"position":[[917,6]]},"103":{"position":[[1653,6]]}}}],["matrix[1",{"_index":1926,"t":{"103":{"position":[[1672,9]]}}}],["matrix[2",{"_index":1927,"t":{"103":{"position":[[1705,9]]}}}],["matrix[3",{"_index":1928,"t":{"103":{"position":[[1734,9]]}}}],["matrix[4",{"_index":1930,"t":{"103":{"position":[[1769,9]]}}}],["matrix[5",{"_index":1931,"t":{"103":{"position":[[1806,9]]}}}],["matrix[6",{"_index":1932,"t":{"103":{"position":[[1839,9]]}}}],["max",{"_index":1819,"t":{"99":{"position":[[1660,4]]},"129":{"position":[[1527,4]]}}}],["maybe",{"_index":4,"t":{"3":{"position":[[42,5]]}}}],["mean",{"_index":1263,"t":{"79":{"position":[[746,4]]}}}],["means",{"_index":1486,"t":{"91":{"position":[[594,5]]}}}],["mediump",{"_index":1723,"t":{"97":{"position":[[460,7]]},"121":{"position":[[535,7],[829,7]]},"123":{"position":[[1015,7],[1321,7]]},"125":{"position":[[927,7],[1221,7]]},"127":{"position":[[577,7],[1064,7],[1990,7],[2794,7],[3397,7],[4409,7]]},"129":{"position":[[526,7],[896,7]]},"131":{"position":[[410,7],[704,7],[959,7],[1253,7]]},"133":{"position":[[476,7],[770,7]]},"139":{"position":[[272,7],[513,7]]},"141":{"position":[[494,7],[796,7]]},"143":{"position":[[600,7],[976,7]]},"145":{"position":[[507,7],[822,7]]}}}],["memories",{"_index":2524,"t":{"153":{"position":[[543,8]]}}}],["memory",{"_index":2740,"t":{"173":{"position":[[1121,6]]}}}],["merged",{"_index":1525,"t":{"91":{"position":[[1558,7]]}}}],["mesh",{"_index":1768,"t":{"99":{"position":[[204,4]]},"127":{"position":[[1665,4]]}}}],["meshes",{"_index":2282,"t":{"127":{"position":[[1582,6]]}}}],["method",{"_index":2819,"t":{"177":{"position":[[779,6]]}}}],["methods",{"_index":1540,"t":{"91":{"position":[[1999,7]]}}}],["middle",{"_index":186,"t":{"39":{"position":[[3530,6]]}}}],["mind",{"_index":567,"t":{"47":{"position":[[3828,4]]}}}],["mipmap",{"_index":1859,"t":{"99":{"position":[[2661,7]]}}}],["mipmapping",{"_index":2389,"t":{"129":{"position":[[2537,11]]}}}],["mirrors",{"_index":2853,"t":{"179":{"position":[[1195,7]]}}}],["mix(ripple",{"_index":2354,"t":{"127":{"position":[[4698,11]]}}}],["mobile",{"_index":1190,"t":{"75":{"position":[[600,6]]},"163":{"position":[[733,6]]}}}],["mod(guv.x",{"_index":2276,"t":{"127":{"position":[[1366,9]]}}}],["mod(id",{"_index":1794,"t":{"99":{"position":[[1270,7]]},"129":{"position":[[1189,7]]}}}],["mode",{"_index":1033,"t":{"63":{"position":[[994,4]]},"75":{"position":[[158,4]]},"79":{"position":[[271,4],[736,4]]}}}],["modified",{"_index":892,"t":{"53":{"position":[[8678,8]]}}}],["modify",{"_index":1040,"t":{"63":{"position":[[1188,6]]},"69":{"position":[[987,6]]},"71":{"position":[[1041,6]]}}}],["monster",{"_index":531,"t":{"47":{"position":[[2735,7]]}}}],["more",{"_index":795,"t":{"53":{"position":[[3014,4]]},"99":{"position":[[232,4]]},"173":{"position":[[1856,4]]}}}],["mount",{"_index":1420,"t":{"87":{"position":[[596,5],[777,5]]}}}],["mouse",{"_index":188,"t":{"39":{"position":[[3775,5],[4158,5],[4562,5]]},"41":{"position":[[1176,5]]},"65":{"position":[[1099,5]]},"75":{"position":[[584,5],[681,5],[738,5]]},"79":{"position":[[670,5],[814,5],[992,5]]},"85":{"position":[[1046,5],[1321,5]]},"87":{"position":[[284,5]]},"91":{"position":[[5423,5]]},"97":{"position":[[731,6],[1372,6]]}}}],["mouse.xy",{"_index":1755,"t":{"97":{"position":[[1083,9]]}}}],["mousecoords",{"_index":144,"t":{"39":{"position":[[2517,11],[4647,12]]}}}],["mousecoords.x",{"_index":153,"t":{"39":{"position":[[2650,13],[3849,13],[3866,13],[4235,13]]}}}],["mousecoords.y",{"_index":155,"t":{"39":{"position":[[2682,13],[3907,13],[3924,13],[4278,13]]}}}],["mouseposition",{"_index":261,"t":{"41":{"position":[[836,13],[961,13],[977,13],[1137,16]]}}}],["mouseposition.x",{"_index":263,"t":{"41":{"position":[[1010,15]]}}}],["mouseposition.y",{"_index":264,"t":{"41":{"position":[[1044,15]]}}}],["move",{"_index":132,"t":{"39":{"position":[[2276,4]]},"51":{"position":[[461,4]]},"61":{"position":[[539,4]]},"67":{"position":[[534,4]]},"73":{"position":[[322,4]]},"79":{"position":[[1082,4]]},"87":{"position":[[273,5]]},"91":{"position":[[484,4]]},"147":{"position":[[712,4]]},"155":{"position":[[324,4]]},"157":{"position":[[480,4]]}}}],["moved",{"_index":1681,"t":{"93":{"position":[[1870,6]]}}}],["movement",{"_index":1037,"t":{"63":{"position":[[1102,8]]},"71":{"position":[[833,8]]},"79":{"position":[[1622,8]]},"83":{"position":[[557,9]]}}}],["movementspeed",{"_index":41,"t":{"39":{"position":[[397,13],[4726,14]]}}}],["moves",{"_index":40,"t":{"39":{"position":[[385,5],[3129,5]]},"89":{"position":[[103,5]]},"177":{"position":[[877,6]]}}}],["moveto",{"_index":1583,"t":{"91":{"position":[[3499,8]]}}}],["moveto(0",{"_index":1581,"t":{"91":{"position":[[3466,10]]}}}],["moveto(36",{"_index":2573,"t":{"163":{"position":[[331,11]]}}}],["moveto(lastdrawnpoint.x",{"_index":364,"t":{"43":{"position":[[1633,25]]}}}],["moving",{"_index":708,"t":{"49":{"position":[[2224,7]]},"111":{"position":[[1293,6]]},"117":{"position":[[1002,6]]}}}],["mr",{"_index":1171,"t":{"73":{"position":[[511,2]]},"155":{"position":[[547,2]]}}}],["much",{"_index":1778,"t":{"99":{"position":[[791,4]]}}}],["multiple",{"_index":2640,"t":{"167":{"position":[[716,8]]},"173":{"position":[[1781,8]]}}}],["multiply",{"_index":793,"t":{"53":{"position":[[2982,8]]}}}],["multitouch",{"_index":1285,"t":{"79":{"position":[[1587,10]]}}}],["n",{"_index":1643,"t":{"91":{"position":[[5417,3],[5464,3]]},"99":{"position":[[1504,1],[1678,6]]},"129":{"position":[[1371,1],[1545,6]]}}}],["name",{"_index":944,"t":{"57":{"position":[[231,5],[264,5],[343,5],[376,5]]},"63":{"position":[[528,4]]},"65":{"position":[[806,6]]},"71":{"position":[[280,4]]},"121":{"position":[[213,4],[359,4]]},"125":{"position":[[213,4],[359,4],[565,4],[718,4]]},"127":{"position":[[245,4],[379,4]]},"129":{"position":[[232,4],[378,4]]},"131":{"position":[[213,4],[316,4]]},"133":{"position":[[213,4],[348,4]]},"141":{"position":[[213,4],[350,4]]},"143":{"position":[[213,4],[350,4],[488,4]]},"145":{"position":[[213,4],[359,4]]}}}],["need",{"_index":1771,"t":{"99":{"position":[[263,4]]},"163":{"position":[[1107,4]]},"171":{"position":[[340,4]]},"173":{"position":[[605,4]]}}}],["needs",{"_index":2726,"t":{"173":{"position":[[388,5]]}}}],["nest",{"_index":1489,"t":{"91":{"position":[[676,4]]}}}],["nested",{"_index":1470,"t":{"91":{"position":[[107,6]]}}}],["new",{"_index":27,"t":{"39":{"position":[[221,3],[1035,3],[1075,3],[1297,3],[1392,3],[1681,3],[1986,3],[2217,3],[2306,3],[2472,3],[4014,3],[4219,3]]},"41":{"position":[[45,3],[703,3]]},"43":{"position":[[45,3],[190,3],[323,3],[842,3],[1818,3]]},"45":{"position":[[45,3],[248,3],[676,3],[1055,3],[1139,3]]},"47":{"position":[[45,3],[841,3],[904,3],[1060,3],[1228,3],[1856,3],[1959,3],[2107,3],[2460,3],[2715,3]]},"49":{"position":[[45,3],[499,3]]},"51":{"position":[[45,3],[315,3]]},"53":{"position":[[45,3],[335,3],[688,3],[2313,3],[3227,3],[3461,3],[4268,3],[4613,3],[4896,3],[5183,3],[7446,3],[7549,3],[7749,3]]},"55":{"position":[[45,3],[641,3],[703,3]]},"57":{"position":[[45,3],[877,3],[936,3],[1554,3],[1613,3]]},"59":{"position":[[45,3],[606,3]]},"61":{"position":[[45,3],[384,3]]},"63":{"position":[[45,3],[138,3],[497,3],[1591,3]]},"65":{"position":[[45,3],[449,3]]},"67":{"position":[[45,3],[167,3],[232,3],[395,3]]},"69":{"position":[[45,3],[142,3],[471,3],[1458,3]]},"71":{"position":[[45,3],[249,3],[1444,3]]},"73":{"position":[[45,3],[158,3]]},"75":{"position":[[45,3]]},"77":{"position":[[45,3],[1152,3]]},"79":{"position":[[45,3],[570,3]]},"81":{"position":[[45,3],[269,3],[590,3],[767,3],[1133,3],[1283,3],[1723,3],[1808,3],[2006,3],[2340,3],[2395,3],[2504,3],[2613,3],[2718,3]]},"83":{"position":[[45,3],[242,3]]},"85":{"position":[[45,3],[816,3]]},"87":{"position":[[121,3]]},"89":{"position":[[138,3]]},"91":{"position":[[260,3],[882,3],[993,3],[1107,3],[2042,3],[2679,3],[3399,3],[3602,3],[3925,3],[4893,3],[5309,3]]},"93":{"position":[[45,3],[358,3],[540,3],[1212,3]]},"95":{"position":[[45,3],[581,3],[643,3]]},"97":{"position":[[113,3],[1166,3],[1211,3],[1336,3],[1379,3]]},"99":{"position":[[317,3],[532,3],[2787,3]]},"101":{"position":[[45,3],[720,3],[771,3]]},"103":{"position":[[45,3],[324,3],[380,3],[1214,3]]},"105":{"position":[[45,3],[176,3],[265,3],[799,3],[1008,3]]},"107":{"position":[[45,3],[176,3],[618,3]]},"109":{"position":[[45,3],[319,3],[577,3],[804,3],[1072,3],[1319,3],[1471,3],[1634,3],[1835,3],[2200,3]]},"111":{"position":[[45,3],[224,3],[1320,3]]},"113":{"position":[[45,3],[319,3],[473,3],[601,4],[657,3],[838,3]]},"115":{"position":[[77,3],[192,3]]},"117":{"position":[[45,3],[368,3],[1029,3],[1334,3]]},"119":{"position":[[45,3],[537,3]]},"121":{"position":[[45,3],[143,3],[1053,3]]},"123":{"position":[[45,3],[143,3],[330,3],[1425,3]]},"125":{"position":[[45,3],[143,3],[495,3],[1445,3]]},"127":{"position":[[45,3],[175,3],[1780,3],[1839,3],[2588,3],[2651,3],[3226,3],[3287,3],[4229,3],[4288,3],[4938,3]]},"129":{"position":[[45,3],[162,3],[2768,3]]},"131":{"position":[[45,3],[143,3],[1608,3],[1659,3]]},"133":{"position":[[45,3],[143,3],[925,3],[949,3],[1084,3],[1108,3],[1237,3],[1261,3]]},"135":{"position":[[45,3],[295,3],[449,3]]},"137":{"position":[[45,3],[301,3],[427,3]]},"139":{"position":[[45,3],[143,3],[606,3]]},"141":{"position":[[45,3],[143,3],[903,3]]},"143":{"position":[[45,3],[143,3],[1325,3]]},"145":{"position":[[45,3],[143,3],[1196,3]]},"147":{"position":[[220,3],[345,3],[410,3],[573,3]]},"149":{"position":[[45,3],[580,3],[851,3]]},"151":{"position":[[45,3],[518,3]]},"153":{"position":[[45,3],[598,3]]},"155":{"position":[[45,3],[161,3]]},"157":{"position":[[45,3],[342,3],[389,3]]},"159":{"position":[[45,3],[396,3]]},"161":{"position":[[45,3],[255,3]]},"163":{"position":[[45,3],[221,3],[1273,3],[1349,3]]},"165":{"position":[[45,3],[562,3],[593,3],[671,3],[699,3],[774,3],[812,3],[896,3],[930,3]]},"167":{"position":[[45,3],[167,3],[286,3],[658,3],[824,3],[1136,3]]},"169":{"position":[[45,3],[778,3]]},"171":{"position":[[183,3],[915,3]]},"173":{"position":[[1529,3],[1651,3],[1927,3],[1977,3]]},"175":{"position":[[45,3],[467,3],[545,3],[745,3],[1929,3]]},"177":{"position":[[45,3],[167,3],[339,3],[512,3],[589,3],[633,3]]},"179":{"position":[[45,3],[528,3],[668,3],[874,3],[1246,3],[1292,3],[1526,3],[1598,5]]}}}],["next",{"_index":1539,"t":{"91":{"position":[[1983,4]]}}}],["nicer",{"_index":355,"t":{"43":{"position":[[1470,5]]}}}],["noise",{"_index":1786,"t":{"99":{"position":[[1029,6],[2601,5],[2832,6]]},"127":{"position":[[2750,6],[2867,6],[3024,6],[4610,5]]},"129":{"position":[[948,6],[2419,6]]}}}],["noisecontainer",{"_index":2317,"t":{"127":{"position":[[3270,14]]}}}],["noisecontainer.addchild(noisequad",{"_index":2318,"t":{"127":{"position":[[3309,35]]}}}],["noisecontainer.position.set(10",{"_index":2361,"t":{"127":{"position":[[5053,31]]}}}],["noisequad",{"_index":2316,"t":{"127":{"position":[[3214,9]]}}}],["noisequad.shader.uniforms.limit",{"_index":2378,"t":{"127":{"position":[[5628,31]]}}}],["noiseshader",{"_index":2314,"t":{"127":{"position":[[3055,11],[3250,13]]}}}],["noisetexture",{"_index":2315,"t":{"127":{"position":[[3137,12],[4791,13],[5913,12]]}}}],["noiseuniforms",{"_index":2313,"t":{"127":{"position":[[2994,13],[3115,15]]}}}],["none",{"_index":904,"t":{"53":{"position":[[8807,4]]}}}],["normal",{"_index":2851,"t":{"179":{"position":[[1174,6]]}}}],["normalize",{"_index":1188,"t":{"75":{"position":[[564,9]]},"93":{"position":[[2131,9]]},"99":{"position":[[1508,10],[1907,10],[2001,10]]},"129":{"position":[[1375,10],[1755,10],[1849,10]]}}}],["normalize(cross",{"_index":1831,"t":{"99":{"position":[[1943,16]]},"129":{"position":[[1791,16]]}}}],["normalize(vec3",{"_index":1836,"t":{"99":{"position":[[2048,15]]},"129":{"position":[[1896,15]]}}}],["normalized",{"_index":1390,"t":{"85":{"position":[[1071,10]]}}}],["note",{"_index":1717,"t":{"97":{"position":[[411,5]]},"99":{"position":[[46,4]]}}}],["now",{"_index":568,"t":{"47":{"position":[[3839,3],[5012,3],[5142,4]]},"55":{"position":[[512,4]]},"175":{"position":[[1322,3]]}}}],["null",{"_index":262,"t":{"41":{"position":[[852,5],[2017,5]]},"43":{"position":[[1232,5],[1998,5]]},"47":{"position":[[3463,5],[3510,6]]},"53":{"position":[[1378,5],[6184,5]]},"79":{"position":[[1220,5],[1460,5],[1881,5]]},"91":{"position":[[2843,5],[3029,5]]},"99":{"position":[[513,5]]},"103":{"position":[[1191,5]]},"117":{"position":[[1309,5]]}}}],["number",{"_index":1039,"t":{"63":{"position":[[1165,6]]},"69":{"position":[[964,6]]},"71":{"position":[[895,6],[1018,6]]}}}],["number(math.sin(time",{"_index":2394,"t":{"129":{"position":[[3035,20]]}}}],["numbers",{"_index":2002,"t":{"107":{"position":[[1165,8]]}}}],["object",{"_index":610,"t":{"47":{"position":[[4770,7]]},"53":{"position":[[9311,6]]}}}],["object.addeventlistener('pointerenter",{"_index":1452,"t":{"87":{"position":[[1727,39]]}}}],["object.addeventlistener('pointerleave",{"_index":1454,"t":{"87":{"position":[[1777,39]]}}}],["object.addeventlistener('pointerout",{"_index":1456,"t":{"87":{"position":[[1876,37]]}}}],["object.addeventlistener('pointerover",{"_index":1455,"t":{"87":{"position":[[1827,38]]}}}],["object.assign(pixi.sprite.from('t1",{"_index":325,"t":{"43":{"position":[[632,37]]}}}],["object.assign(pixi.sprite.from('t2",{"_index":327,"t":{"43":{"position":[[704,37]]}}}],["object1",{"_index":81,"t":{"39":{"position":[[1003,9]]}}}],["object1.acceleration.x",{"_index":95,"t":{"39":{"position":[[1408,22]]}}}],["object1.acceleration.y",{"_index":97,"t":{"39":{"position":[[1457,22]]}}}],["object1.getbounds",{"_index":61,"t":{"39":{"position":[[620,20]]}}}],["object1.mass",{"_index":104,"t":{"39":{"position":[[1643,13]]}}}],["object1.x",{"_index":86,"t":{"39":{"position":[[1103,10],[1181,10],[1207,10]]}}}],["object1.y",{"_index":88,"t":{"39":{"position":[[1126,10],[1233,10],[1259,11]]}}}],["object2",{"_index":59,"t":{"39":{"position":[[593,8],[989,8],[1016,9]]}}}],["object2.acceleration.x",{"_index":96,"t":{"39":{"position":[[1433,23]]}}}],["object2.acceleration.y",{"_index":98,"t":{"39":{"position":[[1482,23]]}}}],["object2.getbounds",{"_index":63,"t":{"39":{"position":[[657,20]]}}}],["object2.mass",{"_index":105,"t":{"39":{"position":[[1659,14]]}}}],["object2.x",{"_index":85,"t":{"39":{"position":[[1091,9],[1168,10],[1194,10]]}}}],["object2.y",{"_index":87,"t":{"39":{"position":[[1114,9],[1220,10],[1246,10]]}}}],["object[property",{"_index":612,"t":{"47":{"position":[[4808,17]]}}}],["objects",{"_index":35,"t":{"39":{"position":[[341,7],[463,7],[939,7]]}}}],["offscreencanvas",{"_index":2469,"t":{"147":{"position":[[92,16]]}}}],["offset",{"_index":1990,"t":{"107":{"position":[[922,6]]},"127":{"position":[[1158,8],[3490,8]]}}}],["offsets",{"_index":2325,"t":{"127":{"position":[[3648,8]]}}}],["offsetx",{"_index":2847,"t":{"179":{"position":[[1010,7],[1420,7]]}}}],["offsety",{"_index":2848,"t":{"179":{"position":[[1053,7],[1456,7]]}}}],["old",{"_index":1721,"t":{"97":{"position":[[442,3]]}}}],["on('mousedown",{"_index":1391,"t":{"85":{"position":[[1342,16]]}}}],["on('mousemove",{"_index":1965,"t":{"105":{"position":[[1584,16]]}}}],["on('mouseout",{"_index":1395,"t":{"85":{"position":[[1477,15]]}}}],["on('mouseover",{"_index":1394,"t":{"85":{"position":[[1443,16]]}}}],["on('mouseup",{"_index":1392,"t":{"85":{"position":[[1376,14]]}}}],["on('mouseupoutside",{"_index":1393,"t":{"85":{"position":[[1406,21]]}}}],["on('pointerdown",{"_index":335,"t":{"43":{"position":[[1061,18]]},"77":{"position":[[1377,18]]},"81":{"position":[[411,18],[953,18],[1428,18],[2192,18]]},"85":{"position":[[1151,18]]},"93":{"position":[[724,18]]}}}],["on('pointermove",{"_index":340,"t":{"43":{"position":[[1156,18]]}}}],["on('pointerout",{"_index":1241,"t":{"77":{"position":[[1508,17]]},"81":{"position":[[499,17],[1041,17],[1516,17],[2280,17]]},"85":{"position":[[1282,17]]}}}],["on('pointerover",{"_index":1239,"t":{"77":{"position":[[1475,18]]},"81":{"position":[[452,18],[994,18],[1469,18],[2233,18]]},"85":{"position":[[1249,18]]}}}],["on('pointerup",{"_index":337,"t":{"43":{"position":[[1093,16]]},"77":{"position":[[1410,16]]},"85":{"position":[[1184,16]]},"93":{"position":[[756,16]]}}}],["on('pointerupoutside",{"_index":339,"t":{"43":{"position":[[1121,23]]},"77":{"position":[[1439,23]]},"85":{"position":[[1213,23]]},"93":{"position":[[784,23]]}}}],["on('touchend",{"_index":1397,"t":{"85":{"position":[[1569,15]]}}}],["on('touchendoutside",{"_index":1398,"t":{"85":{"position":[[1600,22]]}}}],["on('touchmove",{"_index":1967,"t":{"105":{"position":[[1616,16]]}}}],["on('touchstart",{"_index":1396,"t":{"85":{"position":[[1534,17]]}}}],["onassetsloaded",{"_index":434,"t":{"47":{"position":[[410,14],[462,16]]},"65":{"position":[[626,16]]}}}],["onassetsloaded(perlin",{"_index":1856,"t":{"99":{"position":[[2562,22]]}}}],["onbuttondown",{"_index":1237,"t":{"77":{"position":[[1396,13],[1828,14]]},"85":{"position":[[1170,13],[1359,13],[1552,13],[1923,14]]}}}],["onbuttonout",{"_index":1242,"t":{"77":{"position":[[1526,13],[2178,13]]},"85":{"position":[[1300,13],[1493,12],[2273,13]]}}}],["onbuttonover",{"_index":1240,"t":{"77":{"position":[[1494,13],[2067,14]]},"85":{"position":[[1268,13],[1460,13],[2162,14]]}}}],["onbuttonup",{"_index":1238,"t":{"77":{"position":[[1427,11],[1463,11],[1926,12]]},"85":{"position":[[1201,11],[1237,11],[1391,11],[1428,11],[1585,11],[1623,11],[2021,12]]}}}],["once",{"_index":986,"t":{"59":{"position":[[363,4]]},"93":{"position":[[1504,4],[1664,4]]}}}],["onchange",{"_index":607,"t":{"47":{"position":[[4730,9],[4856,9]]}}}],["onclick",{"_index":1103,"t":{"65":{"position":[[1150,9],[1169,9]]},"75":{"position":[[645,9],[725,9],[769,9],[830,9]]},"81":{"position":[[430,8],[972,8],[1447,8],[2211,8],[2973,9]]}}}],["oncomplete",{"_index":608,"t":{"47":{"position":[[4740,11],[4876,11]]}}}],["ondrag",{"_index":1674,"t":{"93":{"position":[[1627,8],[1792,8]]}}}],["ondrag(e",{"_index":1682,"t":{"93":{"position":[[1886,9]]}}}],["ondragend",{"_index":1278,"t":{"79":{"position":[[1316,11],[1361,11],[1772,11]]},"93":{"position":[[773,10],[808,11]]}}}],["ondragend(e",{"_index":1677,"t":{"93":{"position":[[1702,12]]}}}],["ondragmove",{"_index":1292,"t":{"79":{"position":[[1748,12],[1833,12]]}}}],["ondragmove(event",{"_index":1280,"t":{"79":{"position":[[1382,17]]}}}],["ondragstart",{"_index":1274,"t":{"79":{"position":[[1058,12],[1501,13]]},"93":{"position":[[743,12],[1537,13]]}}}],["one",{"_index":359,"t":{"43":{"position":[[1533,3]]},"87":{"position":[[810,3]]},"127":{"position":[[894,3]]}}}],["onevent",{"_index":1453,"t":{"87":{"position":[[1767,9],[1817,9],[1866,9],[1914,9]]}}}],["onevent(e",{"_index":1436,"t":{"87":{"position":[[1133,10]]}}}],["onloaded(data",{"_index":1700,"t":{"95":{"position":[[550,14]]}}}],["onplayvideo",{"_index":2596,"t":{"163":{"position":[[1059,13],[1082,13]]}}}],["onpointermove",{"_index":1966,"t":{"105":{"position":[[1601,14],[1633,15]]}}}],["onpointermove(eventdata",{"_index":1968,"t":{"105":{"position":[[1658,24]]}}}],["onpointerout",{"_index":1306,"t":{"81":{"position":[[517,13],[1059,13],[1534,13],[2298,13],[3069,14]]}}}],["onpointerover",{"_index":1305,"t":{"81":{"position":[[471,14],[1013,14],[1488,14],[2252,14],[3018,15]]}}}],["ontick",{"_index":867,"t":{"53":{"position":[[8103,6]]}}}],["ontick.foreach((cb",{"_index":880,"t":{"53":{"position":[[8428,19]]}}}],["onto",{"_index":1477,"t":{"91":{"position":[[231,4]]}}}],["opt",{"_index":1181,"t":{"75":{"position":[[451,3]]}}}],["optimal",{"_index":1762,"t":{"99":{"position":[[77,7]]}}}],["options",{"_index":34,"t":{"39":{"position":[[325,7]]},"167":{"position":[[697,7]]}}}],["order",{"_index":1400,"t":{"87":{"position":[[58,5],[323,5]]}}}],["original",{"_index":893,"t":{"53":{"position":[[8692,8]]},"91":{"position":[[937,8]]}}}],["out",{"_index":183,"t":{"39":{"position":[[3486,3],[4351,3],[4470,3]]},"43":{"position":[[1425,3]]},"91":{"position":[[4541,3],[4661,5],[5490,5]]}}}],["outcolor",{"_index":2275,"t":{"127":{"position":[[1355,8],[1429,9],[3580,8],[3657,8],[3735,8],[3814,8],[3895,8]]}}}],["outdir",{"_index":842,"t":{"53":{"position":[[6083,6],[6555,6]]}}}],["outdir[0",{"_index":847,"t":{"53":{"position":[[7119,9]]}}}],["outdir[1",{"_index":848,"t":{"53":{"position":[[7162,9]]}}}],["outdir[i",{"_index":846,"t":{"53":{"position":[[6564,10]]}}}],["outer",{"_index":1421,"t":{"87":{"position":[[602,5]]}}}],["outline",{"_index":2156,"t":{"115":{"position":[[864,7]]}}}],["output",{"_index":2285,"t":{"127":{"position":[[1646,6]]}}}],["outputframe",{"_index":1739,"t":{"97":{"position":[[775,12]]}}}],["outputframe.xy",{"_index":1744,"t":{"97":{"position":[[870,15],[1095,15]]}}}],["outputframe.zw",{"_index":1756,"t":{"97":{"position":[[1113,15]]}}}],["outputsprite",{"_index":2769,"t":{"175":{"position":[[530,12]]}}}],["outputsprite.anchor.set(0.5",{"_index":2773,"t":{"175":{"position":[[642,29]]}}}],["outputsprite.scale.set(1",{"_index":2809,"t":{"175":{"position":[[2030,24]]}}}],["outputsprite.texture",{"_index":2806,"t":{"175":{"position":[[1941,20]]}}}],["outputsprite.x",{"_index":2771,"t":{"175":{"position":[[598,14]]}}}],["outputsprite.y",{"_index":2772,"t":{"175":{"position":[[620,14]]}}}],["over",{"_index":583,"t":{"47":{"position":[[4209,4]]},"63":{"position":[[1221,4]]},"69":{"position":[[1022,4]]},"71":{"position":[[1074,4]]},"79":{"position":[[789,4]]},"87":{"position":[[297,4]]},"89":{"position":[[109,4]]},"91":{"position":[[5435,4]]},"107":{"position":[[1115,4]]}}}],["override",{"_index":1509,"t":{"91":{"position":[[1148,8]]}}}],["p",{"_index":272,"t":{"41":{"position":[[1394,1],[2163,1]]},"99":{"position":[[1226,2],[1456,2],[2195,1]]},"129":{"position":[[1145,2],[1323,2],[2043,1]]}}}],["p.x",{"_index":284,"t":{"41":{"position":[[1616,3]]}}}],["p.y",{"_index":285,"t":{"41":{"position":[[1626,3]]}}}],["p.y)*0.04).r*5.1",{"_index":1798,"t":{"99":{"position":[[1320,17]]},"129":{"position":[[1239,17]]}}}],["p.z,id",{"_index":1803,"t":{"99":{"position":[[1404,8]]},"129":{"position":[[1271,8]]}}}],["p1.x",{"_index":111,"t":{"39":{"position":[[1863,4]]}}}],["p1.y",{"_index":114,"t":{"39":{"position":[[1886,4]]}}}],["p2",{"_index":110,"t":{"39":{"position":[[1847,3]]}}}],["p2.x",{"_index":112,"t":{"39":{"position":[[1870,5]]}}}],["p2.y",{"_index":115,"t":{"39":{"position":[[1893,5]]}}}],["p[0",{"_index":301,"t":{"41":{"position":[[2291,4]]}}}],["p[1",{"_index":303,"t":{"41":{"position":[[2346,4]]}}}],["padding",{"_index":1933,"t":{"105":{"position":[[235,7],[286,8],[296,8],[324,7],[357,7]]}}}],["panda",{"_index":1909,"t":{"103":{"position":[[884,5]]},"117":{"position":[[813,5],[945,7]]}}}],["panda.anchor.set(0.5",{"_index":1911,"t":{"103":{"position":[[949,22]]},"117":{"position":[[878,22]]}}}],["panda.scale.x",{"_index":1924,"t":{"103":{"position":[[1543,13]]},"117":{"position":[[1658,13]]}}}],["panda.scale.y",{"_index":1925,"t":{"103":{"position":[[1587,13]]},"117":{"position":[[1702,13]]}}}],["parallel",{"_index":906,"t":{"53":{"position":[[8999,8]]}}}],["particular",{"_index":1288,"t":{"79":{"position":[[1639,10]]}}}],["pass",{"_index":1535,"t":{"91":{"position":[[1899,4],[2111,4],[2343,4]]},"127":{"position":[[1004,5],[1629,4],[1905,5],[4365,4]]},"173":{"position":[[327,4]]}}}],["passes",{"_index":2257,"t":{"127":{"position":[[539,7],[5711,6]]}}}],["path",{"_index":1168,"t":{"73":{"position":[[183,5]]},"77":{"position":[[744,4]]},"79":{"position":[[183,4]]},"85":{"position":[[408,4]]},"115":{"position":[[2244,4]]},"153":{"position":[[278,4]]},"155":{"position":[[186,4]]},"159":{"position":[[160,4]]},"163":{"position":[[1182,4]]}}}],["paths",{"_index":1085,"t":{"65":{"position":[[695,5]]}}}],["paul",{"_index":886,"t":{"53":{"position":[[8518,4]]}}}],["people",{"_index":2739,"t":{"173":{"position":[[1091,6]]}}}],["per",{"_index":2759,"t":{"173":{"position":[[1803,3]]}}}],["performance",{"_index":813,"t":{"53":{"position":[[4525,11]]},"155":{"position":[[599,11]]}}}],["performant",{"_index":1770,"t":{"99":{"position":[[237,10]]}}}],["perlin",{"_index":1857,"t":{"99":{"position":[[2594,6],[2839,7]]}}}],["perlin.basetexture.mipmap",{"_index":1862,"t":{"99":{"position":[[2723,25]]}}}],["perlin.basetexture.wrapmode",{"_index":1860,"t":{"99":{"position":[[2669,27]]}}}],["perlinnoise",{"_index":2259,"t":{"127":{"position":[[870,11]]}}}],["perlintexture",{"_index":2261,"t":{"127":{"position":[[920,13],[3031,14]]}}}],["phase",{"_index":620,"t":{"47":{"position":[[5122,5],[5277,6]]},"53":{"position":[[870,5],[911,5],[917,5],[938,5],[2783,5],[2824,5],[2830,5],[2851,5],[2971,7],[3615,5],[3656,5],[3662,5],[3683,5],[3757,5],[5377,5],[5418,5],[5424,5],[5446,5],[7971,5],[8012,5],[8018,5],[8038,5],[8084,6]]},"127":{"position":[[2060,6],[2373,6]]}}}],["phases",{"_index":2365,"t":{"127":{"position":[[5175,6],[5202,6]]}}}],["physics",{"_index":24,"t":{"39":{"position":[[201,7]]}}}],["pi*2",{"_index":1161,"t":{"71":{"position":[[916,4]]}}}],["pixel",{"_index":2727,"t":{"173":{"position":[[401,5]]}}}],["pixelation",{"_index":1175,"t":{"75":{"position":[[193,10]]},"79":{"position":[[280,10]]}}}],["pixels",{"_index":1997,"t":{"107":{"position":[[1038,6]]}}}],["pixi",{"_index":9,"t":{"39":{"position":[[12,4]]},"41":{"position":[[12,4]]},"43":{"position":[[12,4]]},"45":{"position":[[12,4]]},"47":{"position":[[12,4]]},"49":{"position":[[12,4]]},"51":{"position":[[12,4]]},"53":{"position":[[12,4],[8710,4]]},"55":{"position":[[12,4]]},"57":{"position":[[12,4]]},"59":{"position":[[12,4]]},"61":{"position":[[12,4]]},"63":{"position":[[12,4]]},"65":{"position":[[12,4]]},"67":{"position":[[12,4]]},"69":{"position":[[12,4]]},"71":{"position":[[12,4]]},"73":{"position":[[12,4]]},"75":{"position":[[12,4]]},"77":{"position":[[12,4]]},"79":{"position":[[12,4]]},"81":{"position":[[12,4]]},"83":{"position":[[12,4]]},"85":{"position":[[12,4]]},"87":{"position":[[12,4]]},"89":{"position":[[12,4]]},"91":{"position":[[12,4]]},"93":{"position":[[12,4]]},"95":{"position":[[12,4]]},"97":{"position":[[12,4]]},"99":{"position":[[12,4]]},"101":{"position":[[12,4]]},"103":{"position":[[12,4]]},"105":{"position":[[12,4]]},"107":{"position":[[12,4]]},"109":{"position":[[12,4]]},"111":{"position":[[12,4]]},"113":{"position":[[12,4]]},"115":{"position":[[12,4]]},"117":{"position":[[12,4]]},"119":{"position":[[12,4]]},"121":{"position":[[12,4]]},"123":{"position":[[12,4]]},"125":{"position":[[12,4]]},"127":{"position":[[12,4]]},"129":{"position":[[12,4]]},"131":{"position":[[12,4]]},"133":{"position":[[12,4]]},"135":{"position":[[12,4]]},"137":{"position":[[12,4]]},"139":{"position":[[12,4]]},"141":{"position":[[12,4]]},"143":{"position":[[12,4]]},"145":{"position":[[12,4]]},"147":{"position":[[12,4]]},"149":{"position":[[12,4]]},"151":{"position":[[12,4]]},"153":{"position":[[12,4],[428,4],[687,4]]},"155":{"position":[[12,4]]},"157":{"position":[[12,4]]},"159":{"position":[[12,4]]},"161":{"position":[[12,4]]},"163":{"position":[[12,4],[806,4],[970,5]]},"165":{"position":[[12,4]]},"167":{"position":[[12,4],[196,7]]},"169":{"position":[[12,4]]},"171":{"position":[[12,4]]},"173":{"position":[[12,4]]},"175":{"position":[[12,4]]},"177":{"position":[[12,4]]},"179":{"position":[[12,4],[773,4]]}}}],["pixi.animatedsprite(explosiontextures",{"_index":2507,"t":{"151":{"position":[[522,39]]}}}],["pixi.animatedsprite(frames",{"_index":2528,"t":{"153":{"position":[[602,28]]}}}],["pixi.animatedsprite(textures",{"_index":2485,"t":{"149":{"position":[[584,30],[855,30]]}}}],["pixi.application",{"_index":28,"t":{"39":{"position":[[225,18]]},"41":{"position":[[49,18]]},"43":{"position":[[49,18]]},"45":{"position":[[49,18]]},"47":{"position":[[49,18]]},"49":{"position":[[49,18]]},"51":{"position":[[49,18]]},"53":{"position":[[49,18]]},"55":{"position":[[49,18]]},"57":{"position":[[49,18]]},"59":{"position":[[49,18]]},"61":{"position":[[49,18]]},"63":{"position":[[49,18]]},"65":{"position":[[49,18]]},"67":{"position":[[49,18]]},"69":{"position":[[49,18]]},"71":{"position":[[49,18]]},"73":{"position":[[49,18]]},"75":{"position":[[49,18]]},"77":{"position":[[49,18]]},"79":{"position":[[49,18]]},"83":{"position":[[49,18]]},"85":{"position":[[49,18]]},"87":{"position":[[125,18]]},"89":{"position":[[142,18]]},"91":{"position":[[264,18]]},"93":{"position":[[49,18]]},"95":{"position":[[49,18]]},"97":{"position":[[117,18]]},"99":{"position":[[321,18]]},"101":{"position":[[49,18]]},"103":{"position":[[49,18]]},"105":{"position":[[49,18]]},"107":{"position":[[49,18]]},"109":{"position":[[49,18]]},"111":{"position":[[49,18]]},"113":{"position":[[49,18]]},"115":{"position":[[81,18]]},"117":{"position":[[49,18]]},"119":{"position":[[49,18]]},"121":{"position":[[49,18]]},"123":{"position":[[49,18]]},"125":{"position":[[49,18]]},"127":{"position":[[49,18]]},"129":{"position":[[49,18]]},"131":{"position":[[49,18]]},"133":{"position":[[49,18]]},"135":{"position":[[49,18]]},"137":{"position":[[49,18]]},"139":{"position":[[49,18]]},"141":{"position":[[49,18]]},"143":{"position":[[49,18]]},"145":{"position":[[49,18]]},"147":{"position":[[224,18]]},"149":{"position":[[49,18]]},"151":{"position":[[49,18]]},"153":{"position":[[49,18]]},"155":{"position":[[49,18]]},"157":{"position":[[49,18]]},"159":{"position":[[49,18]]},"161":{"position":[[49,18]]},"163":{"position":[[49,18]]},"165":{"position":[[49,18]]},"167":{"position":[[49,18]]},"169":{"position":[[49,18]]},"171":{"position":[[187,18]]},"173":{"position":[[1533,18]]},"175":{"position":[[49,18]]},"177":{"position":[[49,18]]},"179":{"position":[[49,18]]}}}],["pixi.application(800",{"_index":1295,"t":{"81":{"position":[[49,21]]}}}],["pixi.assets.add('egghead",{"_index":913,"t":{"55":{"position":[[248,26]]},"59":{"position":[[248,26]]}}}],["pixi.assets.add('flowertop",{"_index":912,"t":{"55":{"position":[[175,28]]},"59":{"position":[[175,28]]}}}],["pixi.assets.add('t1",{"_index":315,"t":{"43":{"position":[[344,21]]}}}],["pixi.assets.add('t2",{"_index":317,"t":{"43":{"position":[[409,21]]}}}],["pixi.assets.addbundle('fonts",{"_index":2609,"t":{"165":{"position":[[177,30]]}}}],["pixi.assets.backgroundload(['flowertop",{"_index":915,"t":{"55":{"position":[[363,40]]}}}],["pixi.assets.backgroundloadbundle(['load",{"_index":947,"t":{"57":{"position":[[556,39]]}}}],["pixi.assets.init",{"_index":946,"t":{"57":{"position":[[459,18]]}}}],["pixi.assets.load",{"_index":424,"t":{"47":{"position":[[149,18]]}}}],["pixi.assets.load('egghead').then((texture",{"_index":921,"t":{"55":{"position":[[517,42]]}}}],["pixi.assets.load('https://pixijs.com/assets/bg_grass.jpg').then((grasstexture",{"_index":2129,"t":{"113":{"position":[[216,78]]}}}],["pixi.assets.load('https://pixijs.com/assets/bg_grass.jpg').then((texture",{"_index":1375,"t":{"83":{"position":[[149,73]]}}}],["pixi.assets.load('https://pixijs.com/assets/bitmap",{"_index":2557,"t":{"161":{"position":[[149,50]]}}}],["pixi.assets.load('https://pixijs.com/assets/bunny.png",{"_index":715,"t":{"51":{"position":[[246,56]]},"61":{"position":[[221,56]]}}}],["pixi.assets.load('https://pixijs.com/assets/flowertop.png').then((texture",{"_index":2826,"t":{"179":{"position":[[126,74]]}}}],["pixi.assets.load('https://pixijs.com/assets/perlin.jpg').then(onassetsloaded",{"_index":1772,"t":{"99":{"position":[[421,78]]}}}],["pixi.assets.load('https://pixijs.com/assets/spritesheet/0123456789.json').then((spritesheet",{"_index":2476,"t":{"149":{"position":[[144,92]]}}}],["pixi.assets.load('https://pixijs.com/assets/spritesheet/fighter.json').then",{"_index":2515,"t":{"153":{"position":[[149,78]]}}}],["pixi.assets.load('https://pixijs.com/assets/spritesheet/mc.json').then",{"_index":2501,"t":{"151":{"position":[[144,73]]}}}],["pixi.assets.load('https://pixijs.com/assets/spritesheet/monsters.json",{"_index":1069,"t":{"65":{"position":[[156,71]]}}}],["pixi.assets.load(['flowertop",{"_index":988,"t":{"59":{"position":[[408,30]]}}}],["pixi.assets.load(['t1",{"_index":319,"t":{"43":{"position":[[475,23]]}}}],["pixi.assets.load(isegghead",{"_index":939,"t":{"55":{"position":[[1065,26]]}}}],["pixi.assets.loadbundle('fonts').then",{"_index":2621,"t":{"165":{"position":[[503,39]]}}}],["pixi.assets.loadbundle('game",{"_index":973,"t":{"57":{"position":[[1503,28]]}}}],["pixi.assets.loadbundle('load",{"_index":954,"t":{"57":{"position":[[826,28]]}}}],["pixi.baserendertexture(300",{"_index":2813,"t":{"177":{"position":[[516,27]]}}}],["pixi.basetexture(new",{"_index":2754,"t":{"173":{"position":[[1655,20]]}}}],["pixi.bitmapfont.from('coordinates",{"_index":1622,"t":{"91":{"position":[[4730,35]]}}}],["pixi.bitmaptext",{"_index":2560,"t":{"161":{"position":[[259,16]]}}}],["pixi.bitmaptext('global",{"_index":1626,"t":{"91":{"position":[[4897,24]]}}}],["pixi.blend_modes.add",{"_index":259,"t":{"41":{"position":[[784,21]]},"63":{"position":[[1030,21]]}}}],["pixi.buffer(new",{"_index":2236,"t":{"123":{"position":[[334,15]]}}}],["pixi.container",{"_index":376,"t":{"45":{"position":[[252,17]]},"47":{"position":[[845,17],[908,17]]},"53":{"position":[[339,17],[2317,17],[3231,17],[4272,17],[7450,17]]},"65":{"position":[[453,17]]},"67":{"position":[[171,17]]},"91":{"position":[[886,17]]},"97":{"position":[[1170,17]]},"103":{"position":[[384,17]]},"105":{"position":[[180,17]]},"107":{"position":[[180,17]]},"117":{"position":[[372,17]]},"127":{"position":[[1843,17],[2655,17],[3291,17],[4292,17]]},"137":{"position":[[431,17]]},"147":{"position":[[349,17]]},"175":{"position":[[749,17]]},"177":{"position":[[171,17]]}}}],["pixi.displayobject",{"_index":1495,"t":{"91":{"position":[[770,18]]}}}],["pixi.eventboundary(this.content",{"_index":1508,"t":{"91":{"position":[[1111,33]]}}}],["pixi.eventboundary.prototype.copymousedata.call(this.boundary",{"_index":1518,"t":{"91":{"position":[[1307,62]]}}}],["pixi.filter(null",{"_index":1704,"t":{"95":{"position":[[647,17]]},"97":{"position":[[1340,17]]},"99":{"position":[[2791,17]]}}}],["pixi.filters.blurfilter",{"_index":456,"t":{"47":{"position":[[1064,26]]},"101":{"position":[[724,26],[775,26]]}}}],["pixi.filters.blurfilter(blursize",{"_index":2134,"t":{"113":{"position":[[606,35]]}}}],["pixi.filters.colormatrixfilter",{"_index":1897,"t":{"103":{"position":[[328,33]]}}}],["pixi.filters.displacementfilter(displacementsprite",{"_index":1952,"t":{"105":{"position":[[1012,52]]},"107":{"position":[[622,52]]}}}],["pixi.geometry",{"_index":2203,"t":{"121":{"position":[[147,15]]},"123":{"position":[[147,15]]},"125":{"position":[[147,15],[499,15]]},"127":{"position":[[179,15]]},"129":{"position":[[166,15]]},"131":{"position":[[147,15]]},"133":{"position":[[147,15]]},"139":{"position":[[147,15]]},"141":{"position":[[147,15]]},"143":{"position":[[147,15]]},"145":{"position":[[147,15]]}}}],["pixi.geometry.merge([geometry",{"_index":2254,"t":{"125":{"position":[[839,30]]}}}],["pixi.graphics",{"_index":308,"t":{"43":{"position":[[194,15],[327,16]]},"47":{"position":[[1860,16],[1963,16]]},"53":{"position":[[692,16],[3465,16],[4617,16],[4900,16],[5187,16],[7553,16],[7753,16]]},"81":{"position":[[1287,15],[1812,15]]},"87":{"position":[[658,15],[853,15]]},"89":{"position":[[301,15]]},"91":{"position":[[3403,15],[3606,15]]},"93":{"position":[[362,15],[544,15]]},"109":{"position":[[323,16],[581,16],[808,16],[1076,16],[1323,16],[1475,16],[1638,16],[1839,16],[2204,16]]},"111":{"position":[[228,16],[1324,16]]},"113":{"position":[[477,15]]},"115":{"position":[[196,16]]},"117":{"position":[[1033,16]]},"135":{"position":[[453,16]]},"163":{"position":[[225,15]]}}}],["pixi.groupd8",{"_index":2829,"t":{"179":{"position":[[272,13]]}}}],["pixi.js",{"_index":10,"t":{"39":{"position":[[22,10]]},"41":{"position":[[22,10]]},"43":{"position":[[22,10]]},"45":{"position":[[22,10]]},"47":{"position":[[22,10]]},"49":{"position":[[22,10]]},"51":{"position":[[22,10]]},"53":{"position":[[22,10]]},"55":{"position":[[22,10]]},"57":{"position":[[22,10]]},"59":{"position":[[22,10]]},"61":{"position":[[22,10]]},"63":{"position":[[22,10]]},"65":{"position":[[22,10]]},"67":{"position":[[22,10]]},"69":{"position":[[22,10]]},"71":{"position":[[22,10]]},"73":{"position":[[22,10]]},"75":{"position":[[22,10]]},"77":{"position":[[22,10]]},"79":{"position":[[22,10]]},"81":{"position":[[22,10]]},"83":{"position":[[22,10]]},"85":{"position":[[22,10]]},"87":{"position":[[22,10]]},"89":{"position":[[22,10]]},"91":{"position":[[22,10]]},"93":{"position":[[22,10]]},"95":{"position":[[22,10]]},"97":{"position":[[22,10]]},"99":{"position":[[22,10]]},"101":{"position":[[22,10]]},"103":{"position":[[22,10]]},"105":{"position":[[22,10]]},"107":{"position":[[22,10]]},"109":{"position":[[22,10]]},"111":{"position":[[22,10]]},"113":{"position":[[22,10]]},"115":{"position":[[22,10]]},"117":{"position":[[22,10]]},"119":{"position":[[22,10]]},"121":{"position":[[22,10]]},"123":{"position":[[22,10]]},"125":{"position":[[22,10]]},"127":{"position":[[22,10]]},"129":{"position":[[22,10]]},"131":{"position":[[22,10]]},"133":{"position":[[22,10]]},"135":{"position":[[22,10]]},"137":{"position":[[22,10]]},"139":{"position":[[22,10]]},"141":{"position":[[22,10]]},"143":{"position":[[22,10]]},"145":{"position":[[22,10]]},"147":{"position":[[22,10]]},"149":{"position":[[22,10]]},"151":{"position":[[22,10]]},"153":{"position":[[22,10]]},"155":{"position":[[22,10]]},"157":{"position":[[22,10]]},"159":{"position":[[22,10]]},"161":{"position":[[22,10]]},"163":{"position":[[22,10]]},"165":{"position":[[22,10]]},"167":{"position":[[22,10]]},"169":{"position":[[22,10]]},"171":{"position":[[22,10]]},"173":{"position":[[22,10]]},"175":{"position":[[22,10]]},"177":{"position":[[22,10]]},"179":{"position":[[22,10]]}}}],["pixi.matrix",{"_index":1504,"t":{"91":{"position":[[997,14],[2683,14]]}}}],["pixi.mesh(geometry",{"_index":2226,"t":{"121":{"position":[[1057,19]]},"123":{"position":[[1429,19]]},"127":{"position":[[1784,19],[2592,19],[3230,19],[4233,19],[4942,19]]},"129":{"position":[[2772,19]]},"131":{"position":[[1612,19],[1663,19]]},"133":{"position":[[929,19],[1088,19],[1241,19]]},"139":{"position":[[610,19]]},"141":{"position":[[907,19]]},"143":{"position":[[1329,19]]},"145":{"position":[[1200,19]]}}}],["pixi.mesh(geometry3",{"_index":2255,"t":{"125":{"position":[[1449,20]]}}}],["pixi.particlecontainer(10000",{"_index":1128,"t":{"69":{"position":[[146,29]]}}}],["pixi.point",{"_index":84,"t":{"39":{"position":[[1079,11],[1301,11],[1396,11],[1685,11],[4018,11],[4223,11]]},"43":{"position":[[1822,13]]},"97":{"position":[[1383,13]]},"105":{"position":[[803,13]]},"119":{"position":[[541,13]]}}}],["pixi.point(0",{"_index":82,"t":{"39":{"position":[[1039,14],[2221,14],[2476,14]]},"41":{"position":[[650,13]]}}}],["pixi.point(160",{"_index":871,"t":{"53":{"position":[[8177,15]]}}}],["pixi.point(270",{"_index":873,"t":{"53":{"position":[[8220,15]]}}}],["pixi.point(380",{"_index":875,"t":{"53":{"position":[[8263,15]]}}}],["pixi.point(490",{"_index":877,"t":{"53":{"position":[[8306,15]]}}}],["pixi.point(50",{"_index":869,"t":{"53":{"position":[[8135,14]]}}}],["pixi.point(i",{"_index":2424,"t":{"135":{"position":[[247,12]]},"137":{"position":[[253,12]]}}}],["pixi.polygon",{"_index":1312,"t":{"81":{"position":[[771,14],[2010,14]]}}}],["pixi.program.from",{"_index":2411,"t":{"133":{"position":[[446,19]]}}}],["pixi.rectangle",{"_index":1053,"t":{"63":{"position":[[1595,15]]},"69":{"position":[[1462,15]]},"71":{"position":[[1448,15]]},"91":{"position":[[3929,15]]},"105":{"position":[[269,15]]}}}],["pixi.rectangle(0",{"_index":2135,"t":{"113":{"position":[[661,17]]}}}],["pixi.rectangle(100",{"_index":1758,"t":{"97":{"position":[[1215,19]]}}}],["pixi.rectangle(texture.frame.x",{"_index":2835,"t":{"179":{"position":[[532,31]]}}}],["pixi.renderer",{"_index":1136,"t":{"69":{"position":[[389,13]]}}}],["pixi.rendertexture(brt",{"_index":2816,"t":{"177":{"position":[[593,24]]}}}],["pixi.rendertexture.create",{"_index":2287,"t":{"127":{"position":[[1707,27],[2513,27],[3152,27],[4156,27]]}}}],["pixi.rendertexture.create(stagesize",{"_index":329,"t":{"43":{"position":[[776,37]]},"175":{"position":[[320,37],[379,37]]}}}],["pixi.resource",{"_index":2723,"t":{"173":{"position":[[292,13]]}}}],["pixi.scale_modes.linear",{"_index":2814,"t":{"177":{"position":[[549,24]]}}}],["pixi.scale_modes.nearest",{"_index":1177,"t":{"75":{"position":[[231,25]]},"79":{"position":[[323,25]]},"93":{"position":[[1063,25]]},"113":{"position":[[786,25]]}}}],["pixi.settings.scale_mode",{"_index":1176,"t":{"75":{"position":[[204,24]]}}}],["pixi.shader(program",{"_index":2414,"t":{"133":{"position":[[953,20],[1112,20],[1265,20]]}}}],["pixi.shader.from",{"_index":2211,"t":{"121":{"position":[[506,18]]},"123":{"position":[[986,18]]},"125":{"position":[[898,18]]},"131":{"position":[[381,18],[930,18]]},"139":{"position":[[243,18]]},"141":{"position":[[465,18]]}}}],["pixi.shader.from(vertexsrc",{"_index":2280,"t":{"127":{"position":[[1498,27],[2427,27],[3069,27],[4076,27],[4852,27]]},"129":{"position":[[2703,27]]},"143":{"position":[[1256,27]]},"145":{"position":[[1131,27]]}}}],["pixi.simpleplane(texture",{"_index":1377,"t":{"83":{"position":[[246,25]]}}}],["pixi.simplerope(pixi.texture.from('https://pixijs.com/assets/snake.png",{"_index":2426,"t":{"135":{"position":[[299,73]]},"137":{"position":[[305,73]]}}}],["pixi.simplerope(trailtexture",{"_index":256,"t":{"41":{"position":[[707,29]]}}}],["pixi.sprite(currenttexture",{"_index":2770,"t":{"175":{"position":[[549,28]]}}}],["pixi.sprite(gradtexture",{"_index":2713,"t":{"171":{"position":[[919,25]]},"173":{"position":[[1981,25]]}}}],["pixi.sprite(grasstexture",{"_index":2130,"t":{"113":{"position":[[323,26]]}}}],["pixi.sprite(loadscreenassets.egghead",{"_index":975,"t":{"57":{"position":[[1617,38]]}}}],["pixi.sprite(loadscreenassets.flowertop",{"_index":956,"t":{"57":{"position":[[940,40]]}}}],["pixi.sprite(pixi.texture.white",{"_index":120,"t":{"39":{"position":[[1990,32],[2310,32]]}}}],["pixi.sprite(rendertexture",{"_index":331,"t":{"43":{"position":[[846,27]]}}}],["pixi.sprite(rt",{"_index":2817,"t":{"177":{"position":[[637,16]]}}}],["pixi.sprite(slottextures[math.floor(math.random",{"_index":464,"t":{"47":{"position":[[1232,49]]}}}],["pixi.sprite(startexture",{"_index":658,"t":{"49":{"position":[[503,25]]}}}],["pixi.sprite(texture",{"_index":393,"t":{"45":{"position":[[680,21]]},"55":{"position":[[707,21]]},"67":{"position":[[399,21]]},"79":{"position":[[574,21]]},"113":{"position":[[842,21]]},"147":{"position":[[577,21]]},"157":{"position":[[393,21]]},"163":{"position":[[1353,21]]},"177":{"position":[[343,21]]}}}],["pixi.sprite(texturebutton",{"_index":1229,"t":{"77":{"position":[[1156,27]]},"85":{"position":[[820,27]]}}}],["pixi.sprite(textures[i",{"_index":2854,"t":{"179":{"position":[[1296,22]]}}}],["pixi.sprite(yellowstar",{"_index":1300,"t":{"81":{"position":[[273,24],[594,24],[1137,24],[1727,24]]}}}],["pixi.sprite.from('https://pixijs.com/assets/bg_button.jpg",{"_index":1211,"t":{"77":{"position":[[507,60]]},"85":{"position":[[171,60]]}}}],["pixi.sprite.from('https://pixijs.com/assets/bg_grass.jpg",{"_index":1691,"t":{"95":{"position":[[172,59]]},"97":{"position":[[240,59]]},"105":{"position":[[1414,59]]}}}],["pixi.sprite.from('https://pixijs.com/assets/bg_plane.jpg",{"_index":2188,"t":{"119":{"position":[[169,59]]}}}],["pixi.sprite.from('https://pixijs.com/assets/bg_rotate.jpg",{"_index":733,"t":{"53":{"position":[[571,60]]},"63":{"position":[[179,60]]},"103":{"position":[[169,60]]},"109":{"position":[[158,60]]},"117":{"position":[[186,60]]}}}],["pixi.sprite.from('https://pixijs.com/assets/bg_scene_rotate.jpg",{"_index":729,"t":{"53":{"position":[[432,66],[3324,66],[4405,66]]},"103":{"position":[[491,66]]},"117":{"position":[[505,66]]}}}],["pixi.sprite.from('https://pixijs.com/assets/bunny.png",{"_index":1169,"t":{"73":{"position":[[203,56]]},"75":{"position":[[272,56]]},"155":{"position":[[205,56]]}}}],["pixi.sprite.from('https://pixijs.com/assets/cells.png",{"_index":2190,"t":{"119":{"position":[[267,56]]}}}],["pixi.sprite.from('https://pixijs.com/assets/circle.png",{"_index":783,"t":{"53":{"position":[[2507,57]]}}}],["pixi.sprite.from('https://pixijs.com/assets/egghead.png",{"_index":1157,"t":{"71":{"position":[[335,58]]}}}],["pixi.sprite.from('https://pixijs.com/assets/flowertop.png",{"_index":1022,"t":{"63":{"position":[[583,60]]},"119":{"position":[[359,60]]}}}],["pixi.sprite.from('https://pixijs.com/assets/light_rotate_1.png",{"_index":1906,"t":{"103":{"position":[[760,65]]},"117":{"position":[[717,65]]}}}],["pixi.sprite.from('https://pixijs.com/assets/light_rotate_2.png",{"_index":1902,"t":{"103":{"position":[[627,65]]},"117":{"position":[[612,65]]}}}],["pixi.sprite.from('https://pixijs.com/assets/maggot.png",{"_index":1935,"t":{"105":{"position":[[439,57]]}}}],["pixi.sprite.from('https://pixijs.com/assets/maggot_tiny.png",{"_index":1138,"t":{"69":{"position":[[495,62]]}}}],["pixi.sprite.from('https://pixijs.com/assets/panda.png",{"_index":1910,"t":{"103":{"position":[[892,56]]},"117":{"position":[[821,56]]}}}],["pixi.sprite.from('https://pixijs.com/assets/pixi",{"_index":1868,"t":{"101":{"position":[[137,48],[319,48],[520,48]]},"105":{"position":[[908,48],[1264,48]]},"107":{"position":[[242,48],[392,48]]}}}],["pixi.sprite.from(framename",{"_index":1089,"t":{"65":{"position":[[827,28]]}}}],["pixi.sprite.from(fruits[i",{"_index":2793,"t":{"175":{"position":[[1438,25]]}}}],["pixi.sprite.from(resolvedtexture",{"_index":1009,"t":{"61":{"position":[[442,34]]}}}],["pixi.sprite.from(texture",{"_index":718,"t":{"51":{"position":[[372,26]]}}}],["pixi.sprite.from(textures.egghead",{"_index":1000,"t":{"59":{"position":[[838,35]]}}}],["pixi.sprite.from(textures.flowertop",{"_index":993,"t":{"59":{"position":[[666,37]]}}}],["pixi.text",{"_index":1406,"t":{"87":{"position":[[262,10],[501,13]]},"91":{"position":[[5313,10]]},"169":{"position":[[782,10]]}}}],["pixi.text('basic",{"_index":2631,"t":{"167":{"position":[[171,16]]}}}],["pixi.text('chachicle.ttf",{"_index":2622,"t":{"165":{"position":[[566,26]]}}}],["pixi.text('click",{"_index":416,"t":{"45":{"position":[[1143,16]]},"103":{"position":[[1218,16]]},"117":{"position":[[1338,16]]}}}],["pixi.text('crosterian.woff2",{"_index":2625,"t":{"165":{"position":[[900,29]]}}}],["pixi.text('dotrice",{"_index":2624,"t":{"165":{"position":[[778,18]]}}}],["pixi.text('drag",{"_index":1667,"t":{"93":{"position":[[1216,15]]}}}],["pixi.text('hit",{"_index":1357,"t":{"81":{"position":[[2508,14]]}}}],["pixi.text('lineal.otf",{"_index":2623,"t":{"165":{"position":[[675,23]]}}}],["pixi.text('mask",{"_index":1364,"t":{"81":{"position":[[2617,17],[2722,15]]}}}],["pixi.text('pixi",{"_index":530,"t":{"47":{"position":[[2719,15]]}}}],["pixi.text('pixijs",{"_index":1773,"t":{"99":{"position":[[536,19]]}}}],["pixi.text('rich",{"_index":2638,"t":{"167":{"position":[[662,15]]}}}],["pixi.text('skew",{"_index":2650,"t":{"167":{"position":[[1140,15]]}}}],["pixi.text('spin",{"_index":519,"t":{"47":{"position":[[2464,15]]}}}],["pixi.text('standard",{"_index":1350,"t":{"81":{"position":[[2399,21]]}}}],["pixi.text(`rotate",{"_index":2857,"t":{"179":{"position":[[1530,17]]}}}],["pixi.textstyle",{"_index":410,"t":{"45":{"position":[[1059,16]]},"47":{"position":[[2111,16]]},"81":{"position":[[2344,16]]},"165":{"position":[[597,16],[703,16],[816,16],[934,16]]},"167":{"position":[[290,16],[828,16]]}}}],["pixi.texture(gradbasetexture",{"_index":2764,"t":{"173":{"position":[[1931,30]]}}}],["pixi.texture(texture.basetexture",{"_index":2839,"t":{"179":{"position":[[672,33],[878,33]]}}}],["pixi.texture.from('https://pixijs.com/assets/bg_displacement.jpg",{"_index":2417,"t":{"133":{"position":[[1305,67]]}}}],["pixi.texture.from('https://pixijs.com/assets/bg_rotate.jpg",{"_index":2415,"t":{"133":{"position":[[1152,61]]}}}],["pixi.texture.from('https://pixijs.com/assets/bg_scene_rotate.jpg",{"_index":2224,"t":{"121":{"position":[[968,67]]},"125":{"position":[[1360,67]]},"131":{"position":[[842,67],[1519,67]]},"133":{"position":[[993,67]]},"143":{"position":[[1171,66]]},"145":{"position":[[1036,67]]}}}],["pixi.texture.from('https://pixijs.com/assets/bunny.png",{"_index":374,"t":{"45":{"position":[[167,57]]},"67":{"position":[[260,57]]},"79":{"position":[[204,57]]},"147":{"position":[[438,57]]},"177":{"position":[[236,57]]}}}],["pixi.texture.from('https://pixijs.com/assets/button.png",{"_index":1213,"t":{"77":{"position":[[771,58]]},"85":{"position":[[435,58]]}}}],["pixi.texture.from('https://pixijs.com/assets/button_down.png",{"_index":1215,"t":{"77":{"position":[[856,63]]},"85":{"position":[[520,63]]}}}],["pixi.texture.from('https://pixijs.com/assets/button_over.png",{"_index":1217,"t":{"77":{"position":[[946,63]]},"85":{"position":[[610,63]]}}}],["pixi.texture.from('https://pixijs.com/assets/egghead.png",{"_index":441,"t":{"47":{"position":[[538,59]]},"157":{"position":[[270,59]]}}}],["pixi.texture.from('https://pixijs.com/assets/flowertop.png",{"_index":442,"t":{"47":{"position":[[598,61]]},"157":{"position":[[186,61]]}}}],["pixi.texture.from('https://pixijs.com/assets/helmlok.png",{"_index":443,"t":{"47":{"position":[[660,59]]}}}],["pixi.texture.from('https://pixijs.com/assets/p2.jpeg",{"_index":2544,"t":{"159":{"position":[[181,55]]}}}],["pixi.texture.from('https://pixijs.com/assets/perlin.jpg",{"_index":2262,"t":{"127":{"position":[[936,58]]},"129":{"position":[[2426,58]]}}}],["pixi.texture.from('https://pixijs.com/assets/skully.png",{"_index":444,"t":{"47":{"position":[[720,58]]}}}],["pixi.texture.from('https://pixijs.com/assets/star.png",{"_index":646,"t":{"49":{"position":[[175,56]]}}}],["pixi.texture.from('https://pixijs.com/assets/trail.png",{"_index":240,"t":{"41":{"position":[[199,57]]}}}],["pixi.texture.from('https://pixijs.com/assets/video.mp4",{"_index":2599,"t":{"163":{"position":[[1203,57]]}}}],["pixi.texture.from('https://pixijs.com/assets/yellowstar.png",{"_index":1297,"t":{"81":{"position":[[160,62]]}}}],["pixi.texture.from(`explosion_sequence_a",{"_index":2503,"t":{"151":{"position":[[344,39]]}}}],["pixi.texture.from(canvas",{"_index":2711,"t":{"171":{"position":[[830,26]]}}}],["pixi.texture.from(framekey",{"_index":2480,"t":{"149":{"position":[[394,28]]}}}],["pixi.tilingsprite",{"_index":2551,"t":{"159":{"position":[[400,18]]}}}],["pixi.types.float",{"_index":2240,"t":{"123":{"position":[[479,17],[598,17]]}}}],["pixi.wrap_modes.repeat",{"_index":1861,"t":{"99":{"position":[[2699,23]]},"107":{"position":[[567,23]]},"129":{"position":[[2587,23]]}}}],["pixi/graphics",{"_index":1468,"t":{"91":{"position":[[40,15]]},"115":{"position":[[40,15]]}}}],["pixijs",{"_index":2680,"t":{"169":{"position":[[793,7]]},"173":{"position":[[36,6],[1232,6]]}}}],["place",{"_index":1590,"t":{"91":{"position":[[3691,5]]}}}],["plane",{"_index":1376,"t":{"83":{"position":[[234,5]]},"99":{"position":[[1118,5]]},"129":{"position":[[1037,5]]}}}],["plane.geometry.getbuffer('avertexposition",{"_index":1383,"t":{"83":{"position":[[394,44]]}}}],["plane.x",{"_index":1378,"t":{"83":{"position":[[281,7]]}}}],["plane.y",{"_index":1379,"t":{"83":{"position":[[296,7]]}}}],["platforms",{"_index":2581,"t":{"163":{"position":[[740,10]]}}}],["play",{"_index":492,"t":{"47":{"position":[[2083,4]]},"163":{"position":[[156,4]]}}}],["playing",{"_index":548,"t":{"47":{"position":[[3146,8]]},"163":{"position":[[688,7]]}}}],["playtext",{"_index":518,"t":{"47":{"position":[[2449,8]]}}}],["playtext.height",{"_index":526,"t":{"47":{"position":[[2627,16]]}}}],["playtext.width",{"_index":523,"t":{"47":{"position":[[2542,15]]}}}],["playtext.x",{"_index":521,"t":{"47":{"position":[[2502,10]]}}}],["playtext.y",{"_index":524,"t":{"47":{"position":[[2564,10]]}}}],["please",{"_index":1761,"t":{"99":{"position":[[39,6]]}}}],["point",{"_index":192,"t":{"39":{"position":[[3976,5]]},"43":{"position":[[1512,5]]},"51":{"position":[[429,5]]},"53":{"position":[[982,6],[1839,5],[5490,6],[8604,5]]},"61":{"position":[[507,5]]},"69":{"position":[[576,5]]},"71":{"position":[[412,5],[521,5]]},"73":{"position":[[290,5]]},"79":{"position":[[875,5]]},"81":{"position":[[723,5]]},"155":{"position":[[292,5]]},"157":{"position":[[444,5]]}}}],["point.y",{"_index":1558,"t":{"91":{"position":[[2433,9]]}}}],["pointer",{"_index":198,"t":{"39":{"position":[[4164,7],[4568,7]]},"47":{"position":[[3034,10]]},"55":{"position":[[880,10]]},"57":{"position":[[1145,10],[1820,10]]},"75":{"position":[[541,10]]},"79":{"position":[[835,10],[1019,7]]},"81":{"position":[[354,10],[896,10],[1219,10],[2135,10]]},"85":{"position":[[1025,10],[1094,8]]},"89":{"position":[[80,7],[668,7]]},"93":{"position":[[706,10],[1974,8]]},"157":{"position":[[710,10]]},"163":{"position":[[588,10]]}}}],["pointerdown",{"_index":336,"t":{"43":{"position":[[1080,12]]},"91":{"position":[[1695,14]]}}}],["pointerdown(event",{"_index":369,"t":{"43":{"position":[[1875,18]]}}}],["pointerenter",{"_index":1410,"t":{"87":{"position":[[332,13],[1407,14]]}}}],["pointerleave",{"_index":1411,"t":{"87":{"position":[[346,13],[1434,15]]}}}],["pointermove",{"_index":341,"t":{"43":{"position":[[1175,13],[1247,13]]},"91":{"position":[[1723,14],[4055,11]]},"93":{"position":[[1483,11]]}}}],["pointermove(event",{"_index":371,"t":{"43":{"position":[[1913,19]]}}}],["pointerout",{"_index":1413,"t":{"87":{"position":[[373,10]]},"91":{"position":[[1753,13]]}}}],["pointerover",{"_index":1412,"t":{"87":{"position":[[360,12]]},"91":{"position":[[1738,14]]}}}],["pointers",{"_index":1187,"t":{"75":{"position":[[555,8]]}}}],["pointerup",{"_index":338,"t":{"43":{"position":[[1110,10],[1145,10]]},"91":{"position":[[1710,12]]}}}],["pointerup(event",{"_index":372,"t":{"43":{"position":[[1944,16]]}}}],["points",{"_index":108,"t":{"39":{"position":[[1802,6]]},"41":{"position":[[458,6],[589,7],[737,8],[1316,6]]},"43":{"position":[[303,6]]},"135":{"position":[[187,6],[373,8]]},"137":{"position":[[193,6],[379,8]]}}}],["points.length",{"_index":2436,"t":{"135":{"position":[[617,14],[893,14],[973,14]]},"137":{"position":[[678,14]]}}}],["points.push(new",{"_index":255,"t":{"41":{"position":[[634,15]]},"135":{"position":[[231,15]]},"137":{"position":[[237,15]]}}}],["points[0].y",{"_index":2446,"t":{"135":{"position":[[859,13]]}}}],["points[i",{"_index":273,"t":{"41":{"position":[[1398,10]]}}}],["points[i].x",{"_index":2439,"t":{"135":{"position":[[687,11]]},"137":{"position":[[748,11]]}}}],["points[i].y",{"_index":2437,"t":{"135":{"position":[[639,11],[937,13],[1044,12]]},"137":{"position":[[700,11]]}}}],["polyfill",{"_index":2586,"t":{"163":{"position":[[824,8]]}}}],["polygon",{"_index":2174,"t":{"115":{"position":[[2230,7]]}}}],["pops",{"_index":182,"t":{"39":{"position":[[3481,4],[3508,4]]}}}],["position",{"_index":453,"t":{"47":{"position":[[1020,9],[1672,8],[3423,11]]},"49":{"position":[[1495,8]]},"53":{"position":[[301,10],[378,9],[2279,10],[2356,9],[3193,10],[3270,9],[4234,10],[4311,9],[7412,10],[7489,9]]},"63":{"position":[[792,11]]},"69":{"position":[[191,9],[1691,8]]},"71":{"position":[[647,10],[1658,8]]},"75":{"position":[[348,8]]},"79":{"position":[[1116,8]]},"93":{"position":[[1826,8],[1956,8],[2148,8]]},"107":{"position":[[940,8]]},"153":{"position":[[723,9]]},"163":{"position":[[383,8]]},"175":{"position":[[1357,8]]},"177":{"position":[[971,8]]}}}],["positions",{"_index":575,"t":{"47":{"position":[[3975,9]]},"49":{"position":[[825,9]]},"63":{"position":[[1806,9]]},"83":{"position":[[368,10],[531,9]]}}}],["positionsize",{"_index":2234,"t":{"123":{"position":[[276,12],[388,13],[458,13],[501,13],[620,13],[652,13],[752,13]]}}}],["possible",{"_index":2283,"t":{"127":{"position":[[1592,9]]}}}],["power",{"_index":2549,"t":{"159":{"position":[[359,5]]}}}],["precision",{"_index":1724,"t":{"97":{"position":[[468,9],[633,9],[667,9]]},"121":{"position":[[525,9],[818,10]]},"123":{"position":[[1005,9],[1310,10]]},"125":{"position":[[917,9],[1210,10]]},"127":{"position":[[567,9],[1054,9],[1980,9],[2784,9],[3387,9],[4399,9]]},"129":{"position":[[516,9],[886,9]]},"131":{"position":[[400,9],[693,10],[949,9],[1242,10]]},"133":{"position":[[466,9],[759,10]]},"139":{"position":[[262,9],[502,10]]},"141":{"position":[[484,9],[785,10]]},"143":{"position":[[590,9],[966,9]]},"145":{"position":[[497,9],[812,9]]}}}],["preferably",{"_index":2548,"t":{"159":{"position":[[343,10]]}}}],["prepare",{"_index":305,"t":{"43":{"position":[[129,7]]}}}],["prerounded",{"_index":816,"t":{"53":{"position":[[4551,10]]}}}],["pressed",{"_index":1673,"t":{"93":{"position":[[1519,8]]}}}],["prevent",{"_index":277,"t":{"41":{"position":[[1457,7]]},"87":{"position":[[1517,7]]}}}],["previous",{"_index":357,"t":{"43":{"position":[[1497,8]]}}}],["previousposition",{"_index":454,"t":{"47":{"position":[[1033,17]]}}}],["prevy",{"_index":579,"t":{"47":{"position":[[4069,5],[4170,5]]}}}],["product",{"_index":586,"t":{"47":{"position":[[4259,7],[4643,8]]}}}],["program",{"_index":2410,"t":{"133":{"position":[[436,7]]}}}],["project",{"_index":1475,"t":{"91":{"position":[[201,7]]}}}],["projection",{"_index":691,"t":{"49":{"position":[[1529,10]]},"91":{"position":[[406,11],[946,10],[2468,10],[3835,10]]}}}],["projectionmatrix",{"_index":2216,"t":{"121":{"position":[[648,17]]},"123":{"position":[[1141,17]]},"125":{"position":[[1040,17]]},"127":{"position":[[690,17]]},"129":{"position":[[639,17]]},"131":{"position":[[523,17],[1072,17]]},"133":{"position":[[589,17]]},"139":{"position":[[364,17]]},"141":{"position":[[609,17]]},"143":{"position":[[736,17]]},"145":{"position":[[620,17]]}}}],["projectionsystem",{"_index":1562,"t":{"91":{"position":[[2528,16]]}}}],["projectionsystem.transform",{"_index":1566,"t":{"91":{"position":[[2620,26],[2649,26]]}}}],["projectionsystem.transform.append(this.worldtransform",{"_index":1568,"t":{"91":{"position":[[2757,55]]}}}],["projectionsystem.transform.copyfrom(this.originaltransform",{"_index":1572,"t":{"91":{"position":[[2938,60]]}}}],["projectionsystem.transform.copyto(this.originaltransform",{"_index":1567,"t":{"91":{"position":[[2698,58]]}}}],["projectionsystem.update(null",{"_index":1569,"t":{"91":{"position":[[2813,29],[2999,29]]}}}],["projector",{"_index":1478,"t":{"91":{"position":[[369,9],[566,10],[752,9],[3282,9],[3298,9],[3333,13],[3779,9]]}}}],["projector.content.addchild",{"_index":1580,"t":{"91":{"position":[[3371,27]]}}}],["projector.content.addchild(...stars",{"_index":1595,"t":{"91":{"position":[[3789,37]]}}}],["projector.content.addeventlistener('pointermove",{"_index":1634,"t":{"91":{"position":[[5053,49]]}}}],["projector.content.eventmode",{"_index":1604,"t":{"91":{"position":[[4126,27]]}}}],["projector.content.hitarea",{"_index":1600,"t":{"91":{"position":[[3897,25],[4099,26]]}}}],["projector.hitarea",{"_index":1603,"t":{"91":{"position":[[4079,17]]}}}],["projector.x",{"_index":1598,"t":{"91":{"position":[[3859,11]]}}}],["projector.y",{"_index":1599,"t":{"91":{"position":[[3878,11]]}}}],["promise",{"_index":935,"t":{"55":{"position":[[996,7]]},"57":{"position":[[767,7],[1444,7]]},"59":{"position":[[355,7],[518,7]]},"61":{"position":[[190,7],[290,7]]}}}],["promise<{flowertop",{"_index":989,"t":{"59":{"position":[[458,19]]}}}],["propagate",{"_index":1472,"t":{"91":{"position":[[126,9],[613,9],[1633,9]]}}}],["proper",{"_index":585,"t":{"47":{"position":[[4252,6],[4609,6]]},"49":{"position":[[1252,6]]}}}],["properties",{"_index":1035,"t":{"63":{"position":[[1073,10]]},"71":{"position":[[804,10]]},"153":{"position":[[671,10]]}}}],["property",{"_index":605,"t":{"47":{"position":[[4698,9],[4778,9]]}}}],["propertybeginvalue",{"_index":611,"t":{"47":{"position":[[4788,19]]}}}],["pure",{"_index":1764,"t":{"99":{"position":[[98,4]]},"173":{"position":[[1183,4]]}}}],["push",{"_index":45,"t":{"39":{"position":[[446,4]]},"63":{"position":[[1374,4]]},"69":{"position":[[1235,4]]},"71":{"position":[[1227,4]]}}}],["quad",{"_index":2225,"t":{"121":{"position":[[1046,4]]},"125":{"position":[[1438,4]]},"129":{"position":[[2682,5],[2761,4]]},"145":{"position":[[1189,4]]}}}],["quad.position.set(400",{"_index":2227,"t":{"121":{"position":[[1086,22]]},"125":{"position":[[1479,22]]},"129":{"position":[[2801,22]]},"145":{"position":[[1229,22]]}}}],["quad.rotation",{"_index":2230,"t":{"121":{"position":[[1188,13]]},"125":{"position":[[1581,13]]},"145":{"position":[[1391,13]]}}}],["quad.scale.set(2",{"_index":2228,"t":{"121":{"position":[[1115,18]]},"125":{"position":[[1508,18]]},"129":{"position":[[2830,18]]},"145":{"position":[[1258,18]]}}}],["quad.scale.set(number(math.cos(time",{"_index":2393,"t":{"129":{"position":[[2992,37]]}}}],["quad.shader.uniforms.time",{"_index":2392,"t":{"129":{"position":[[2958,25]]},"145":{"position":[[1414,25]]}}}],["quality",{"_index":2692,"t":{"171":{"position":[[352,7],[391,7],[470,8],[617,8],[810,8]]}}}],["r",{"_index":550,"t":{"47":{"position":[[3262,1],[3716,1]]},"141":{"position":[[368,2],[388,2],[409,2]]},"143":{"position":[[368,2],[388,2],[409,2]]}}}],["r.blur.blury",{"_index":572,"t":{"47":{"position":[[3871,12]]}}}],["r.position",{"_index":555,"t":{"47":{"position":[[3336,10],[3886,11],[3946,11],[4088,12]]}}}],["r.previousposition",{"_index":573,"t":{"47":{"position":[[3900,19],[3925,18]]}}}],["r.symbols.length",{"_index":576,"t":{"47":{"position":[[4014,17],[4108,17]]}}}],["r.symbols[j",{"_index":578,"t":{"47":{"position":[[4049,13]]}}}],["rabbit",{"_index":1172,"t":{"73":{"position":[[514,6]]},"155":{"position":[[550,6]]}}}],["radial",{"_index":670,"t":{"49":{"position":[[840,6]]},"53":{"position":[[215,6],[3131,6]]}}}],["radians",{"_index":1144,"t":{"69":{"position":[[902,7]]},"71":{"position":[[876,8]]}}}],["radius",{"_index":801,"t":{"53":{"position":[[3783,6],[3830,7],[3872,7],[4025,7]]},"113":{"position":[[135,6],[162,6],[545,6],[564,7],[682,7],[707,7]]}}}],["random",{"_index":671,"t":{"49":{"position":[[847,6]]},"63":{"position":[[675,6],[785,6],[1284,6]]},"69":{"position":[[882,6],[1085,6]]},"71":{"position":[[490,6],[640,6],[856,6],[1137,6]]},"111":{"position":[[1456,6]]}}}],["randomize",{"_index":1385,"t":{"83":{"position":[[509,9]]}}}],["randomizestar(star",{"_index":663,"t":{"49":{"position":[[606,19],[695,19],[1459,20]]}}}],["randomly",{"_index":2790,"t":{"175":{"position":[[1348,8]]}}}],["rate",{"_index":571,"t":{"47":{"position":[[3865,5]]}}}],["raydir",{"_index":1835,"t":{"99":{"position":[[2039,6],[2203,6],[2453,7]]},"129":{"position":[[1887,6],[2051,6],[2301,7]]}}}],["raymarch",{"_index":1840,"t":{"99":{"position":[[2114,8]]},"129":{"position":[[1962,8]]}}}],["rc",{"_index":448,"t":{"47":{"position":[[899,2],[1003,3]]}}}],["rc.addchild(symbol",{"_index":478,"t":{"47":{"position":[[1561,20]]}}}],["rc.filters",{"_index":459,"t":{"47":{"position":[[1136,10]]}}}],["rc.x",{"_index":449,"t":{"47":{"position":[[926,4]]}}}],["rd",{"_index":1808,"t":{"99":{"position":[[1464,3],[1675,2]]},"129":{"position":[[1331,3],[1542,2]]}}}],["reach",{"_index":971,"t":{"57":{"position":[[1378,5]]}}}],["read",{"_index":2349,"t":{"127":{"position":[[4541,6]]}}}],["reading",{"_index":18,"t":{"39":{"position":[[103,8]]}}}],["real",{"_index":603,"t":{"47":{"position":[[4638,4]]},"49":{"position":[[1289,5]]},"99":{"position":[[768,4]]}}}],["really",{"_index":690,"t":{"49":{"position":[[1515,6]]},"99":{"position":[[1129,6],[2310,6]]},"129":{"position":[[1048,6],[2158,6]]}}}],["realpath",{"_index":2007,"t":{"109":{"position":[[308,8]]}}}],["realpath.linestyle(2",{"_index":2008,"t":{"109":{"position":[[340,21]]}}}],["realpath.lineto(100",{"_index":2010,"t":{"109":{"position":[[399,20]]}}}],["realpath.lineto(200",{"_index":2011,"t":{"109":{"position":[[426,20]]}}}],["realpath.lineto(240",{"_index":2012,"t":{"109":{"position":[[453,20]]}}}],["realpath.moveto(0",{"_index":2009,"t":{"109":{"position":[[376,18]]}}}],["realpath.position.x",{"_index":2013,"t":{"109":{"position":[[480,19]]}}}],["realpath.position.y",{"_index":2014,"t":{"109":{"position":[[506,19]]}}}],["realpath2",{"_index":2023,"t":{"109":{"position":[[792,9]]}}}],["realpath2.linestyle(2",{"_index":2024,"t":{"109":{"position":[[825,22]]}}}],["realpath2.lineto(0",{"_index":2026,"t":{"109":{"position":[[886,19]]}}}],["realpath2.lineto(150",{"_index":2027,"t":{"109":{"position":[[913,21]]}}}],["realpath2.lineto(240",{"_index":2028,"t":{"109":{"position":[[941,21]]}}}],["realpath2.moveto(0",{"_index":2025,"t":{"109":{"position":[[862,19]]}}}],["realpath2.position.x",{"_index":2029,"t":{"109":{"position":[[969,20]]}}}],["realpath2.position.y",{"_index":2030,"t":{"109":{"position":[[997,20]]}}}],["reason",{"_index":1284,"t":{"79":{"position":[[1557,6]]}}}],["received",{"_index":1444,"t":{"87":{"position":[[1309,8]]}}}],["rectandhole",{"_index":2057,"t":{"109":{"position":[[1821,11]]}}}],["rectandhole.beginfill(0x00ff00",{"_index":2058,"t":{"109":{"position":[[1856,32]]}}}],["rectandhole.beginhole",{"_index":2061,"t":{"109":{"position":[[1931,24]]}}}],["rectandhole.drawcircle(375",{"_index":2062,"t":{"109":{"position":[[1956,27]]}}}],["rectandhole.drawcircle(425",{"_index":2064,"t":{"109":{"position":[[1994,27]]}}}],["rectandhole.drawcircle(475",{"_index":2066,"t":{"109":{"position":[[2032,27]]}}}],["rectandhole.drawrect(350",{"_index":2059,"t":{"109":{"position":[[1889,25]]}}}],["rectandhole.endfill",{"_index":2069,"t":{"109":{"position":[[2093,22]]}}}],["rectandhole.endhole",{"_index":2068,"t":{"109":{"position":[[2070,22]]}}}],["rectangle",{"_index":809,"t":{"53":{"position":[[4157,9],[7319,9],[7737,9]]},"111":{"position":[[944,9]]},"115":{"position":[[216,9],[316,9],[468,9],[621,9],[1662,9]]}}}],["rectangle.drawroundedrect(0",{"_index":860,"t":{"53":{"position":[[7807,28]]}}}],["rectangle.endfill",{"_index":862,"t":{"53":{"position":[[7854,20]]}}}],["rectangle.linestyle(2",{"_index":859,"t":{"53":{"position":[[7770,22]]}}}],["rectangle.mask",{"_index":863,"t":{"53":{"position":[[7875,14]]}}}],["red",{"_index":38,"t":{"39":{"position":[[374,3],[3956,3],[4183,3],[4580,3],[4778,3]]},"171":{"position":[[732,7]]},"173":{"position":[[934,7]]}}}],["redraw",{"_index":765,"t":{"53":{"position":[[1851,6],[3883,6],[6839,6]]}}}],["redspeed",{"_index":215,"t":{"39":{"position":[[4694,8],[4842,9],[4877,9]]}}}],["redsquare",{"_index":134,"t":{"39":{"position":[[2294,9],[4957,11],[5137,11]]}}}],["redsquare.acceleration",{"_index":141,"t":{"39":{"position":[[2447,22]]}}}],["redsquare.acceleration.set",{"_index":216,"t":{"39":{"position":[[4789,27],[5201,27]]}}}],["redsquare.acceleration.set(redsquare.acceleration.x",{"_index":169,"t":{"39":{"position":[[2896,51]]}}}],["redsquare.acceleration.x",{"_index":232,"t":{"39":{"position":[[5538,24]]}}}],["redsquare.acceleration.y",{"_index":171,"t":{"39":{"position":[[2956,24],[5587,24]]}}}],["redsquare.height",{"_index":138,"t":{"39":{"position":[[2396,16],[4083,17]]}}}],["redsquare.mass",{"_index":142,"t":{"39":{"position":[[2491,14],[5358,16],[5395,16]]}}}],["redsquare.position.set(0",{"_index":135,"t":{"39":{"position":[[2343,25]]}}}],["redsquare.tint",{"_index":139,"t":{"39":{"position":[[2420,14]]}}}],["redsquare.width",{"_index":137,"t":{"39":{"position":[[2373,15],[4044,16]]}}}],["redsquare.x",{"_index":194,"t":{"39":{"position":[[4030,11],[5523,11]]}}}],["redsquare.y",{"_index":196,"t":{"39":{"position":[[4069,11],[5572,11]]}}}],["redsquarecenterposition",{"_index":193,"t":{"39":{"position":[[3988,23],[4660,24]]}}}],["redsquarecenterposition.x",{"_index":200,"t":{"39":{"position":[[4251,26]]}}}],["redsquarecenterposition.y",{"_index":201,"t":{"39":{"position":[[4294,26]]}}}],["reducing",{"_index":165,"t":{"39":{"position":[[2827,8]]}}}],["reel",{"_index":451,"t":{"47":{"position":[[983,4],[3988,5],[4299,5]]}}}],["reel.blur",{"_index":460,"t":{"47":{"position":[[1149,12]]}}}],["reel.blur.blurx",{"_index":457,"t":{"47":{"position":[[1094,15]]}}}],["reel.blur.blury",{"_index":458,"t":{"47":{"position":[[1115,15]]}}}],["reel.symbols.push(symbol",{"_index":477,"t":{"47":{"position":[[1534,26]]}}}],["reel_width",{"_index":430,"t":{"47":{"position":[[364,10],[937,11],[1827,10]]}}}],["reelcontainer",{"_index":447,"t":{"47":{"position":[[825,13],[1681,13]]}}}],["reelcontainer.addchild(rc",{"_index":450,"t":{"47":{"position":[[949,27]]}}}],["reelcontainer.x",{"_index":486,"t":{"47":{"position":[[1779,15]]}}}],["reelcontainer.y",{"_index":485,"t":{"47":{"position":[[1753,15]]}}}],["reels",{"_index":446,"t":{"47":{"position":[[795,5],[807,5],[3524,5]]}}}],["reels.length",{"_index":549,"t":{"47":{"position":[[3235,13],[3475,12],[3689,13]]}}}],["reels.push(reel",{"_index":479,"t":{"47":{"position":[[1584,17]]}}}],["reels[i",{"_index":551,"t":{"47":{"position":[[3266,9],[3720,9]]}}}],["reelscomplete",{"_index":562,"t":{"47":{"position":[[3494,13],[3553,15]]}}}],["reference",{"_index":1014,"t":{"63":{"position":[[378,9]]},"79":{"position":[[1528,9]]}}}],["regular",{"_index":2616,"t":{"165":{"position":[[351,9],[854,9]]}}}],["regular.woff",{"_index":2618,"t":{"165":{"position":[[411,14],[797,14]]}}}],["related",{"_index":1401,"t":{"87":{"position":[[80,7]]}}}],["released",{"_index":1676,"t":{"93":{"position":[[1683,9]]}}}],["remove",{"_index":617,"t":{"47":{"position":[[5036,6]]},"91":{"position":[[1495,6]]}}}],["remove.length",{"_index":633,"t":{"47":{"position":[[5397,14]]}}}],["remove.push(t",{"_index":632,"t":{"47":{"position":[[5357,15]]}}}],["render",{"_index":1559,"t":{"91":{"position":[[2448,6]]},"127":{"position":[[5700,6]]},"163":{"position":[[789,6],[931,6]]},"175":{"position":[[215,6],[492,6],[2084,6]]}}}],["render(renderer",{"_index":1560,"t":{"91":{"position":[[2479,16]]}}}],["rendered",{"_index":1499,"t":{"91":{"position":[[842,8]]},"175":{"position":[[2171,8]]}}}],["renderer",{"_index":2747,"t":{"173":{"position":[[1305,9]]}}}],["renderer.batch.flush",{"_index":1561,"t":{"91":{"position":[[2498,23],[2914,23]]}}}],["renderer.projection",{"_index":1563,"t":{"91":{"position":[[2547,20]]}}}],["renderer.rendertexture",{"_index":1565,"t":{"91":{"position":[[2596,23]]}}}],["rendering",{"_index":1765,"t":{"99":{"position":[[120,9]]}}}],["renderpoints",{"_index":2441,"t":{"135":{"position":[[754,15],[783,14]]}}}],["renders",{"_index":1479,"t":{"91":{"position":[[379,7]]}}}],["rendertexture",{"_index":328,"t":{"43":{"position":[[760,13],[1354,14],[1720,14]]},"127":{"position":[[5767,14],[5832,14],[5898,14],[5962,14]]},"175":{"position":[[304,13],[440,14],[1848,14],[1863,13],[1964,14],[2213,14]]}}}],["rendertexture2",{"_index":2766,"t":{"175":{"position":[[362,14],[1879,15],[1895,14],[2228,15]]}}}],["rendertexturesprite",{"_index":330,"t":{"43":{"position":[[820,19],[895,20],[963,20]]}}}],["rendertexturesystem",{"_index":1564,"t":{"91":{"position":[[2574,19]]}}}],["rendertexturesystem.current",{"_index":1570,"t":{"91":{"position":[[2852,30],[3038,30]]}}}],["repeat",{"_index":1994,"t":{"107":{"position":[[997,6]]},"129":{"position":[[2510,6]]}}}],["replaced",{"_index":601,"t":{"47":{"position":[[4593,8]]},"53":{"position":[[4834,8]]}}}],["requestanimationframe(animate",{"_index":2467,"t":{"145":{"position":[[1331,31]]}}}],["require",{"_index":2591,"t":{"163":{"position":[[902,7]]}}}],["requirement",{"_index":2594,"t":{"163":{"position":[[1023,11]]}}}],["requires",{"_index":2546,"t":{"159":{"position":[[269,8]]}}}],["res.text",{"_index":1697,"t":{"95":{"position":[[471,11]]}}}],["reset",{"_index":1999,"t":{"107":{"position":[[1092,5]]},"119":{"position":[[555,8],[573,7],[809,8]]}}}],["resizeto",{"_index":31,"t":{"39":{"position":[[264,9]]},"41":{"position":[[91,9]]},"43":{"position":[[68,9]]},"45":{"position":[[93,9]]},"47":{"position":[[91,9]]},"49":{"position":[[68,9]]},"51":{"position":[[91,9]]},"53":{"position":[[91,9]]},"55":{"position":[[91,9]]},"57":{"position":[[91,9]]},"59":{"position":[[91,9]]},"61":{"position":[[91,9]]},"63":{"position":[[68,9]]},"65":{"position":[[68,9]]},"67":{"position":[[91,9]]},"69":{"position":[[68,9]]},"71":{"position":[[68,9]]},"73":{"position":[[88,9]]},"75":{"position":[[91,9]]},"77":{"position":[[91,9]]},"79":{"position":[[91,9]]},"83":{"position":[[91,9]]},"85":{"position":[[68,9]]},"95":{"position":[[68,9]]},"97":{"position":[[136,9]]},"99":{"position":[[363,9]]},"101":{"position":[[68,9]]},"103":{"position":[[68,9]]},"105":{"position":[[68,9]]},"107":{"position":[[68,9]]},"109":{"position":[[85,9]]},"111":{"position":[[85,9]]},"113":{"position":[[68,9]]},"115":{"position":[[117,9]]},"117":{"position":[[85,9]]},"119":{"position":[[68,9]]},"121":{"position":[[68,9]]},"123":{"position":[[68,9]]},"125":{"position":[[68,9]]},"127":{"position":[[81,9]]},"129":{"position":[[68,9]]},"131":{"position":[[68,9]]},"133":{"position":[[68,9]]},"135":{"position":[[68,9]]},"137":{"position":[[68,9]]},"139":{"position":[[68,9]]},"141":{"position":[[68,9]]},"143":{"position":[[68,9]]},"145":{"position":[[68,9]]},"147":{"position":[[271,9]]},"149":{"position":[[86,9]]},"151":{"position":[[86,9]]},"153":{"position":[[91,9]]},"155":{"position":[[91,9]]},"157":{"position":[[91,9]]},"159":{"position":[[68,9]]},"161":{"position":[[91,9]]},"163":{"position":[[88,9]]},"165":{"position":[[91,9]]},"167":{"position":[[91,9]]},"169":{"position":[[91,9]]},"171":{"position":[[223,9]]},"173":{"position":[[1569,9]]},"175":{"position":[[68,9]]},"177":{"position":[[91,9]]},"179":{"position":[[68,9]]}}}],["resizing",{"_index":2757,"t":{"173":{"position":[[1744,8]]}}}],["resolved",{"_index":926,"t":{"55":{"position":[[661,8],[1016,8]]},"57":{"position":[[897,8],[1574,8]]},"59":{"position":[[346,8],[626,8]]},"61":{"position":[[404,8]]}}}],["resolves",{"_index":951,"t":{"57":{"position":[[775,8],[1452,8]]},"59":{"position":[[526,9]]},"61":{"position":[[298,9]]}}}],["resource",{"_index":1782,"t":{"99":{"position":[[872,9]]},"173":{"position":[[54,8],[1836,8]]}}}],["resources",{"_index":1068,"t":{"65":{"position":[[146,9]]}}}],["respond",{"_index":1261,"t":{"79":{"position":[[659,7]]}}}],["result",{"_index":224,"t":{"39":{"position":[[5060,6]]}}}],["results",{"_index":74,"t":{"39":{"position":[[869,7]]}}}],["resume",{"_index":1712,"t":{"95":{"position":[[881,6]]}}}],["retain",{"_index":1174,"t":{"75":{"position":[[186,6]]}}}],["return",{"_index":64,"t":{"39":{"position":[[678,6],[1028,6],[1674,6],[1899,6]]},"41":{"position":[[1154,7],[1808,6],[1865,6],[2260,6]]},"47":{"position":[[3191,7],[4932,6],[5524,6],[5688,6]]},"53":{"position":[[881,6],[2794,6],[3626,6],[5388,6],[7982,6],[8631,6],[8901,6],[9033,6],[9283,6],[9302,6],[9429,6]]},"77":{"position":[[2123,7],[2234,7]]},"85":{"position":[[2218,7],[2329,7]]},"91":{"position":[[1934,6],[2393,6]]},"99":{"position":[[1387,6],[1685,6]]},"129":{"position":[[1257,6],[1552,6]]},"171":{"position":[[823,6]]},"173":{"position":[[1500,6]]}}}],["reverse",{"_index":176,"t":{"39":{"position":[[3160,7]]}}}],["reversed",{"_index":834,"t":{"53":{"position":[[5109,8]]}}}],["rgba(255",{"_index":2703,"t":{"171":{"position":[[650,10]]},"173":{"position":[[852,10]]}}}],["richtext",{"_index":2637,"t":{"167":{"position":[[647,8]]}}}],["richtext.x",{"_index":2641,"t":{"167":{"position":[[741,10]]}}}],["richtext.y",{"_index":2642,"t":{"167":{"position":[[758,10]]}}}],["right",{"_index":748,"t":{"53":{"position":[[1210,5],[1705,5],[1741,5],[5823,5],[6771,5],[6827,5]]},"61":{"position":[[166,5]]},"99":{"position":[[1993,5],[2082,5]]},"129":{"position":[[1841,5],[1930,5]]},"153":{"position":[[576,5]]}}}],["ring",{"_index":1957,"t":{"105":{"position":[[1257,4]]}}}],["ring.anchor.set(0.5",{"_index":1959,"t":{"105":{"position":[[1333,21]]}}}],["ring.position.copyfrom(displacementsprite.position",{"_index":1971,"t":{"105":{"position":[[1794,52]]}}}],["ring.visible",{"_index":1960,"t":{"105":{"position":[[1355,12],[1685,12]]}}}],["ripple",{"_index":2292,"t":{"127":{"position":[[1944,7],[4568,6]]}}}],["ripplecontainer",{"_index":2304,"t":{"127":{"position":[[2633,15]]}}}],["ripplecontainer.addchild(ripplequad",{"_index":2305,"t":{"127":{"position":[[2673,37]]}}}],["ripplecontainer.position.set(220",{"_index":2360,"t":{"127":{"position":[[5014,33]]}}}],["ripplequad",{"_index":2303,"t":{"127":{"position":[[2575,10]]}}}],["ripplequad.shader.uniforms.phase",{"_index":2376,"t":{"127":{"position":[[5548,32]]}}}],["rippleshader",{"_index":2301,"t":{"127":{"position":[[2412,12],[2612,14]]}}}],["rippletexture",{"_index":2302,"t":{"127":{"position":[[2497,13],[4766,14],[5847,13]]}}}],["rippleuniforms",{"_index":2300,"t":{"127":{"position":[[2341,14],[2474,16]]}}}],["roboto",{"_index":412,"t":{"45":{"position":[[1088,9]]},"91":{"position":[[4780,9],[5524,9]]},"93":{"position":[[1306,9]]}}}],["roll",{"_index":1265,"t":{"79":{"position":[[784,4]]}}}],["root",{"_index":1498,"t":{"91":{"position":[[831,4]]}}}],["rope",{"_index":238,"t":{"41":{"position":[[172,5],[584,4],[685,4],[696,4]]},"135":{"position":[[152,5]]},"137":{"position":[[152,5]]}}}],["rope.blendmode",{"_index":258,"t":{"41":{"position":[[767,14]]}}}],["ropelength",{"_index":2423,"t":{"135":{"position":[[164,10],[262,11],[705,10]]},"137":{"position":[[164,10],[268,11],[766,10]]}}}],["ropesize",{"_index":248,"t":{"41":{"position":[[380,8],[436,8],[617,9],[1371,9],[1522,8],[1591,8]]}}}],["rotate",{"_index":1105,"t":{"65":{"position":[[1277,6]]},"67":{"position":[[833,6]]},"73":{"position":[[504,6]]},"91":{"position":[[5449,6]]},"147":{"position":[[1011,6]]},"155":{"position":[[540,6]]},"175":{"position":[[1732,6]]},"179":{"position":[[295,6],[307,6],[320,9],[630,7],[725,8],[931,6]]}}}],["rotated",{"_index":2827,"t":{"179":{"position":[[216,7],[1263,7]]}}}],["rotatedtexture",{"_index":2838,"t":{"179":{"position":[[611,15],[651,14],[857,14]]}}}],["rotatedtexture.rotate",{"_index":2845,"t":{"179":{"position":[[944,24]]}}}],["rotation",{"_index":696,"t":{"49":{"position":[[1787,9]]},"69":{"position":[[207,9]]},"91":{"position":[[4351,8]]},"153":{"position":[[927,8]]}}}],["rotations",{"_index":2852,"t":{"179":{"position":[[1181,9]]}}}],["round",{"_index":2636,"t":{"167":{"position":[[628,8],[1085,8]]}}}],["rounded",{"_index":808,"t":{"53":{"position":[[4149,7],[7311,7]]},"115":{"position":[[1654,7]]}}}],["roundingmask",{"_index":818,"t":{"53":{"position":[[4598,12],[4799,13]]}}}],["roundingmask.beginfill(0",{"_index":819,"t":{"53":{"position":[[4634,25]]}}}],["roundingmask.drawroundedrect(0",{"_index":821,"t":{"53":{"position":[[4704,31]]}}}],["roundingmask.endfill",{"_index":822,"t":{"53":{"position":[[4763,23]]}}}],["roundingmask.linestyle(1",{"_index":820,"t":{"53":{"position":[[4664,25]]}}}],["rt",{"_index":2815,"t":{"177":{"position":[[584,2],[1097,4]]}}}],["rules",{"_index":896,"t":{"53":{"position":[[8732,6]]}}}],["running",{"_index":546,"t":{"47":{"position":[[3108,7],[3181,9],[3199,7],[3571,7]]},"155":{"position":[[583,7]]}}}],["s",{"_index":577,"t":{"47":{"position":[[4045,1]]},"169":{"position":[[580,1],[658,3]]}}}],["s.parentnode.insertbefore(wf",{"_index":2677,"t":{"169":{"position":[[628,29]]}}}],["s.scale.x",{"_index":591,"t":{"47":{"position":[[4380,9]]}}}],["s.scale.y",{"_index":592,"t":{"47":{"position":[[4392,9]]}}}],["s.texture",{"_index":589,"t":{"47":{"position":[[4305,9]]}}}],["s.texture.height",{"_index":594,"t":{"47":{"position":[[4458,18]]}}}],["s.texture.width",{"_index":593,"t":{"47":{"position":[[4427,16]]}}}],["s.width",{"_index":596,"t":{"47":{"position":[[4509,8]]}}}],["s.x",{"_index":595,"t":{"47":{"position":[[4477,3]]}}}],["s.y",{"_index":580,"t":{"47":{"position":[[4077,4],[4082,3],[4158,4]]}}}],["same",{"_index":831,"t":{"53":{"position":[[5067,4]]},"71":{"position":[[546,4]]},"97":{"position":[[567,4]]},"127":{"position":[[519,4]]}}}],["sampler2d",{"_index":1784,"t":{"99":{"position":[[991,9],[1019,9]]},"121":{"position":[[871,9]]},"125":{"position":[[1263,9]]},"127":{"position":[[2075,9],[2857,9],[4451,9],[4480,9],[4508,9]]},"129":{"position":[[938,9]]},"131":{"position":[[746,9],[1295,9]]},"133":{"position":[[812,9]]},"143":{"position":[[1039,9]]},"145":{"position":[[864,9]]}}}],["scale",{"_index":466,"t":{"47":{"position":[[1311,5]]},"49":{"position":[[1779,5],[2180,5]]},"63":{"position":[[682,5]]},"69":{"position":[[178,6]]},"71":{"position":[[497,5]]},"75":{"position":[[152,5]]},"79":{"position":[[265,5]]},"93":{"position":[[892,5],[1257,5],[1845,5]]}}}],["scales",{"_index":790,"t":{"53":{"position":[[2890,6]]}}}],["scaling",{"_index":777,"t":{"53":{"position":[[2213,7]]},"149":{"position":[[522,7]]}}}],["scatter",{"_index":1141,"t":{"69":{"position":[[728,7]]}}}],["scene",{"_index":1402,"t":{"87":{"position":[[102,6]]},"91":{"position":[[162,5],[452,5],[1084,6],[1680,5]]},"93":{"position":[[261,5]]},"99":{"position":[[160,5]]},"175":{"position":[[282,5]]}}}],["screen",{"_index":175,"t":{"39":{"position":[[3143,6],[3788,7]]},"51":{"position":[[498,6]]},"57":{"position":[[243,8],[355,8],[596,8],[611,10],[708,6],[855,9],[1354,6],[1393,6],[1532,9]]},"61":{"position":[[576,6]]},"73":{"position":[[359,6]]},"91":{"position":[[4027,6],[4845,6],[5175,6],[5273,11]]},"155":{"position":[[361,6]]},"157":{"position":[[517,6]]},"177":{"position":[[996,6]]}}}],["screen.height",{"_index":1686,"t":{"93":{"position":[[1998,13]]}}}],["screenpos",{"_index":1742,"t":{"97":{"position":[[827,9],[905,10]]}}}],["screenshot",{"_index":385,"t":{"45":{"position":[[456,13],[1168,12]]}}}],["screenshottext",{"_index":415,"t":{"45":{"position":[[1122,14]]}}}],["screenshottext.width",{"_index":420,"t":{"45":{"position":[[1239,21]]}}}],["screenshottext.x",{"_index":418,"t":{"45":{"position":[[1189,16]]}}}],["screenshottext.y",{"_index":421,"t":{"45":{"position":[[1267,16]]}}}],["script",{"_index":2665,"t":{"169":{"position":[[332,6]]}}}],["scroll",{"_index":1612,"t":{"91":{"position":[[4415,6],[4497,6]]}}}],["second",{"_index":2089,"t":{"111":{"position":[[672,6]]},"127":{"position":[[1898,6],[2714,6]]},"173":{"position":[[1071,6]]}}}],["seconds",{"_index":681,"t":{"49":{"position":[[1078,7]]}}}],["secondtexture",{"_index":2541,"t":{"157":{"position":[[254,13],[851,14]]}}}],["see",{"_index":1409,"t":{"87":{"position":[[315,3]]}}}],["seen",{"_index":2366,"t":{"127":{"position":[[5216,4]]}}}],["segment",{"_index":747,"t":{"53":{"position":[[1156,7],[1350,8],[1451,7],[5725,7],[6071,7],[6156,8],[6354,7]]}}}],["segment[0",{"_index":757,"t":{"53":{"position":[[1508,11],[6411,11]]}}}],["segment[1",{"_index":758,"t":{"53":{"position":[[1520,11],[6423,11]]}}}],["segment[2",{"_index":759,"t":{"53":{"position":[[1532,11],[6435,11]]}}}],["segment[3",{"_index":760,"t":{"53":{"position":[[1544,12],[6447,12]]}}}],["segments",{"_index":746,"t":{"53":{"position":[[1091,8],[5601,8],[5616,8],[8622,8],[9230,8]]}}}],["segments.length",{"_index":754,"t":{"53":{"position":[[1421,16],[6324,16]]}}}],["segments[i",{"_index":755,"t":{"53":{"position":[[1461,12],[6364,12]]}}}],["separately",{"_index":2367,"t":{"127":{"position":[[5221,11]]}}}],["set",{"_index":227,"t":{"39":{"position":[[5152,3]]},"41":{"position":[[749,3]]},"47":{"position":[[2966,3]]},"63":{"position":[[669,3],[761,3]]},"69":{"position":[[561,3]]},"71":{"position":[[397,3],[484,3],[616,3]]},"75":{"position":[[332,3]]},"77":{"position":[[1641,3]]},"85":{"position":[[1736,3]]},"91":{"position":[[2016,3],[4294,3]]},"93":{"position":[[1943,3]]},"95":{"position":[[764,3]]},"111":{"position":[[248,3],[558,3]]},"115":{"position":[[808,3]]},"175":{"position":[[1921,3]]}}}],["setinterval",{"_index":682,"t":{"49":{"position":[[1086,14]]}}}],["setup",{"_index":321,"t":{"43":{"position":[[528,7]]},"79":{"position":[[975,5]]},"91":{"position":[[99,5]]}}}],["shader",{"_index":1718,"t":{"97":{"position":[[422,6],[500,6],[536,6],[603,6]]},"99":{"position":[[103,6],[273,6],[757,7]]},"121":{"position":[[497,6],[1077,8]]},"123":{"position":[[977,6],[1449,8]]},"125":{"position":[[889,6],[1470,8]]},"127":{"position":[[507,7],[524,6]]},"129":{"position":[[2667,6],[2694,6],[2792,8]]},"131":{"position":[[372,6],[1632,8]]},"139":{"position":[[234,6],[630,8]]},"141":{"position":[[456,6],[927,8]]},"143":{"position":[[1247,6],[1349,8]]},"145":{"position":[[1122,6],[1220,8]]}}}],["shader2",{"_index":2395,"t":{"131":{"position":[[920,7],[1683,9]]}}}],["shaderfrag",{"_index":1732,"t":{"97":{"position":[[652,10],[1358,11]]}}}],["shaders",{"_index":2260,"t":{"127":{"position":[[905,8]]}}}],["shape",{"_index":2080,"t":{"111":{"position":[[351,5],[679,5],[1300,5]]},"115":{"position":[[1424,5]]},"117":{"position":[[1009,5]]}}}],["shaped",{"_index":2844,"t":{"179":{"position":[[798,6]]}}}],["sharing",{"_index":2281,"t":{"127":{"position":[[1561,7]]}}}],["sharp",{"_index":278,"t":{"41":{"position":[[1465,5]]}}}],["shorter",{"_index":1789,"t":{"99":{"position":[[1192,7]]},"129":{"position":[[1111,7]]}}}],["shoves",{"_index":78,"t":{"39":{"position":[[932,6]]}}}],["show",{"_index":2856,"t":{"179":{"position":[[1395,4]]}}}],["shows",{"_index":1183,"t":{"75":{"position":[[507,5]]},"91":{"position":[[81,5]]}}}],["silly",{"_index":1245,"t":{"77":{"position":[[1650,5]]},"85":{"position":[[1745,5]]}}}],["simple",{"_index":598,"t":{"47":{"position":[[4544,6]]},"49":{"position":[[1211,6],[1522,6]]},"99":{"position":[[1136,6]]},"127":{"position":[[1145,6],[2119,6],[3601,8]]},"129":{"position":[[1055,6]]}}}],["simplicity",{"_index":2284,"t":{"127":{"position":[[1613,10]]}}}],["sin",{"_index":792,"t":{"53":{"position":[[2929,3],[2991,3],[3060,3],[3066,3]]},"145":{"position":[[962,4]]}}}],["sin(distance*25.0+phase",{"_index":2298,"t":{"127":{"position":[[2271,24]]}}}],["sin(time",{"_index":1754,"t":{"97":{"position":[[1072,10]]}}}],["size",{"_index":730,"t":{"53":{"position":[[505,4],[530,5],[550,5],[647,5],[669,5],[737,4],[1031,5],[1079,5],[1106,4],[1117,4],[1127,4],[1138,4],[1164,5],[1176,4],[1186,4],[1196,4],[1218,4],[1228,4],[1238,4],[1248,4],[1271,4],[1282,4],[1293,4],[1303,4],[1677,4],[1688,4],[1711,4],[1721,4],[1748,4],[1758,4],[1784,4],[1795,4],[1822,4],[1954,4],[2403,4],[2632,4],[2684,4],[2694,4],[2746,4],[3397,4],[3422,5],[3442,5],[3510,4],[4358,4],[4485,5],[4505,5],[4739,5],[4745,5],[4983,5],[4989,5],[5232,4],[5539,5],[5587,5],[5631,4],[5653,4],[5674,4],[5696,4],[5733,5],[5756,4],[5777,4],[5798,4],[5831,4],[5852,4],[5873,4],[5894,4],[5928,4],[5950,4],[5972,4],[5993,4],[6299,4],[6605,4],[6627,4],[6662,4],[6683,4],[6719,4],[6740,4],[6777,4],[6799,4],[6961,4]]},"71":{"position":[[551,5]]},"121":{"position":[[298,4],[424,4]]},"125":{"position":[[298,4],[424,4],[657,4],[777,4]]},"127":{"position":[[318,4],[444,4]]},"129":{"position":[[317,4],[443,4]]},"133":{"position":[[287,4],[408,4]]},"141":{"position":[[287,4],[428,4]]},"143":{"position":[[287,4],[427,4],[548,4]]},"145":{"position":[[298,4],[424,4]]},"159":{"position":[[331,4]]},"173":{"position":[[509,4],[1730,4]]}}}],["sizes",{"_index":1140,"t":{"69":{"position":[[676,5]]}}}],["skewstyle",{"_index":2644,"t":{"167":{"position":[[812,9],[1166,11]]}}}],["skewtext",{"_index":2649,"t":{"167":{"position":[[1125,8]]}}}],["skewtext.anchor.set(0.5",{"_index":2653,"t":{"167":{"position":[[1209,24]]}}}],["skewtext.skew.set(0.65",{"_index":2652,"t":{"167":{"position":[[1178,23]]}}}],["skewtext.x",{"_index":2654,"t":{"167":{"position":[[1240,10]]}}}],["skewtext.y",{"_index":2655,"t":{"167":{"position":[[1258,10]]}}}],["skipupdatetransform",{"_index":349,"t":{"43":{"position":[[1383,20],[1749,20]]}}}],["skully.png",{"_index":1076,"t":{"65":{"position":[[365,13]]}}}],["slider",{"_index":1649,"t":{"93":{"position":[[311,6],[349,6],[927,6]]}}}],["slider.addchild(handle",{"_index":1663,"t":{"93":{"position":[[848,24]]}}}],["slider.height",{"_index":1658,"t":{"93":{"position":[[614,13]]}}}],["slider.tolocal(e.global).x",{"_index":1689,"t":{"93":{"position":[[2065,27]]}}}],["slider.x",{"_index":1653,"t":{"93":{"position":[[432,8]]}}}],["slider.y",{"_index":1654,"t":{"93":{"position":[[475,8]]}}}],["sliderwidth",{"_index":1650,"t":{"93":{"position":[[324,11],[415,12],[457,12],[644,11],[2093,11],[2202,12]]}}}],["slooww",{"_index":1145,"t":{"69":{"position":[[1135,6]]}}}],["slot",{"_index":438,"t":{"47":{"position":[[501,4]]}}}],["slots",{"_index":532,"t":{"47":{"position":[[2743,8],[3662,6]]}}}],["slottextures",{"_index":440,"t":{"47":{"position":[[521,12]]}}}],["slottextures.length",{"_index":465,"t":{"47":{"position":[[1284,23],[4357,22]]}}}],["slottextures[math.floor(math.random",{"_index":590,"t":{"47":{"position":[[4317,37]]}}}],["slow",{"_index":2483,"t":{"149":{"position":[[547,4],[573,4]]}}}],["slow.anchor.set(0.5",{"_index":2486,"t":{"149":{"position":[[615,21]]}}}],["slow.animationspeed",{"_index":2488,"t":{"149":{"position":[[662,19]]}}}],["slow.play",{"_index":2492,"t":{"149":{"position":[[767,12]]}}}],["slow.scale.set(scaling",{"_index":2487,"t":{"149":{"position":[[637,24]]}}}],["slow.width",{"_index":2490,"t":{"149":{"position":[[718,11]]}}}],["slow.x",{"_index":2489,"t":{"149":{"position":[[689,6]]}}}],["slow.y",{"_index":2491,"t":{"149":{"position":[[735,6]]}}}],["slowly",{"_index":1407,"t":{"87":{"position":[[290,6]]}}}],["small",{"_index":2324,"t":{"127":{"position":[[3642,5]]}}}],["smooth",{"_index":249,"t":{"41":{"position":[[404,6],[1412,6]]},"43":{"position":[[1418,6]]}}}],["snake",{"_index":2435,"t":{"135":{"position":[[591,5]]},"137":{"position":[[652,5]]}}}],["snakecontainer",{"_index":2453,"t":{"137":{"position":[[410,14]]}}}],["snakecontainer.addchild(strip",{"_index":2459,"t":{"137":{"position":[[571,31]]}}}],["snakecontainer.scale.set(800",{"_index":2456,"t":{"137":{"position":[[497,28]]}}}],["snakecontainer.x",{"_index":2454,"t":{"137":{"position":[[449,16]]}}}],["snakecontainer.y",{"_index":2455,"t":{"137":{"position":[[473,16]]}}}],["snippet",{"_index":2661,"t":{"169":{"position":[[239,12],[743,7],[824,9],[858,10]]}}}],["solve",{"_index":1488,"t":{"91":{"position":[[661,5]]}}}],["somehow",{"_index":2691,"t":{"171":{"position":[[328,7]]}}}],["somewhat",{"_index":12,"t":{"39":{"position":[[42,8]]}}}],["source",{"_index":1020,"t":{"63":{"position":[[563,6]]},"71":{"position":[[315,6]]}}}],["spawn",{"_index":2761,"t":{"173":{"position":[[1850,5]]}}}],["specify",{"_index":1708,"t":{"95":{"position":[[719,7]]}}}],["speed",{"_index":99,"t":{"39":{"position":[[1515,5],[1635,5],[4478,5]]},"47":{"position":[[3770,6]]},"49":{"position":[[319,5],[1064,5],[1295,5],[1317,6],[1354,6],[2383,5]]},"63":{"position":[[1291,5]]},"69":{"position":[[1092,5]]},"71":{"position":[[1144,5]]}}}],["spends",{"_index":969,"t":{"57":{"position":[[1323,6]]}}}],["spicy",{"_index":14,"t":{"39":{"position":[[70,5]]}}}],["spinner",{"_index":723,"t":{"53":{"position":[[192,7],[2202,7],[3120,7],[4138,7],[7300,7],[7342,7],[8419,8]]}}}],["spinning",{"_index":2800,"t":{"175":{"position":[[1640,9]]}}}],["sprite",{"_index":657,"t":{"49":{"position":[[491,7]]},"51":{"position":[[319,6],[470,6]]},"55":{"position":[[645,6]]},"57":{"position":[[881,6],[1558,6]]},"59":{"position":[[610,6]]},"61":{"position":[[388,6],[548,6]]},"63":{"position":[[153,6],[501,6],[1006,6]]},"67":{"position":[[652,6]]},"69":{"position":[[475,6],[615,6],[1015,6]]},"71":{"position":[[253,6],[452,6]]},"73":{"position":[[162,6],[331,6]]},"75":{"position":[[263,6]]},"79":{"position":[[1091,6]]},"81":{"position":[[235,6],[692,7]]},"107":{"position":[[497,6],[933,6]]},"109":{"position":[[149,6]]},"147":{"position":[[830,6]]},"153":{"position":[[692,6]]},"155":{"position":[[165,6],[333,6]]},"157":{"position":[[346,6],[489,6],[640,6]]},"159":{"position":[[256,6]]},"163":{"position":[[1277,6]]},"171":{"position":[[906,6]]},"173":{"position":[[1968,6]]},"175":{"position":[[471,6],[591,6]]},"177":{"position":[[624,6]]},"179":{"position":[[1250,6]]}}}],["sprite's",{"_index":719,"t":{"51":{"position":[[413,8]]},"61":{"position":[[491,8]]},"73":{"position":[[274,8]]},"155":{"position":[[276,8]]}}}],["sprite.anchor.set(0.5",{"_index":1178,"t":{"75":{"position":[[357,23]]}}}],["sprite.cursor",{"_index":1186,"t":{"75":{"position":[[525,13]]}}}],["sprite.eventmode",{"_index":1182,"t":{"75":{"position":[[475,16]]}}}],["sprite.height",{"_index":2717,"t":{"171":{"position":[[1027,13]]}}}],["sprite.on('click",{"_index":1195,"t":{"75":{"position":[[706,18]]}}}],["sprite.on('pointerdown",{"_index":1192,"t":{"75":{"position":[[620,24]]}}}],["sprite.on('tap",{"_index":1196,"t":{"75":{"position":[[752,16]]}}}],["sprite.position.set(100",{"_index":2714,"t":{"171":{"position":[[945,24]]},"173":{"position":[[2007,24]]}}}],["sprite.rotation",{"_index":2715,"t":{"171":{"position":[[976,15]]},"173":{"position":[[2038,15]]}}}],["sprite.scale.x",{"_index":1198,"t":{"75":{"position":[[842,14]]}}}],["sprite.scale.y",{"_index":1200,"t":{"75":{"position":[[866,14]]}}}],["sprite.texture",{"_index":2034,"t":{"109":{"position":[[1140,14],[1699,14],[2273,14]]}}}],["sprite.width",{"_index":2716,"t":{"171":{"position":[[1007,12]]}}}],["sprite.x",{"_index":1179,"t":{"75":{"position":[[381,8]]},"177":{"position":[[654,8]]}}}],["sprite.y",{"_index":1180,"t":{"75":{"position":[[414,8]]},"177":{"position":[[670,8]]}}}],["sprites",{"_index":1127,"t":{"69":{"position":[[132,7],[316,7],[1666,7]]},"117":{"position":[[481,7]]},"157":{"position":[[429,7]]},"173":{"position":[[1757,7]]}}}],["sprites.addchild(dude",{"_index":1149,"t":{"69":{"position":[[1330,23]]}}}],["spritesheet",{"_index":2520,"t":{"153":{"position":[[396,11]]}}}],["spritesheet.data.frames[framekey].duration",{"_index":2481,"t":{"149":{"position":[[436,43]]}}}],["square",{"_index":39,"t":{"39":{"position":[[378,6],[1939,6],[2265,6],[3117,6],[3474,6],[4187,6],[4488,6],[4584,6],[4782,6],[5048,6]]},"53":{"position":[[203,6]]}}}],["square's",{"_index":190,"t":{"39":{"position":[[3960,8]]}}}],["squaremask",{"_index":1326,"t":{"81":{"position":[[1270,10],[1404,11],[2908,11]]}}}],["squaremask2",{"_index":1340,"t":{"81":{"position":[[1794,11],[1929,12],[2920,12]]}}}],["squares",{"_index":56,"t":{"39":{"position":[[555,7],[2810,8],[4906,7],[5193,7]]}}}],["srcs",{"_index":945,"t":{"57":{"position":[[283,5],[393,5]]}}}],["stage",{"_index":234,"t":{"39":{"position":[[5635,5]]},"65":{"position":[[531,5]]},"77":{"position":[[665,8],[1557,5]]},"79":{"position":[[1168,5]]},"81":{"position":[[2830,5]]},"85":{"position":[[329,8],[1652,5]]},"87":{"position":[[584,8],[1387,7]]},"93":{"position":[[238,5],[1498,5]]},"111":{"position":[[1442,5]]},"127":{"position":[[5185,5]]},"163":{"position":[[613,5]]},"175":{"position":[[682,5],[2095,5]]}}}],["stageheight",{"_index":1647,"t":{"93":{"position":[[155,11],[486,11],[1168,11]]}}}],["stagesize",{"_index":324,"t":{"43":{"position":[[582,9],[670,11],[742,11]]},"175":{"position":[[132,9]]}}}],["stagewidth",{"_index":1648,"t":{"93":{"position":[[194,10],[443,11],[1142,10],[1387,10]]}}}],["standard",{"_index":1298,"t":{"81":{"position":[[226,8]]}}}],["star",{"_index":644,"t":{"49":{"position":[[149,5],[482,4],[820,4],[871,4],[1420,4],[1487,4],[1774,4],[2112,4],[2190,4]]},"91":{"position":[[3553,4],[4247,4],[5408,6]]},"115":{"position":[[1821,4],[1956,4],[2093,4]]}}}],["star.addeventlistener('click",{"_index":1618,"t":{"91":{"position":[[4553,30]]}}}],["star.addeventlistener('wheel",{"_index":1611,"t":{"91":{"position":[[4369,30]]}}}],["star.cursor",{"_index":1608,"t":{"91":{"position":[[4313,11],[4641,11],[4695,11]]}}}],["star.eventmode",{"_index":1607,"t":{"91":{"position":[[4264,14]]}}}],["star.rotation",{"_index":1616,"t":{"91":{"position":[[4480,13]]}}}],["star.scale.set(1",{"_index":1621,"t":{"91":{"position":[[4676,18]]}}}],["star.scale.set(1.33",{"_index":1620,"t":{"91":{"position":[[4619,21]]}}}],["star.scale.x",{"_index":1619,"t":{"91":{"position":[[4596,13]]}}}],["star.sprite.anchor.x",{"_index":660,"t":{"49":{"position":[[550,20]]}}}],["star.sprite.anchor.y",{"_index":661,"t":{"49":{"position":[[578,20]]}}}],["star.sprite.rotation",{"_index":711,"t":{"49":{"position":[[2449,20]]}}}],["star.sprite.scale.x",{"_index":703,"t":{"49":{"position":[[2057,19]]}}}],["star.sprite.scale.y",{"_index":710,"t":{"49":{"position":[[2314,19]]}}}],["star.sprite.x",{"_index":692,"t":{"49":{"position":[[1568,13],[1814,13]]}}}],["star.sprite.y",{"_index":694,"t":{"49":{"position":[[1664,13],[1878,13]]}}}],["star.x",{"_index":676,"t":{"49":{"position":[[975,6],[1584,6]]}}}],["star.y",{"_index":678,"t":{"49":{"position":[[1010,6],[1680,6]]}}}],["star.z",{"_index":667,"t":{"49":{"position":[[726,6],[1440,7],[1550,6]]}}}],["staramount",{"_index":647,"t":{"49":{"position":[[238,10],[457,11],[1395,11]]}}}],["starbasesize",{"_index":655,"t":{"49":{"position":[[378,12],[2095,13],[2352,12]]}}}],["starbutton1",{"_index":1299,"t":{"81":{"position":[[255,11],[399,11],[439,12],[486,12],[531,13],[2869,12]]}}}],["starbutton1.cursor",{"_index":1303,"t":{"81":{"position":[[333,18]]}}}],["starbutton1.eventmode",{"_index":1304,"t":{"81":{"position":[[365,21]]}}}],["starbutton1.position.set(50",{"_index":1301,"t":{"81":{"position":[[298,28]]}}}],["starbutton1.x",{"_index":1352,"t":{"81":{"position":[[2439,13]]}}}],["starbutton1.y",{"_index":1354,"t":{"81":{"position":[[2469,13]]}}}],["starbutton2",{"_index":1308,"t":{"81":{"position":[[576,11],[941,11],[981,12],[1028,12],[1073,13],[2856,12]]}}}],["starbutton2.cursor",{"_index":1320,"t":{"81":{"position":[[875,18]]}}}],["starbutton2.eventmode",{"_index":1321,"t":{"81":{"position":[[907,21]]}}}],["starbutton2.hitarea",{"_index":1311,"t":{"81":{"position":[[745,19]]}}}],["starbutton2.position.set(250",{"_index":1309,"t":{"81":{"position":[[619,29]]}}}],["starbutton2.x",{"_index":1359,"t":{"81":{"position":[[2548,13]]}}}],["starbutton2.y",{"_index":1362,"t":{"81":{"position":[[2578,13]]}}}],["starbutton3",{"_index":1322,"t":{"81":{"position":[[1119,11],[1416,11],[1456,12],[1503,12],[1548,13],[2882,12]]}}}],["starbutton3.cursor",{"_index":1324,"t":{"81":{"position":[[1198,18]]}}}],["starbutton3.eventmode",{"_index":1325,"t":{"81":{"position":[[1230,21]]}}}],["starbutton3.mask",{"_index":1330,"t":{"81":{"position":[[1385,16]]}}}],["starbutton3.position.set(450",{"_index":1323,"t":{"81":{"position":[[1162,29]]}}}],["starbutton3.x",{"_index":1366,"t":{"81":{"position":[[2653,13]]}}}],["starbutton3.y",{"_index":1328,"t":{"81":{"position":[[1349,14],[2683,13]]}}}],["starbutton4",{"_index":1338,"t":{"81":{"position":[[1709,11],[2180,11],[2220,12],[2267,12],[2312,13],[2895,12]]}}}],["starbutton4.cursor",{"_index":1347,"t":{"81":{"position":[[2114,18]]}}}],["starbutton4.eventmode",{"_index":1348,"t":{"81":{"position":[[2146,21]]}}}],["starbutton4.hitarea",{"_index":1346,"t":{"81":{"position":[[1984,19]]}}}],["starbutton4.mask",{"_index":1343,"t":{"81":{"position":[[1910,16]]}}}],["starbutton4.position.set(600",{"_index":1339,"t":{"81":{"position":[[1752,29]]}}}],["starbutton4.x",{"_index":1370,"t":{"81":{"position":[[2769,13]]}}}],["starbutton4.y",{"_index":1342,"t":{"81":{"position":[[1874,14],[2799,13]]}}}],["stars",{"_index":656,"t":{"49":{"position":[[413,5],[425,5]]},"91":{"position":[[3573,5],[3701,5],[3766,5],[4174,5],[5440,5]]}}}],["stars.foreach((star",{"_index":1606,"t":{"91":{"position":[[4213,20]]}}}],["stars.push(star",{"_index":665,"t":{"49":{"position":[[666,17]]}}}],["stars[0].x",{"_index":1591,"t":{"91":{"position":[[3707,10]]}}}],["stars[1].x",{"_index":1592,"t":{"91":{"position":[[3723,10]]}}}],["stars[2].x",{"_index":1593,"t":{"91":{"position":[[3741,10]]}}}],["stars[i",{"_index":686,"t":{"49":{"position":[[1427,9]]}}}],["starstretch",{"_index":654,"t":{"49":{"position":[[355,11],[2391,11]]}}}],["start",{"_index":547,"t":{"47":{"position":[[3140,5],[4888,6]]},"61":{"position":[[152,5]]},"127":{"position":[[5412,5]]},"129":{"position":[[2878,5]]},"135":{"position":[[526,5]]},"145":{"position":[[1306,5]]},"149":{"position":[[1053,5]]},"151":{"position":[[864,5]]},"163":{"position":[[682,5]]}}}],["startexture",{"_index":645,"t":{"49":{"position":[[161,11]]}}}],["starting",{"_index":2658,"t":{"169":{"position":[[182,11]]}}}],["startplay",{"_index":545,"t":{"47":{"position":[[3087,12],[3164,11]]}}}],["static",{"_index":148,"t":{"39":{"position":[[2569,9]]},"41":{"position":[[880,9]]},"43":{"position":[[1009,9]]},"45":{"position":[[544,9]]},"47":{"position":[[3008,9]]},"55":{"position":[[851,9]]},"57":{"position":[[1119,9],[1794,9]]},"65":{"position":[[571,9]]},"75":{"position":[[494,9]]},"77":{"position":[[1360,9]]},"79":{"position":[[711,9],[1248,9]]},"81":{"position":[[389,9],[931,9],[1254,9],[2170,9]]},"85":{"position":[[999,9]]},"87":{"position":[[1020,9],[1083,9],[1114,9]]},"89":{"position":[[540,9]]},"91":{"position":[[1884,9],[4156,9],[4281,9]]},"93":{"position":[[680,9],[1575,9]]},"97":{"position":[[1485,9]]},"103":{"position":[[148,9]]},"105":{"position":[[148,9]]},"107":{"position":[[148,9]]},"111":{"position":[[165,9]]},"113":{"position":[[938,9]]},"117":{"position":[[165,9]]},"119":{"position":[[148,9]]},"157":{"position":[[681,9]]},"163":{"position":[[562,9]]}}}],["steeper",{"_index":796,"t":{"53":{"position":[[3019,7]]}}}],["step(limit",{"_index":2311,"t":{"127":{"position":[[2936,11]]}}}],["stetch",{"_index":2603,"t":{"163":{"position":[[1378,6]]}}}],["still",{"_index":1334,"t":{"81":{"position":[[1624,5]]},"107":{"position":[[1032,5]]}}}],["stop",{"_index":1675,"t":{"93":{"position":[[1641,4]]},"95":{"position":[[343,4]]}}}],["store",{"_index":1013,"t":{"63":{"position":[[370,5]]},"65":{"position":[[264,5]]},"69":{"position":[[302,5]]},"71":{"position":[[139,5]]},"79":{"position":[[1520,5]]},"91":{"position":[[927,5]]},"149":{"position":[[264,5]]},"151":{"position":[[245,5]]}}}],["straight",{"_index":835,"t":{"53":{"position":[[5145,8]]}}}],["strength",{"_index":43,"t":{"39":{"position":[[422,8]]}}}],["stretchfactor",{"_index":709,"t":{"49":{"position":[[2241,13]]}}}],["strip",{"_index":2425,"t":{"135":{"position":[[287,5]]},"137":{"position":[[293,5]]}}}],["strip.x",{"_index":2427,"t":{"135":{"position":[[382,7],[476,8]]},"137":{"position":[[388,7]]}}}],["strip.y",{"_index":2428,"t":{"135":{"position":[[397,7],[491,8]]}}}],["stroke",{"_index":504,"t":{"47":{"position":[[2246,7]]},"167":{"position":[[425,7],[1019,7]]}}}],["strokethickness",{"_index":506,"t":{"47":{"position":[[2265,16]]},"167":{"position":[[444,16],[1094,16]]}}}],["stuff",{"_index":2791,"t":{"175":{"position":[[1378,5]]}}}],["stuffcontainer",{"_index":2775,"t":{"175":{"position":[[728,14]]}}}],["stuffcontainer.addchild(item",{"_index":2798,"t":{"175":{"position":[[1577,30]]}}}],["stuffcontainer.rotation",{"_index":2808,"t":{"175":{"position":[[1997,23]]}}}],["stuffcontainer.x",{"_index":2776,"t":{"175":{"position":[[767,16]]}}}],["stuffcontainer.y",{"_index":2777,"t":{"175":{"position":[[791,16]]}}}],["style",{"_index":409,"t":{"45":{"position":[[1047,5],[1181,7]]},"47":{"position":[[2099,5],[2494,7],[2752,7]]},"77":{"position":[[156,5]]},"81":{"position":[[2332,5],[2421,7],[2530,7],[2635,7],[2751,7]]},"109":{"position":[[2168,5]]},"111":{"position":[[268,5],[578,5]]},"115":{"position":[[333,5],[485,5],[977,5],[1126,5],[1277,5]]},"167":{"position":[[278,5],[733,7]]}}}],["styles",{"_index":1208,"t":{"77":{"position":[[347,6]]}}}],["super",{"_index":1497,"t":{"91":{"position":[[807,8]]}}}],["super(256",{"_index":2728,"t":{"173":{"position":[[414,10]]}}}],["super.updatetransform",{"_index":1575,"t":{"91":{"position":[[3143,24]]}}}],["supported!\\nwoo",{"_index":2563,"t":{"161":{"position":[[294,15]]}}}],["sure",{"_index":1463,"t":{"89":{"position":[[558,4]]},"93":{"position":[[233,4]]},"99":{"position":[[2624,4]]},"107":{"position":[[488,4],[1019,4]]},"129":{"position":[[2505,4]]}}}],["swap",{"_index":584,"t":{"47":{"position":[[4218,4]]},"157":{"position":[[793,4]]},"175":{"position":[[1814,4]]}}}],["symbol",{"_index":463,"t":{"47":{"position":[[1219,6],[1321,6],[1335,6],[3968,6]]}}}],["symbol.height",{"_index":474,"t":{"47":{"position":[[1461,15]]}}}],["symbol.scale.x",{"_index":470,"t":{"47":{"position":[[1376,14]]}}}],["symbol.scale.y",{"_index":471,"t":{"47":{"position":[[1393,14]]}}}],["symbol.width",{"_index":473,"t":{"47":{"position":[[1433,13],[1514,13]]}}}],["symbol.x",{"_index":475,"t":{"47":{"position":[[1477,8]]}}}],["symbol.y",{"_index":469,"t":{"47":{"position":[[1348,8]]}}}],["symbol_size",{"_index":432,"t":{"47":{"position":[[388,11],[1363,12],[1447,11],[1731,11],[2023,11],[4128,11],[4142,12],[4178,12],[4444,11]]}}}],["symbols",{"_index":439,"t":{"47":{"position":[[506,8],[1007,8],[1175,7]]}}}],["t",{"_index":295,"t":{"41":{"position":[[1975,2],[2215,1],[2234,1],[2238,2],[2252,1],[2313,2]]},"47":{"position":[[5099,1],[5519,2],[5541,2],[5551,2],[5695,3],[5705,1],[5709,1],[5729,1]]},"93":{"position":[[2181,1],[2250,4]]},"99":{"position":[[2150,1],[2199,1]]},"129":{"position":[[1998,1],[2047,1]]}}}],["t+=d.x*0.5;//jump",{"_index":1843,"t":{"99":{"position":[[2235,17]]},"129":{"position":[[2083,17]]}}}],["t.change",{"_index":628,"t":{"47":{"position":[[5250,10]]}}}],["t.change(t",{"_index":629,"t":{"47":{"position":[[5261,12]]}}}],["t.complete",{"_index":630,"t":{"47":{"position":[[5329,12]]}}}],["t.complete(t",{"_index":631,"t":{"47":{"position":[[5342,14]]}}}],["t.easing(phase",{"_index":627,"t":{"47":{"position":[[5229,17]]}}}],["t.object[t.property",{"_index":624,"t":{"47":{"position":[[5169,20],[5293,20]]}}}],["t.start",{"_index":622,"t":{"47":{"position":[[5149,8]]}}}],["t.target",{"_index":626,"t":{"47":{"position":[[5219,9],[5316,9]]}}}],["t.time",{"_index":623,"t":{"47":{"position":[[5160,8]]}}}],["t/150",{"_index":1853,"t":{"99":{"position":[[2469,7]]},"129":{"position":[[2317,7]]}}}],["t2",{"_index":299,"t":{"41":{"position":[[2229,2],[2256,3],[2281,2],[2308,2],[2340,3],[2359,3]]}}}],["t2']).then(setup",{"_index":320,"t":{"43":{"position":[[499,19]]}}}],["t3",{"_index":300,"t":{"41":{"position":[[2247,2],[2272,2],[2298,3],[2331,2],[2353,3]]}}}],["take",{"_index":417,"t":{"45":{"position":[[1163,4]]}}}],["takes",{"_index":2291,"t":{"127":{"position":[[1911,5]]}}}],["takescreenshot",{"_index":378,"t":{"45":{"position":[[285,16],[614,16]]}}}],["tangentfactor",{"_index":296,"t":{"41":{"position":[[1978,14],[1998,14],[2023,13],[2092,14],[2133,14]]}}}],["tap",{"_index":1101,"t":{"65":{"position":[[1119,3]]},"103":{"position":[[1238,3]]},"117":{"position":[[1358,3]]}}}],["target",{"_index":554,"t":{"47":{"position":[[3327,6],[3435,7],[4708,7],[4826,7]]},"53":{"position":[[975,6],[5483,6]]},"87":{"position":[[399,9],[1332,7]]},"99":{"position":[[1821,6],[1918,6]]},"119":{"position":[[528,6]]},"129":{"position":[[1669,6],[1766,6]]}}}],["target.x",{"_index":2199,"t":{"119":{"position":[[583,8],[706,9],[792,9]]}}}],["target.y",{"_index":2200,"t":{"119":{"position":[[627,8],[743,9]]}}}],["targetname",{"_index":1439,"t":{"87":{"position":[[1173,10],[1343,17]]}}}],["temp",{"_index":2805,"t":{"175":{"position":[[1841,4],[1912,5]]}}}],["temporary",{"_index":1501,"t":{"91":{"position":[[907,9]]},"173":{"position":[[579,9]]}}}],["test",{"_index":50,"t":{"39":{"position":[[498,4]]}}}],["testforaabb(greensquare",{"_index":220,"t":{"39":{"position":[[4931,25]]}}}],["testforaabb(object1",{"_index":58,"t":{"39":{"position":[[572,20]]}}}],["testing",{"_index":1062,"t":{"63":{"position":[[2098,7]]},"71":{"position":[[1943,7]]}}}],["teximage2d",{"_index":2718,"t":{"173":{"position":[[99,10]]}}}],["texin",{"_index":2294,"t":{"127":{"position":[[2085,6],[2383,6]]}}}],["texnoise",{"_index":2347,"t":{"127":{"position":[[4490,9],[4781,9]]}}}],["texripple",{"_index":2346,"t":{"127":{"position":[[4461,10],[4755,10]]}}}],["text",{"_index":493,"t":{"47":{"position":[[2088,4],[2691,4]]},"99":{"position":[[525,4]]},"167":{"position":[[188,4],[678,4]]},"169":{"position":[[728,4],[801,4]]},"179":{"position":[[1519,4]]}}}],["text.anchor.set(0.5",{"_index":1774,"t":{"99":{"position":[[591,20]]}}}],["text.position.set(app.renderer.screen.width",{"_index":1775,"t":{"99":{"position":[[618,43]]}}}],["text.x",{"_index":2861,"t":{"179":{"position":[[1656,6]]}}}],["text.y",{"_index":2862,"t":{"179":{"position":[[1673,6]]}}}],["text/javascript",{"_index":2674,"t":{"169":{"position":[[536,18]]}}}],["text1",{"_index":1349,"t":{"81":{"position":[[2387,5],[2933,6]]},"165":{"position":[[554,5]]}}}],["text1.x",{"_index":1351,"t":{"81":{"position":[[2429,7]]}}}],["text1.y",{"_index":1353,"t":{"81":{"position":[[2459,7]]}}}],["text2",{"_index":1356,"t":{"81":{"position":[[2496,5],[2940,6]]},"165":{"position":[[663,5]]}}}],["text2.x",{"_index":1358,"t":{"81":{"position":[[2538,7]]}}}],["text2.y",{"_index":1361,"t":{"81":{"position":[[2568,7]]},"165":{"position":[[995,7]]}}}],["text3",{"_index":1363,"t":{"81":{"position":[[2605,5],[2947,6]]},"165":{"position":[[766,5]]}}}],["text3.x",{"_index":1365,"t":{"81":{"position":[[2643,7]]}}}],["text3.y",{"_index":1367,"t":{"81":{"position":[[2673,7]]},"165":{"position":[[1010,7]]}}}],["text4",{"_index":1368,"t":{"81":{"position":[[2710,5],[2954,6]]},"165":{"position":[[888,5]]}}}],["text4.x",{"_index":1369,"t":{"81":{"position":[[2759,7]]}}}],["text4.y",{"_index":1371,"t":{"81":{"position":[[2789,7]]},"165":{"position":[[1025,7]]}}}],["textsample",{"_index":2679,"t":{"169":{"position":[[765,10]]}}}],["textsample.position.set(50",{"_index":2682,"t":{"169":{"position":[[918,27]]}}}],["texture",{"_index":237,"t":{"41":{"position":[[160,7]]},"43":{"position":[[144,8]]},"45":{"position":[[157,7]]},"47":{"position":[[4225,8]]},"49":{"position":[[137,7]]},"51":{"position":[[230,7],[350,7]]},"55":{"position":[[599,7],[677,7]]},"57":{"position":[[913,7],[1590,7]]},"59":{"position":[[478,8],[496,9],[548,8]]},"61":{"position":[[320,8],[420,7]]},"67":{"position":[[236,7],[250,7]]},"69":{"position":[[589,7]]},"71":{"position":[[425,7]]},"79":{"position":[[161,7],[194,7]]},"99":{"position":[[185,8]]},"109":{"position":[[1131,8],[1690,8],[2160,7],[2264,8]]},"113":{"position":[[739,7]]},"127":{"position":[[882,7],[1653,7]]},"147":{"position":[[414,7],[428,7]]},"149":{"position":[[384,7],[496,8]]},"151":{"position":[[334,7]]},"157":{"position":[[176,7],[363,7],[802,7],[841,7]]},"159":{"position":[[138,7],[171,7],[280,8],[419,8]]},"163":{"position":[[1167,7],[1193,7],[1300,7]]},"173":{"position":[[46,7],[619,7]]},"175":{"position":[[499,7],[1933,7],[2108,7],[2141,7]]},"177":{"position":[[226,7]]},"179":{"position":[[250,10],[506,8],[1271,7]]}}}],["texture.basetexture.scalemode",{"_index":1256,"t":{"79":{"position":[[291,29]]}}}],["texture.frame.height",{"_index":2832,"t":{"179":{"position":[[388,21],[444,20]]}}}],["texture.frame.width",{"_index":2831,"t":{"179":{"position":[[366,19],[467,20]]}}}],["texture.frame.y",{"_index":2836,"t":{"179":{"position":[[564,16]]}}}],["texture2d(noise",{"_index":1796,"t":{"99":{"position":[[1293,16]]},"127":{"position":[[2902,16]]},"129":{"position":[[1212,16]]}}}],["texture2d(texin",{"_index":2296,"t":{"127":{"position":[[2236,16]]}}}],["texture2d(texnoise",{"_index":2351,"t":{"127":{"position":[[4618,19]]}}}],["texture2d(texripple",{"_index":2350,"t":{"127":{"position":[[4577,20]]}}}],["texture2d(texwave",{"_index":2353,"t":{"127":{"position":[[4657,18]]}}}],["texture2d(usampler",{"_index":1800,"t":{"99":{"position":[[1349,19]]}}}],["texture2d(usampler2",{"_index":2223,"t":{"121":{"position":[[921,20]]},"125":{"position":[[1313,20]]},"131":{"position":[[796,20],[1345,20]]},"143":{"position":[[1089,20]]},"145":{"position":[[934,20]]}}}],["texture2d(usamplertexture",{"_index":2413,"t":{"133":{"position":[[868,26]]}}}],["texturebutton",{"_index":1212,"t":{"77":{"position":[[755,13],[2039,14],[2259,14]]},"85":{"position":[[419,13],[2134,14],[2354,14]]}}}],["texturebuttondown",{"_index":1214,"t":{"77":{"position":[[836,17],[1880,18]]},"85":{"position":[[500,17],[1975,18]]}}}],["texturebuttonover",{"_index":1216,"t":{"77":{"position":[[926,17],[1996,18],[2148,18]]},"85":{"position":[[590,17],[2091,18],[2243,18]]}}}],["texturepromise",{"_index":1007,"t":{"61":{"position":[[204,14]]}}}],["texturepromise.then((resolvedtexture",{"_index":1008,"t":{"61":{"position":[[329,37]]}}}],["textures",{"_index":991,"t":{"59":{"position":[[642,8]]},"65":{"position":[[675,8]]},"75":{"position":[[171,9]]},"77":{"position":[[721,8]]},"85":{"position":[[385,8]]},"127":{"position":[[1569,8],[5725,9]]},"149":{"position":[[274,8],[289,8]]},"151":{"position":[[255,8]]},"153":{"position":[[255,8]]},"175":{"position":[[222,11],[248,8]]},"179":{"position":[[224,8],[239,8]]}}}],["textures.push",{"_index":2482,"t":{"149":{"position":[[480,15]]}}}],["textures.push(rotatedtexture",{"_index":2846,"t":{"179":{"position":[[971,30]]}}}],["texturespromise",{"_index":987,"t":{"59":{"position":[[390,15]]}}}],["texturespromise.then((textures",{"_index":990,"t":{"59":{"position":[[557,31]]}}}],["texwave",{"_index":2348,"t":{"127":{"position":[[4518,8],[4805,8]]}}}],["that'll",{"_index":1505,"t":{"91":{"position":[[1034,7]]}}}],["that's",{"_index":2744,"t":{"173":{"position":[[1202,6]]}}}],["the\\ncustom",{"_index":2681,"t":{"169":{"position":[[812,11]]}}}],["then((res",{"_index":1696,"t":{"95":{"position":[[456,11]]}}}],["then(onassetsloaded",{"_index":429,"t":{"47":{"position":[[333,24]]},"65":{"position":[[228,22]]}}}],["then(onloaded",{"_index":1698,"t":{"95":{"position":[[483,16]]}}}],["there's",{"_index":1996,"t":{"107":{"position":[[1024,7]]}}}],["thing",{"_index":2110,"t":{"111":{"position":[[1312,5]]},"117":{"position":[[1021,5],[1179,6],[1276,6]]}}}],["thing.beginfill(0x8bc5ff",{"_index":2187,"t":{"117":{"position":[[1775,25]]}}}],["thing.beginfill(0xffff00",{"_index":2120,"t":{"111":{"position":[[1894,25]]}}}],["thing.clear",{"_index":2118,"t":{"111":{"position":[[1845,14]]},"117":{"position":[[1760,14]]}}}],["thing.closepath",{"_index":2124,"t":{"111":{"position":[[2282,18]]}}}],["thing.linestyle(0",{"_index":2184,"t":{"117":{"position":[[1142,19]]}}}],["thing.linestyle(10",{"_index":2119,"t":{"111":{"position":[[1860,19]]}}}],["thing.lineto",{"_index":2123,"t":{"111":{"position":[[2139,13],[2210,13]]},"117":{"position":[[2020,13]]}}}],["thing.lineto(120",{"_index":2122,"t":{"111":{"position":[[1998,16],[2069,16]]},"117":{"position":[[1879,16],[1950,16]]}}}],["thing.moveto",{"_index":2121,"t":{"111":{"position":[[1926,13]]},"117":{"position":[[1807,13]]}}}],["thing.rotation",{"_index":2125,"t":{"111":{"position":[[2301,14]]},"117":{"position":[[2091,14]]}}}],["thing.x",{"_index":2112,"t":{"111":{"position":[[1368,7]]},"117":{"position":[[1077,7]]}}}],["thing.y",{"_index":2113,"t":{"111":{"position":[[1387,7]]},"117":{"position":[[1109,7]]}}}],["third",{"_index":2319,"t":{"127":{"position":[[3348,5]]}}}],["this._bounds.addframematrix",{"_index":1549,"t":{"91":{"position":[[2208,28]]}}}],["this.addeventlistener(event",{"_index":1532,"t":{"91":{"position":[[1799,28]]}}}],["this.alpha",{"_index":1254,"t":{"77":{"position":[[1899,10]]},"79":{"position":[[1683,10]]},"85":{"position":[[1994,10]]}}}],["this.boundary",{"_index":1507,"t":{"91":{"position":[[1091,13]]}}}],["this.boundary.copymousedata",{"_index":1515,"t":{"91":{"position":[[1223,27]]}}}],["this.boundary.cursor",{"_index":1536,"t":{"91":{"position":[[1941,21]]}}}],["this.boundary.hittest(point.x",{"_index":1557,"t":{"91":{"position":[[2400,32]]}}}],["this.boundary.hittest(to.global.x",{"_index":1527,"t":{"91":{"position":[[1578,34]]}}}],["this.boundary.mapevent(e",{"_index":1533,"t":{"91":{"position":[[1835,27]]}}}],["this.content",{"_index":1500,"t":{"91":{"position":[[867,12]]}}}],["this.content.disabletempparent(null",{"_index":1578,"t":{"91":{"position":[[3233,37]]}}}],["this.content.enabletempparent",{"_index":1576,"t":{"91":{"position":[[3168,32]]}}}],["this.content.getbounds",{"_index":1548,"t":{"91":{"position":[[2182,25]]}}}],["this.content.render(renderer",{"_index":1571,"t":{"91":{"position":[[2883,30]]}}}],["this.content.updatetransform",{"_index":1577,"t":{"91":{"position":[[3201,31]]}}}],["this.data",{"_index":1289,"t":{"79":{"position":[[1659,9]]}}}],["this.eventmode",{"_index":1534,"t":{"91":{"position":[[1867,14]]}}}],["this.isdown",{"_index":1252,"t":{"77":{"position":[[1845,11],[1941,11],[2107,13],[2218,13]]},"85":{"position":[[1940,11],[2036,11],[2202,13],[2313,13]]}}}],["this.isover",{"_index":1255,"t":{"77":{"position":[[1965,13],[2084,11],[2194,11]]},"85":{"position":[[2060,13],[2179,11],[2289,11]]}}}],["this.originaltransform",{"_index":1503,"t":{"91":{"position":[[968,22]]}}}],["this.texture",{"_index":1253,"t":{"77":{"position":[[1865,12],[1981,12],[2024,12],[2133,12],[2244,12]]},"85":{"position":[[1960,12],[2076,12],[2119,12],[2228,12],[2339,12]]}}}],["this.tint",{"_index":1372,"t":{"81":{"position":[[2985,9],[3036,9],[3086,9]]}}}],["this.worldtransform",{"_index":1550,"t":{"91":{"position":[[2237,20]]}}}],["this.worldtransform.applyinverse(to.global",{"_index":1521,"t":{"91":{"position":[[1430,43]]}}}],["through",{"_index":1055,"t":{"63":{"position":[[1773,7]]},"69":{"position":[[1654,7]]},"71":{"position":[[1623,7]]},"91":{"position":[[1904,7],[2116,7],[2348,7]]}}}],["throw",{"_index":1542,"t":{"91":{"position":[[2036,5]]}}}],["tick",{"_index":878,"t":{"53":{"position":[[8396,4]]},"69":{"position":[[1610,4],[2379,4]]}}}],["ticker",{"_index":1156,"t":{"69":{"position":[[2372,6]]}}}],["tiling",{"_index":2545,"t":{"159":{"position":[[249,6]]}}}],["tilingsprite",{"_index":2550,"t":{"159":{"position":[[381,12]]}}}],["tilingsprite.tileposition.x",{"_index":2555,"t":{"159":{"position":[[652,27]]}}}],["tilingsprite.tileposition.y",{"_index":2556,"t":{"159":{"position":[[686,27]]}}}],["tilingsprite.tilescale.x",{"_index":2553,"t":{"159":{"position":[[556,24]]}}}],["tilingsprite.tilescale.y",{"_index":2554,"t":{"159":{"position":[[604,24]]}}}],["time",{"_index":557,"t":{"47":{"position":[[3375,4],[3443,5],[3820,4],[4716,5],[4842,5]]},"57":{"position":[[1337,4],[1368,4]]},"63":{"position":[[1226,4]]},"69":{"position":[[1027,4]]},"71":{"position":[[1079,4]]},"97":{"position":[[802,5]]},"99":{"position":[[1050,5],[2821,5]]},"127":{"position":[[3470,5],[4045,5],[5438,4],[5476,4],[5584,5],[5622,5]]},"129":{"position":[[969,5],[2485,5],[2904,4],[2942,4],[2986,5]]},"145":{"position":[[899,5],[967,5],[1104,5]]},"149":{"position":[[429,4],[505,4]]},"173":{"position":[[1078,4]]}}}],["time*0.25)*amplitude",{"_index":2329,"t":{"127":{"position":[[3712,22]]}}}],["time+cos(time)+2",{"_index":1827,"t":{"99":{"position":[[1850,18]]},"129":{"position":[[1698,18]]}}}],["timer",{"_index":1384,"t":{"83":{"position":[[472,5],[685,8]]}}}],["title",{"_index":1404,"t":{"87":{"position":[[231,5]]},"93":{"position":[[1192,5],[1204,5]]}}}],["title.anchor.set(0.5",{"_index":1671,"t":{"93":{"position":[[1417,21]]}}}],["title.roundpixels",{"_index":1669,"t":{"93":{"position":[[1351,17]]}}}],["title.x",{"_index":1414,"t":{"87":{"position":[[432,7]]},"93":{"position":[[1377,7]]}}}],["title.y",{"_index":1670,"t":{"93":{"position":[[1403,7]]}}}],["to.global",{"_index":1522,"t":{"91":{"position":[[1474,11]]}}}],["to.global.y",{"_index":1528,"t":{"91":{"position":[[1613,13]]}}}],["to.target",{"_index":1526,"t":{"91":{"position":[[1566,9]]}}}],["todo",{"_index":1523,"t":{"91":{"position":[[1489,5]]}}}],["toggling",{"_index":924,"t":{"55":{"position":[[586,8]]}}}],["tomousedirection",{"_index":199,"t":{"39":{"position":[[4200,16]]}}}],["tomousedirection.x",{"_index":209,"t":{"39":{"position":[[4437,19]]}}}],["tomousedirection.y",{"_index":208,"t":{"39":{"position":[[4417,19]]}}}],["top",{"_index":481,"t":{"47":{"position":[[1648,3],[1850,3]]},"53":{"position":[[1152,3],[1701,3],[1808,3],[5721,3],[6651,3],[6823,3]]},"87":{"position":[[1265,3]]}}}],["top.addchild(headertext",{"_index":538,"t":{"47":{"position":[[2884,25]]}}}],["top.beginfill(0",{"_index":488,"t":{"47":{"position":[[1877,16]]}}}],["top.drawrect(0",{"_index":489,"t":{"47":{"position":[[1898,15]]}}}],["totaldudes",{"_index":1017,"t":{"63":{"position":[[429,10],[466,11]]},"71":{"position":[[181,10],[218,11]]}}}],["totalsprites",{"_index":1133,"t":{"69":{"position":[[350,12],[438,13]]}}}],["totaltime",{"_index":1777,"t":{"99":{"position":[[730,9],[3006,10],[3017,9]]}}}],["touch",{"_index":1100,"t":{"65":{"position":[[1113,5]]},"75":{"position":[[574,5],[689,5],[782,5]]},"79":{"position":[[680,5],[1000,5],[1650,5]]},"85":{"position":[[1054,5],[1513,5]]}}}],["towards",{"_index":705,"t":{"49":{"position":[[2128,7],[2161,7]]}}}],["track",{"_index":1287,"t":{"79":{"position":[[1612,5]]},"163":{"position":[[997,5]]},"173":{"position":[[1110,5]]}}}],["trail",{"_index":246,"t":{"41":{"position":[[338,5],[415,5]]}}}],["trailtexture",{"_index":239,"t":{"41":{"position":[[184,12]]}}}],["transform",{"_index":1125,"t":{"67":{"position":[[896,9]]},"91":{"position":[[957,10],[3113,9]]},"147":{"position":[[1074,9]]}}}],["transformation",{"_index":2539,"t":{"155":{"position":[[640,14]]}}}],["transforms",{"_index":1481,"t":{"91":{"position":[[422,10]]}}}],["translationmatrix",{"_index":2215,"t":{"121":{"position":[[616,18],[751,17]]},"123":{"position":[[1109,18],[1245,17]]},"125":{"position":[[1008,18],[1143,17]]},"127":{"position":[[658,18],[793,17]]},"129":{"position":[[607,18],[742,17]]},"131":{"position":[[491,18],[626,17],[1040,18],[1175,17]]},"133":{"position":[[557,18],[692,17]]},"139":{"position":[[332,18],[435,17]]},"141":{"position":[[577,18],[718,17]]},"143":{"position":[[704,18],[877,17]]},"145":{"position":[[588,18],[723,17]]}}}],["travelling",{"_index":210,"t":{"39":{"position":[[4505,10]]}}}],["triangle",{"_index":2401,"t":{"131":{"position":[[1597,8],[1837,10]]},"133":{"position":[[914,8],[1567,10]]},"139":{"position":[[595,8]]},"141":{"position":[[892,8]]},"143":{"position":[[1314,8]]}}}],["triangle.position.set(400",{"_index":2403,"t":{"131":{"position":[[1693,26]]},"133":{"position":[[1378,26]]},"139":{"position":[[639,26]]},"141":{"position":[[936,26]]},"143":{"position":[[1358,26]]}}}],["triangle.rotation",{"_index":2408,"t":{"131":{"position":[[1876,17]]},"133":{"position":[[1606,17]]},"139":{"position":[[730,17]]},"141":{"position":[[1050,17]]},"143":{"position":[[1472,17]]}}}],["triangle.scale.set(2",{"_index":2404,"t":{"131":{"position":[[1726,22]]},"133":{"position":[[1411,22]]},"141":{"position":[[969,22]]},"143":{"position":[[1391,22]]}}}],["triangle2",{"_index":2402,"t":{"131":{"position":[[1647,9]]},"133":{"position":[[1072,9],[1556,10]]}}}],["triangle2.position.set(200",{"_index":2418,"t":{"133":{"position":[[1434,27]]}}}],["triangle2.position.set(500",{"_index":2405,"t":{"131":{"position":[[1749,27]]}}}],["triangle2.rotation",{"_index":2409,"t":{"131":{"position":[[1903,18]]},"133":{"position":[[1633,18]]}}}],["triangle2.scale.set(3",{"_index":2406,"t":{"131":{"position":[[1783,23]]}}}],["triangle3",{"_index":2416,"t":{"133":{"position":[[1225,9]]}}}],["triangle3.position.set(500",{"_index":2419,"t":{"133":{"position":[[1468,27]]}}}],["triangle3.rotation",{"_index":2422,"t":{"133":{"position":[[1661,18]]}}}],["triangle3.scale.set(3",{"_index":2420,"t":{"133":{"position":[[1502,23]]}}}],["triangles",{"_index":2248,"t":{"123":{"position":[[1413,9]]}}}],["triangles.position.set(400",{"_index":2249,"t":{"123":{"position":[[1458,27]]}}}],["triangles.rotation",{"_index":2251,"t":{"123":{"position":[[1551,18]]}}}],["trigger",{"_index":2569,"t":{"163":{"position":[[188,7]]}}}],["trim",{"_index":2837,"t":{"179":{"position":[[594,4],[719,5],[925,5]]}}}],["true",{"_index":370,"t":{"43":{"position":[[1907,5]]},"47":{"position":[[2297,5],[2413,5],[3209,5]]},"49":{"position":[[626,6]]},"55":{"position":[[623,5]]},"69":{"position":[[185,5],[201,5],[217,5],[228,5],[241,5]]},"77":{"position":[[1859,5],[2098,5]]},"85":{"position":[[1954,5],[2193,5]]},"87":{"position":[[155,5]]},"89":{"position":[[172,5]]},"91":{"position":[[294,5]]},"93":{"position":[[79,5],[1371,5]]},"103":{"position":[[1089,5]]},"105":{"position":[[1700,5]]},"109":{"position":[[79,5]]},"111":{"position":[[79,5]]},"115":{"position":[[111,5]]},"117":{"position":[[79,5]]},"123":{"position":[[236,5],[532,4],[666,4]]},"157":{"position":[[164,5]]},"167":{"position":[[476,5],[592,5],[878,5]]},"169":{"position":[[566,7]]},"171":{"position":[[217,5]]},"173":{"position":[[1507,5],[1563,5]]},"175":{"position":[[2123,6]]}}}],["turn",{"_index":1915,"t":{"103":{"position":[[1245,4]]},"117":{"position":[[1365,4]]}}}],["tween",{"_index":609,"t":{"47":{"position":[[4760,5],[4939,6]]}}}],["tweening",{"_index":599,"t":{"47":{"position":[[4551,8],[4616,8],[4658,8]]}}}],["tweening.length",{"_index":618,"t":{"47":{"position":[[5069,16]]}}}],["tweening.push(tween",{"_index":616,"t":{"47":{"position":[[4910,21]]}}}],["tweening.splice(tweening.indexof(remove[i",{"_index":634,"t":{"47":{"position":[[5419,44]]}}}],["tweening[i",{"_index":619,"t":{"47":{"position":[[5103,12]]}}}],["tweenjs",{"_index":641,"t":{"47":{"position":[[5581,8]]}}}],["tweento(object",{"_index":604,"t":{"47":{"position":[[4682,15]]}}}],["tweento(r",{"_index":560,"t":{"47":{"position":[[3412,10]]}}}],["twist",{"_index":2807,"t":{"175":{"position":[[1982,5]]}}}],["two",{"_index":47,"t":{"39":{"position":[[459,3],[541,3],[1792,3],[4902,3]]},"53":{"position":[[8613,3]]},"159":{"position":[[368,3]]},"175":{"position":[[211,3]]}}}],["type",{"_index":1437,"t":{"87":{"position":[[1152,4],[1318,7],[1398,4],[1425,4]]}}}],["u",{"_index":2207,"t":{"121":{"position":[[374,2],[388,2],[409,2]]},"125":{"position":[[374,2],[388,2],[409,2],[733,2],[747,2],[762,2]]},"127":{"position":[[394,2],[408,2],[429,2]]},"129":{"position":[[393,2],[407,2],[428,2]]},"131":{"position":[[331,2],[345,2],[361,2]]},"133":{"position":[[363,2],[377,2],[392,2]]},"143":{"position":[[503,2],[517,2],[532,2]]},"145":{"position":[[374,2],[388,2],[409,2]]}}}],["ua",{"_index":907,"t":{"53":{"position":[[9055,2],[9242,3],[9253,2],[9382,2],[9413,2]]}}}],["ub",{"_index":908,"t":{"53":{"position":[[9129,2],[9263,2],[9273,2]]}}}],["under",{"_index":2583,"t":{"163":{"position":[[776,5]]}}}],["underlying",{"_index":1752,"t":{"97":{"position":[[1023,10]]}}}],["uniform",{"_index":1730,"t":{"97":{"position":[[572,7],[718,7],[738,7],[762,7],[788,7]]},"99":{"position":[[983,7],[1011,7],[1036,7]]},"121":{"position":[[603,7],[635,7],[863,7]]},"123":{"position":[[1096,7],[1128,7]]},"125":{"position":[[995,7],[1027,7],[1255,7]]},"127":{"position":[[645,7],[677,7],[1098,7],[2024,7],[2046,7],[2067,7],[2828,7],[2849,7],[3431,7],[3456,7],[4443,7],[4472,7],[4500,7]]},"129":{"position":[[594,7],[626,7],[930,7],[955,7]]},"131":{"position":[[478,7],[510,7],[738,7],[1027,7],[1059,7],[1287,7]]},"133":{"position":[[544,7],[576,7],[804,7]]},"139":{"position":[[319,7],[351,7]]},"141":{"position":[[564,7],[596,7]]},"143":{"position":[[691,7],[723,7],[1031,7]]},"145":{"position":[[575,7],[607,7],[856,7],[885,7]]}}}],["uniforms",{"_index":1709,"t":{"95":{"position":[[727,8]]},"129":{"position":[[2406,8],[2744,10]]},"143":{"position":[[1147,8],[1297,10]]},"145":{"position":[[1012,8],[1172,10]]}}}],["uniforms.noise.basetexture.mipmap",{"_index":2391,"t":{"129":{"position":[[2611,33]]}}}],["uniforms.noise.basetexture.wrapmode",{"_index":2390,"t":{"129":{"position":[[2549,35]]}}}],["until",{"_index":967,"t":{"57":{"position":[[1283,5]]}}}],["up",{"_index":1830,"t":{"99":{"position":[[1938,2],[2019,3],[2069,3]]},"129":{"position":[[1786,2],[1867,3],[1917,3]]},"175":{"position":[[1993,3]]}}}],["update",{"_index":159,"t":{"39":{"position":[[2740,6],[3807,6]]},"41":{"position":[[1104,6],[1165,6],[1305,6]]},"47":{"position":[[3612,7],[3651,6],[3733,6],[3961,6],[4970,7]]},"49":{"position":[[1173,6]]},"53":{"position":[[904,6],[2817,6],[2878,6],[3649,6],[5411,6],[8005,6],[8353,6]]},"63":{"position":[[1795,6]]},"67":{"position":[[795,6]]},"69":{"position":[[1678,6]]},"71":{"position":[[1645,6]]},"83":{"position":[[461,6]]},"87":{"position":[[1624,6]]},"93":{"position":[[1806,6]]},"95":{"position":[[900,6]]},"99":{"position":[[2947,7]]},"107":{"position":[[970,6]]},"147":{"position":[[973,6]]},"155":{"position":[[482,6]]}}}],["updates",{"_index":1574,"t":{"91":{"position":[[3095,7]]}}}],["updatetransform",{"_index":1573,"t":{"91":{"position":[[3074,15],[3123,17]]}}}],["upload",{"_index":2720,"t":{"173":{"position":[[136,6],[1056,6]]}}}],["upload(renderer",{"_index":2729,"t":{"173":{"position":[[431,16]]}}}],["uploaded",{"_index":2733,"t":{"173":{"position":[[630,8]]}}}],["url",{"_index":16,"t":{"39":{"position":[[87,3]]},"45":{"position":[[322,3],[479,4]]}}}],["url(\\'https://pixijs.com/assets/bunny.png\\'),auto",{"_index":1204,"t":{"77":{"position":[[192,52]]}}}],["url(\\'https://pixijs.com/assets/bunny_saturated.png\\'),auto",{"_index":1206,"t":{"77":{"position":[[263,62]]}}}],["us/docs/web/api/canvasrenderingcontext2d/createlineargradient",{"_index":2688,"t":{"171":{"position":[[109,61]]}}}],["usampler",{"_index":1785,"t":{"99":{"position":[[1001,9]]}}}],["usampler2",{"_index":2222,"t":{"121":{"position":[[881,10],[957,10]]},"125":{"position":[[1273,10],[1349,10]]},"131":{"position":[[756,10],[831,10],[1305,10],[1508,10]]},"143":{"position":[[1049,10],[1160,10]]},"145":{"position":[[874,10],[1025,10]]}}}],["usamplertexture",{"_index":2412,"t":{"133":{"position":[[822,16],[976,16],[1135,16],[1288,16]]}}}],["use",{"_index":202,"t":{"39":{"position":[[4327,3]]},"67":{"position":[[858,3]]},"75":{"position":[[673,3]]},"85":{"position":[[1317,3],[1509,3]]},"91":{"position":[[2007,3]]},"95":{"position":[[786,3]]},"99":{"position":[[773,3]]},"127":{"position":[[515,3]]},"147":{"position":[[1036,3]]},"171":{"position":[[538,3]]},"173":{"position":[[1098,3]]}}}],["used",{"_index":685,"t":{"49":{"position":[[1280,4]]},"51":{"position":[[170,4]]},"63":{"position":[[1180,4]]},"69":{"position":[[979,4]]},"71":{"position":[[1033,4]]},"81":{"position":[[714,4]]},"91":{"position":[[193,4]]},"99":{"position":[[144,4],[2298,4]]},"129":{"position":[[2146,4],[2525,4]]},"163":{"position":[[180,4]]},"173":{"position":[[1116,4]]},"175":{"position":[[265,4],[1631,4]]}}}],["useful",{"_index":2580,"t":{"163":{"position":[[717,6]]}}}],["user",{"_index":968,"t":{"57":{"position":[[1318,4],[1894,4]]},"93":{"position":[[916,4]]}}}],["uses",{"_index":1018,"t":{"63":{"position":[[513,4]]},"71":{"position":[[265,4]]},"97":{"position":[[543,4]]},"171":{"position":[[46,4]]},"175":{"position":[[483,4]]}}}],["using",{"_index":360,"t":{"43":{"position":[[1540,5]]},"65":{"position":[[790,5]]},"79":{"position":[[1006,5]]},"91":{"position":[[400,5],[719,5]]},"93":{"position":[[921,5]]},"147":{"position":[[86,5]]},"157":{"position":[[353,5]]},"163":{"position":[[1284,5]]},"169":{"position":[[733,5],[806,5]]},"179":{"position":[[1257,5]]}}}],["usseful",{"_index":2737,"t":{"173":{"position":[[1045,7]]}}}],["utility",{"_index":600,"t":{"47":{"position":[[4560,7]]}}}],["uv",{"_index":1821,"t":{"99":{"position":[[1716,2],[1764,2],[1773,2]]},"127":{"position":[[1167,2],[1216,2],[2137,2],[2206,2],[2253,4],[3499,2],[3548,2]]},"129":{"position":[[1583,2],[1612,2],[1621,2]]}}}],["uv.x",{"_index":1837,"t":{"99":{"position":[[2064,4]]},"129":{"position":[[1912,4]]}}}],["uv.x*0.25",{"_index":2328,"t":{"127":{"position":[[3701,10]]}}}],["uv.y",{"_index":1838,"t":{"99":{"position":[[2075,4]]},"129":{"position":[[1923,4]]}}}],["uvs",{"_index":1129,"t":{"69":{"position":[[223,4]]},"179":{"position":[[805,4]]}}}],["v",{"_index":2208,"t":{"121":{"position":[[377,1],[391,1],[412,1]]},"125":{"position":[[377,1],[391,1],[412,1],[736,1],[750,1],[765,1]]},"127":{"position":[[397,1],[411,1],[432,1]]},"129":{"position":[[396,1],[410,1],[431,1]]},"131":{"position":[[334,1],[348,1],[364,1]]},"133":{"position":[[366,1],[380,1],[395,1]]},"143":{"position":[[506,1],[520,1],[535,1]]},"145":{"position":[[377,1],[391,1],[412,1]]}}}],["v5",{"_index":1727,"t":{"97":{"position":[[518,2]]},"173":{"position":[[43,2]]}}}],["val",{"_index":2517,"t":{"153":{"position":[[339,3]]}}}],["value",{"_index":1993,"t":{"107":{"position":[[987,6]]}}}],["values",{"_index":266,"t":{"41":{"position":[[1182,6]]},"77":{"position":[[1656,9]]},"85":{"position":[[1751,9]]},"107":{"position":[[1134,6]]}}}],["varying",{"_index":1735,"t":{"97":{"position":[[690,7]]},"99":{"position":[[955,7]]},"121":{"position":[[666,7],[844,7]]},"123":{"position":[[1159,7],[1336,7]]},"125":{"position":[[1058,7],[1236,7]]},"127":{"position":[[708,7],[1079,7],[2005,7],[2809,7],[3412,7],[4424,7]]},"129":{"position":[[657,7],[911,7]]},"131":{"position":[[541,7],[719,7],[1090,7],[1268,7]]},"133":{"position":[[607,7],[785,7]]},"141":{"position":[[627,7],[811,7]]},"143":{"position":[[754,7],[773,7],[991,7],[1012,7]]},"145":{"position":[[638,7],[837,7]]}}}],["vcol",{"_index":2245,"t":{"123":{"position":[[1172,5],[1192,4],[1349,5]]}}}],["vcollision",{"_index":83,"t":{"39":{"position":[[1062,10]]}}}],["vcollision.x",{"_index":92,"t":{"39":{"position":[[1313,12]]}}}],["vcollision.y",{"_index":93,"t":{"39":{"position":[[1338,12]]}}}],["vcollisionnorm",{"_index":91,"t":{"39":{"position":[[1280,14]]}}}],["vcollisionnorm.x",{"_index":101,"t":{"39":{"position":[[1545,16],[1707,17]]}}}],["vcollisionnorm.y",{"_index":103,"t":{"39":{"position":[[1586,17],[1735,17]]}}}],["vcolor",{"_index":2464,"t":{"141":{"position":[[640,7],[662,6],[824,7]]},"143":{"position":[[786,7],[821,6],[1004,7]]}}}],["vec2",{"_index":1736,"t":{"97":{"position":[[698,4],[726,4],[822,4]]},"99":{"position":[[963,4],[1211,4],[1470,4],[1481,5],[1711,4],[2217,4]]},"121":{"position":[[560,4],[592,4],[674,4],[852,4]]},"123":{"position":[[1040,4],[1062,4]]},"125":{"position":[[952,4],[984,4],[1066,4],[1244,4]]},"127":{"position":[[602,4],[634,4],[716,4],[1087,4],[1211,4],[1243,4],[2013,4],[2132,4],[2817,4],[3420,4],[3543,4],[4432,4]]},"129":{"position":[[551,4],[583,4],[665,4],[919,4],[1130,4],[1337,4],[1348,5],[1578,4],[2065,4]]},"131":{"position":[[435,4],[467,4],[549,4],[727,4],[984,4],[1016,4],[1098,4],[1276,4]]},"133":{"position":[[501,4],[533,4],[615,4],[793,4]]},"139":{"position":[[297,4]]},"141":{"position":[[519,4]]},"143":{"position":[[625,4],[680,4],[762,4],[1020,4]]},"145":{"position":[[532,4],[564,4],[646,4],[845,4]]}}}],["vec2(0.5",{"_index":2295,"t":{"127":{"position":[[2211,11]]}}}],["vec2(0.5))*2.0",{"_index":2268,"t":{"127":{"position":[[1227,15],[3559,15]]}}}],["vec2(h",{"_index":2386,"t":{"129":{"position":[[1264,6]]}}}],["vec2(h+h2",{"_index":1802,"t":{"99":{"position":[[1394,9]]}}}],["vec2(p.x",{"_index":1797,"t":{"99":{"position":[[1310,9]]},"129":{"position":[[1229,9]]}}}],["vec2(vtexturecoord.x",{"_index":1822,"t":{"99":{"position":[[1721,21]]}}}],["vec2(vuvs.x,1",{"_index":2387,"t":{"129":{"position":[[1588,14]]}}}],["vec3",{"_index":1806,"t":{"99":{"position":[[1436,4],[1459,4],[1499,4],[1519,5],[1645,4],[1654,5],[1781,4],[1816,4],[1892,4],[1933,4],[1988,4],[2034,4],[2123,4],[2190,4],[2360,4],[2428,5]]},"123":{"position":[[1084,4],[1167,4],[1344,4]]},"127":{"position":[[3575,4]]},"129":{"position":[[1303,4],[1326,4],[1366,4],[1386,5],[1512,4],[1521,5],[1629,4],[1664,4],[1740,4],[1781,4],[1836,4],[1882,4],[1971,4],[2038,4],[2208,4],[2276,5]]},"141":{"position":[[551,4],[635,4],[819,4]]},"143":{"position":[[657,4],[781,4],[999,4]]}}}],["vec3(0",{"_index":1832,"t":{"99":{"position":[[1969,8],[2134,9]]},"127":{"position":[[3591,9]]},"129":{"position":[[1817,8],[1982,9]]}}}],["vec3(0.,time",{"_index":1825,"t":{"99":{"position":[[1792,12]]},"129":{"position":[[1640,12]]}}}],["vec3(0.8,0.0",{"_index":1851,"t":{"99":{"position":[[2402,13]]},"129":{"position":[[2250,13]]}}}],["vec3(1.0",{"_index":1850,"t":{"99":{"position":[[2382,9]]},"129":{"position":[[2230,9]]}}}],["vec3(avertexposition",{"_index":2220,"t":{"121":{"position":[[771,21]]},"125":{"position":[[1163,21]]},"127":{"position":[[813,21]]},"129":{"position":[[762,21]]},"131":{"position":[[646,21],[1195,21]]},"133":{"position":[[712,21]]},"139":{"position":[[455,21]]},"141":{"position":[[738,21]]},"143":{"position":[[897,21]]},"145":{"position":[[743,21]]}}}],["vec3(avpos",{"_index":2246,"t":{"123":{"position":[[1265,10]]}}}],["vec3(sin(time)*0.1",{"_index":1826,"t":{"99":{"position":[[1830,19]]},"129":{"position":[[1678,19]]}}}],["vec4",{"_index":1738,"t":{"97":{"position":[[746,4],[770,4],[1066,5]]},"127":{"position":[[1270,4],[1310,4],[1350,4],[2223,4],[4563,4],[4605,4],[4645,4]]}}}],["vec4((projectionmatrix",{"_index":2219,"t":{"121":{"position":[[726,22]]},"123":{"position":[[1220,22]]},"125":{"position":[[1118,22]]},"127":{"position":[[768,22]]},"129":{"position":[[717,22]]},"131":{"position":[[601,22],[1150,22]]},"133":{"position":[[667,22]]},"139":{"position":[[410,22]]},"141":{"position":[[693,22]]},"143":{"position":[[852,22]]},"145":{"position":[[698,22]]}}}],["vec4(0.4",{"_index":2274,"t":{"127":{"position":[[1324,9]]}}}],["vec4(0.8",{"_index":2272,"t":{"127":{"position":[[1284,9]]}}}],["vec4(1.0",{"_index":1748,"t":{"97":{"position":[[941,9]]},"139":{"position":[[557,9]]}}}],["vec4(col",{"_index":1855,"t":{"99":{"position":[[2533,9]]},"129":{"position":[[2381,9]]}}}],["vec4(color",{"_index":2312,"t":{"127":{"position":[[2971,12]]}}}],["vec4(outcolor,1.0",{"_index":2336,"t":{"127":{"position":[[3981,19]]}}}],["vec4(vcol",{"_index":2247,"t":{"123":{"position":[[1384,10]]}}}],["vec4(vcolor",{"_index":2465,"t":{"141":{"position":[[861,12]]},"143":{"position":[[1118,12]]}}}],["vector",{"_index":197,"t":{"39":{"position":[[4139,6]]}}}],["version",{"_index":1769,"t":{"99":{"position":[[209,7],[248,7]]}}}],["vertex",{"_index":1728,"t":{"97":{"position":[[529,6],[596,6]]},"127":{"position":[[500,6]]}}}],["vertexshader",{"_index":1702,"t":{"95":{"position":[[604,14]]}}}],["vertexsrc",{"_index":2258,"t":{"127":{"position":[[553,9]]},"129":{"position":[[502,9]]},"143":{"position":[[576,9]]},"145":{"position":[[483,9]]}}}],["vertice",{"_index":1382,"t":{"83":{"position":[[360,7],[523,7]]}}}],["very",{"_index":597,"t":{"47":{"position":[[4539,4]]},"107":{"position":[[1155,4]]},"171":{"position":[[364,4],[369,4]]}}}],["vfiltercoord",{"_index":1991,"t":{"107":{"position":[[957,12]]}}}],["video",{"_index":2570,"t":{"163":{"position":[[200,5],[700,5],[877,5],[1161,5],[1294,5]]}}}],["videos",{"_index":2584,"t":{"163":{"position":[[796,6],[938,6],[976,6]]}}}],["videosprite",{"_index":2602,"t":{"163":{"position":[[1335,11]]}}}],["videosprite.height",{"_index":2606,"t":{"163":{"position":[[1438,18]]}}}],["videosprite.width",{"_index":2605,"t":{"163":{"position":[[1400,17]]}}}],["view",{"_index":2471,"t":{"147":{"position":[[164,4],[243,5]]}}}],["void",{"_index":1740,"t":{"97":{"position":[[808,4]]},"99":{"position":[[1697,4]]},"121":{"position":[[685,4],[892,4]]},"123":{"position":[[1178,4],[1355,4]]},"125":{"position":[[1077,4],[1284,4]]},"127":{"position":[[727,4],[1118,4],[2092,4],[2874,4],[3476,4],[4527,4]]},"129":{"position":[[676,4],[1564,4]]},"131":{"position":[[560,4],[767,4],[1109,4],[1316,4]]},"133":{"position":[[626,4],[839,4]]},"139":{"position":[[382,4],[528,4]]},"141":{"position":[[648,4],[832,4]]},"143":{"position":[[794,4],[1060,4]]},"145":{"position":[[657,4],[905,4]]}}}],["vrelativevelocity",{"_index":94,"t":{"39":{"position":[[1372,17]]}}}],["vrelativevelocity.x",{"_index":100,"t":{"39":{"position":[[1523,19]]}}}],["vrelativevelocity.y",{"_index":102,"t":{"39":{"position":[[1564,19]]}}}],["vtexturecoord",{"_index":1737,"t":{"97":{"position":[[703,14],[839,13]]},"99":{"position":[[968,14]]}}}],["vtexturecoord).r",{"_index":1801,"t":{"99":{"position":[[1369,17]]}}}],["vtexturecoord.y",{"_index":1823,"t":{"99":{"position":[[1746,17]]}}}],["vuvs",{"_index":2217,"t":{"121":{"position":[[679,5],[699,4],[857,5],[942,4]]},"125":{"position":[[1071,5],[1091,4],[1249,5],[1334,4]]},"127":{"position":[[721,5],[741,4],[1092,5],[1221,5],[2018,5],[2142,5],[2822,5],[3425,5],[3553,5],[4437,5],[4598,6],[4638,6],[4676,6]]},"129":{"position":[[670,5],[690,4],[924,5]]},"131":{"position":[[554,5],[574,4],[732,5],[817,6],[1103,5],[1123,4],[1281,5],[1366,6]]},"133":{"position":[[620,5],[640,4],[798,5],[895,6]]},"143":{"position":[[767,5],[808,4],[1025,5],[1110,5]]},"145":{"position":[[651,5],[671,4],[850,5],[955,4]]}}}],["vuvs).r",{"_index":2310,"t":{"127":{"position":[[2919,8]]}}}],["vuvs.x",{"_index":2466,"t":{"145":{"position":[[975,8]]}}}],["vuvs.y",{"_index":2388,"t":{"129":{"position":[[1603,8]]}}}],["w",{"_index":2833,"t":{"179":{"position":[[416,1],[581,2]]}}}],["wait",{"_index":966,"t":{"57":{"position":[[1273,4]]},"95":{"position":[[360,4]]}}}],["want",{"_index":1286,"t":{"79":{"position":[[1604,4]]}}}],["wanted",{"_index":1766,"t":{"99":{"position":[[169,6]]}}}],["warning",{"_index":1707,"t":{"95":{"position":[[704,7]]}}}],["warpspeed",{"_index":653,"t":{"49":{"position":[[334,9],[1106,9],[1118,9],[1304,10]]}}}],["wave",{"_index":2352,"t":{"127":{"position":[[4650,4]]}}}],["wave,noise.r",{"_index":2355,"t":{"127":{"position":[[4710,14]]}}}],["wavecontainer",{"_index":2341,"t":{"127":{"position":[[4272,13]]}}}],["wavecontainer.addchild(wavequad",{"_index":2342,"t":{"127":{"position":[[4310,33]]}}}],["wavecontainer.position.set(10",{"_index":2362,"t":{"127":{"position":[[5091,30]]}}}],["wavefunctions",{"_index":2322,"t":{"127":{"position":[[3610,13]]}}}],["wavequad",{"_index":2340,"t":{"127":{"position":[[4218,8]]}}}],["wavequad.shader.uniforms.time",{"_index":2377,"t":{"127":{"position":[[5590,29]]}}}],["waveshader",{"_index":2338,"t":{"127":{"position":[[4063,10],[4253,12]]}}}],["wavetexture",{"_index":2339,"t":{"127":{"position":[[4142,11],[4814,12],[5977,11]]}}}],["waveuniforms",{"_index":2337,"t":{"127":{"position":[[4011,12],[4121,14]]}}}],["way",{"_index":832,"t":{"53":{"position":[[5072,3]]},"81":{"position":[[1661,4]]},"99":{"position":[[85,3]]}}}],["web",{"_index":2664,"t":{"169":{"position":[[316,3]]}}}],["webfont",{"_index":2678,"t":{"169":{"position":[[751,7],[834,9]]}}}],["webgl",{"_index":2547,"t":{"159":{"position":[[315,5]]},"173":{"position":[[93,5],[1188,5]]},"179":{"position":[[851,5]]}}}],["well",{"_index":824,"t":{"53":{"position":[[4857,5]]}}}],["wf",{"_index":2666,"t":{"169":{"position":[[359,2]]}}}],["wf.async",{"_index":2675,"t":{"169":{"position":[[555,8]]}}}],["wf.src",{"_index":2668,"t":{"169":{"position":[[398,6]]}}}],["wf.type",{"_index":2673,"t":{"169":{"position":[[526,7]]}}}],["wheel",{"_index":1530,"t":{"91":{"position":[[1767,8],[4198,5],[4345,5],[5429,5]]}}}],["wheels",{"_index":520,"t":{"47":{"position":[[2484,9]]}}}],["wherever",{"_index":1458,"t":{"89":{"position":[[88,8]]}}}],["whether",{"_index":174,"t":{"39":{"position":[[3099,7]]}}}],["white",{"_index":1428,"t":{"87":{"position":[[783,5],[804,5],[949,6]]},"103":{"position":[[1333,8]]},"117":{"position":[[1453,8]]},"169":{"position":[[722,5],[889,8]]},"179":{"position":[[1628,8]]}}}],["whitebox",{"_index":1429,"t":{"87":{"position":[[820,8],[1685,9]]}}}],["whitebox.eventmode",{"_index":1434,"t":{"87":{"position":[[1062,18]]}}}],["whitebox.name",{"_index":1432,"t":{"87":{"position":[[933,13]]}}}],["whole",{"_index":1464,"t":{"89":{"position":[[567,5]]},"91":{"position":[[4021,5]]},"93":{"position":[[255,5]]}}}],["whose",{"_index":1664,"t":{"93":{"position":[[886,5]]}}}],["width",{"_index":322,"t":{"43":{"position":[[546,6],[596,6],[1602,6]]},"89":{"position":[[381,6]]},"91":{"position":[[3454,6]]},"107":{"position":[[1120,5]]},"109":{"position":[[1120,6],[1679,6],[2253,6]]},"127":{"position":[[1735,6],[2541,6],[3180,6],[4184,6]]},"159":{"position":[[291,5]]},"173":{"position":[[332,5],[482,5],[710,6],[821,6],[1012,6],[1146,6]]},"175":{"position":[[146,6]]}}}],["winding",{"_index":753,"t":{"53":{"position":[[1388,7],[1601,7],[1635,7],[2062,8],[6194,7],[6504,7],[6538,7],[7023,8]]}}}],["window",{"_index":32,"t":{"39":{"position":[[274,6]]},"41":{"position":[[101,6]]},"43":{"position":[[78,6]]},"45":{"position":[[103,6]]},"47":{"position":[[101,6]]},"49":{"position":[[78,6]]},"51":{"position":[[101,6]]},"53":{"position":[[101,6]]},"55":{"position":[[101,6]]},"57":{"position":[[101,6]]},"59":{"position":[[101,6]]},"61":{"position":[[101,6]]},"63":{"position":[[78,6]]},"65":{"position":[[78,6]]},"67":{"position":[[101,6]]},"69":{"position":[[78,6]]},"71":{"position":[[78,6]]},"73":{"position":[[98,6]]},"75":{"position":[[101,6]]},"77":{"position":[[101,6]]},"79":{"position":[[101,6]]},"83":{"position":[[101,6]]},"85":{"position":[[78,6]]},"95":{"position":[[78,6]]},"97":{"position":[[146,6]]},"99":{"position":[[373,6]]},"101":{"position":[[78,6]]},"103":{"position":[[78,6]]},"105":{"position":[[78,6]]},"107":{"position":[[78,6]]},"109":{"position":[[95,6]]},"111":{"position":[[95,6]]},"113":{"position":[[78,6]]},"115":{"position":[[127,6]]},"117":{"position":[[95,6]]},"119":{"position":[[78,6]]},"121":{"position":[[78,6]]},"123":{"position":[[78,6]]},"125":{"position":[[78,6]]},"127":{"position":[[91,6]]},"129":{"position":[[78,6]]},"131":{"position":[[78,6]]},"133":{"position":[[78,6]]},"135":{"position":[[78,6]]},"137":{"position":[[78,6]]},"139":{"position":[[78,6]]},"141":{"position":[[78,6]]},"143":{"position":[[78,6]]},"145":{"position":[[78,6]]},"147":{"position":[[281,6]]},"149":{"position":[[96,6]]},"151":{"position":[[96,6]]},"153":{"position":[[101,6]]},"155":{"position":[[101,6]]},"157":{"position":[[101,6]]},"159":{"position":[[78,6]]},"161":{"position":[[101,6]]},"163":{"position":[[98,6]]},"165":{"position":[[101,6]]},"167":{"position":[[101,6]]},"169":{"position":[[101,6]]},"171":{"position":[[233,6]]},"173":{"position":[[1579,6]]},"175":{"position":[[78,6]]},"177":{"position":[[101,6]]},"179":{"position":[[78,6]]}}}],["window.app",{"_index":2114,"t":{"111":{"position":[[1469,10]]}}}],["window.mask",{"_index":739,"t":{"53":{"position":[[766,11],[3539,11]]}}}],["window.webfontconfig",{"_index":2659,"t":{"169":{"position":[[194,20]]}}}],["without",{"_index":2585,"t":{"163":{"position":[[811,7]]}}}],["won't",{"_index":1487,"t":{"91":{"position":[[607,5]]}}}],["wont",{"_index":1719,"t":{"97":{"position":[[429,4]]}}}],["wordwrap",{"_index":515,"t":{"47":{"position":[[2403,9]]},"167":{"position":[[582,9]]}}}],["wordwrapwidth",{"_index":516,"t":{"47":{"position":[[2419,14]]},"167":{"position":[[598,14]]}}}],["work",{"_index":1720,"t":{"97":{"position":[[434,4]]}}}],["works",{"_index":829,"t":{"53":{"position":[[5047,5]]},"153":{"position":[[380,5]]}}}],["world",{"_index":1476,"t":{"91":{"position":[[225,5],[1424,5],[5336,5]]}}}],["worldtransform",{"_index":1513,"t":{"91":{"position":[[1188,14]]}}}],["wrap",{"_index":1061,"t":{"63":{"position":[[2080,4]]},"69":{"position":[[2049,4]]},"71":{"position":[[1925,4]]},"105":{"position":[[2241,4]]},"129":{"position":[[2517,4]]},"173":{"position":[[1244,4]]}}}],["wrapping",{"_index":1858,"t":{"99":{"position":[[2634,8]]},"107":{"position":[[507,9],[1004,8]]}}}],["x",{"_index":145,"t":{"39":{"position":[[2533,2]]},"41":{"position":[[996,2]]},"43":{"position":[[1271,2]]},"49":{"position":[[535,2]]},"53":{"position":[[995,1],[1502,2],[5503,1],[6405,2],[9327,1],[9373,1],[9438,2]]},"79":{"position":[[1135,2]]},"107":{"position":[[1098,1]]},"121":{"position":[[234,2],[253,2],[283,2]]},"125":{"position":[[234,2],[253,2],[283,2],[592,2],[617,2],[642,2]]},"127":{"position":[[260,2],[276,2],[303,2]]},"129":{"position":[[253,2],[272,2],[302,2]]},"131":{"position":[[234,2],[253,2],[272,2]]},"133":{"position":[[234,2],[253,2],[272,2]]},"141":{"position":[[233,2],[251,2],[272,2]]},"143":{"position":[[234,2],[253,2],[272,2]]},"145":{"position":[[234,2],[253,2],[283,2]]}}}],["x+100",{"_index":1596,"t":{"91":{"position":[[3846,6]]}}}],["x,y",{"_index":1787,"t":{"99":{"position":[[1114,3]]},"129":{"position":[[1033,3]]}}}],["x1",{"_index":802,"t":{"53":{"position":[[3802,2],[8844,4],[8956,3],[9097,3],[9141,3],[9171,3],[9377,2],[9393,4]]}}}],["x2",{"_index":898,"t":{"53":{"position":[[8769,3],[8853,2],[8950,3],[9134,4],[9387,3]]}}}],["x3",{"_index":900,"t":{"53":{"position":[[8777,3],[8873,3],[8968,3],[9067,3],[9103,4],[9177,4]]}}}],["x4",{"_index":902,"t":{"53":{"position":[[8785,3],[8881,2],[8962,3],[9060,4]]}}}],["y",{"_index":146,"t":{"39":{"position":[[2539,2]]},"41":{"position":[[1002,2]]},"43":{"position":[[1274,1],[1321,3],[1688,3],[1858,3]]},"47":{"position":[[3752,1]]},"49":{"position":[[541,2],[2151,1]]},"53":{"position":[[1043,1],[1505,2],[5551,1],[6408,2],[9333,1],[9404,1],[9441,1]]},"79":{"position":[[515,2],[1148,2]]},"93":{"position":[[1954,1]]},"121":{"position":[[237,1],[256,1],[286,1]]},"125":{"position":[[237,1],[256,1],[286,1],[595,1],[620,1],[645,1]]},"127":{"position":[[263,1],[279,1],[306,1]]},"129":{"position":[[256,1],[275,1],[305,1]]},"131":{"position":[[237,1],[256,1],[275,1]]},"133":{"position":[[237,1],[256,1],[275,1]]},"141":{"position":[[236,1],[254,1],[275,1]]},"143":{"position":[[237,1],[256,1],[275,1]]},"145":{"position":[[237,1],[256,1],[286,1]]}}}],["y+300",{"_index":1597,"t":{"91":{"position":[[3853,5]]}}}],["y1",{"_index":804,"t":{"53":{"position":[[3844,2],[4005,4],[8765,3],[8859,2],[8980,5],[9073,3],[9147,3],[9165,3],[9408,2],[9424,4]]}}}],["y2",{"_index":899,"t":{"53":{"position":[[8773,3],[8866,3],[8974,3],[9159,3],[9418,3]]}}}],["y3",{"_index":901,"t":{"53":{"position":[[8781,3],[8887,2],[8944,3],[9079,3],[9091,3],[9153,3]]}}}],["y4",{"_index":903,"t":{"53":{"position":[[8789,3],[8894,4],[8937,4],[9085,3]]}}}],["yay",{"_index":2564,"t":{"161":{"position":[[310,6]]}}}],["yellow",{"_index":1750,"t":{"97":{"position":[[973,8]]}}}],["yellowstar",{"_index":1296,"t":{"81":{"position":[[147,10]]}}}],["yes",{"_index":2600,"t":{"163":{"position":[[1308,4]]}}}],["yoghurt",{"_index":15,"t":{"39":{"position":[[76,7]]}}}],["z",{"_index":659,"t":{"49":{"position":[[529,2],[1546,1],[1600,2],[1696,2],[2045,2]]},"99":{"position":[[1105,3]]},"129":{"position":[[1024,3]]}}}],["zero",{"_index":2154,"t":{"115":{"position":[[829,4]]}}}],["zoom",{"_index":1609,"t":{"91":{"position":[[4327,5],[4528,4],[4655,5],[4709,5],[5479,4]]},"127":{"position":[[1112,5],[1466,5]]}}}]],"pipeline":["stemmer"]}}] \ No newline at end of file diff --git a/search-index-guides.json b/search-index-guides.json index 7fae7d5c1..06978ea15 100644 --- a/search-index-guides.json +++ b/search-index-guides.json @@ -1 +1 @@ -[{"documents":[{"i":197,"t":"Welcome","u":"/guides","b":[]},{"i":203,"t":"Architecture Overview","u":"/guides/basics/architecture-overview","b":["Basics"]},{"i":211,"t":"Getting Started","u":"/guides/basics/getting-started","b":["Basics"]},{"i":237,"t":"Render Loop","u":"/guides/basics/render-loop","b":["Basics"]},{"i":249,"t":"Scene Graph","u":"/guides/basics/scene-graph","b":["Basics"]},{"i":263,"t":"What PixiJS Is","u":"/guides/basics/what-pixijs-is","b":["Basics"]},{"i":277,"t":"What PixiJS Is Not","u":"/guides/basics/what-pixijs-is-not","b":["Basics"]},{"i":295,"t":"PixiJS Guides","u":"/guides/components/assets","b":["Components"]},{"i":310,"t":"Containers","u":"/guides/components/containers","b":["Components"]},{"i":318,"t":"Display Objects","u":"/guides/components/display-object","b":["Components"]},{"i":322,"t":"Graphics","u":"/guides/components/graphics","b":["Components"]},{"i":336,"t":"Interaction","u":"/guides/components/interaction","b":["Components"]},{"i":350,"t":"Spritesheets","u":"/guides/components/sprite-sheets","b":["Components"]},{"i":358,"t":"Sprites","u":"/guides/components/sprites","b":["Components"]},{"i":370,"t":"Text","u":"/guides/components/text","b":["Components"]},{"i":388,"t":"Textures","u":"/guides/components/textures","b":["Components"]},{"i":406,"t":"Upgrading PixiJS","u":"/guides/migrations/upgrading","b":["Migrations"]},{"i":408,"t":"v5 Migration Guide","u":"/guides/migrations/v5","b":["Migrations"]},{"i":438,"t":"v6 Migration Guide","u":"/guides/migrations/v6","b":["Migrations"]},{"i":444,"t":"v7 Migration Guide","u":"/guides/migrations/v7","b":["Migrations"]},{"i":480,"t":"Performance Tips","u":"/guides/production/performance-tips","b":["Production"]}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/197",[0,3.211]],["t/203",[1,2.482,2,2.482]],["t/211",[3,2.482,4,2.482]],["t/237",[5,2.482,6,2.482]],["t/249",[7,2.482,8,2.482]],["t/263",[9,1.897]],["t/277",[9,1.897]],["t/295",[9,1.467,10,2.482]],["t/310",[11,3.211]],["t/318",[12,2.482,13,2.482]],["t/322",[14,3.211]],["t/336",[15,3.211]],["t/350",[16,3.211]],["t/358",[17,3.211]],["t/370",[18,3.211]],["t/388",[19,3.211]],["t/406",[9,1.467,20,2.482]],["t/408",[21,2.023,22,1.385,23,1.385]],["t/438",[22,1.385,23,1.385,24,2.023]],["t/444",[22,1.385,23,1.385,25,2.023]],["t/480",[26,2.482,27,2.482]]],"invertedIndex":[["architecture",{"_index":1,"t":{"203":{"position":[[0,12]]}}}],["containers",{"_index":11,"t":{"310":{"position":[[0,10]]}}}],["display",{"_index":12,"t":{"318":{"position":[[0,7]]}}}],["getting",{"_index":3,"t":{"211":{"position":[[0,7]]}}}],["graph",{"_index":8,"t":{"249":{"position":[[6,5]]}}}],["graphics",{"_index":14,"t":{"322":{"position":[[0,8]]}}}],["guide",{"_index":23,"t":{"408":{"position":[[13,5]]},"438":{"position":[[13,5]]},"444":{"position":[[13,5]]}}}],["guides",{"_index":10,"t":{"295":{"position":[[7,6]]}}}],["interaction",{"_index":15,"t":{"336":{"position":[[0,11]]}}}],["loop",{"_index":6,"t":{"237":{"position":[[7,4]]}}}],["migration",{"_index":22,"t":{"408":{"position":[[3,9]]},"438":{"position":[[3,9]]},"444":{"position":[[3,9]]}}}],["objects",{"_index":13,"t":{"318":{"position":[[8,7]]}}}],["overview",{"_index":2,"t":{"203":{"position":[[13,8]]}}}],["performance",{"_index":26,"t":{"480":{"position":[[0,11]]}}}],["pixijs",{"_index":9,"t":{"263":{"position":[[5,6]]},"277":{"position":[[5,6]]},"295":{"position":[[0,6]]},"406":{"position":[[10,6]]}}}],["render",{"_index":5,"t":{"237":{"position":[[0,6]]}}}],["scene",{"_index":7,"t":{"249":{"position":[[0,5]]}}}],["sprites",{"_index":17,"t":{"358":{"position":[[0,7]]}}}],["spritesheets",{"_index":16,"t":{"350":{"position":[[0,12]]}}}],["started",{"_index":4,"t":{"211":{"position":[[8,7]]}}}],["text",{"_index":18,"t":{"370":{"position":[[0,4]]}}}],["textures",{"_index":19,"t":{"388":{"position":[[0,8]]}}}],["tips",{"_index":27,"t":{"480":{"position":[[12,4]]}}}],["upgrading",{"_index":20,"t":{"406":{"position":[[0,9]]}}}],["v5",{"_index":21,"t":{"408":{"position":[[0,2]]}}}],["v6",{"_index":24,"t":{"438":{"position":[[0,2]]}}}],["v7",{"_index":25,"t":{"444":{"position":[[0,2]]}}}],["welcome",{"_index":0,"t":{"197":{"position":[[0,7]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":199,"t":"About The Guides","u":"/guides","h":"#about-the-guides","p":197},{"i":201,"t":"Other Resources","u":"/guides","h":"#other-resources","p":197},{"i":205,"t":"The Code","u":"/guides/basics/architecture-overview","h":"#the-code","p":203},{"i":207,"t":"The Components","u":"/guides/basics/architecture-overview","h":"#the-components","p":203},{"i":209,"t":"Major Components","u":"/guides/basics/architecture-overview","h":"#major-components","p":203},{"i":213,"t":"Advanced Users","u":"/guides/basics/getting-started","h":"#advanced-users","p":211},{"i":215,"t":"A Note About JavaScript","u":"/guides/basics/getting-started","h":"#a-note-about-javascript","p":211},{"i":217,"t":"Components of a PixiJS Application","u":"/guides/basics/getting-started","h":"#components-of-a-pixijs-application","p":211},{"i":219,"t":"The HTML File","u":"/guides/basics/getting-started","h":"#the-html-file","p":211},{"i":221,"t":"Serving the File","u":"/guides/basics/getting-started","h":"#serving-the-file","p":211},{"i":223,"t":"Loading PixiJS","u":"/guides/basics/getting-started","h":"#loading-pixijs","p":211},{"i":225,"t":"Creating an Application","u":"/guides/basics/getting-started","h":"#creating-an-application","p":211},{"i":227,"t":"Adding the View to the DOM","u":"/guides/basics/getting-started","h":"#adding-the-view-to-the-dom","p":211},{"i":229,"t":"Creating a Sprite","u":"/guides/basics/getting-started","h":"#creating-a-sprite","p":211},{"i":231,"t":"Adding the Sprite to the Stage","u":"/guides/basics/getting-started","h":"#adding-the-sprite-to-the-stage","p":211},{"i":233,"t":"Writing an Update Loop","u":"/guides/basics/getting-started","h":"#writing-an-update-loop","p":211},{"i":235,"t":"Putting It All Together","u":"/guides/basics/getting-started","h":"#putting-it-all-together","p":211},{"i":239,"t":"Running Ticker Callbacks","u":"/guides/basics/render-loop","h":"#running-ticker-callbacks","p":237},{"i":241,"t":"Updating the Scene Graph","u":"/guides/basics/render-loop","h":"#updating-the-scene-graph","p":237},{"i":243,"t":"Rendering the Scene Graph","u":"/guides/basics/render-loop","h":"#rendering-the-scene-graph","p":237},{"i":245,"t":"Frame Rates","u":"/guides/basics/render-loop","h":"#frame-rates","p":237},{"i":247,"t":"Custom Render Loops","u":"/guides/basics/render-loop","h":"#custom-render-loops","p":237},{"i":251,"t":"The Scene Graph Is a Tree","u":"/guides/basics/scene-graph","h":"#the-scene-graph-is-a-tree","p":249},{"i":253,"t":"Parents and Children","u":"/guides/basics/scene-graph","h":"#parents-and-children","p":249},{"i":255,"t":"Render Order","u":"/guides/basics/scene-graph","h":"#render-order","p":249},{"i":257,"t":"Culling","u":"/guides/basics/scene-graph","h":"#culling","p":249},{"i":259,"t":"Local vs Global Coordinates","u":"/guides/basics/scene-graph","h":"#local-vs-global-coordinates","p":249},{"i":261,"t":"Global vs Screen Coordinates","u":"/guides/basics/scene-graph","h":"#global-vs-screen-coordinates","p":249},{"i":265,"t":"PixiJS Is ... Fast","u":"/guides/basics/what-pixijs-is","h":"#pixijs-is--fast","p":263},{"i":267,"t":"... More Than Just Sprites","u":"/guides/basics/what-pixijs-is","h":"#-more-than-just-sprites","p":263},{"i":269,"t":"... WebGL Native","u":"/guides/basics/what-pixijs-is","h":"#-webgl-native","p":263},{"i":271,"t":"... Open Source","u":"/guides/basics/what-pixijs-is","h":"#-open-source","p":263},{"i":273,"t":"... Extensible","u":"/guides/basics/what-pixijs-is","h":"#-extensible","p":263},{"i":275,"t":"... Easy to Deploy","u":"/guides/basics/what-pixijs-is","h":"#-easy-to-deploy","p":263},{"i":279,"t":"PixiJS Is Not ... A Framework","u":"/guides/basics/what-pixijs-is-not","h":"#pixijs-is-not--a-framework","p":277},{"i":281,"t":"... A 3D Renderer","u":"/guides/basics/what-pixijs-is-not","h":"#-a-3d-renderer","p":277},{"i":283,"t":"... A Mobile App","u":"/guides/basics/what-pixijs-is-not","h":"#-a-mobile-app","p":277},{"i":285,"t":"... A UI Library","u":"/guides/basics/what-pixijs-is-not","h":"#-a-ui-library","p":277},{"i":287,"t":"... A Data Store","u":"/guides/basics/what-pixijs-is-not","h":"#-a-data-store","p":277},{"i":289,"t":"... An Audio Library","u":"/guides/basics/what-pixijs-is-not","h":"#-an-audio-library","p":277},{"i":291,"t":"... A Development Environment","u":"/guides/basics/what-pixijs-is-not","h":"#-a-development-environment","p":277},{"i":293,"t":"So Is PixiJS Right For Me?","u":"/guides/basics/what-pixijs-is-not","h":"#so-is-pixijs-right-for-me","p":277},{"i":296,"t":"The Assets package","u":"/guides/components/assets","h":"#the-assets-package","p":295},{"i":298,"t":"Getting started","u":"/guides/components/assets","h":"#getting-started","p":295},{"i":300,"t":"Making our first Assets Promise","u":"/guides/components/assets","h":"#making-our-first-assets-promise","p":295},{"i":302,"t":"Warning about solved promises","u":"/guides/components/assets","h":"#warning-about-solved-promises","p":295},{"i":304,"t":"Using Async/Await","u":"/guides/components/assets","h":"#using-asyncawait","p":295},{"i":306,"t":"Loading multiple assets","u":"/guides/components/assets","h":"#loading-multiple-assets","p":295},{"i":308,"t":"Background loading","u":"/guides/components/assets","h":"#background-loading","p":295},{"i":312,"t":"Containers as Groups","u":"/guides/components/containers","h":"#containers-as-groups","p":310},{"i":314,"t":"Masking","u":"/guides/components/containers","h":"#masking","p":310},{"i":316,"t":"Filtering","u":"/guides/components/containers","h":"#filtering","p":310},{"i":320,"t":"Commonly Used Attributes","u":"/guides/components/display-object","h":"#commonly-used-attributes","p":318},{"i":324,"t":"Graphics Is About Building - Not Drawing","u":"/guides/components/graphics","h":"#graphics-is-about-building---not-drawing","p":322},{"i":326,"t":"Types of Primitives","u":"/guides/components/graphics","h":"#types-of-primitives","p":322},{"i":328,"t":"The Geometry List","u":"/guides/components/graphics","h":"#the-geometry-list","p":322},{"i":330,"t":"Graphics For Display","u":"/guides/components/graphics","h":"#graphics-for-display","p":322},{"i":332,"t":"Graphics as a Mask","u":"/guides/components/graphics","h":"#graphics-as-a-mask","p":322},{"i":334,"t":"Caveats and Gotchas","u":"/guides/components/graphics","h":"#caveats-and-gotchas","p":322},{"i":338,"t":"Event Modes","u":"/guides/components/interaction","h":"#event-modes","p":336},{"i":340,"t":"Event Types","u":"/guides/components/interaction","h":"#event-types","p":336},{"i":342,"t":"Enabling Interaction","u":"/guides/components/interaction","h":"#enabling-interaction","p":336},{"i":344,"t":"Checking if Object is Interactive","u":"/guides/components/interaction","h":"#checking-if-object-is-interactive","p":336},{"i":346,"t":"Use Pointer Events","u":"/guides/components/interaction","h":"#use-pointer-events","p":336},{"i":348,"t":"Optimization","u":"/guides/components/interaction","h":"#optimization","p":336},{"i":352,"t":"Anatomy of a Spritesheet","u":"/guides/components/sprite-sheets","h":"#anatomy-of-a-spritesheet","p":350},{"i":354,"t":"Doubly Efficient","u":"/guides/components/sprite-sheets","h":"#doubly-efficient","p":350},{"i":356,"t":"Creating SpriteSheets","u":"/guides/components/sprite-sheets","h":"#creating-spritesheets","p":350},{"i":360,"t":"Creating Sprites","u":"/guides/components/sprites","h":"#creating-sprites","p":358},{"i":362,"t":"Using Sprites","u":"/guides/components/sprites","h":"#using-sprites","p":358},{"i":364,"t":"Alpha, Tint and Blend Modes","u":"/guides/components/sprites","h":"#alpha-tint-and-blend-modes","p":358},{"i":366,"t":"Scale vs Width & Height","u":"/guides/components/sprites","h":"#scale-vs-width--height","p":358},{"i":368,"t":"Pivot vs Anchor","u":"/guides/components/sprites","h":"#pivot-vs-anchor","p":358},{"i":372,"t":"There Are Two Kinds of Text","u":"/guides/components/text","h":"#there-are-two-kinds-of-text","p":370},{"i":374,"t":"The Text Object","u":"/guides/components/text","h":"#the-text-object","p":370},{"i":376,"t":"Text Styles","u":"/guides/components/text","h":"#text-styles","p":370},{"i":378,"t":"Loading and Using Fonts","u":"/guides/components/text","h":"#loading-and-using-fonts","p":370},{"i":380,"t":"Caveats and Gotchas","u":"/guides/components/text","h":"#caveats-and-gotchas","p":370},{"i":382,"t":"BitmapText","u":"/guides/components/text","h":"#bitmaptext","p":370},{"i":384,"t":"BitmapFont","u":"/guides/components/text","h":"#bitmapfont","p":370},{"i":386,"t":"Selecting the Right Approach","u":"/guides/components/text","h":"#selecting-the-right-approach","p":370},{"i":390,"t":"Life-cycle of a Texture","u":"/guides/components/textures","h":"#life-cycle-of-a-texture","p":388},{"i":392,"t":"Serving the Image","u":"/guides/components/textures","h":"#serving-the-image","p":388},{"i":394,"t":"Loading the Image","u":"/guides/components/textures","h":"#loading-the-image","p":388},{"i":396,"t":"BaseTextures Own the Data","u":"/guides/components/textures","h":"#basetextures-own-the-data","p":388},{"i":398,"t":"Textures are a View on BaseTextures","u":"/guides/components/textures","h":"#textures-are-a-view-on-basetextures","p":388},{"i":400,"t":"Loading Textures","u":"/guides/components/textures","h":"#loading-textures","p":388},{"i":402,"t":"Unloading Textures","u":"/guides/components/textures","h":"#unloading-textures","p":388},{"i":404,"t":"Beyond Images","u":"/guides/components/textures","h":"#beyond-images","p":388},{"i":410,"t":"🚧 API Changes","u":"/guides/migrations/v5","h":"#-api-changes","p":408},{"i":411,"t":"Making WebGL First-Class","u":"/guides/migrations/v5","h":"#making-webgl-first-class","p":408},{"i":413,"t":"Renderer Parameters","u":"/guides/migrations/v5","h":"#renderer-parameters","p":408},{"i":415,"t":"Mesh, Plane, Rope","u":"/guides/migrations/v5","h":"#mesh-plane-rope","p":408},{"i":417,"t":"Graphics Holes","u":"/guides/migrations/v5","h":"#graphics-holes","p":408},{"i":419,"t":"Filter Padding","u":"/guides/migrations/v5","h":"#filter-padding","p":408},{"i":421,"t":"Filter Default Vertex Shader","u":"/guides/migrations/v5","h":"#filter-default-vertex-shader","p":408},{"i":423,"t":"Enable Mipmapping for RenderTexture","u":"/guides/migrations/v5","h":"#enable-mipmapping-for-rendertexture","p":408},{"i":425,"t":"BaseTexture Resources","u":"/guides/migrations/v5","h":"#basetexture-resources","p":408},{"i":427,"t":"BaseTexture.source","u":"/guides/migrations/v5","h":"#basetexturesource","p":408},{"i":429,"t":"Graphics Interaction","u":"/guides/migrations/v5","h":"#graphics-interaction","p":408},{"i":431,"t":"πŸ“¦ Publishing Changes","u":"/guides/migrations/v5","h":"#-publishing-changes","p":408},{"i":432,"t":"Canvas Becomes Legacy","u":"/guides/migrations/v5","h":"#canvas-becomes-legacy","p":408},{"i":434,"t":"Bundling Changes","u":"/guides/migrations/v5","h":"#bundling-changes","p":408},{"i":436,"t":"Webpack","u":"/guides/migrations/v5","h":"#webpack","p":408},{"i":440,"t":"Typings","u":"/guides/migrations/v6","h":"#typings","p":438},{"i":442,"t":"Mesh Internals","u":"/guides/migrations/v6","h":"#mesh-internals","p":438},{"i":446,"t":"πŸ‘‹ Dropping Internet Explorer","u":"/guides/migrations/v7","h":"#-dropping-internet-explorer","p":444},{"i":448,"t":"πŸ—‘οΈ Remove Polyfills","u":"/guides/migrations/v7","h":"#️-remove-polyfills","p":444},{"i":450,"t":"πŸ’¬ Output ES2020 (modules) and ES2017 (browser)","u":"/guides/migrations/v7","h":"#-output-es2020-modules-and-es2017-browser","p":444},{"i":452,"t":"🐭 Replaces InteractionManager with EventSystem","u":"/guides/migrations/v7","h":"#-replaces-interactionmanager-with-eventsystem","p":444},{"i":454,"t":"πŸ“¦ Replaces Loader with Assets","u":"/guides/migrations/v7","h":"#-replaces-loader-with-assets","p":444},{"i":456,"t":"🀝 Abandon the use of peerDependencies","u":"/guides/migrations/v7","h":"#-abandon-the-use-of-peerdependencies","p":444},{"i":458,"t":"πŸ‘‚ Other Changes","u":"/guides/migrations/v7","h":"#-other-changes","p":444},{"i":460,"t":"Exports from @pixi/core","u":"/guides/migrations/v7","h":"#exports-from-pixicore","p":444},{"i":462,"t":"Extract and Prepare Systems","u":"/guides/migrations/v7","h":"#extract-and-prepare-systems","p":444},{"i":464,"t":"Extensions Self-Install","u":"/guides/migrations/v7","h":"#extensions-self-install","p":444},{"i":466,"t":"Using hitTest with Events","u":"/guides/migrations/v7","h":"#using-hittest-with-events","p":444},{"i":468,"t":"New Async Extract Methods","u":"/guides/migrations/v7","h":"#new-async-extract-methods","p":444},{"i":470,"t":"Interactive Move Events","u":"/guides/migrations/v7","h":"#interactive-move-events","p":444},{"i":472,"t":"Interactive Property Handlers are Removed","u":"/guides/migrations/v7","h":"#interactive-property-handlers-are-removed","p":444},{"i":474,"t":"Property buttonMode has been removed","u":"/guides/migrations/v7","h":"#property-buttonmode-has-been-removed","p":444},{"i":476,"t":"☝️ Suggestions for Upgrading","u":"/guides/migrations/v7","h":"#️-suggestions-for-upgrading","p":444},{"i":478,"t":"πŸ—οΈ Plugin Supported","u":"/guides/migrations/v7","h":"#️-plugin-supported","p":444},{"i":481,"t":"General","u":"/guides/production/performance-tips","h":"#general","p":480},{"i":483,"t":"Sprites","u":"/guides/production/performance-tips","h":"#sprites","p":480},{"i":485,"t":"Graphics","u":"/guides/production/performance-tips","h":"#graphics","p":480},{"i":487,"t":"Texture","u":"/guides/production/performance-tips","h":"#texture","p":480},{"i":489,"t":"Text","u":"/guides/production/performance-tips","h":"#text","p":480},{"i":491,"t":"Masks","u":"/guides/production/performance-tips","h":"#masks","p":480},{"i":493,"t":"Filters","u":"/guides/production/performance-tips","h":"#filters","p":480},{"i":495,"t":"BlendModes","u":"/guides/production/performance-tips","h":"#blendmodes","p":480},{"i":497,"t":"CacheAsBitmap","u":"/guides/production/performance-tips","h":"#cacheasbitmap","p":480},{"i":499,"t":"Events","u":"/guides/production/performance-tips","h":"#events","p":480}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/199",[0,5.904]],["t/201",[1,5.232]],["t/205",[2,5.904]],["t/207",[3,4.79]],["t/209",[3,3.915,4,4.825]],["t/213",[5,4.825,6,4.825]],["t/215",[7,4.825,8,4.825]],["t/217",[3,3.311,9,2.9,10,3.616]],["t/219",[11,4.825,12,4.277]],["t/221",[12,4.277,13,4.277]],["t/223",[9,3.43,14,3.25]],["t/225",[10,4.277,15,3.645]],["t/227",[16,3.616,17,3.616,18,4.08]],["t/229",[15,3.645,19,4.277]],["t/231",[16,3.616,19,3.616,20,4.08]],["t/233",[21,4.08,22,4.08,23,4.08]],["t/235",[24,4.825,25,4.825]],["t/239",[26,4.08,27,4.08,28,4.08]],["t/241",[29,4.08,30,3.311,31,3.311]],["t/243",[30,3.311,31,3.311,32,4.08]],["t/245",[33,4.825,34,4.825]],["t/247",[35,4.08,36,3.616,37,4.08]],["t/251",[30,3.311,31,3.311,38,4.08]],["t/253",[39,4.825,40,4.825]],["t/255",[36,4.277,41,4.825]],["t/257",[42,5.904]],["t/259",[43,3.534,44,2.67,45,3.133,46,3.133]],["t/261",[44,2.67,45,3.133,46,3.133,47,3.534]],["t/265",[9,2.9,48,1.507,49,4.08]],["t/267",[48,1.507,50,4.08,51,3.082]],["t/269",[48,1.507,52,3.616,53,4.08]],["t/271",[48,1.507,54,4.08,55,4.08]],["t/273",[48,1.782,56,4.825]],["t/275",[48,1.507,57,4.08,58,4.08]],["t/279",[9,2.9,48,1.507,59,4.08]],["t/281",[48,1.507,60,4.08,61,3.616]],["t/283",[48,1.507,62,4.08,63,4.08]],["t/285",[48,1.507,64,4.08,65,3.616]],["t/287",[48,1.507,66,3.616,67,4.08]],["t/289",[48,1.507,65,3.616,68,4.08]],["t/291",[48,1.507,69,4.08,70,4.08]],["t/293",[9,3.43,71,4.277]],["t/296",[72,3.645,73,4.825]],["t/298",[74,4.825,75,4.825]],["t/300",[72,2.67,76,3.133,77,3.133,78,3.534]],["t/302",[79,4.08,80,4.08,81,4.08]],["t/304",[82,3.645,83,4.825]],["t/306",[14,2.748,72,3.082,84,4.08]],["t/308",[14,3.25,85,4.825]],["t/312",[86,4.825,87,4.825]],["t/314",[88,5.904]],["t/316",[89,5.904]],["t/320",[90,4.08,91,4.08,92,4.08]],["t/324",[93,2.748,94,4.08,95,4.08]],["t/326",[96,4.277,97,4.825]],["t/328",[98,4.825,99,4.825]],["t/330",[93,3.25,100,4.825]],["t/332",[93,3.25,101,4.825]],["t/334",[102,4.277,103,4.277]],["t/338",[104,4.277,105,4.277]],["t/340",[96,4.277,104,4.277]],["t/342",[106,4.825,107,4.277]],["t/344",[108,4.08,109,3.616,110,3.311]],["t/346",[111,3.616,112,4.08,113,3.082]],["t/348",[114,5.904]],["t/352",[115,4.825,116,4.825]],["t/354",[117,4.825,118,4.825]],["t/356",[15,3.645,119,4.825]],["t/360",[15,3.645,51,3.645]],["t/362",[51,3.645,82,3.645]],["t/364",[105,3.133,120,3.534,121,3.534,122,3.534]],["t/366",[44,2.355,48,1.151,123,3.117,124,3.117,125,3.117]],["t/368",[44,3.082,126,4.08,127,4.08]],["t/372",[128,4.08,129,4.08,130,3.082]],["t/374",[109,4.277,130,3.645]],["t/376",[130,3.645,131,4.825]],["t/378",[14,2.748,82,3.082,132,4.08]],["t/380",[102,4.277,103,4.277]],["t/382",[133,5.904]],["t/384",[134,5.904]],["t/386",[71,3.616,135,4.08,136,4.08]],["t/390",[137,4.08,138,4.08,139,3.616]],["t/392",[13,4.277,140,4.277]],["t/394",[14,3.25,140,4.277]],["t/396",[66,4.277,141,4.277]],["t/398",[17,3.616,141,3.616,142,3.311]],["t/400",[14,3.25,142,3.915]],["t/402",[142,3.915,143,4.825]],["t/404",[144,4.825,145,4.825]],["t/410",[48,1.507,146,4.08,147,3.082]],["t/411",[52,3.133,76,3.133,77,3.133,148,3.534]],["t/413",[61,4.277,149,4.825]],["t/415",[150,3.616,151,4.08,152,4.08]],["t/417",[93,3.25,153,4.825]],["t/419",[154,4.277,155,4.825]],["t/421",[154,3.133,156,3.534,157,3.534,158,3.534]],["t/423",[159,4.08,160,4.08,161,4.08]],["t/425",[1,4.277,162,4.825]],["t/427",[163,5.904]],["t/429",[93,3.25,107,4.277]],["t/431",[48,1.507,147,3.082,164,4.08]],["t/432",[165,4.08,166,4.08,167,4.08]],["t/434",[147,3.645,168,4.825]],["t/436",[169,5.904]],["t/440",[170,5.904]],["t/442",[150,4.277,171,4.825]],["t/446",[48,1.305,172,3.534,173,3.534,174,3.534]],["t/448",[48,1.507,175,4.08,176,4.08]],["t/450",[48,1.03,177,2.788,178,2.788,179,2.788,180,2.788,181,2.788]],["t/452",[48,1.305,182,3.133,183,3.534,184,3.534]],["t/454",[48,1.305,72,2.67,182,3.133,185,3.534]],["t/456",[48,1.305,111,3.133,186,3.534,187,3.534]],["t/458",[48,1.782,147,3.645]],["t/460",[188,4.825,189,4.825]],["t/462",[190,3.616,191,4.08,192,4.08]],["t/464",[193,4.08,194,4.08,195,4.08]],["t/466",[82,3.082,113,3.082,196,4.08]],["t/468",[190,3.133,197,3.534,198,3.534,199,3.534]],["t/470",[110,3.311,113,3.082,200,4.08]],["t/472",[110,2.868,201,3.133,202,3.534,203,3.133]],["t/474",[201,3.616,203,3.616,204,4.08]],["t/476",[48,1.507,205,4.08,206,4.08]],["t/478",[48,1.507,207,4.08,208,4.08]],["t/481",[209,5.904]],["t/483",[51,4.46]],["t/485",[93,3.977]],["t/487",[139,5.232]],["t/489",[130,4.46]],["t/491",[210,5.904]],["t/493",[211,5.904]],["t/495",[212,5.904]],["t/497",[213,5.904]],["t/499",[113,4.46]]],"invertedIndex":[["",{"_index":48,"t":{"265":{"position":[[10,3]]},"267":{"position":[[0,3]]},"269":{"position":[[0,3]]},"271":{"position":[[0,3]]},"273":{"position":[[0,3]]},"275":{"position":[[0,3]]},"279":{"position":[[14,3]]},"281":{"position":[[0,3]]},"283":{"position":[[0,3]]},"285":{"position":[[0,3]]},"287":{"position":[[0,3]]},"289":{"position":[[0,3]]},"291":{"position":[[0,3]]},"366":{"position":[[15,1]]},"410":{"position":[[0,2]]},"431":{"position":[[0,2]]},"446":{"position":[[0,2]]},"448":{"position":[[0,3]]},"450":{"position":[[0,2]]},"452":{"position":[[0,2]]},"454":{"position":[[0,2]]},"456":{"position":[[0,2]]},"458":{"position":[[0,2]]},"476":{"position":[[0,2]]},"478":{"position":[[0,3]]}}}],["3d",{"_index":60,"t":{"281":{"position":[[6,2]]}}}],["abandon",{"_index":186,"t":{"456":{"position":[[3,7]]}}}],["adding",{"_index":16,"t":{"227":{"position":[[0,6]]},"231":{"position":[[0,6]]}}}],["advanced",{"_index":5,"t":{"213":{"position":[[0,8]]}}}],["alpha",{"_index":120,"t":{"364":{"position":[[0,6]]}}}],["anatomy",{"_index":115,"t":{"352":{"position":[[0,7]]}}}],["anchor",{"_index":127,"t":{"368":{"position":[[9,6]]}}}],["api",{"_index":146,"t":{"410":{"position":[[3,3]]}}}],["app",{"_index":63,"t":{"283":{"position":[[13,3]]}}}],["application",{"_index":10,"t":{"217":{"position":[[23,11]]},"225":{"position":[[12,11]]}}}],["approach",{"_index":136,"t":{"386":{"position":[[20,8]]}}}],["assets",{"_index":72,"t":{"296":{"position":[[4,6]]},"300":{"position":[[17,6]]},"306":{"position":[[17,6]]},"454":{"position":[[24,6]]}}}],["async",{"_index":198,"t":{"468":{"position":[[4,5]]}}}],["async/await",{"_index":83,"t":{"304":{"position":[[6,11]]}}}],["attributes",{"_index":92,"t":{"320":{"position":[[14,10]]}}}],["audio",{"_index":68,"t":{"289":{"position":[[7,5]]}}}],["background",{"_index":85,"t":{"308":{"position":[[0,10]]}}}],["basetexture",{"_index":162,"t":{"425":{"position":[[0,11]]}}}],["basetexture.source",{"_index":163,"t":{"427":{"position":[[0,18]]}}}],["basetextures",{"_index":141,"t":{"396":{"position":[[0,12]]},"398":{"position":[[23,12]]}}}],["becomes",{"_index":166,"t":{"432":{"position":[[7,7]]}}}],["beyond",{"_index":144,"t":{"404":{"position":[[0,6]]}}}],["bitmapfont",{"_index":134,"t":{"384":{"position":[[0,10]]}}}],["bitmaptext",{"_index":133,"t":{"382":{"position":[[0,10]]}}}],["blend",{"_index":122,"t":{"364":{"position":[[16,5]]}}}],["blendmodes",{"_index":212,"t":{"495":{"position":[[0,10]]}}}],["browser",{"_index":181,"t":{"450":{"position":[[38,9]]}}}],["building",{"_index":94,"t":{"324":{"position":[[18,8]]}}}],["bundling",{"_index":168,"t":{"434":{"position":[[0,8]]}}}],["buttonmode",{"_index":204,"t":{"474":{"position":[[9,10]]}}}],["cacheasbitmap",{"_index":213,"t":{"497":{"position":[[0,13]]}}}],["callbacks",{"_index":28,"t":{"239":{"position":[[15,9]]}}}],["canvas",{"_index":165,"t":{"432":{"position":[[0,6]]}}}],["caveats",{"_index":102,"t":{"334":{"position":[[0,7]]},"380":{"position":[[0,7]]}}}],["changes",{"_index":147,"t":{"410":{"position":[[7,7]]},"431":{"position":[[14,7]]},"434":{"position":[[9,7]]},"458":{"position":[[9,7]]}}}],["checking",{"_index":108,"t":{"344":{"position":[[0,8]]}}}],["children",{"_index":40,"t":{"253":{"position":[[12,8]]}}}],["class",{"_index":148,"t":{"411":{"position":[[19,5]]}}}],["code",{"_index":2,"t":{"205":{"position":[[4,4]]}}}],["commonly",{"_index":90,"t":{"320":{"position":[[0,8]]}}}],["components",{"_index":3,"t":{"207":{"position":[[4,10]]},"209":{"position":[[6,10]]},"217":{"position":[[0,10]]}}}],["containers",{"_index":86,"t":{"312":{"position":[[0,10]]}}}],["coordinates",{"_index":46,"t":{"259":{"position":[[16,11]]},"261":{"position":[[17,11]]}}}],["creating",{"_index":15,"t":{"225":{"position":[[0,8]]},"229":{"position":[[0,8]]},"356":{"position":[[0,8]]},"360":{"position":[[0,8]]}}}],["culling",{"_index":42,"t":{"257":{"position":[[0,7]]}}}],["custom",{"_index":35,"t":{"247":{"position":[[0,6]]}}}],["cycle",{"_index":138,"t":{"390":{"position":[[5,5]]}}}],["data",{"_index":66,"t":{"287":{"position":[[6,4]]},"396":{"position":[[21,4]]}}}],["default",{"_index":156,"t":{"421":{"position":[[7,7]]}}}],["deploy",{"_index":58,"t":{"275":{"position":[[12,6]]}}}],["development",{"_index":69,"t":{"291":{"position":[[6,11]]}}}],["display",{"_index":100,"t":{"330":{"position":[[13,7]]}}}],["dom",{"_index":18,"t":{"227":{"position":[[23,3]]}}}],["doubly",{"_index":117,"t":{"354":{"position":[[0,6]]}}}],["drawing",{"_index":95,"t":{"324":{"position":[[33,7]]}}}],["dropping",{"_index":172,"t":{"446":{"position":[[3,8]]}}}],["easy",{"_index":57,"t":{"275":{"position":[[4,4]]}}}],["efficient",{"_index":118,"t":{"354":{"position":[[7,9]]}}}],["enable",{"_index":159,"t":{"423":{"position":[[0,6]]}}}],["enabling",{"_index":106,"t":{"342":{"position":[[0,8]]}}}],["environment",{"_index":70,"t":{"291":{"position":[[18,11]]}}}],["es2017",{"_index":180,"t":{"450":{"position":[[31,6]]}}}],["es2020",{"_index":178,"t":{"450":{"position":[[10,6]]}}}],["event",{"_index":104,"t":{"338":{"position":[[0,5]]},"340":{"position":[[0,5]]}}}],["events",{"_index":113,"t":{"346":{"position":[[12,6]]},"466":{"position":[[19,6]]},"470":{"position":[[17,6]]},"499":{"position":[[0,6]]}}}],["eventsystem",{"_index":184,"t":{"452":{"position":[[36,11]]}}}],["explorer",{"_index":174,"t":{"446":{"position":[[21,8]]}}}],["exports",{"_index":188,"t":{"460":{"position":[[0,7]]}}}],["extensible",{"_index":56,"t":{"273":{"position":[[4,10]]}}}],["extensions",{"_index":193,"t":{"464":{"position":[[0,10]]}}}],["extract",{"_index":190,"t":{"462":{"position":[[0,7]]},"468":{"position":[[10,7]]}}}],["fast",{"_index":49,"t":{"265":{"position":[[14,4]]}}}],["file",{"_index":12,"t":{"219":{"position":[[9,4]]},"221":{"position":[[12,4]]}}}],["filter",{"_index":154,"t":{"419":{"position":[[0,6]]},"421":{"position":[[0,6]]}}}],["filtering",{"_index":89,"t":{"316":{"position":[[0,9]]}}}],["filters",{"_index":211,"t":{"493":{"position":[[0,7]]}}}],["first",{"_index":77,"t":{"300":{"position":[[11,5]]},"411":{"position":[[13,5]]}}}],["fonts",{"_index":132,"t":{"378":{"position":[[18,5]]}}}],["frame",{"_index":33,"t":{"245":{"position":[[0,5]]}}}],["framework",{"_index":59,"t":{"279":{"position":[[20,9]]}}}],["general",{"_index":209,"t":{"481":{"position":[[0,7]]}}}],["geometry",{"_index":98,"t":{"328":{"position":[[4,8]]}}}],["getting",{"_index":74,"t":{"298":{"position":[[0,7]]}}}],["global",{"_index":45,"t":{"259":{"position":[[9,6]]},"261":{"position":[[0,6]]}}}],["gotchas",{"_index":103,"t":{"334":{"position":[[12,7]]},"380":{"position":[[12,7]]}}}],["graph",{"_index":31,"t":{"241":{"position":[[19,5]]},"243":{"position":[[20,5]]},"251":{"position":[[10,5]]}}}],["graphics",{"_index":93,"t":{"324":{"position":[[0,8]]},"330":{"position":[[0,8]]},"332":{"position":[[0,8]]},"417":{"position":[[0,8]]},"429":{"position":[[0,8]]},"485":{"position":[[0,8]]}}}],["groups",{"_index":87,"t":{"312":{"position":[[14,6]]}}}],["guides",{"_index":0,"t":{"199":{"position":[[10,6]]}}}],["handlers",{"_index":202,"t":{"472":{"position":[[21,8]]}}}],["height",{"_index":125,"t":{"366":{"position":[[17,6]]}}}],["hittest",{"_index":196,"t":{"466":{"position":[[6,7]]}}}],["holes",{"_index":153,"t":{"417":{"position":[[9,5]]}}}],["html",{"_index":11,"t":{"219":{"position":[[4,4]]}}}],["image",{"_index":140,"t":{"392":{"position":[[12,5]]},"394":{"position":[[12,5]]}}}],["images",{"_index":145,"t":{"404":{"position":[[7,6]]}}}],["install",{"_index":195,"t":{"464":{"position":[[16,7]]}}}],["interaction",{"_index":107,"t":{"342":{"position":[[9,11]]},"429":{"position":[[9,11]]}}}],["interactionmanager",{"_index":183,"t":{"452":{"position":[[12,18]]}}}],["interactive",{"_index":110,"t":{"344":{"position":[[22,11]]},"470":{"position":[[0,11]]},"472":{"position":[[0,11]]}}}],["internals",{"_index":171,"t":{"442":{"position":[[5,9]]}}}],["internet",{"_index":173,"t":{"446":{"position":[[12,8]]}}}],["javascript",{"_index":8,"t":{"215":{"position":[[13,10]]}}}],["kinds",{"_index":129,"t":{"372":{"position":[[14,5]]}}}],["legacy",{"_index":167,"t":{"432":{"position":[[15,6]]}}}],["library",{"_index":65,"t":{"285":{"position":[[9,7]]},"289":{"position":[[13,7]]}}}],["life",{"_index":137,"t":{"390":{"position":[[0,4]]}}}],["list",{"_index":99,"t":{"328":{"position":[[13,4]]}}}],["loader",{"_index":185,"t":{"454":{"position":[[12,6]]}}}],["loading",{"_index":14,"t":{"223":{"position":[[0,7]]},"306":{"position":[[0,7]]},"308":{"position":[[11,7]]},"378":{"position":[[0,7]]},"394":{"position":[[0,7]]},"400":{"position":[[0,7]]}}}],["local",{"_index":43,"t":{"259":{"position":[[0,5]]}}}],["loop",{"_index":23,"t":{"233":{"position":[[18,4]]}}}],["loops",{"_index":37,"t":{"247":{"position":[[14,5]]}}}],["major",{"_index":4,"t":{"209":{"position":[[0,5]]}}}],["making",{"_index":76,"t":{"300":{"position":[[0,6]]},"411":{"position":[[0,6]]}}}],["mask",{"_index":101,"t":{"332":{"position":[[14,4]]}}}],["masking",{"_index":88,"t":{"314":{"position":[[0,7]]}}}],["masks",{"_index":210,"t":{"491":{"position":[[0,5]]}}}],["mesh",{"_index":150,"t":{"415":{"position":[[0,5]]},"442":{"position":[[0,4]]}}}],["methods",{"_index":199,"t":{"468":{"position":[[18,7]]}}}],["mipmapping",{"_index":160,"t":{"423":{"position":[[7,10]]}}}],["mobile",{"_index":62,"t":{"283":{"position":[[6,6]]}}}],["modes",{"_index":105,"t":{"338":{"position":[[6,5]]},"364":{"position":[[22,5]]}}}],["modules",{"_index":179,"t":{"450":{"position":[[17,9]]}}}],["more",{"_index":50,"t":{"267":{"position":[[4,4]]}}}],["move",{"_index":200,"t":{"470":{"position":[[12,4]]}}}],["multiple",{"_index":84,"t":{"306":{"position":[[8,8]]}}}],["native",{"_index":53,"t":{"269":{"position":[[10,6]]}}}],["new",{"_index":197,"t":{"468":{"position":[[0,3]]}}}],["note",{"_index":7,"t":{"215":{"position":[[2,4]]}}}],["object",{"_index":109,"t":{"344":{"position":[[12,6]]},"374":{"position":[[9,6]]}}}],["open",{"_index":54,"t":{"271":{"position":[[4,4]]}}}],["optimization",{"_index":114,"t":{"348":{"position":[[0,12]]}}}],["order",{"_index":41,"t":{"255":{"position":[[7,5]]}}}],["output",{"_index":177,"t":{"450":{"position":[[3,6]]}}}],["package",{"_index":73,"t":{"296":{"position":[[11,7]]}}}],["padding",{"_index":155,"t":{"419":{"position":[[7,7]]}}}],["parameters",{"_index":149,"t":{"413":{"position":[[9,10]]}}}],["parents",{"_index":39,"t":{"253":{"position":[[0,7]]}}}],["peerdependencies",{"_index":187,"t":{"456":{"position":[[22,16]]}}}],["pivot",{"_index":126,"t":{"368":{"position":[[0,5]]}}}],["pixi/core",{"_index":189,"t":{"460":{"position":[[13,10]]}}}],["pixijs",{"_index":9,"t":{"217":{"position":[[16,6]]},"223":{"position":[[8,6]]},"265":{"position":[[0,6]]},"279":{"position":[[0,6]]},"293":{"position":[[6,6]]}}}],["plane",{"_index":151,"t":{"415":{"position":[[6,6]]}}}],["plugin",{"_index":207,"t":{"478":{"position":[[4,6]]}}}],["pointer",{"_index":112,"t":{"346":{"position":[[4,7]]}}}],["polyfills",{"_index":176,"t":{"448":{"position":[[11,9]]}}}],["prepare",{"_index":191,"t":{"462":{"position":[[12,7]]}}}],["primitives",{"_index":97,"t":{"326":{"position":[[9,10]]}}}],["promise",{"_index":78,"t":{"300":{"position":[[24,7]]}}}],["promises",{"_index":81,"t":{"302":{"position":[[21,8]]}}}],["property",{"_index":201,"t":{"472":{"position":[[12,8]]},"474":{"position":[[0,8]]}}}],["publishing",{"_index":164,"t":{"431":{"position":[[3,10]]}}}],["putting",{"_index":24,"t":{"235":{"position":[[0,7]]}}}],["rates",{"_index":34,"t":{"245":{"position":[[6,5]]}}}],["remove",{"_index":175,"t":{"448":{"position":[[4,6]]}}}],["removed",{"_index":203,"t":{"472":{"position":[[34,7]]},"474":{"position":[[29,7]]}}}],["render",{"_index":36,"t":{"247":{"position":[[7,6]]},"255":{"position":[[0,6]]}}}],["renderer",{"_index":61,"t":{"281":{"position":[[9,8]]},"413":{"position":[[0,8]]}}}],["rendering",{"_index":32,"t":{"243":{"position":[[0,9]]}}}],["rendertexture",{"_index":161,"t":{"423":{"position":[[22,13]]}}}],["replaces",{"_index":182,"t":{"452":{"position":[[3,8]]},"454":{"position":[[3,8]]}}}],["resources",{"_index":1,"t":{"201":{"position":[[6,9]]},"425":{"position":[[12,9]]}}}],["right",{"_index":71,"t":{"293":{"position":[[13,5]]},"386":{"position":[[14,5]]}}}],["rope",{"_index":152,"t":{"415":{"position":[[13,4]]}}}],["running",{"_index":26,"t":{"239":{"position":[[0,7]]}}}],["scale",{"_index":123,"t":{"366":{"position":[[0,5]]}}}],["scene",{"_index":30,"t":{"241":{"position":[[13,5]]},"243":{"position":[[14,5]]},"251":{"position":[[4,5]]}}}],["screen",{"_index":47,"t":{"261":{"position":[[10,6]]}}}],["selecting",{"_index":135,"t":{"386":{"position":[[0,9]]}}}],["self",{"_index":194,"t":{"464":{"position":[[11,4]]}}}],["serving",{"_index":13,"t":{"221":{"position":[[0,7]]},"392":{"position":[[0,7]]}}}],["shader",{"_index":158,"t":{"421":{"position":[[22,6]]}}}],["solved",{"_index":80,"t":{"302":{"position":[[14,6]]}}}],["source",{"_index":55,"t":{"271":{"position":[[9,6]]}}}],["sprite",{"_index":19,"t":{"229":{"position":[[11,6]]},"231":{"position":[[11,6]]}}}],["sprites",{"_index":51,"t":{"267":{"position":[[19,7]]},"360":{"position":[[9,7]]},"362":{"position":[[6,7]]},"483":{"position":[[0,7]]}}}],["spritesheet",{"_index":116,"t":{"352":{"position":[[13,11]]}}}],["spritesheets",{"_index":119,"t":{"356":{"position":[[9,12]]}}}],["stage",{"_index":20,"t":{"231":{"position":[[25,5]]}}}],["started",{"_index":75,"t":{"298":{"position":[[8,7]]}}}],["store",{"_index":67,"t":{"287":{"position":[[11,5]]}}}],["styles",{"_index":131,"t":{"376":{"position":[[5,6]]}}}],["suggestions",{"_index":205,"t":{"476":{"position":[[3,11]]}}}],["supported",{"_index":208,"t":{"478":{"position":[[11,9]]}}}],["systems",{"_index":192,"t":{"462":{"position":[[20,7]]}}}],["text",{"_index":130,"t":{"372":{"position":[[23,4]]},"374":{"position":[[4,4]]},"376":{"position":[[0,4]]},"489":{"position":[[0,4]]}}}],["texture",{"_index":139,"t":{"390":{"position":[[16,7]]},"487":{"position":[[0,7]]}}}],["textures",{"_index":142,"t":{"398":{"position":[[0,8]]},"400":{"position":[[8,8]]},"402":{"position":[[10,8]]}}}],["ticker",{"_index":27,"t":{"239":{"position":[[8,6]]}}}],["tint",{"_index":121,"t":{"364":{"position":[[7,4]]}}}],["together",{"_index":25,"t":{"235":{"position":[[15,8]]}}}],["tree",{"_index":38,"t":{"251":{"position":[[21,4]]}}}],["two",{"_index":128,"t":{"372":{"position":[[10,3]]}}}],["types",{"_index":96,"t":{"326":{"position":[[0,5]]},"340":{"position":[[6,5]]}}}],["typings",{"_index":170,"t":{"440":{"position":[[0,7]]}}}],["ui",{"_index":64,"t":{"285":{"position":[[6,2]]}}}],["unloading",{"_index":143,"t":{"402":{"position":[[0,9]]}}}],["update",{"_index":22,"t":{"233":{"position":[[11,6]]}}}],["updating",{"_index":29,"t":{"241":{"position":[[0,8]]}}}],["upgrading",{"_index":206,"t":{"476":{"position":[[19,9]]}}}],["use",{"_index":111,"t":{"346":{"position":[[0,3]]},"456":{"position":[[15,3]]}}}],["used",{"_index":91,"t":{"320":{"position":[[9,4]]}}}],["users",{"_index":6,"t":{"213":{"position":[[9,5]]}}}],["using",{"_index":82,"t":{"304":{"position":[[0,5]]},"362":{"position":[[0,5]]},"378":{"position":[[12,5]]},"466":{"position":[[0,5]]}}}],["vertex",{"_index":157,"t":{"421":{"position":[[15,6]]}}}],["view",{"_index":17,"t":{"227":{"position":[[11,4]]},"398":{"position":[[15,4]]}}}],["vs",{"_index":44,"t":{"259":{"position":[[6,2]]},"261":{"position":[[7,2]]},"366":{"position":[[6,2]]},"368":{"position":[[6,2]]}}}],["warning",{"_index":79,"t":{"302":{"position":[[0,7]]}}}],["webgl",{"_index":52,"t":{"269":{"position":[[4,5]]},"411":{"position":[[7,5]]}}}],["webpack",{"_index":169,"t":{"436":{"position":[[0,7]]}}}],["width",{"_index":124,"t":{"366":{"position":[[9,5]]}}}],["writing",{"_index":21,"t":{"233":{"position":[[0,7]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":198,"t":"PixiJS is an open source, web-based rendering system that provides blazing fast performance for games, data visualization, and other graphics intensive projects. These guides are designed to be a companion to the API documentation, providing a structured introduction to using the API to solve problems and build projects.","s":"Welcome","u":"/guides","h":"","p":197},{"i":200,"t":"If you're new to PixiJS, we suggest you start with the Basics and read through them in order (a good place to start is Getting Started). While PixiJS has a mature API and solid documentation, the guides go over many common issues and questions that developers new to the system encounter.","s":"About The Guides","u":"/guides","h":"#about-the-guides","p":197},{"i":202,"t":"As you explore the guides, you may find these resources valuable: PixiJS API documentation PixiJS Github repo","s":"Other Resources","u":"/guides","h":"#other-resources","p":197},{"i":204,"t":"OK, now that you've gotten a feel for how easy it is to build a PixiJS application, let's get into the specifics. For the rest of the Basics section, we're going to work from the high level down to the details. We'll start with an overview of how PixiJS is put together.","s":"Architecture Overview","u":"/guides/basics/architecture-overview","h":"","p":203},{"i":206,"t":"Before we get into how the code is layed out, let's talk about where it lives. PixiJS is an open source product hosted on GitHub. Like any GitHub repo, you can browse and download the raw source files for each PixiJS class, as well as search existing issues & bugs, and even submit your own. PixiJS is written in a JavaScript variant called TypeScript, which enables type-checking in JavaScript via a pre-compile step.","s":"The Code","u":"/guides/basics/architecture-overview","h":"#the-code","p":203},{"i":208,"t":"PixiJS is a modular rendering engine. Each task required for generating, updating and displaying content is broken out into its own component. Not only does this make the code cleaner, it allows for greater extensibility. Additionally, with the use of the PixiJS Customize tool, it's possible to build a custom PixiJS file containing only the subset of features your project needs, saving download size. Here's a list of the major components that make up PixiJS. Note that this list isn't exhaustive. Additionally, don't worry too much about how each component works. The goal here is to give you a feel for what's under the hood as we start exploring the engine.","s":"The Components","u":"/guides/basics/architecture-overview","h":"#the-components","p":203},{"i":210,"t":"Component Description Renderer @pixi/core The core of the PixiJS system is the renderer, which displays the scene graph and draws it to the screen. The default renderer for PixiJS is based on WebGL under the hood. Container @pixi/display Main display object which creates a scene graph: the tree of renderable objects to be displayed, such as sprites, graphics and text. See Scene Graph for more details. Loader @pixi/loader The loader system provides tools for asynchronously loading resources such as images and audio files. Ticker @pixi/ticker Tickers provide periodic callbacks based on a clock. Your game update logic will generally be run in response to a tick once per frame. You can have multiple tickers in use at one time. Application @pixi/app The Application is a simple helper that wraps a Loader, Ticker and Renderer into a single, convenient easy-to-use object. Great for getting started quickly, prototyping and building simple projects. Interaction @pixi/interaction PixiJS supports both touch and mouse-based interaction - making objects clickable, firing hover events, etc. Accessibility @pixi/accessibility Woven through our display system is a rich set of tools for enabling keyboard and screen-reader accessibility.","s":"Major Components","u":"/guides/basics/architecture-overview","h":"#major-components","p":203},{"i":212,"t":"In this section we're going to build the simplest possible PixiJS application. In doing so, we'll walk through the basics of how to build and serve the code.","s":"Getting Started","u":"/guides/basics/getting-started","h":"","p":211},{"i":214,"t":"A quick note before we start: this guide is aimed at beginning PixiJS developers who have minimal experience developing JavaScript-based applications. If you are a coding veteran, you may find that the level of detail here is not helpful. If that's the case, you may want to skim this guide, then jump into how to work with PixiJS and packers like webpack and npm.","s":"Advanced Users","u":"/guides/basics/getting-started","h":"#advanced-users","p":211},{"i":216,"t":"One final note. The JavaScript universe is currently in transition from old-school JavaScript (ES5) to the newer ES6 flavor: // ES5 var x = 5; setTimeout(function() { alert(x); }, 1000); // ES6 const x = 5; setTimeout(() => alert(x), 1000); ES6 brings a number of major advantages in terms of clearer syntax, better variable scoping, native class support, etc. By now, all major browsers support it. Given this, our examples in these guides will use ES6. This doesn't mean you can't use PixiJS with ES5 programs! Just mentally substitute \"var\" for \"let/const\", expand the shorter function-passing syntax, and everything will run just fine.","s":"A Note About JavaScript","u":"/guides/basics/getting-started","h":"#a-note-about-javascript","p":211},{"i":218,"t":"OK! With those notes out of the way, let's get started. There are only a few steps required to write a PixiJS application: Create an HTML file Serve the file with a web server Load the PixiJS library Create an Application Add the generated view to the DOM Add an image to the stage Write an update loop Let's walk through them together.","s":"Components of a PixiJS Application","u":"/guides/basics/getting-started","h":"#components-of-a-pixijs-application","p":211},{"i":220,"t":"PixiJS is a JavaScript library that runs in a web page. So the first thing we're going to need is some HTML in a file. In a real PixiJS application, you might want to embed your display within a complex existing page, or you might want your display area to fill the whole page. For this demo, we'll build an empty page to start:

Hello PixiJS

Create a new folder named pixi-test, then copy and paste this HTML into a new file in the pixi-test folder named index.html.","s":"The HTML File","u":"/guides/basics/getting-started","h":"#the-html-file","p":211},{"i":222,"t":"You will need to run a web server to develop locally with PixiJS. Web browsers prevent loading local files (such as images and audio files) on locally loaded web pages. If you just double-click your new HTML file, you'll get an error when you try to add a sprite to the PixiJS stage. Running a web server sounds complex and difficult, but it turns out there are a number of simple web servers that will serve this purpose. For this guide, we're going to be working with Mongoose, but you could just as easily use XAMPP or the http-server Node.js package to serve your files. To start serving your page with Mongoose, go to the Mongoose download page and download the free server for your operating system. Mongoose defaults to serving the files in the folder it's run in, so copy the downloaded executable into the folder you created in the prior step (pixi-test). Double-click the executable, tell your operating system that you trust the file to run, and you'll have a running web server, serving your new folder. Test that everything is working by opening your browser of choice and entering http://127.0.0.1:8080 in the location bar. (Mongoose by default serves files on port 8080.) You should see \"Hello PixiJS\" and nothing else. If you get an error at this step, it means you didn't name your file index.html or you mis-configured your web server.","s":"Serving the File","u":"/guides/basics/getting-started","h":"#serving-the-file","p":211},{"i":224,"t":"OK, so we have a web page, and we're serving it. But it's empty. The next step is to actually load the PixiJS library. If we were building a real application, we'd want to download a target version of PixiJS from the Pixi Github repo so that our version wouldn't change on us. But for this sample application, we'll just use the CDN version of PixiJS. Add this line to the section of your index.html file: This will include a non-minified version of the latest version of PixiJS when your page loads, ready to be used. We use the non-minified version because we're in development. In production, you'd want to use pixi.min.js instead, which is compressed for faster download and excludes assertions and deprecation warnings that can help when building your project, but take longer to download and run.","s":"Loading PixiJS","u":"/guides/basics/getting-started","h":"#loading-pixijs","p":211},{"i":226,"t":"Loading the library doesn't do much good if we don't use it, so the next step is to start up PixiJS. Start by replacing the line

Hello PixiJS

with a script tag like so: What we're doing here is adding a JavaScript code block, and in that block creating a new PIXI.Application instance. Application is a helper class that simplifies working with PixiJS. It creates the renderer, creates the stage, and starts a ticker for updating. In production, you'll almost certainly want to do these steps yourself for added customization and control - we'll cover doing so in a later guide. For now, the Application class is a perfect way to start playing with PixiJS without worrying about the details.","s":"Creating an Application","u":"/guides/basics/getting-started","h":"#creating-an-application","p":211},{"i":228,"t":"When the PIXI.Application class creates the renderer, it builds a Canvas element that it will render to. In order to see what we draw with PixiJS, we need to add this Canvas element to the web page's DOM. Append the following line to your page's script block: document.body.appendChild(app.view); This takes the view created by the application (the Canvas element) and adds it to the body of your page.","s":"Adding the View to the DOM","u":"/guides/basics/getting-started","h":"#adding-the-view-to-the-dom","p":211},{"i":230,"t":"So far all we've been doing is prep work. We haven't actually told PixiJS to draw anything. Let's fix that by adding an image to be displayed. There are a number of ways to draw images in PixiJS, but the simplest is by using a Sprite. We'll get into the details of how the scene graph works in a later guide, but for now all you need to know is that PixiJS renders a hierarchy of DisplayObjects. A Sprite is a type of DisplayObject that wraps a loaded image resource to allow drawing it, scaling it, rotating it, and so forth. Before PixiJS can render an image, it needs to be loaded. Just like in any web page, image loading happens asynchronously. We'll talk a lot more about resource loading in later guides. For now, we can use a helper method on the PIXI.Sprite class to handle the image loading for us: // Magically load the PNG asynchronously let sprite = PIXI.Sprite.from('sample.png'); Download the sample PNG here, and save it into your pixi-test directory next to your index.html.","s":"Creating a Sprite","u":"/guides/basics/getting-started","h":"#creating-a-sprite","p":211},{"i":232,"t":"Finally, we need to add our new sprite to the stage. The stage is simply a Container that is the root of the scene graph. Every child of the stage container will be rendered every frame. By adding our sprite to the stage, we tell PixiJS's renderer we want to draw it. app.stage.addChild(sprite);","s":"Adding the Sprite to the Stage","u":"/guides/basics/getting-started","h":"#adding-the-sprite-to-the-stage","p":211},{"i":234,"t":"While you can use PixiJS for static content, for most projects you'll want to add animation. Our sample app is actually cranking away, rendering the same sprite in the same place multiple times a second. All we have to do to make the image move is to update its attributes once per frame. To do this, we want to hook into the application's ticker. A ticker is a PixiJS object that runs one or more callbacks each frame. Doing so is surprisingly easy. Add the following to the end of your script block: // Add a variable to count up the seconds our demo has been running let elapsed = 0.0; // Tell our application's ticker to run a new callback every frame, passing // in the amount of time that has passed since the last tick app.ticker.add((delta) => { // Add the time to our total elapsed time elapsed += delta; // Update the sprite's X position based on the cosine of our elapsed time. We divide // by 50 to slow the animation down a bit... sprite.x = 100.0 + Math.cos(elapsed/50.0) * 100.0; }); All you need to do is to call app.ticker.add(...), pass it a callback function, and then update your scene in that function. It will get called every frame, and you can move, rotate etc. whatever you'd like to drive your project's animations.","s":"Writing an Update Loop","u":"/guides/basics/getting-started","h":"#writing-an-update-loop","p":211},{"i":236,"t":"That's it! The simplest PixiJS project! Here's the whole thing in one place. Check your file and make sure it matches if you're getting errors. Once you have things working, the next thing to do is to read through the rest of the Basics guides to dig into how all this works in much greater depth.","s":"Putting It All Together","u":"/guides/basics/getting-started","h":"#putting-it-all-together","p":211},{"i":238,"t":"Now that you understand the major parts of the system, let's look at how these parts work together to get your project onto the screen. Unlike a web page, PixiJS is constantly updating and re-drawing itself, over and over. You update your objects, then PixiJS renders them to the screen, then the process repeats. We call this cycle the render loop. The majority of any PixiJS project is contained in this update + render cycle. You code the updates, PixiJS handles the rendering. Let's walk through what happens each frame of the render loop. There are three main steps.","s":"Render Loop","u":"/guides/basics/render-loop","h":"","p":237},{"i":240,"t":"The first step is to calculate how much time has elapsed since the last frame, and then call the Application object's ticker callbacks with that time delta. This allows your project's code to animate and update the sprites, etc. on the stage in preparation for rendering.","s":"Running Ticker Callbacks","u":"/guides/basics/render-loop","h":"#running-ticker-callbacks","p":237},{"i":242,"t":"We'll talk a lot more about what a scene graph is and what it's made of in the next guide, but for now, all you need to know is that it contains the things you're drawing - sprites, text, etc. - and that these objects are in a tree-like hierarchy. After you've updated your game objects by moving, rotating and so forth, PixiJS needs to calculate the new positions and state of every object in the scene, before it can start drawing.","s":"Updating the Scene Graph","u":"/guides/basics/render-loop","h":"#updating-the-scene-graph","p":237},{"i":244,"t":"Now that our game's state has been updated, it's time to draw it to the screen. The rendering system starts with the root of the scene graph (app.stage), and starts rendering each object and its children, until all objects have been drawn. No culling or other cleverness is built into this process. If you have lots of objects outside of the visible portion of the stage, you'll want to investigate disabling them as an optimization.","s":"Rendering the Scene Graph","u":"/guides/basics/render-loop","h":"#rendering-the-scene-graph","p":237},{"i":246,"t":"A note about frame rates. The render loop can't be run infinitely fast - drawing things to the screen takes time. In addition, it's not generally useful to have a frame updated more than once per screen update (commonly 60fps, but newer monitors can support 144fps and up). Finally, PixiJS runs in the context of a web browser like Chrome or Firefox. The browser itself has to balance the needs of various internal operations with servicing any open tabs. All this to say, determining when to draw a frame is a complex issue. In cases where you want to adjust that behavior, you can set the minFPS and maxFPS attributes on a Ticker to give PixiJS hints as to the range of tick speeds you want to support. Just be aware that due to the complex environment, your project cannot guarantee a given FPS. Use the passed delta value in your ticker callbacks to scale any animations to ensure smooth playback.","s":"Frame Rates","u":"/guides/basics/render-loop","h":"#frame-rates","p":237},{"i":248,"t":"What we've just covered is the default render loop provided out of the box by the Application helper class. There are many other ways of creating a render loop that may be helpful for advanced users looking to solve a given problem. While you're prototyping and learning PixiJS, sticking with the Application's provided system is the recommended approach.","s":"Custom Render Loops","u":"/guides/basics/render-loop","h":"#custom-render-loops","p":237},{"i":250,"t":"Every frame, PixiJS is updating and then rendering the scene graph. Let's talk about what's in the scene graph, and how it impacts how you develop your project. If you've built games before, this should all sound very familiar, but if you're coming from HTML and the DOM, it's worth understanding before we get into specific types of objects you can render.","s":"Scene Graph","u":"/guides/basics/scene-graph","h":"","p":249},{"i":252,"t":"The scene graph's root node is a container maintained by the application, and referenced with app.stage. When you add a sprite or other renderable object as a child to the stage, it's added to the scene graph and will be rendered and interactable. Most PixiJS objects can also have children, and so as you build more complex scenes, you will end up with a tree of parent-child relationships, rooted at the app's stage. (A helpful tool for exploring your project is the Pixi.js devtools plugin for Chrome, which allows you to view and manipulate the scene graph in real time as it's running!)","s":"The Scene Graph Is a Tree","u":"/guides/basics/scene-graph","h":"#the-scene-graph-is-a-tree","p":249},{"i":254,"t":"When a parent moves, its children move as well. When a parent is rotated, its children are rotated too. Hide a parent, and the children will also be hidden. If you have a game object that's made up of multiple sprites, you can collect them under a container to treat them as a single object in the world, moving and rotating as one. Each frame, PixiJS runs through the scene graph from the root down through all the children to the leaves to calculate each object's final position, rotation, visibility, transparency, etc. If a parent's alpha is set to 0.5 (making it 50% transparent), all its children will start at 50% transparent as well. If a child is then set to 0.5 alpha, it won't be 50% transparent, it will be 0.5 x 0.5 = 0.25 alpha, or 75% transparent. Similarly, an object's position is relative to its parent, so if a parent is set to an x position of 50 pixels, and the child is set to an x position of 100 pixels, it will be drawn at a screen offset of 150 pixels, or 50 + 100. Here's an example. We'll create three sprites, each a child of the last, and animate their position, rotation, scale and alpha. Even though each sprite's properties are set to the same values, the parent-child chain amplifies each change: // Create the application helper and add its render target to the page const app = new PIXI.Application({ width: 640, height: 360 }); document.body.appendChild(app.view); // Add a container to center our sprite stack on the page const container = new PIXI.Container(); container.x = app.screen.width / 2; container.y = app.screen.height / 2; app.stage.addChild(container); // Create the 3 sprites, each a child of the last const sprites = []; let parent = container; for (let i = 0; i < 3; i++) { let sprite = PIXI.Sprite.from('assets/images/sample.png'); sprite.anchor.set(0.5); parent.addChild(sprite); sprites.push(sprite); parent = sprite; } // Set all sprite's properties to the same value, animated over time let elapsed = 0.0; app.ticker.add((delta) => { elapsed += delta / 60; const amount = Math.sin(elapsed); const scale = 1.0 + 0.25 * amount; const alpha = 0.75 + 0.25 * amount; const angle = 40 * amount; const x = 75 * amount; for (let i = 0; i < sprites.length; i++) { const sprite = sprites[i]; sprite.scale.set(scale); sprite.alpha = alpha; sprite.angle = angle; sprite.x = x; } }); The cumulative translation, rotation, scale and skew of any given node in the scene graph is stored in the object's worldTransform property. Similarly, the cumulative alpha value is stored in the worldAlpha property.","s":"Parents and Children","u":"/guides/basics/scene-graph","h":"#parents-and-children","p":249},{"i":256,"t":"So we have a tree of things to draw. Who gets drawn first? PixiJS renders the tree from the root down. At each level, the current object is rendered, then each child is rendered in order of insertion. So the second child is rendered on top of the first child, and the third over the second. Check out this example, with two parent objects A & D, and two children B & C under A: // Create the application helper and add its render target to the page const app = new PIXI.Application({ width: 640, height: 360 }); document.body.appendChild(app.view); // Label showing scene graph hierarchy const label = new PIXI.Text('Scene Graph:\\n\\napp.stage\\n β”— A\\n β”— B\\n β”— C\\n β”— D', {fill: '#ffffff'}); label.position = {x: 300, y: 100}; app.stage.addChild(label); // Helper function to create a block of color with a letter const letters = []; function addLetter(letter, parent, color, pos) { const bg = new PIXI.Sprite(PIXI.Texture.WHITE); bg.width = 100; bg.height = 100; bg.tint = color; const text = new PIXI.Text(letter, {fill: \"#ffffff\"}); text.anchor.set(0.5); text.position = {x: 50, y: 50}; const container = new PIXI.Container(); container.position = pos; container.visible = false; container.addChild(bg, text); parent.addChild(container); letters.push(container); return container; } // Define 4 letters let a = addLetter('A', app.stage, 0xff0000, {x: 100, y: 100}); let b = addLetter('B', a, 0x00ff00, {x: 20, y: 20}); let c = addLetter('C', a, 0x0000ff, {x: 20, y: 40}); let d = addLetter('D', app.stage, 0xff8800, {x: 140, y: 100}); // Display them over time, in order let elapsed = 0.0; app.ticker.add((delta) => { elapsed += delta / 60.0; if (elapsed >= letters.length) { elapsed = 0.0; } for (let i = 0; i < letters.length; i ++) { letters[i].visible = elapsed >= i; } }); If you'd like to re-order a child object, you can use setChildIndex(). To add a child at a given point in a parent's list, use addChildAt(). Finally, you can enable automatic sorting of an object's children using the sortableChildren option combined with setting the zIndex property on each child.","s":"Render Order","u":"/guides/basics/scene-graph","h":"#render-order","p":249},{"i":258,"t":"If you're building a project where a large proportion of your DisplayObject's are off-screen (say, a side-scrolling game), you will want to cull those objects. Culling is the process of evaluating if an object (or its children!) is on the screen, and if not, turning off rendering for it. If you don't cull off-screen objects, the renderer will still draw them, even though none of their pixels end up on the screen. PixiJS doesn't provide built-in support for viewport culling, but you can find 3rd party plugins that might fit your needs. Alternately, if you'd like to build your own culling system, simply run your objects during each tick and set renderable to false on any object that doesn't need to be drawn.","s":"Culling","u":"/guides/basics/scene-graph","h":"#culling","p":249},{"i":260,"t":"If you add a sprite to the stage, by default it will show up in the top left corner of the screen. That's the origin of the global coordinate space used by PixiJS. If all your objects were children of the stage, that's the only coordinates you'd need to worry about. But once you introduce containers and children, things get more complicated. A child object at [50, 100] is 50 pixels right and 100 pixels down from its parent. We call these two coordinate systems \"global\" and \"local\" coordinates. When you use position.set(x, y) on an object, you're always working in local coordinates, relative to the object's parent. The problem is, there are many times when you want to know the global position of an object. For example, if you want to cull offscreen objects to save render time, you need to know if a given child is outside the view rectangle. To convert from local to global coordinates, you use the toGlobal() function. Here's a sample usage: // Get the global position of an object, relative to the top-left of the screen let globalPos = obj.toGlobal(new PIXI.Point(0,0)); This snippet will set globalPos to be the global coordinates for the child object, relative to [0, 0] in the global coordinate system.","s":"Local vs Global Coordinates","u":"/guides/basics/scene-graph","h":"#local-vs-global-coordinates","p":249},{"i":262,"t":"When your project is working with the host operating system or browser, there is a third coordinate system that comes into play - \"screen\" coordinates (aka \"viewport\" coordinates). Screen coordinates represent position relative to the top-left of the canvas element that PixiJS is rendering into. Things like the DOM and native mouse click events work in screen space. Now, in many cases, screen space is equivalent to world space. This is the case if the size of the canvas is the same as the size of the render view specified when you create you PIXI.Application. By default, this will be the case - you'll create for example an 800x600 application window and add it to your HTML page, and it will stay that size. 100 pixels in world coordinates will equal 100 pixels in screen space. BUT! It is common to stretch the rendered view to have it fill the screen, or to render at a lower resolution and up-scale for speed. In that case, the screen size of the canvas element will change (e.g. via CSS), but the underlying render view will not, resulting in a mis-match between world coordinates and screen coordinates.","s":"Global vs Screen Coordinates","u":"/guides/basics/scene-graph","h":"#global-vs-screen-coordinates","p":249},{"i":264,"t":"So what exactly is PixiJS? At its heart, PixiJS is a rendering system that uses WebGL (or optionally Canvas) to display images and other 2D visual content. It provides a full scene graph (a hierarchy of objects to render), and provides interaction support to enable handling click and touch events. It is a natural replacement for Flash in the modern HTML5 world, but provides better performance and pixel-level effects that go beyond what Flash could achieve. It is perfect for online games, educational content, interactive ads, data visualization... any web-based application where complex graphics are important. And coupled with technology such as Cordova and Electron, PixiJS apps can be distributed beyond the browser as mobile and desktop applications. Here's what else you get with PixiJS:","s":"What PixiJS Is","u":"/guides/basics/what-pixijs-is","h":"","p":263},{"i":266,"t":"One of the major features that distinguishes PixiJS from other web-based rendering solutions is speed. From the ground up, the render pipeline has been built to get the most performance possible out of your users' browsers. Automatic sprite and geometry batching, careful use of WebGL resources, a tight scene graph - no matter your application, speed is valuable, and PixiJS has it to spare.","s":"PixiJS Is ... Fast","u":"/guides/basics/what-pixijs-is","h":"#pixijs-is--fast","p":263},{"i":268,"t":"Drawing images on a page can be handled with HTML5 and the DOM, so why use PixiJS? Beyond performance, the answer is that PixiJS goes well beyond simple images. Draw trails and tracks with SimpleRope. Draw polygons, lines, circles and other primitives with Graphics. Text provides full text rendering support that's just as performant as sprites. And even when drawing simple images, PixiJS natively supports spritesheets for efficient loading and ease of development.","s":"... More Than Just Sprites","u":"/guides/basics/what-pixijs-is","h":"#-more-than-just-sprites","p":263},{"i":270,"t":"WebGL is the JavaScript API for accessing users' GPUs for fast rendering and advanced effects. PixiJS leverages WebGL to display thousands of moving sprites efficiently even on mobile devices. But using WebGL offers more than just speed. By using the Filter class, you can write shader programs (or use pre-built ones!) to achieve displacement maps, blurring, and other advanced visual effects that cannot be accomplished with just the DOM or Canvas APIs.","s":"... WebGL Native","u":"/guides/basics/what-pixijs-is","h":"#-webgl-native","p":263},{"i":272,"t":"Want to understand how the engine works? Trying to track down a bug? Been burned by closed-source projects going dark? With PixiJS, you get a mature project with full source code access. We're MIT licensed for compatibility, and hosted on GitHub for issue tracking and ease of access.","s":"... Open Source","u":"/guides/basics/what-pixijs-is","h":"#-open-source","p":263},{"i":274,"t":"Open source helps. So does being based on JavaScript. But the real reason PixiJS is easy to extend is the clean internal API that underlies every part of the system. After years of development and 5 major releases, PixiJS is ready to make your project a success, no matter what your needs.","s":"... Extensible","u":"/guides/basics/what-pixijs-is","h":"#-extensible","p":263},{"i":276,"t":"Flash required the player. Unity requires an installer or app store. PixiJS requires... a browser. Deploying PixiJS on the web is exactly like deploying a web site. That's all it is - JavaScript + images + audio, like you've done a hundred times. Your users simply visit a URL, and your game or other content is ready to run. But it doesn't stop at the web. If you want to deploy a mobile app, wrap your PixiJS code in Cordova. Want to deploy a standalone desktop program? Build an Electron wrapper, and you're ready to rock.","s":"... Easy to Deploy","u":"/guides/basics/what-pixijs-is","h":"#-easy-to-deploy","p":263},{"i":278,"t":"While PixiJS can do many things, there are things it can't do, or that require additional tools to accomplish. Newcomers to PixiJS often struggle to identify which tasks PixiJS can solve, and which require outside solutions. If you're about to start a project, it can be helpful to know if PixiJS is a good fit for your needs. The following list is obviously incomplete - PixiJS is also not, for example, a duck - but it includes many common tasks or features that you might expect us to support.","s":"What PixiJS Is Not","u":"/guides/basics/what-pixijs-is-not","h":"","p":277},{"i":280,"t":"PixiJS is a rendering engine, and it supports additional features such as interaction management that are commonly needed when using a render engine. But it is not a framework like Unity or Phaser. Frameworks are designed to do all the things you'd need to do when building a game - user settings management, music playback, object scripting, art pipeline management... the list goes on. PixiJS is designed to do one thing really well - render graphical content. This lets us focus on keeping up with new technology, and makes downloading PixiJS blazingly fast.","s":"PixiJS Is Not ... A Framework","u":"/guides/basics/what-pixijs-is-not","h":"#pixijs-is-not--a-framework","p":277},{"i":282,"t":"PixiJS is built for 2D. Platformers, adventure games, interactive ads, custom data visualization... all good. But if you want to render 3D models, you might want to check out babylon.js or three.js.","s":"... A 3D Renderer","u":"/guides/basics/what-pixijs-is-not","h":"#-a-3d-renderer","p":277},{"i":284,"t":"If you're looking to build mobile games, you can do it with PixiJS, but you'll need to use a deployment system like Apache Cordova if you want access to native bindings. We don't provide access to the camera, location services, notifications, etc.","s":"... A Mobile App","u":"/guides/basics/what-pixijs-is-not","h":"#-a-mobile-app","p":277},{"i":286,"t":"Building a truly generic UI system is a huge challenge, as anyone who has worked with Unity's UI tools can attest. We've chosen to avoid the complexity to stay true to our core focus on speed. While you can certainly build your own UI using PixiJS's scene graph and interaction manager, we don't ship with a UI library out of the box.","s":"... A UI Library","u":"/guides/basics/what-pixijs-is-not","h":"#-a-ui-library","p":277},{"i":288,"t":"There are many techniques and technologies that you can use to store settings, scores, and other data. Cookies, Web Storage, server-based storage... there are many solutions, each with advantages and disadvantages. You can use any of them with PixiJS, but we don't provide tools to do so.","s":"... A Data Store","u":"/guides/basics/what-pixijs-is-not","h":"#-a-data-store","p":277},{"i":290,"t":"At least, not out of the box. Again, web audio technology is a constantly evolving challenge, with constantly changing rules and requirements across many browsers. There are a number of dedicated web audio libraries (such as Howler.js that can be used with PixiJS to play sound effects and music. Alternatively, the PixiJS Sound plugin is designed to work well with PixiJS.","s":"... An Audio Library","u":"/guides/basics/what-pixijs-is-not","h":"#-an-audio-library","p":277},{"i":292,"t":"There are a number of tools that are useful for building 2D art and games that you might expect to be a part of PixiJS, but we're a rendering engine, not a development environment. Packing sprite sheets, processing images, building mipmaps or Retina-ready sprites - there are great standalone tools for this type of tooling. Where appropriate throughout the guides, we'll point you to tools that may be useful.","s":"... A Development Environment","u":"/guides/basics/what-pixijs-is-not","h":"#-a-development-environment","p":277},{"i":294,"t":"Only you know! If you're looking for a tightly focused, fast and efficient rendering engine for your next web-based project, PixiJS is likely a great fit. If you need a full game development framework, with native bindings and a rich UI library, you may want to explore other options. Or you may not. It can be faster and easier to build just the subset of a full framework that your project needs than it can be to digest a monolithic API with bells and whistles you don't need. There are hundreds of complex, rich games and visual projects that use PixiJS for rendering, with plugins or custom code to add the UI and sound effects. There are benefits to both approaches. Regardless, we hope you have a better feel for what PixiJS can (and cannot!) offer your project.","s":"So Is PixiJS Right For Me?","u":"/guides/basics/what-pixijs-is-not","h":"#so-is-pixijs-right-for-me","p":277},{"i":297,"t":"The Assets package is a modern replacement for the old PIXI.Loader class. It is a promise-based resource management solution that will download, cache and parse your assets into something you can use. The downloads can be simultaneous and in the background, meaning faster startup times for your app, the cache ensures that you never download the same asset twice and the extensible parser system allows you to easily extend and customize the process to your needs.","s":"The Assets package","u":"/guides/components/assets","h":"#the-assets-package","p":295},{"i":299,"t":"The @pixi/assets package doesn't come bundled with PixiJS in version 6.x and must be added externally, however it will become integrated with version 7. The class that does all the heavy lifting is called AssetsClass but you don't need to create your own instance since you will find one ready to use in PIXI.Assets. This package relies heavily on JavaScript Promises that all modern browsers support, however, if your target browser doesn't support promises you should look into polyfilling them.","s":"Getting started","u":"/guides/components/assets","h":"#getting-started","p":295},{"i":301,"t":"To quickly use the PIXI.Assets instance, you just need to call PIXI.Assets.load and pass in an asset. This will return a promise that when resolved will yield the value you seek. In this example, we will load a texture and then turn it into a sprite. One very important thing to keep in mind while using Assets is that all requests are cached and if the URL is the same, the promise returned will also be the same. To show it in code: promise1 = PIXI.Assets.load('bunny.png') promise2 = PIXI.Assets.load('bunny.png') //promise1 === promise2 Out of the box, the following assets types can be loaded without the need for external plugins: Textures (avif, webp, png, jpg, gif) Sprite sheets (json) Bitmap fonts (xml, fnt, txt) Web fonts (ttf, woff, woff2) Json files (json) Text files (txt) More types can be added fairly easily by creating additional loader parsers.","s":"Making our first Assets Promise","u":"/guides/components/assets","h":"#making-our-first-assets-promise","p":295},{"i":303,"t":"When an asset is downloaded, it is cached as a promise inside the Assets instance and if you try to download it again you will get a reference to the already resolved promise. However promise handlers .then(...)/.catch(...)/.finally(...) are always asynchronous, this means that even if a promise was already resolved the code below the .then(...)/.catch(...)/.finally(...) will execute before the code inside them. See this example: console.log(1); alreadyResolvedPromise.then(() => console.log(2)); console.log(3); // Console output: // 1 // 3 // 2 To learn more about why this happens you will need to learn about Microtasks, however, using async functions should mitigate this problem.","s":"Warning about solved promises","u":"/guides/components/assets","h":"#warning-about-solved-promises","p":295},{"i":305,"t":"There is a way to work with promises that is more intuitive and easier to read: async/await. To use it we first need to create a function/method and mark it as async. async function test() { // ... } This function now wraps the return value in a promise and allows us to use the await keyword before a promise to halt the execution of the code until it is resolved and gives us the value. See this example: The texture variable now is not a promise but the resolved texture that resulted after waiting for this promise to resolve. const texture = await PIXI.Assets.load('examples/assets/bunny.png'); This allows us to write more readable code without falling into callback hell and to better think when our program halts and yields.","s":"Using Async/Await","u":"/guides/components/assets","h":"#using-asyncawait","p":295},{"i":307,"t":"We can add assets to the cache and then load them all simultaneously by using PIXI.Assets.add(...) and then calling PIXI.Assets.load(...) with all the keys you want to have loaded. See the following example: However, if you want to take full advantage of @pixi/Assets you should use bundles. Bundles are just a way to group assets together and can be added manually by calling PIXI.Assets.addBundle(...)/PIXI.Assets.loadBundle(...). PIXI.Assets.addBundle('animals', { bunny: 'bunny.png', chicken: 'chicken.png', thumper: 'thumper.png', }); const assets = await PIXI.Assets.loadBundle('animals'); However, the best way to handle bundles is to use a manifest and call PIXI.Assets.init({manifest}) with said manifest (or even better, an URL pointing to it). Splitting our assets into bundles that correspond to screens or stages of our app will come in handy for loading in the background while the user is using the app instead of locking them in a single monolithic loading screen. { \"bundles\":[ { \"name\":\"load-screen\", \"assets\":[ { \"name\":\"background\", \"srcs\":\"sunset.png\" }, { \"name\":\"bar\", \"srcs\":\"load-bar.{png,webp}\" } ] }, { \"name\":\"game-screen\", \"assets\":[ { \"name\":\"character\", \"srcs\":\"robot.png\" }, { \"name\":\"enemy\", \"srcs\":\"bad-guy.png\" } ] } ] } PIXI.Assets.init({manifest: \"path/manifest.json\"}); Beware that you can only call init once. Remember there is no downside in repeating URLs since they will all be cached, so if you need the same asset in two bundles you can duplicate the request without any extra cost!","s":"Loading multiple assets","u":"/guides/components/assets","h":"#loading-multiple-assets","p":295},{"i":309,"t":"The old approach to loading was to use PIXI.Loader to load all your assets at the beginning of your app, but users are less patient now and want content to be instantly available so the practices are moving towards loading the bare minimum needed to show the user some content and, while they are interacting with that, we keep loading the following content in the background. Luckily, @pixi/assets has us covered with a system that allows us to load everything in the background and in case we need some assets right now, bump them to the top of the queue so we can minimize loading times. To achieve this, we have the methods PIXI.Assets.backgroundLoad(...) and PIXI.Assets.backgroundLoadBundle(...) that will passively begin to load these assets in the background. So when you finally come to loading them you will get a promise that resolves to the loaded assets immediately. When you finally need the assets to show, you call the usual PIXI.Assets.load(...) or PIXI.Assets.loadBundle(...) and you will get the corresponding promise. The best way to do this is using bundles, see the following example: We create one bundle for each screen our game will have and set them all to start downloading at the beginning of our app. If the user progresses slowly enough in our app then they should never get to see a loading screen after the first one!","s":"Background loading","u":"/guides/components/assets","h":"#background-loading","p":295},{"i":311,"t":"The Container class provides a simple display object that does what its name implies - collect a set of child objects together. But beyond grouping objects, containers have a few uses that you should be aware of.","s":"Containers","u":"/guides/components/containers","h":"","p":310},{"i":313,"t":"Almost every type of display object is also derived from Container - even Sprites! This means that in many cases you can create a parent-child hierarchy with the objects you want to render. However, it's a good idea not to do this. Standalone Container objects are very cheap to render, and having a proper hierarchy of Container objects, each containing one or more renderable objects, provides flexibility in rendering order. It also future-proofs your code, as when you need to add an additional object to a branch of the tree, your animation logic doesn't need to change - just drop the new object into the proper Container, and your logic moves the Container with no changes to your code. So that's the primary use for Containers - as groups of renderable objects in a hierarchy. Check out the container example code.","s":"Containers as Groups","u":"/guides/components/containers","h":"#containers-as-groups","p":310},{"i":315,"t":"Another common use for Container objects is as hosts for masked content. \"Masking\" is a technique where parts of your scene graph are only visible within a given area. Think of a pop-up window. It has a frame made of one or more Sprites, then has a scrollable content area that hides content outside the frame. A Container plus a mask makes that scrollable area easy to implement. Add the Container, set its mask property to a Graphics object with a rect, and add the text, image, etc. content you want to display as children of that masked Container. Any content that extends beyond the rectangular mask will simply not be drawn. Move the contents of the Container to scroll as desired. // Create the application helper and add its render target to the page let app = new PIXI.Application({ width: 640, height: 360 }); document.body.appendChild(app.view); // Create window frame let frame = new PIXI.Graphics(); frame.beginFill(0x666666); frame.lineStyle({ color: 0xffffff, width: 4, alignment: 0 }); frame.drawRect(0, 0, 208, 208); frame.position.set(320 - 104, 180 - 104); app.stage.addChild(frame); // Create a graphics object to define our mask let mask = new PIXI.Graphics(); // Add the rectangular area to show mask.beginFill(0xffffff); mask.drawRect(0,0,200,200); mask.endFill(); // Add container that will hold our masked content let maskContainer = new PIXI.Container(); // Set the mask to use our graphics object from above maskContainer.mask = mask; // Add the mask as a child, so that the mask is positioned relative to its parent maskContainer.addChild(mask); // Offset by the window's frame width maskContainer.position.set(4,4); // And add the container to the window! frame.addChild(maskContainer); // Create contents for the masked container let text = new PIXI.Text( 'This text will scroll up and be masked, so you can see how masking works. Lorem ipsum and all that.\\n\\n' + 'You can put anything in the container and it will be masked!', { fontSize: 24, fill: 0x1010ff, wordWrap: true, wordWrapWidth: 180 } ); text.x = 10; maskContainer.addChild(text); // Add a ticker callback to scroll the text up and down let elapsed = 0.0; app.ticker.add((delta) => { // Update the text's y coordinate to scroll it elapsed += delta; text.y = 10 + -100.0 + Math.cos(elapsed/50.0) * 100.0; }); There are two types of masks supported by PixiJS: Use a Graphics object to create a mask with an arbitrary shape - powerful, but doesn't support anti-aliasing Sprite: Use the alpha channel from a Sprite as your mask, providing anti-aliased edging - not supported on the Canvas renderer","s":"Masking","u":"/guides/components/containers","h":"#masking","p":310},{"i":317,"t":"Another common use for Container objects is as hosts for filtered content. Filters are an advanced, WebGL-only feature that allows PixiJS to perform per-pixel effects like blurring and displacements. By setting a filter on a Container, the area of the screen the Container encompasses will be processed by the filter after the Container's contents have been rendered. Below are list of filters available by default in PixiJS. There is, however, a community repository with many more filters. Filter Description AlphaFilter: @pixi/filter-alpha Similar to setting alpha property, but flattens the Container instead of applying to children individually. BlurFilter: @pixi/filter-blur Apply a blur effect ColorMatrixFilter: @pixi/filter-color-matrix A color matrix is a flexible way to apply more complex tints or color transforms (e.g., sepia tone). DisplacementFilter: @pixi/filter-displacement Displacement maps create visual offset pixels, for instance creating a wavy water effect. FXAAFilter: @pixi/filter-fxaa Basic FXAA (Fast Approximate Anti-Aliasing) to create smoothing effect. NoiseFilter: @pixi/filter-noise Create random noise (e.g., grain effect). Important: Filters should be use somewhat sparingly. They can slow performance and increase memory if used too often in a scene.","s":"Filtering","u":"/guides/components/containers","h":"#filtering","p":310},{"i":319,"t":"DisplayObject is the core class for anything that can be rendered by the engine. It's the base class for sprites, text, complex graphics, containers, etc., and provides much of the common functionality for those objects. As you're learning PixiJS, it's important to [read through the documentation for this class][DisplayObject](https://pixijs.download/release/docs/PIXI.DisplayObject.html) to understand how to move, scale, rotate and compose the visual elements of your project. Be aware that you won't use DisplayObject directly - you'll use its functions and attributes in derived classes.","s":"Display Objects","u":"/guides/components/display-object","h":"","p":318},{"i":321,"t":"The most common attributes you'll use when laying out and animating content in PixiJS are provided by the DisplayObject class: Property Description position X- and Y-position are given in pixels and change the position of the object relative to its parent, also available directly as object.x / object.y rotation Rotation is specified in radians, and turns an object clockwise (0.0 - 2 * Math.PI) angle Angle is an alias for rotation that is specified in degrees instead of radians (0.0 - 360.0) pivot Point the object rotates around, in pixels - also sets origin for child objects alpha Opacity from 0.0 (fully transparent) to 1.0 (fully opaque), inherited by children scale Scale is specified as a percent with 1.0 being 100% or actual-size, and can be set independently for the x and y axis skew Skew transforms the object in x and y similar to the CSS skew() function, and is specified in radians visible Whether the object is visible or not, as a boolean value - prevents updating and rendering object and children renderable Whether the object should be rendered - when false, object will still be updated, but won't be rendered, doesn't affect children","s":"Commonly Used Attributes","u":"/guides/components/display-object","h":"#commonly-used-attributes","p":318},{"i":323,"t":"Graphics is a complex and much misunderstood tool in the PixiJS toolbox. At first glance, it looks like a tool for drawing shapes. And it is! But it can also be used to generate masks. How does that work? In this guide, we're going to de-mystify the Graphics object, starting with how to think about what it does. Check out the graphics example code.","s":"Graphics","u":"/guides/components/graphics","h":"","p":322},{"i":325,"t":"First-time users of the PIXI.Graphics class often struggle with how it works. Let's look at an example snippet that creates a Graphics object and draws a rectangle: // Create a Graphics object, set a fill color, draw a rectangle let obj = new PIXI.Graphics(); obj.beginFill(0xff0000); obj.drawRect(0, 0, 200, 100); // Add it to the stage to render app.stage.addChild(obj); That code will work - you'll end up with a red rectangle on the screen. But it's pretty confusing when you start to think about it. Why am I drawing a rectangle when constructing the object? Isn't drawing something a one-time action? How does the rectangle get drawn the second frame? And it gets even weirder when you create a Graphics object with a bunch of drawThis and drawThat calls, and then you use it as a mask. What??? The problem is that the function names are centered around drawing, which is an action that puts pixels on the screen. But in spite of that, the Graphics object is really about building. Let's look a bit deeper at that drawRect() call. When you call drawRect(), PixiJS doesn't actually draw anything. Instead, it stores the rectangle you \"drew\" into a list of geometry for later use. If you then add the Graphics object to the scene, the renderer will come along, and ask the Graphics object to render itself. At that point, your rectangle actually gets drawn - along with any other shapes, lines, etc. that you've added to the geometry list. Once you understand what's going on, things start to make a lot more sense. When you use a Graphics object as a mask, for example, the masking system uses that list of graphics primitives in the geometry list to constrain which pixels make it to the screen. There's no drawing involved. That's why it helps to think of the Graphics class not as a drawing tool, but as a geometry building tool.","s":"Graphics Is About Building - Not Drawing","u":"/guides/components/graphics","h":"#graphics-is-about-building---not-drawing","p":322},{"i":327,"t":"There are a lot of functions in the PIXI.Graphics class, but as a quick orientation, here's the list of basic primitives you can add: Line Rect RoundRect Circle Ellipse Arc Bezier and Quadratic Curve In addition, the Graphics Extras package (@pixi/graphics-extras) optionally includes the following complex primitives: Torus Chamfer Rect Fillet Rect Regular Polygon Star Rounded Polygon","s":"Types of Primitives","u":"/guides/components/graphics","h":"#types-of-primitives","p":322},{"i":329,"t":"Inside every Graphics object is a GraphicsGeometry object. The GraphicsGeometry class manages the list of geometry primitives created by the Graphics parent object. For the most part, you will not work directly with this object. The owning Graphics object creates and manages it. However, there are two related cases where you do work with the list. First, you can re-use geometry from one Graphics object in another. No matter whether you're re-drawing the same shape over and over, or re-using it as a mask over and over, it's more efficient to share identical GraphicsGeometry. You can do this like so: // Create a master graphics object let template = new PIXI.Graphics(); // Add a circle template.drawCircle(100, 100, 50); // Create 5 duplicate objects for (let i = 0; i < 5; i++) { // Initialize the duplicate using our template's pre-built geometry let duplicate = new PIXI.Graphics(template.geometry); } This leads to the second time you need to be aware of the underlying GraphicsGeometry object - avoiding memory leaks. Because Graphics objects can share geometry, you must call destroy() when you no longer need them. Failure to do so will prevent the GraphicsGeometry object it owns from being properly de-referenced, and will lead to memory leaks.","s":"The Geometry List","u":"/guides/components/graphics","h":"#the-geometry-list","p":322},{"i":331,"t":"OK, so now that we've covered how the PIXI.Graphics class works, let's look at how you use it. The most obvious use of a Graphics object is to draw dynamically generated shapes to the screen. Doing so is simple. Create the object, call the various builder functions to add your custom primitives, then add the object to the scene graph. Each frame, the renderer will come along, ask the Graphics object to render itself, and each primitive, with associated line and fill styles, will be drawn to the screen.","s":"Graphics For Display","u":"/guides/components/graphics","h":"#graphics-for-display","p":322},{"i":333,"t":"You can also use a Graphics object as a complex mask. To do so, build your object and primitives as usual. Next create a PIXI.Container object that will contain the masked content, and set its mask property to your Graphics object. The children of the container will now be clipped to only show through inside the geometry you've created. This technique works for both WebGL and Canvas-based rendering. Check out the masking example code.","s":"Graphics as a Mask","u":"/guides/components/graphics","h":"#graphics-as-a-mask","p":322},{"i":335,"t":"The Graphics class is a complex beast, and so there are a number of things to be aware of when using it. Memory Leaks: The first has already been mentioned - call destroy() on any Graphics object you no longer need to avoid memory leaks. Holes: Holes you create have to be completely contained in the shape or else it may not be able to triangulate correctly. Changing Geometry: If you want to change the shape of a Graphics object, you don't need to delete and recreate it. Instead you can use the clear() function to reset the contents of the geometry list, then add new primitives as desired. Be careful of performance when doing this every frame. Performance: Graphics objects are generally quite performant. However, if you build highly complex geometry, you may pass the threshold that permits batching during rendering, which can negatively impact performance. It's better for batching to use many Graphics objects instead of a single Graphics with many shapes. Transparency: Because the Graphics object renders its primitives sequentially, be careful when using blend modes or partial transparency with overlapping geometry. Blend modes like ADD and MULTIPLY will work on each primitive, not on the final composite image. Similarly, partially transparent Graphics objects will show primitives overlapping. To apply transparency or blend modes to a single flattened surface, consider using AlphaFilter or RenderTexture.","s":"Caveats and Gotchas","u":"/guides/components/graphics","h":"#caveats-and-gotchas","p":322},{"i":337,"t":"PixiJS is primarily a rendering system, but it also includes support for interactivity. Adding support for mouse and touch events to your project is simple and consistent.","s":"Interaction","u":"/guides/components/interaction","h":"","p":336},{"i":339,"t":"The new event-based system that replaced InteractionManager from v6 has expanded the definition of what a DisplayObject means to be interactive. With this we have introduced eventMode which allows you to control how an object responds to interaction events. This is similar to the interactive property in v6 but with more options. eventMode Description none Ignores all interaction events, similar to CSS's pointer-events: none, good optimization for non-interactive children passive Does not emit events and ignores hit testing on itself but does allow for events and hit testing only its interactive children. If you want to be compatible with v6, set this as your default eventMode (see options in Renderer, Application, etc) auto Does not emit events and but is hit tested if parent is interactive. Same as interactive = false in v7 static Emit events and is hit tested. Same as interaction = true in v7, useful for objects like buttons that do not move. dynamic Emits events and is hit tested but will also receive mock interaction events fired from a ticker to allow for interaction when the mouse isn't moving. This is useful for elements that independently moving or animating.","s":"Event Modes","u":"/guides/components/interaction","h":"#event-modes","p":336},{"i":341,"t":"PixiJS supports the following event types: Event Type Description pointercancel Fired when a pointer device button is released outside the display object that initially registered a pointerdown. pointerdown Fired when a pointer device button is pressed on the display object. pointerenter Fired when a pointer device enters the display object. pointerleave Fired when a pointer device leaves the display object. pointermove Fired when a pointer device is moved while over the display object. globalpointermove Fired when a pointer device is moved, regardless of hit-testing the current object. pointerout Fired when a pointer device is moved off the display object. pointerover Fired when a pointer device is moved onto the display object. pointertap Fired when a pointer device is tapped twice on the display object. pointerup Fired when a pointer device button is released over the display object. pointerupoutside Fired when a pointer device button is released outside the display object that initially registered a pointerdown. mousedown Fired when a mouse button is pressed on the display object. mouseenter Fired when the mouse cursor enters the display object. mouseleave Fired when the mouse cursor leaves the display object. mousemove Fired when the mouse cursor is moved while over the display object. globalmousemove Fired when a mouse is moved, regardless of hit-testing the current object. mouseout Fired when the mouse cursor is moved off the display object. mouseover Fired when the mouse cursor is moved onto the display object. mouseup Fired when a mouse button is released over the display object. mouseupoutside Fired when a mouse button is released outside the display object that initially registered a mousedown. click Fired when a mouse button is clicked (pressed and released) over the display object. touchcancel Fired when a touch point is removed outside of the display object that initially registered a touchstart. touchend Fired when a touch point is removed from the display object. touchendoutside Fired when a touch point is removed outside of the display object that initially registered a touchstart. touchmove Fired when a touch point is moved along the display object. globaltouchmove Fired when a touch point is moved, regardless of hit-testing the current object. touchstart Fired when a touch point is placed on the display object. tap Fired when a touch point is tapped twice on the display object. wheel Fired when a mouse wheel is spun over the display object. rightclick Fired when a right mouse button is clicked (pressed and released) over the display object. rightdown Fired when a right mouse button is pressed on the display object. rightup Fired when a right mouse button is released over the display object. rightupoutside Fired when a right mouse button is released outside the display object that initially registered a rightdown.","s":"Event Types","u":"/guides/components/interaction","h":"#event-types","p":336},{"i":343,"t":"Any DisplayObject-derived object (Sprite, Container, etc.) can become interactive simply by setting its eventMode property to any of the eventModes listed above. Doing so will cause the object to emit interaction events that can be responded to in order to drive your project's behavior. Check out the interaction example code. To respond to clicks and taps, bind to the events fired on the object, like so: let sprite = PIXI.Sprite.from('/some/texture.png'); sprite.on('pointerdown', (event) => { alert('clicked!'); }); sprite.eventMode = 'static'; Check out the DisplayObject for the list of interaction events supported.","s":"Enabling Interaction","u":"/guides/components/interaction","h":"#enabling-interaction","p":336},{"i":345,"t":"You can check if an object is interactive by calling the isInteractive property. This will return true if eventMode is set to static or dynamic. if (sprite.isInteractive()) { // sprite is interactive }","s":"Checking if Object is Interactive","u":"/guides/components/interaction","h":"#checking-if-object-is-interactive","p":336},{"i":347,"t":"PixiJS supports three types of interaction events - mouse, touch and pointer. Mouse events are fired by mouse movement, clicks etc. Touch events are fired for touch-capable devices. And pointer events are fired for both. What this means is that, in many cases, you can write your project to use pointer events and it will just work when used with either mouse or touch input. Given that, the only reason to use non-pointer events is to support different modes of operation based on input type or to support multi-touch interaction. In all other cases, prefer pointer events.","s":"Use Pointer Events","u":"/guides/components/interaction","h":"#use-pointer-events","p":336},{"i":349,"t":"Hit testing requires walking the full object tree, which in complex projects can become an optimization bottleneck. To mitigate this issue, PixiJS Container-derived objects have a property named interactiveChildren. If you have Containers or other objects with complex child trees that you know will never be interactive, you can set this property to false and the hit testing algorithm will skip those children when checking for hover and click events. As an example, if you were building a side-scrolling game, you would probably want to set background.interactiveChildren = false for your background layer with rocks, clouds, flowers, etc. Doing so would speed up hit testing substantially due to the number of unclickable child objects the background layer would contain. The EventSystem can also be customised to be more performant: const app = new PIXI.Application({ /** * by default we use `auto` for backwards compatibility. * However `passive` is more performant and will be used by default in the future, */ eventMode: 'passive', eventFeatures: { move: true, /** disables the global move events which can be very expensive in large scenes */ globalMove: false, click: true, wheel: true, } });","s":"Optimization","u":"/guides/components/interaction","h":"#optimization","p":336},{"i":351,"t":"Now that you understand basic sprites, it's time to talk about a better way to create them - the Spritesheet class. A Spritesheet is a media format for more efficiently downloading and rendering Sprites. While somewhat more complex to create and use, they are a key tool in optimizing your project.","s":"Spritesheets","u":"/guides/components/sprite-sheets","h":"","p":350},{"i":353,"t":"The basic idea of a spritesheet is to pack a series of images together into a single image, track where each source image ends up, and use that combined image as a shared BaseTexture for the resulting Sprites. The first step is to collect the images you want to combine. The sprite packer then collects the images, and creates a new combined image. As this image is being created, the tool building it keeps track of the location of the rectangle where each source image is stored. It then writes out a JSON file with that information. These two files, in combination, can be passed into a SpriteSheet constructor. The SpriteSheet object then parses the JSON, and creates a series of Texture objects, one for each source image, setting the source rectangle for each based on the JSON data. Each texture uses the same shared BaseTexture as its source.","s":"Anatomy of a Spritesheet","u":"/guides/components/sprite-sheets","h":"#anatomy-of-a-spritesheet","p":350},{"i":355,"t":"SpriteSheets help your project in two ways. First, by speeding up the loading process. While downloading a SpriteSheet's texture requires moving the same (or even slightly more!) number of bytes, they're grouped into a single file. This means that the user's browser can request and download far fewer files for the same number of Sprites. The number of files itself is a key driver of download speed, because each request requires a round-trip to the webserver, and browsers are limited to how many files they can download simultaneously. Converting a project from individual source images to shared sprite sheets can cut your download time in half, at no cost in quality. Second, by improving batch rendering. WebGL rendering speed scales roughly with the number of draw calls made. Batching multiple Sprites, etc. into a single draw call is the main secret to how PixiJS can run so blazingly fast. Maximizing batching is a complex topic, but when multiple Sprites all share a common BaseTexture, it makes it more likely that they can be batched together and rendered in a single call.","s":"Doubly Efficient","u":"/guides/components/sprite-sheets","h":"#doubly-efficient","p":350},{"i":357,"t":"You can use a 3rd party tool to assemble your sprite sheet files. Here are two that may fit your needs: ShoeBox: ShoeBox is a free, Adobe AIR-based sprite packing utility that is great for small projects or learning how SpriteSheets work. TexturePacker: TexturePacker is a more polished tool that supports advanced features and workflows. A free version is available which has all the necessary features for packing spritesheets for PixiJS. It's a good fit for larger projects and professional game development, or projects that need more complex tile mapping features. Spritesheet data can also be created manually or programmatically, and supplied to a new AnimatedSprite. This may be an easier option if your sprites are already contained in a single image. // Create object to store sprite sheet data const atlasData = { frames: { enemy1: { frame: { x: 0, y:0, w:32, h:32 }, sourceSize: { w: 32, h: 32 }, spriteSourceSize: { x: 0, y: 0, w: 32, h: 32 } }, enemy2: { frame: { x: 32, y:0, w:32, h:32 }, sourceSize: { w: 32, h: 32 }, spriteSourceSize: { x: 0, y: 0, w: 32, h: 32 } }, }, meta: { image: 'images/spritesheet.png', format: 'RGBA8888', size: { w: 128, h: 32 }, scale: 1 }, animations: { enemy: ['enemy1','enemy2'] //array of frames by name } } // Create the SpriteSheet from data and image const spritesheet = new PIXI.Spritesheet( PIXI.BaseTexture.from(atlasData.meta.image), atlasData ); // Generate all the Textures asynchronously await spritesheet.parse(); // spritesheet is ready to use! const anim = new PIXI.AnimatedSprite(spritesheet.animations.enemy); // set the animation speed anim.animationSpeed = 0.1666; // play the animation on a loop anim.play(); // add it to the stage to render app.stage.addChild(anim);","s":"Creating SpriteSheets","u":"/guides/components/sprite-sheets","h":"#creating-spritesheets","p":350},{"i":359,"t":"Sprites are the simplest and most common renderable object in PixiJS. They represent a single image to be displayed on the screen. Each Sprite contains a Texture to be drawn, along with all the transformation and display state required to function in the scene graph.","s":"Sprites","u":"/guides/components/sprites","h":"","p":358},{"i":361,"t":"To create a Sprite, all you need is a Texture (check out the Texture guide). Load a PNG's URL using the PIXI.Loader class, then call PIXI.Sprite.from(url) and you're all set. As a convenience during prototyping, you can pass a non-loaded URL to from() and PixiJS will handle it, but your sprite will \"pop in\" after it loads if you don't pre-load your textures. Check out the sprite example code.","s":"Creating Sprites","u":"/guides/components/sprites","h":"#creating-sprites","p":358},{"i":363,"t":"In our DisplayObject guide, we learned about the DisplayObject class and the various properties it defines. Since Sprite objects are also display objects, you can move a sprite, rotate it, and update any other display property.","s":"Using Sprites","u":"/guides/components/sprites","h":"#using-sprites","p":358},{"i":365,"t":"Alpha is a standard display object property. You can use it to fade sprites into the scene by animating each sprite's alpha from 0.0 to 1.0 over a period of time. Tinting allows you multiply the color value of every pixel by a single color. For example, if you had a dungeon game, you might show a character's poison status by setting obj.tint = 0x00FF00, which would give a green tint to the character. Blend modes change how pixel colors are added to the screen when rendering. The three main modes are add, which adds each pixel's RGB channels to whatever is under your sprite (useful for glows and lighting), multiply which works like tint, but on a per-pixel basis, and screen, which overlays the pixels, brightening whatever is underneath them.","s":"Alpha, Tint and Blend Modes","u":"/guides/components/sprites","h":"#alpha-tint-and-blend-modes","p":358},{"i":367,"t":"One common area of confusion when working with sprites lies in scaling and dimensions. The PIXI.DisplayObject class allows you to set the x and y scale for any object. Sprites, being DisplayObjects, also support scaling. In addition, however, Sprites support explicit width and height attributes that can be used to achieve the same effect, but are in pixels instead of a percentage. This works because a Sprite object owns a Texture, which has an explicit width and height. When you set a Sprite's width, internally PixiJS converts that width into a percentage of the underlying texture's width and updates the object's x-scale. So width and height are really just convenience methods for changing scale, based on pixel dimensions rather than percentages.","s":"Scale vs Width & Height","u":"/guides/components/sprites","h":"#scale-vs-width--height","p":358},{"i":369,"t":"If you add a sprite to your stage and rotate it, it will by default rotate around the top-left corner of the image. In some cases, this is what you want. In many cases, however, what you want is for the sprite to rotate around the center of the image it contains, or around an arbitrary point. There are two ways to achieve this: pivots and anchors An object's pivot is an offset, expressed in pixels, from the top-left corner of the Sprite. It defaults to (0, 0). If you have a Sprite whose texture is 100px x 50px, and want to set the pivot point to the center of the image, you'd set your pivot to (50, 25) - half the width, and half the height. Note that pivots can be set outside of the image, meaning the pivot may be less than zero or greater than the width/height. This can be useful in setting up complex animation hierarchies, for example. Every DisplayObject has a pivot. An anchor, in contrast, is only available for Sprites. Anchors are specified in percentages, from 0.0 to 1.0, in each dimension. To rotate around the center point of a texture using anchors, you'd set your Sprite's anchor to (0.5, 0.5) - 50% in width and height. While less common, anchors can also be outside the standard 0.0 - 1.0 range. The nice thing about anchors is that they are resolution and dimension agnostic. If you set your Sprite to be anchored in the middle then later change the size of the texture, your object will still rotate correctly. If you had instead set a pivot using pixel-based calculations, changing the texture size would require changing your pivot point. So, generally speaking, you'll want to use anchors when working with Sprites. One final note: unlike CSS, where setting the transform-origin of the image doesn't move it, in PixiJS setting an anchor or pivot will move your object on the screen. In other words, setting an anchor or pivot affects not just the rotation origin, but also the position of the sprite relative to its parent.","s":"Pivot vs Anchor","u":"/guides/components/sprites","h":"#pivot-vs-anchor","p":358},{"i":371,"t":"Whether it's a high score or a diagram label, text is often the best way to convey information in your projects. Surprisingly, drawing text to the screen with WebGL is a very complex process - there's no built in support for it at all. One of the values PixiJS provides is in hiding this complexity to allow you to draw text in diverse styles, fonts and colors with a few lines of code. In addition, these bits of text are just as much scene objects as sprites - you can tint text, rotate it, alpha-blend it, and otherwise treat it like any other graphical object. Let's dig into how this works.","s":"Text","u":"/guides/components/text","h":"","p":370},{"i":373,"t":"Because of the challenges of working with text in WebGL, PixiJS provides two very different solutions. In this guide, we're going to go over both methods in some detail to help you make the right choice for your project's needs. Selecting the wrong text type can have a large negative impact on your project's performance and appearance.","s":"There Are Two Kinds of Text","u":"/guides/components/text","h":"#there-are-two-kinds-of-text","p":370},{"i":375,"t":"In order to draw text to the screen, you use a Text object. Under the hood, this class draws text to an off-screen buffer using the browser's normal text rendering, then uses that offscreen buffer as the source for drawing the text object. Effectively what this means is that whenever you create or change text, PixiJS creates a new rasterized image of that text, and then treats it like a sprite. This approach allows truly rich text display while keeping rendering speed high. So when working with PIXI.Text objects, there are two sets of options - standard display object options like position, rotation, etc that work after the text is rasterized internally, and text style options that are used while rasterizing. Because text once rendered is basically just a sprite, there's no need to review the standard options. Instead, let's focus on how text is styled. Check out the text example code.","s":"The Text Object","u":"/guides/components/text","h":"#the-text-object","p":370},{"i":377,"t":"There are a lot of text style options available (see TextStyle), but they break down into 5 main groups: Font: fontFamily to select the webfont to use, fontSize to specify the size of the text to draw, along with options for font weight, style and variant. Appearance: Set the color with fill or add a stroke outline, including options for gradient fills. Drop-Shadows: Set a drop-shadow with dropShadow, with a host of related options to specify offset, blur, opacity, etc. Layout: Enable with wordWrap and wordWrapWidth, and then customize the lineHeight and align or letterSpacing Utilities: Add padding or trim extra space to deal with funky font families if needed. To interactively test out feature of Text Style, check out this tool.","s":"Text Styles","u":"/guides/components/text","h":"#text-styles","p":370},{"i":379,"t":"In order for PixiJS to build a PIXI.Text object, you'll need to make sure that the font you want to use is loaded by the browser. Unfortunately, at the time of writing, the PIXI.Loader system does not support loading font files, so you'll need to use a 3rd party font loader to ensure that any custom web fonts you want to use are pre-loaded. It's not enough to add an @font-face declaration in your project's CSS because browsers will happily render text using a fallback font while your custom font loads. Any javascript library that can load a web font will work, you just want something that will delay starting your project until the font has been fully loaded by the browser. One such library is FontFaceObserver. Here's a simple example that shows how to use it to ensure the web font \"Short Stack\" is loaded before your app starts. First, we need a font-face declaration in CSS: @font-face { font-family: Short Stack; src: url(short-stack.woff2) format('woff2'), url(short-stack.woff) format('woff'); } Now that the browser knows what our font is and how to find the source files, it's time to use the library to load them: // Create the loader let font = new FontFaceObserver('Short Stack', {}); // Start loading the font font.load().then(() => { // Successful load, start up your PixiJS app as usual let app = new PIXI.Application({ width: 640, height: 360 }); document.body.appendChild(app.view); // ... etc ... }, () => { // Failed load, log the error or display a message to the user alert('Unable to load required font!'); });","s":"Loading and Using Fonts","u":"/guides/components/text","h":"#loading-and-using-fonts","p":370},{"i":381,"t":"While PixiJS does make working with text easy, there are a few things you need to watch out for. First, changing an existing text string requires re-generating the internal render of that text, which is a slow operation that can impact performance if you change many text objects each frame. If your project requires lots of frequently changing text on the screen at once, consider using a PIXI.BitmapText object (explained below) which uses a fixed bitmap font that doesn't require re-generation when text changes. Second, be careful when scaling text. Setting a text object's scale to > 1.0 will result in blurry/pixely display, because the text is not re-rendered at the higher resolution needed to look sharp - it's still the same resolution it was when generated. To deal with this, you can render at a higher initial size and down-scale, instead. This will use more memory, but will allow your text to always look clear and crisp.","s":"Caveats and Gotchas","u":"/guides/components/text","h":"#caveats-and-gotchas","p":370},{"i":383,"t":"In addition to the standard PIXI.Text approach to adding text to your project, PixiJS also supports bitmap fonts. Bitmap fonts are very different from TrueType or other general purpose fonts, in that they consist of a single image containing pre-rendered versions of every letter you want to use. When drawing text with a bitmap font, PixiJS doesn't need to render the font glyphs into a temporary buffer - it can simply copy and stamp out each character of a string from the master font image. The primary advantage of this approach is speed - changing text frequently is much cheaper and rendering each additional piece of text is much faster due to the shared source texture. Check out the bitmap text example code.","s":"BitmapText","u":"/guides/components/text","h":"#bitmaptext","p":370},{"i":385,"t":"3rd party solutions BitmapFont.from auto-generation","s":"BitmapFont","u":"/guides/components/text","h":"#bitmapfont","p":370},{"i":387,"t":"PIXI.Text Static text Small number of text objects High fidelity text rendering (kerning e.g.) Text layout (line & letter spacing) PIXI.BitmapText Dynamic text Large number of text objects Lower memory","s":"Selecting the Right Approach","u":"/guides/components/text","h":"#selecting-the-right-approach","p":370},{"i":389,"t":"We're slowly working our way down from the high level to the low. We've talked about the scene graph, and in general about display objects that live in it. We're about to get to sprites and other simple display objects. But before we do, we need to talk about textures. In PixiJS, textures are one of the core resources used by display objects. A texture, broadly speaking, represents a source of pixels to be used to fill in an area on the screen. The simplest example is a sprite - a rectangle that is completely filled with a single texture. But things can get much more complex.","s":"Textures","u":"/guides/components/textures","h":"","p":388},{"i":391,"t":"Let's examine how textures really work, by following the path your image data travels on its way to the screen. Here's the flow we're going to follow: Source Image > Loader > BaseTexture > Texture","s":"Life-cycle of a Texture","u":"/guides/components/textures","h":"#life-cycle-of-a-texture","p":388},{"i":393,"t":"To start with, you have the image you want to display. The first step is to make it available on your server. This may seem obvious, but if you're coming to PixiJS from other game development systems, it's worth remembering that everything has to be loaded over the network. If you're developing locally, please be aware that you must use a webserver to test, or your images won't load due to how browsers treat local file security.","s":"Serving the Image","u":"/guides/components/textures","h":"#serving-the-image","p":388},{"i":395,"t":"To work with the image, the first step is to pull the image file from your webserver into the user's web browser. To do this, we can use PIXI.Texture.from(), which works for quick demos, but in production you'll use the Loader class. A Loader wraps and manages using an element to tell the browser to fetch the image, and then notifies you when that has been completed. This process is asynchronous - you request the load, then time passes, then an event fires to let you know the load is completed. We'll go into the loader in a lot more depth in a later guide.","s":"Loading the Image","u":"/guides/components/textures","h":"#loading-the-image","p":388},{"i":397,"t":"Once the Loader has done its work, the loaded element contains the pixel data we need. But to use it to render something, PixiJS has to take that raw image file and upload it to the GPU. This brings us to the real workhorse of the texture system - the BaseTexture class. Each BaseTexture manages a single pixel source - usually an image, but can also be a Canvas or Video element. BaseTextures allow PixiJS to convert the image to pixels and use those pixels in rendering. In addition, it also contains settings that control how the texture data is rendered, such as the wrap mode (for UV coordinates outside the 0.0-1.0 range) and scale mode (used when scaling a texture). BaseTextures are automatically cached, so that calling PIXI.Texture.from() repeatedly for the same URL returns the same BaseTexture each time. Destroying a BaseTexture frees the image data associated with it.","s":"BaseTextures Own the Data","u":"/guides/components/textures","h":"#basetextures-own-the-data","p":388},{"i":399,"t":"So finally, we get to the PIXI.Texture class itself! At this point, you may be wondering what the Texture object does. After all, the BaseTexture manages the pixels and render settings. And the answer is, it doesn't do very much. Textures are light-weight views on an underlying BaseTexture. Their main attribute is the source rectangle within the BaseTexture from which to pull. If all PixiJS drew were sprites, that would be pretty redundant. But consider SpriteSheets. A SpriteSheet is a single image that contains multiple sprite images arranged within. In a Spritesheet object, a single BaseTexture is referenced by a set of Textures, one for each source image in the original sprite sheet. By sharing a single BaseTexture, the browser only downloads one file, and our batching renderer can blaze through drawing sprites since they all share the same underlying pixel data. The SpriteSheet's Textures pull out just the rectangle of pixels needed by each sprite. That is why we have both Textures and BaseTextures - to allow sprite sheets, animations, button states, etc to be loaded as a single image, while only displaying the part of the master image that is needed.","s":"Textures are a View on BaseTextures","u":"/guides/components/textures","h":"#textures-are-a-view-on-basetextures","p":388},{"i":401,"t":"We will discuss resource loading in a later guide, but one of the most common issues new users face when building a PixiJS project is how best to load their textures. Using PIXI.Texture.from() as we do in our demo snippets will work, but will result in pop-in as each texture is loaded while your objects are already being rendered in the scene graph. Instead, here's a quick cheat sheet of one good solution: Show a loading image Create a Loader Run all texture-based objects, add their textures to the loader Start the loader, and optionally update your loading image based on progress callbacks On loader completion, run all objects and use PIXI.Texture.from() to pull the loaded textures out of the texture cache Prepare your textures (optional - see below) Hide your loading image, start rendering your scene graph Using this workflow ensures that your textures are pre-loaded, to prevent pop-in, and is relatively easy to code. Regarding preparing textures: Even after you've loaded your textures, the images still need to be pushed to the GPU and decoded. Doing this for a large number of source images can be slow and cause lag spikes when your project first loads. To solve this, you can use the Prepare plugin, which allows you to pre-load textures in a final step before displaying your project.","s":"Loading Textures","u":"/guides/components/textures","h":"#loading-textures","p":388},{"i":403,"t":"Once you're done with a Texture, you may wish to free up the memory (both WebGL-managed buffers and browser-based) that it uses. To do so, you should call destroy() on the BaseTexture that owns the data. Remember that Textures don't manage pixel data! This is a particularly good idea for short-lived imagery like cut-scenes that are large and will only be used once. If you want to remove all textures and wipe the slate clean, you can use the PIXI.utils.destroyTextureCache() function.","s":"Unloading Textures","u":"/guides/components/textures","h":"#unloading-textures","p":388},{"i":405,"t":"As we alluded to above, you can make a Texture out of more than just images: Video: Pass an HTML5