ボールが衝突するオブジェクトに応じて解決アクションが必要なゲームに取り組んでいます。オブジェクトの仕様if節の動作
解像度メソッド内のコードの多くは、ヒットすることができた異なるタイプのオブジェクトの全てに適用されるが、一部はまた、特定のオブジェクトタイプに固有です。
擬似コードは次のようになります。
resolve (Object a) {
if (some test) {
if (Object a is rect) {
// do one thing
} else {
// do something else thing
} else if (another test) {
if (Object a is rect) {
// do one thing
} else {
// do something else thing
} else if (third test) {
if (Object a is rect) {
// do one thing
} else {
// do something else thing
}
}
しかし、初心者には、これは(理由節の場合、各内のオブジェクトタイプのテストの)種類の雑然と感じているが、私は非常に把握することはできませんどのように改善する?私はメソッドをオーバーライドし、それに渡されるサブクラスに基づいて動作を持たせることができますが、その後両方のメソッドで同じコードをたくさん使用することになります。
この方法は、ボール(上、下など)の現在位置をテストし、それに応じてボールの速度を調整します。オブジェクトが長方形の場合、新しい速度は円とは異なります。
誰でも助けてもらえますか?
、あなたはそこに3回の場合で同じロジックと他の部分を書いていますか? – Jayy