実現したいこと
矩形が画面外に進めないようにしたい。
前提
以下のコードは画面に表示させた矩形を指定のキーで動かせるようにしたプログラムです。上下左右にしっかりと動くのですが、画面外に行ってしまうためその制御を追加しました。以下のコードだと
if (posX <= 0) {posX = 0 + radis;}
if (posX >= 1280) {posX = 1280 - radius;}
if (posY <= 0) {posY = 0 + radius;}
if (posY >= 720) {posY = 720 - radius;}
の部分です。画面の横軸1280、縦軸720を超えてしまったとき座標を固定するコードを書いたつもりですが、思っていたのと違いました。
理想は画面の端に矩形が来たときそのまま突っかかって進めないようにしたいですが、このコードだと画面外にでてしまう上に画面外からradiusの値だけ瞬間移動した動きになってしまいます。どこがいけないのでしょうか?
該当のソースコード
c++
ソースコード
int posX= 400, posY = 400;
int V = 3; int radius = 100;
if (keys[DIK_W] != 0) {posY = posY - V;}
if (keys[DIK_A] != 0) {posX = posX - V;}
if (keys[DIK_D] != 0) {posX = posX + V;}
if (keys[DIK_S] != 0) {posY = posY + V;}
if (posX <= 0) {posX = 0 + radis;}
if (posX >= 1280) {posX = 1280 - radius;}
if (posY <= 0) {posY = 0 + radius;}
if (posY >= 720) {posY = 720 - radius;}
DrawBox(posX, posY, radius, radius, 0.0f, WHITE, kFillModeSolid);
試したこと
radiusの数値を変えてみた。
補足情報(FW/ツールのバージョンなど)
visualstudio

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。