Build games as easily as you play them — join the Phaser Beam waitlist for Early Access.
var config = { width: 800, height: 600, type: Phaser.AUTO, parent: 'phaser-example', scene: { create: create, update: update } }; var game = new Phaser.Game(config); var graphics; var s; var r; var colors; var go; var props; var logos; function create () { graphics = this.add.graphics(); var hsv = Phaser.Display.Color.HSVColorWheel(); colors = []; for (var i = 0; i < hsv.length; i += 4) { colors.push(hsv[i].color); } r = 0; s = []; go = false; logos = 13; props = { a: 0, thickness: 10, alpha: 1 }; for (var i = 0; i < logos; i++) { s.push(0); } TweenMax.delayedCall(5, function () { r = 0; go = true; }); TweenMax.delayedCall(14, function () { TweenMax.to(props, 0.05, { a: 1, repeat: -1, onRepeat: function () { Phaser.Utils.Array.RotateRight(colors); } }); }); TweenMax.delayedCall(30, function () { TweenMax.to(props, 3, { alpha: 0.1, ease: 'Sine.easeInOut', yoyo: true, repeat: -1, repeatDelay: 4 }); }); TweenMax.delayedCall(22, function () { TweenMax.to(props, 6, { thickness: 2, ease: 'Sine.easeInOut', yoyo: true, repeat: -1, repeatDelay: 16 }); }); } function update () { graphics.clear(); r += 0.015; var scale = 0.9 - (logos * 0.01); for (var i = 0; i < logos; i++) { drawLogo(colors[i], -400 + ((i * 2) * Math.sin(r * 2)), -100 + ((i * 2) * Math.cos(r * 2)), scale, s[i]); if (go) { s[i] = Math.sin(r / 2); } scale += 0.01; } } function drawLogo (color, x, y, scale, rot) { graphics.lineStyle(Math.round(props.thickness), color, props.alpha); var w = 100; var h = 200; var h2 = 100; var top = y + 0; var mid = y + 100; var bot = y + 200; var s = 30; graphics.save(); graphics.translateCanvas(400, 300); graphics.scaleCanvas(scale, scale); graphics.rotateCanvas(rot); graphics.beginPath(); // P graphics.moveTo(x, top); graphics.lineTo(x + w, top); graphics.lineTo(x + w, mid); graphics.lineTo(x, mid); graphics.lineTo(x, bot); // H x += w + s; graphics.moveTo(x, top); graphics.lineTo(x, bot); graphics.moveTo(x, mid); graphics.lineTo(x + w, mid); graphics.moveTo(x + w, top); graphics.lineTo(x + w, bot); // A x += w + s; graphics.moveTo(x, bot); graphics.lineTo(x + (w * 0.75), top); graphics.lineTo(x + (w * 0.75) + (w * 0.75), bot); // S x += ((w * 0.75) * 2) + s; graphics.moveTo(x + w, top); graphics.lineTo(x, top); graphics.lineTo(x, mid); graphics.lineTo(x + w, mid); graphics.lineTo(x + w, bot); graphics.lineTo(x, bot); // E x += w + s; graphics.moveTo(x + w, top); graphics.lineTo(x, top); graphics.lineTo(x, bot); graphics.lineTo(x + w, bot); graphics.moveTo(x, mid); graphics.lineTo(x + w, mid); // R x += w + s; graphics.moveTo(x, top); graphics.lineTo(x + w, top); graphics.lineTo(x + w, mid); graphics.lineTo(x, mid); graphics.lineTo(x, bot); graphics.moveTo(x, mid); graphics.lineTo(x + w, bot); graphics.strokePath(); graphics.restore(); }
var config = {
width: 800,
height: 600,
type: Phaser.AUTO,
parent: 'phaser-example',
scene: {
create: create,
update: update
}
};
var game = new Phaser.Game(config);
var graphics;
var s;
var r;
var colors;
var go;
var props;
var logos;
function create ()
{
graphics = this.add.graphics();
var hsv = Phaser.Display.Color.HSVColorWheel();
colors = [];
for (var i = 0; i < hsv.length; i += 4)
{
colors.push(hsv[i].color);
}
r = 0;
s = [];
go = false;
logos = 13;
props = {
a: 0,
thickness: 10,
alpha: 1
};
for (var i = 0; i < logos; i++)
{
s.push(0);
}
TweenMax.delayedCall(5, function () {
r = 0;
go = true;
});
TweenMax.delayedCall(14, function () {
TweenMax.to(props, 0.05, {
a: 1,
repeat: -1,
onRepeat: function () {
Phaser.Utils.Array.RotateRight(colors);
}
});
});
TweenMax.delayedCall(30, function () {
TweenMax.to(props, 3, {
alpha: 0.1,
ease: 'Sine.easeInOut',
yoyo: true,
repeat: -1,
repeatDelay: 4
});
});
TweenMax.delayedCall(22, function () {
TweenMax.to(props, 6, {
thickness: 2,
ease: 'Sine.easeInOut',
yoyo: true,
repeat: -1,
repeatDelay: 16
});
});
}
function update ()
{
graphics.clear();
r += 0.015;
var scale = 0.9 - (logos * 0.01);
for (var i = 0; i < logos; i++)
{
drawLogo(colors[i], -400 + ((i * 2) * Math.sin(r * 2)), -100 + ((i * 2) * Math.cos(r * 2)), scale, s[i]);
if (go)
{
s[i] = Math.sin(r / 2);
}
scale += 0.01;
}
}
function drawLogo (color, x, y, scale, rot)
{
graphics.lineStyle(Math.round(props.thickness), color, props.alpha);
var w = 100;
var h = 200;
var h2 = 100;
var top = y + 0;
var mid = y + 100;
var bot = y + 200;
var s = 30;
graphics.save();
graphics.translateCanvas(400, 300);
graphics.scaleCanvas(scale, scale);
graphics.rotateCanvas(rot);
graphics.beginPath();
// P
graphics.moveTo(x, top);
graphics.lineTo(x + w, top);
graphics.lineTo(x + w, mid);
graphics.lineTo(x, mid);
graphics.lineTo(x, bot);
// H
x += w + s;
graphics.moveTo(x, top);
graphics.lineTo(x, bot);
graphics.moveTo(x, mid);
graphics.lineTo(x + w, mid);
graphics.moveTo(x + w, top);
graphics.lineTo(x + w, bot);
// A
x += w + s;
graphics.moveTo(x, bot);
graphics.lineTo(x + (w * 0.75), top);
graphics.lineTo(x + (w * 0.75) + (w * 0.75), bot);
// S
x += ((w * 0.75) * 2) + s;
graphics.moveTo(x + w, top);
graphics.lineTo(x, top);
graphics.lineTo(x, mid);
graphics.lineTo(x + w, mid);
graphics.lineTo(x + w, bot);
graphics.lineTo(x, bot);
// E
x += w + s;
graphics.moveTo(x + w, top);
graphics.lineTo(x, top);
graphics.lineTo(x, bot);
graphics.lineTo(x + w, bot);
graphics.moveTo(x, mid);
graphics.lineTo(x + w, mid);
// R
x += w + s;
graphics.moveTo(x, top);
graphics.lineTo(x + w, top);
graphics.lineTo(x + w, mid);
graphics.lineTo(x, mid);
graphics.lineTo(x, bot);
graphics.moveTo(x, mid);
graphics.lineTo(x + w, bot);
graphics.strokePath();
graphics.restore();
}