1 ~ 3 個のパラメーターを渡すことができるようにする場合、関数定義を 3 回オーバーロードする必要がないようにすることは可能ですか?
たとえば、次の代わりに:
function(class a) { //this is called if only 1 class is passed
instance 1 = a;
}
function(class a, class b) { //this is called if 2 classes are passed
instance1 = a;
instance2 = b;
}
function(class a, class b, class c) { //this is called if 3 classes are passed
instance1 = a;
instance2 = b;
instance3 = c;
}
あなたが持つことができます:
function(class a, <if2class>class b, <if3class>class c) //this is called
//for all passes
// <ifxclass> is not a real command, I'm using it for demonstration
{
instance1 = a; //always
instance2 = b; //if class b is passed
instance3 = c; //if class c is passed
}
関数呼び出しの場合...
function(first, second) //example of a function call with this code
EDIT:実際の使用のための説明:
bossbattle(biglion, bigtiger);
bossbattle(biglion);
bossbattle(hades, biglion, biglion);
//where inside bossbattle it sets the classes passed in to temporary classes
//for battle. that's why I need a variable number of parameters
私はすでに通常の敵の戦闘システムを作成しており、関数を呼び出して、ランダムな通常の敵の階層化されたパーセンテージに基づいて 1 ~ 3 スポットをランダムに配置します。同じ戦闘システムを使用しようとしていますが、別の機能 (つまりboss battle()
) を使用して、戦闘システムにボス戦を追加しようとしています。一時的な敵が戦闘に使用するクラス インスタンスは名前付きの配列にあり、配列の各インスタンスにEnemy battlefield monsters[3]
ブール値isalive
があり、パラメーターが呼び出された場合に true に設定したいbossbattle()
ので、たとえば、あるisalive = true
場合は3 になります。 3 つのパラメーターが渡されましbossbattle()
たが、1 つのパラメーターのみが渡された場合は 1 つだけが true に設定されます。