Blink (点滅)
ダメージを受けた際や、無敵時間の表現に使われる高速点滅です。
alpha (不透明度) を操作します。
コードスニペット
Section titled “コードスニペット”1. メソッド (Method)
Section titled “1. メソッド (Method)”/** * オブジェクトを点滅させる * @param target 対象オブジェクト * @param duration 1回の点滅時間(ms) (デフォルト: 100) */public startBlink(target: Phaser.GameObjects.GameObject, duration: number = 100) { this.tweens.add({ targets: target, alpha: 0.2, duration: duration, yoyo: true, // 戻る repeat: -1, // 無限ループ hold: 50 // 少し待機 });}2. 使い方 (Usage)
Section titled “2. 使い方 (Usage)”create() { const blinkObj = this.add.rectangle(400, 200, 100, 100, 0xffaa00);
// 0.1秒間隔で点滅 this.startBlink(blinkObj, 100);}完全なソースコード
Section titled “完全なソースコード”クラス全体を見る
import Phaser from 'phaser';
export class BlinkScene extends Phaser.Scene { constructor() { super({ key: 'BlinkScene' }); }
create() { this.add.text(10, 10, 'Blink Effect', { fontFamily: '"Noto Sans JP", sans-serif', fontSize: '24px', color: '#00ff00' });
this.add.text(400, 100, 'Blink (点滅)', { fontFamily: '"Noto Sans JP", sans-serif' }).setOrigin(0.5); const blinkObj = this.add.rectangle(400, 200, 100, 100, 0xffaa00);
// 点滅エフェクトを開始 this.startBlink(blinkObj); }
/** * オブジェクトを点滅させる * @param target 対象オブジェクト * @param duration 1回の点滅時間(ms) (デフォルト: 100) */ public startBlink(target: Phaser.GameObjects.GameObject, duration: number = 100) { this.tweens.add({ targets: target, alpha: 0.2, duration: duration, yoyo: true, // 戻る repeat: -1, // 無限ループ hold: 50 }); }}実装のポイント
Section titled “実装のポイント”-
無限ループ:
repeat: -1を設定することで、点滅を永続的に繰り返します。 -
Yoyo:
yoyo: trueにすることで、不透明度を下げる→上げるという往復動作を自動化しています。 -
Hold:
hold: 50で不透明度が戻った後に少し待機時間を設け、点滅のリズムを調整しています。