Build games as easily as you play them — join the Phaser Beam waitlist for Early Access.
class Example extends Phaser.Scene { angle; create () { const graphics = this.add.graphics({ fillStyle: { color: 0x2266aa } }); const ellipse = new Phaser.Geom.Ellipse(400, 300, 250, 150); let circumferencePoint = new Phaser.Geom.Point(275, 300); const centerPoint = new Phaser.Geom.Point(400, 300); const line = new Phaser.Geom.Line(400, 300, 275, 300); const text1 = this.add.text(20, 50, 'Circumference Point:'); const text2 = this.add.text(20, 75, 'Angle:'); this.input.on('pointermove', pointer => { this.angle = Phaser.Math.Angle.Between(400, 300, pointer.x, pointer.y); circumferencePoint = Phaser.Geom.Ellipse.CircumferencePoint(ellipse, this.angle); line.x2 = circumferencePoint.x; line.y2 = circumferencePoint.y; text1.setText(`Circumference Point: (${circumferencePoint.x}, ${circumferencePoint.y})`); text2.setText(`Angle: ${this.angle}`); graphics.fillPointShape(circumferencePoint, 20); draw(); }); draw(); function draw () { graphics.clear(); graphics.lineStyle(2, 0x00aaaa); graphics.strokeEllipseShape(ellipse); graphics.strokeLineShape(line); graphics.fillPointShape(centerPoint, 10); graphics.fillPointShape(circumferencePoint, 20); } } } const config = { width: 800, height: 600, type: Phaser.AUTO, parent: 'phaser-example', scene: Example }; const game = new Phaser.Game(config);
class Example extends Phaser.Scene
{
angle;
create ()
{
const graphics = this.add.graphics({ fillStyle: { color: 0x2266aa } });
const ellipse = new Phaser.Geom.Ellipse(400, 300, 250, 150);
let circumferencePoint = new Phaser.Geom.Point(275, 300);
const centerPoint = new Phaser.Geom.Point(400, 300);
const line = new Phaser.Geom.Line(400, 300, 275, 300);
const text1 = this.add.text(20, 50, 'Circumference Point:');
const text2 = this.add.text(20, 75, 'Angle:');
this.input.on('pointermove', pointer =>
{
this.angle = Phaser.Math.Angle.Between(400, 300, pointer.x, pointer.y);
circumferencePoint = Phaser.Geom.Ellipse.CircumferencePoint(ellipse, this.angle);
line.x2 = circumferencePoint.x;
line.y2 = circumferencePoint.y;
text1.setText(`Circumference Point: (${circumferencePoint.x}, ${circumferencePoint.y})`);
text2.setText(`Angle: ${this.angle}`);
graphics.fillPointShape(circumferencePoint, 20);
draw();
});
draw();
function draw ()
{
graphics.clear();
graphics.lineStyle(2, 0x00aaaa);
graphics.strokeEllipseShape(ellipse);
graphics.strokeLineShape(line);
graphics.fillPointShape(centerPoint, 10);
graphics.fillPointShape(circumferencePoint, 20);
}
}
}
const config = {
width: 800,
height: 600,
type: Phaser.AUTO,
parent: 'phaser-example',
scene: Example
};
const game = new Phaser.Game(config);