画面に沿って移動させたい

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
珱姫

画面に沿って移動させたい

#1

投稿記事 by 珱姫 » 3年前

現在、C#でSTGを制作中です。
敵の移動で画面に沿って移動させたいのですがどうしても二周目に入るときに画面外に出てしまいます。
どうしたら敵を周回させることができるでしょうか?

code

position = position + new Vector2(moveX, moveY);

if (position.Y < (0 + radius))
{
moveX = 10.0f;
moveY = 0.0f;
}
if (position.X < 0 + radius)
{
moveX = 0.0f;
moveY = 10.0f;
}
if (position.Y > Screen.Height - radius)
{
moveX = 10.0f;
moveY = 0.0f;
}
if (position.X > Screen.Width - radius)
{
moveX = 0.0f;
moveY = -10.0f;
}

/code

4月からC#を習い始め、まだまだプログラムに慣れてません。

アバター
プラム
記事: 164
登録日時: 6年前
住所: 東海地方

Re: 画面に沿って移動させたい

#2

投稿記事 by プラム » 3年前

見た感じはUnityかな。

そのコードだと、画面範囲+radius外に出たときに移動するって言う処理になってるから、、はみ出ることもあるかもしれない。逆にはみ出ていないとおかしい。

コード:

                if (position.Y < (0 + radius))
		{
			position.Y = 0 +1.0f;
		}
		if (position.X < 0 + radius)
		{
			position.X = 0+1.0f;
		}
		if (position.Y > Screen.Height - radius) {
	
			position.Y = Screen.Height-1.0f;
		
		}
		if (position.X > Screen.Width){
			
			position.X = Screen.Width-1.0f;
		
		}

みたいなコードを追加すると、画面外に出たら押し出すような処理をしてくれると思う。
やってることは、画面外に出てたら画面の中に行くように座標をスクリーンの座標+1.0f(ここは適当でおk。publicでEditor側から操作できるようにしてもいいかも)にしてる。

あと、コードタグは[]←このかっこで挟むと使えるよ

閉鎖

“C言語何でも質問掲示板” へ戻る