Spaces:
Runtime error
Runtime error
| import Base from '../base/Base.js'; | |
| import { Circle } from '../utils/Geoms.js' | |
| class Orbit extends Base { | |
| constructor(scene, config) { | |
| super(scene, config); | |
| this.type = 'rexSpinnerOrbit'; | |
| } | |
| buildShapes() { | |
| this.addShape((new Circle()).setName('track')); | |
| this.addShape((new Circle()).setName('thumb')); | |
| } | |
| updateShapes() { | |
| var centerX = this.centerX; | |
| var centerY = this.centerY; | |
| var radius = this.radius; | |
| var trackRadius = radius * 0.9; | |
| var trackThickness = Math.ceil(trackRadius/25); | |
| var thumbRadius = radius * 0.1; | |
| var thumbAngle = Math.PI * 2 * this.value; | |
| this.getShape('track') | |
| .lineStyle(trackThickness, this.color, 0.7) | |
| .setRadius(trackRadius) | |
| .setCenterPosition(centerX, centerY); | |
| this.getShape('thumb') | |
| .fillStyle(this.color) | |
| .setRadius(thumbRadius) | |
| .setCenterPosition( | |
| centerX + Math.cos(thumbAngle) * trackRadius, | |
| centerY + Math.sin(thumbAngle) * trackRadius | |
| ); | |
| } | |
| } | |
| export default Orbit; |