移譲は has-a (所持している)関係なので、機能を持たせたいオブジェクトの変数に、オブジェクトのインスタンスを持たせることで実現できます
- objBattery: 移譲元 (このオブジェクトを拡張したい)
- objShip: 移譲先 (拡張したオブジェクト)
■objShip の Createイベントで以下のように記述する
// 砲台オブジェクトを所持する
_battery = instance_create_layer(0, 0, "Instances", objBattery);
// 弾を撃つ関数
bullet = function(deg, speed) {
// objBatteryの機能で弾を撃つ
return _battery.bullet(self.x, self.y, deg, speed)
};
※サンプルコードはビルドしていないので参考までに…
敵キャラを拡張するために基底となる敵キャラを内包しても良いですし、サンプルコードのように部品(機能)を所持する、という使い方でも良いです
通報 ...