私は別のタイルを与えられた特定のタイルの描画状態を設定する関数を持っています。ドロー状態が描画されるタイルは、それを囲むタイルを比較してそれに応じて更新します。私はvoidを返す関数を抜け出す方法はありますか?
[b] [b] [a]
[b] [a] [a]
[a] [a] [a] where a = sand && b = water
は、bが、それに隣接していることを検出したときの下に、それはそのドロー状態を更新しなければならないことを説明しようとするでしょう。だから私は、大文字、小文字、左の場合、右の場合に機能する関数を持っています。それはなど、右上ケース、右下のケースなど左右ケースを扱うことができるので、私は今ここに私の機能
public override void CompareBorderingTiles(Tile T)
{
if (T is Water)
{
float leftBound = location.X - (Tile.TileWidth * Tile.TileScale);
float rightBound = location.X + (Tile.TileWidth * Tile.TileScale);
float upperBound = location.Y - (Tile.TileHieght * Tile.TileScale);
float bottomBound = location.Y + (Tile.TileHieght * Tile.TileScale);
if (T.GridLocation.X == leftBound)
{
drawstate = DrawState.Left;
}
if (T.GridLocation.X == rightBound)
drawstate = DrawState.Right;
if (T.GridLocation.Y == upperBound)
drawstate = DrawState.Upper;
if (T.GridLocation.Y == bottomBound)
drawstate = DrawState.Lower;
}
base.CompareBorderingTiles(T);
}
であることが理由としてかなり説明されるべきであると機能を変更する必要があります私はこの機能を打破したい、あるいはそうでないかもしれない。基本的には私の描画状態が何であるかを示す列挙型を持っています(描画状態は列挙型です)。 正しい描画状態を設定して機能から抜け出せるかどうかは誰にでも分かりますか?
として戻ります:あなたが使用
else if
呼び出される基本機能が必要な場合は、条件が満たされているときに文があれば、それは残りをチェックしません。あなたの機能を停止したいという意味ですか?もしそれが本当であれば、あなたは 'return;'を使用することができます –