■No39792 (魔界の仮面弁士) に追記
> 多少、画面の端に食い込んだ状態で方向転換が始まることになりますね。
>
>>思った通りの動きをしているのですが、
> 画面の端ぴったりの位置で反転させたいのであれば、まだ修正の余地がありますが、
> 上記が目的の動作であるならば、今のままでも問題無いと思います。
どのように実装すべきかは、へっぽこさんが作りたいアプリの仕様次第なのですが、
No39675
>>>> PictureBox1.Left が右端を越えそうなとき、あるいは左端を越えそうなとき
という仕様は、以下のいずれの動作を想定しておられますか?
# 下記のテキスト図の [@@@] が、移動対象の PictureBox を表しています。
# 右に +4 ずつ進んでいき、右端で移動量が -5 に変化するイメージです。
≪今のコードの動き≫
____________________@@@_________|
↓+4移動
________________________@@@_____|
↓+4移動
____________________________@@@_|
↓+4移動させると右端を越えるが、そのまま移動させる
________________________________@@@ 移動量を-5に変更
↓-5移動
__________________________@@@___|
↓-5移動
_____________________@@@________|
↓-5移動
________________@@@_____________|
→画面の端を越えてから移動方向が反転するため、画像の一部が隠れてしまう事がある。
≪修正案A≫
____________________@@@_________|
↓+4移動
________________________@@@_____|
↓+4移動
____________________________@@@_|
↓+4移動させると右端を越えるので、右端で止める
_____________________________@@@| 移動量を-5に変更
↓-5移動
________________________@@@_____|
↓-5移動
___________________@@@__________|
↓-5移動
______________@@@_______________|
→画面の端ぴったりで反転させるために、端に到達する瞬間、移動量が小さくなってしまう。
≪修正案B≫
____________________@@@_________|
↓+4移動
________________________@@@_____|
↓+4移動
____________________________@@@_|
↓+4移動させると右端を越えるので、右端到達前に移動方向を反転させる(例:-5にする)
_______________________@@@______|
↓-5移動
__________________@@@___________|
↓-5移動
_____________@@@________________|
→画面の端に到達するよりも前に、方向が反転しているように見えてしまう。
≪修正案C≫
画面端を越える事が無いよう、幅に対して、ちょうど割り切れる値を移動量に設定する。
|