クライアント+サーバーは両方ともJavascriptで書かれています。戦闘は控えめに行われ、ゲームにはループを必要とするものが他にないため、マスターゲームループはありません。2人のプレイヤーが戦闘を開始すると、次のような自動攻撃ループに入ります。
if ( combat key is pressed ) {
check a bunch of stuff;
setTimeout( combatLoop(); 5000 );
}
combatLoop = function() {
attack(player1,player2);
var loop = setTimeout( combatLoop(); 5000 );
if ( skill variable == 1 ) { clearTimeout(loop); skill(); }
}
したがって、combatLoop関数は5秒ごとに何度も呼び出されます。攻撃機能は、2人の入力プレイヤーが互いに攻撃したときに何が起こるかを処理します。プレーヤーがスキルを使用する場合、clearTimeoutを使用してループから抜け出し、関連するskill()関数が呼び出されます。スキル関数は、combatLoopを再度呼び出す場合と呼び出さない場合があります。
質問1
私はJavascriptを初めて使用しますが、この方法で大きな欠陥が見られるかどうか疑問に思っていました。
質問2
私がやろうとしていることの同様の例を見たことがないので、スキルボタンの部分を一緒にハックします。この方法で戦闘ループをスキルボタンの押下を「リッスン」し(スキルボタンの押下=>スキル変数を設定= 1)、clearTimeoutを使用してメインループをクリアするのは「間違っています」ですか?したがって、スキルは次の攻撃中に実行されます(攻撃の合間にではありません)。これは私にとっては問題ありません。工業規格が何であるかわかりません。:p