Luaでゲームフレームワークを使用しています。ここで、ボタンを作成する場合は、関数と2つのスプライト(ボタンの上下)を保持するボタンのテーブルを作成します。
スプライトには、setLocation(self, x, y)
やなどの基本的な機能がたくさんありgetDimensions(self)
ます。
私はこのような多くの関数を作成したくありません:
function button.setLocation(self, x, y)
self.buttonUpSprite(self, x, y)
end
ただし、ボタンに対して行われたほとんどの呼び出しを直接buttonUpスプライトに「自動的に」委任したいと思います。
ボタンテーブルのメタテーブル__index
をスプライトを指すように設定するだけで、呼び出しはスプライトの関数を転送しますが、self
参照はボタンを指し、操作したいスプライトではありません。
この委任を行うためのクリーンな方法はありますか?