コンテンツにスキップ

Flash (フラッシュ)

画面を一瞬特定の色(デフォルトは白)で光らせます。雷や強い光の表現に使えます。

/**
* 画面を一瞬光らせる
* @param duration 持続時間(ms)
* @param r 赤 (0-255)
* @param g 緑 (0-255)
* @param b 青 (0-255)
*/
public flashCamera(duration: number = 500, r: number = 255, g: number = 255, b: number = 255) {
this.cameras.main.flash(duration, r, g, b);
}
create() {
// 0.5秒かけて白く光らせる
this.flashCamera(500, 255, 255, 255);
}
クラス全体を見る
import Phaser from 'phaser';
export class FlashScene extends Phaser.Scene {
constructor() {
super({ key: 'FlashScene' });
}
create() {
this.add.text(10, 10, 'Camera Flash', {
fontFamily: '"Noto Sans JP", sans-serif',
fontSize: '24px',
color: '#00ff00'
});
const infoText = this.add.text(400, 300, 'Click button to test', {
fontFamily: '"Noto Sans JP", sans-serif',
fontSize: '32px',
color: '#ffffff'
}).setOrigin(0.5);
this.createButton(400, 200, 'FLASH', () => {
this.flashCamera();
infoText.setText('Flash!');
});
}
/**
* 画面を一瞬光らせる
* @param duration 持続時間(ms)
* @param r 赤 (0-255)
* @param g 緑 (0-255)
* @param b 青 (0-255)
*/
public flashCamera(duration: number = 500, r: number = 255, g: number = 255, b: number = 255) {
this.cameras.main.flash(duration, r, g, b);
}
createButton(x: number, y: number, label: string, callback: () => void) {
const button = this.add.text(x, y, label, {
fontFamily: '"Noto Sans JP", sans-serif',
fontSize: '28px',
color: '#000000',
backgroundColor: '#ffffff',
padding: { x: 10, y: 5 }
})
.setOrigin(0.5)
.setInteractive({ useHandCursor: true });
button.on('pointerdown', callback);
button.on('pointerover', () => button.setStyle({ fill: '#ff0000' }));
button.on('pointerout', () => button.setStyle({ fill: '#000000' }));
}
}
  1. 色指定: 引数でRGBを指定することで、白だけでなく赤(ダメージ)や青(演出)などのフラッシュも可能です。

  2. 瞬時のインパクト: 画面全体を覆うエフェクトなので、雷や爆発、シーン転換のきっかけなど、強いインパクトを与えたい場面で有効です。