本文整理匯總了C#中System.Edge.isMin方法的典型用法代碼示例。如果您正苦於以下問題:C# Edge.isMin方法的具體用法?C# Edge.isMin怎麽用?C# Edge.isMin使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類System.Edge
的用法示例。
在下文中一共展示了Edge.isMin方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。
示例1: populateCollidingTiles
/// <summary>
/// gets a list of all the tiles intersecting bounds. The returned list is ordered for collision detection based on the
/// direction passed in so they can be processed in order.
/// </summary>
/// <returns>The colliding tiles.</returns>
/// <param name="bounds">Bounds.</param>
/// <param name="direction">Direction.</param>
void populateCollidingTiles( Rectangle bounds, Edge direction )
{
_collidingTiles.Clear();
var isHorizontal = direction.isHorizontal();
var primaryAxis = isHorizontal ? Axis.X : Axis.Y;
var oppositeAxis = primaryAxis == Axis.X ? Axis.Y : Axis.X;
// if we are going up or left we subtract 1 from our opposite edge so that it doesnt get the column/row of tiles when we are against them
var oppositeDirection = direction.oppositeEdge();
var minSidePad = direction.isMin() ? -1 : 0;
var firstPrimary = worldToTilePosition( bounds.getSide( oppositeDirection ) + minSidePad, primaryAxis );
var lastPrimary = worldToTilePosition( bounds.getSide( direction ), primaryAxis );
var primaryIncr = direction.isMax() ? 1 : -1;
var min = worldToTilePosition( isHorizontal ? bounds.Top : bounds.Left, oppositeAxis );
var mid = worldToTilePosition( isHorizontal ? bounds.getCenter().Y : bounds.getCenter().X, oppositeAxis );
// same as above here. we subtract 1 to not grab an extra column/row of tiles which will mess up collisions
var max = worldToTilePosition( isHorizontal ? bounds.Bottom - 1 : bounds.Right - 1, oppositeAxis );
var isPositive = mid - min < max - mid;
var secondaryIncr = isPositive ? 1 : -1;
var firstSecondary = isPositive ? min : max;
var lastSecondary = !isPositive ? min : max;
for( var primary = firstPrimary; primary != lastPrimary + primaryIncr; primary += primaryIncr )
{
for( var secondary = firstSecondary; secondary != lastSecondary + secondaryIncr; secondary += secondaryIncr )
{
var col = isHorizontal ? primary : secondary;
var row = !isHorizontal ? primary : secondary;
_collidingTiles.Add( _collisionLayer.getTile( col, row ) );
}
}
}