そうだったんですか。みけCAT さんが書きました:「オブジェクトを値渡しで渡していたから」ではありません。
そもそもWinMain関数からscにオブジェクトを渡さずに、独立したKeyクラスのオブジェクトを使用していた問題を修正しました。
とりあえず、当初の問題は解決しましたので「解決」としておきます。
「独立したオブジェクトを使用するのがまずい理由」はググって理解しておきます。
そうだったんですか。みけCAT さんが書きました:「オブジェクトを値渡しで渡していたから」ではありません。
そもそもWinMain関数からscにオブジェクトを渡さずに、独立したKeyクラスのオブジェクトを使用していた問題を修正しました。
個人で開発する場合はどちらでも構わないということでしょうか。softya(ソフト屋) さんが書きました:オブジェクト指向の目的は、多人数での開発で可読性やメンテナンス性や再利用性を高めて生産性を上げることに有るので、そう考えれば隠したほうが良い定数と隠さないほうが良い定数があるのが自ずと分かってくると思います。
定義しておいた定数を勝手に使われて、クラスの内部コードをメンテして定数を変えたら他の人からバグったと言われたら困りますよね? [説明修正]
はい。ですが、その時の処理に応じて関数(メソッド)を短くするか否か、判断すべきだと思います。3D_3D さんが書きました:一つ一つの関数(メソッド)が長くならないということは関数を増やして長くならないようにするという様な解釈であっていますでしょうか?
>みけCAT様みけCAT さんが書きました:もしかして、(x|y)_Drawとか(x|y)_e1は画像の左上の座標ですか?
でしたら、条件式中の変数の代わりに、その変数に該当する画像の半径を足した値を使ってください。
では、他に必要なコードはどのような箇所でしょうか?softya(ソフト屋) さんが書きました: >原因は条件式のほうでなく関数の位置にあるのだと思いますがどうなのでしょうか?
このコードだけだと処理順番がわかりませんので、答えることは無理ですね。
少なくともデバッガでGameOver_S1が適切なタイミングで呼ばれていることは確認できると思います。