feat: shapes
This commit is contained in:
parent
770a63897d
commit
72d114ac74
|
@ -1,6 +1,7 @@
|
||||||
import K from 'kefir';
|
import K from 'kefir';
|
||||||
|
|
||||||
import * as easings from '@/util/easing.js';
|
import * as easings from '@/util/easing.js';
|
||||||
|
import {TAU} from '@/util/math.js';
|
||||||
|
|
||||||
export default class Emitter {
|
export default class Emitter {
|
||||||
constructor(ecs) {
|
constructor(ecs) {
|
||||||
|
@ -11,6 +12,18 @@ export default class Emitter {
|
||||||
const allocated = this.ecs.get(await this.ecs.create(entity));
|
const allocated = this.ecs.get(await this.ecs.create(entity));
|
||||||
if (shape) {
|
if (shape) {
|
||||||
switch (shape.type) {
|
switch (shape.type) {
|
||||||
|
case 'circle': {
|
||||||
|
const r = Math.random() * TAU;
|
||||||
|
allocated.Position.x += Math.cos(r) * shape.payload.radius;
|
||||||
|
allocated.Position.y += Math.sin(r) * shape.payload.radius;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'filledCircle': {
|
||||||
|
const r = Math.random() * TAU;
|
||||||
|
allocated.Position.x += Math.cos(r) * Math.random() * shape.payload.radius;
|
||||||
|
allocated.Position.y += Math.sin(r) * Math.random() * shape.payload.radius;
|
||||||
|
break;
|
||||||
|
}
|
||||||
case 'filledRect': {
|
case 'filledRect': {
|
||||||
allocated.Position.x += Math.random() * shape.payload.width - (shape.payload.width / 2);
|
allocated.Position.x += Math.random() * shape.payload.width - (shape.payload.width / 2);
|
||||||
allocated.Position.y += Math.random() * shape.payload.height - (shape.payload.height / 2);
|
allocated.Position.y += Math.random() * shape.payload.height - (shape.payload.height / 2);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user