現在、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#を習い始め、まだまだプログラムに慣れてません。
画面に沿って移動させたい
Re: 画面に沿って移動させたい
見た感じはUnityかな。
そのコードだと、画面範囲+radius外に出たときに移動するって言う処理になってるから、、はみ出ることもあるかもしれない。逆にはみ出ていないとおかしい。
みたいなコードを追加すると、画面外に出たら押し出すような処理をしてくれると思う。
やってることは、画面外に出てたら画面の中に行くように座標をスクリーンの座標+1.0f(ここは適当でおk。publicでEditor側から操作できるようにしてもいいかも)にしてる。
あと、コードタグは[]←このかっこで挟むと使えるよ
そのコードだと、画面範囲+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側から操作できるようにしてもいいかも)にしてる。
あと、コードタグは[]←このかっこで挟むと使えるよ