具体的なサンプルコードまである説明をいただきありがとうございます!
なるほどGameMakerでの委譲ってこういうことなんですね。
内包する、所持する、というのは具体的にどういうことなのかバシッと見えてきました。
GameMakerのオブジェクトはいろいろ装備されてますので、諸々の機能が必要なく、最小のものにしたければ下記のようにstructを使うのもありなのでしょうか…
script weapons にBattery(struct)のコンストラクタを書いておく
function Battery(_bullet_remain) constructor
{
bullet_remain = _bullet_remain;
bullet = function(_x, _y, _deg, _speed)
{
bullet_remain = max(0, bullet_remain-1);
if (bullet_remain == 0) return;
instance_create_layer(_x, _y, "Instances", objBullet);
}
}
objShip(船オブジェクト): create eventで砲台を作成して保持し、その機能を使う
battery = new Bullet(10);
battery.bullet(self.x, self.y, deg, speed);
いろいろ試してみようと思います。
ご説明ありがとうございました!
通報 ...
確かにオブジェクトだと冗長な場合は struct で問題ないですね👍