diff options
| author | Rubén Beltrán del Río <ben@nsovocal.com> | 2018-04-21 03:48:01 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-04-21 03:48:01 -0500 |
| commit | 0616b3f00653c66b5e34814653e33413b9ec034e (patch) | |
| tree | 520e8c6390d5fd4b0e7b02541803bf052c244ecf /lib/factories/pixi.js | |
| parent | 11be5ebabcdab8272d938f7b90ef0ea9be29a421 (diff) | |
Render Sumo (#3)
* Use corrected components
* Add renderable node
* Add render system
* Add sumo factory
* Add systems and entities to app
* Remove reference to weight / accel component
* Update dependencies, add pixi and babel-polyfill
* Use babel polyfill
* Add component to store pixi containers
* Add pixi container to the renderable support
* Update factories to produce renderables
* Update the renderable to use pixi
It also uses the new event emitters in serpentity 2.1.0
* Initialize pixi and pass it to renderable system
Diffstat (limited to 'lib/factories/pixi.js')
| -rw-r--r-- | lib/factories/pixi.js | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/lib/factories/pixi.js b/lib/factories/pixi.js new file mode 100644 index 0000000..e3c1b5a --- /dev/null +++ b/lib/factories/pixi.js @@ -0,0 +1,66 @@ +import { Graphics } from 'pixi.js'; + +/** + * Factory object that contains many methods to create prefab pixi + * objects + * + * @type object + * @name PixiFactory + */ +export default { + + /** + * Creates a sumo container + * + * @function createSumo + * @memberof PixiFactory + * @return {external:CreateJs.Container} the created container + */ + createSumo() { + + const radius = 25; + + // The body + const body = new Graphics(); + body.beginFill(0x87c5ea) + .drawCircle(0, 0, radius) + .endFill(); + + // The mouth + const mouth = new Graphics(); + mouth.lineStyle(10, 0xff0080, 1) + .arc( + 0, 0, // center + radius * 0.6, + Math.PI / 6, + 5 * Math.PI / 6 + ); + + const leftEye = new Graphics(); + leftEye.beginFill(0xffffff) + .drawCircle(-radius / 3 - radius / 8, -radius / 4, radius / 5) + .endFill(); + + const rightEye = new Graphics(); + rightEye.beginFill(0xffffff) + .drawCircle(radius / 3 + radius / 8, -radius / 4, radius / 5); + + const leftPupil = new Graphics(); + leftPupil.beginFill(0x11) + .drawCircle(-radius / 3 - radius / 8, -radius / 4, radius / 10); + + const rightPupil = new Graphics(); + leftPupil.beginFill(0x11) + .drawCircle(radius / 3 + radius / 8, -radius / 4, radius / 10); + + // The group + body.addChild(mouth); + body.addChild(leftEye); + body.addChild(rightEye); + body.addChild(leftPupil); + body.addChild(rightPupil); + + return body; + } +}; + |