本文整理汇总了C#中Levels.GetLevelWidth方法的典型用法代码示例。如果您正苦于以下问题:C# Levels.GetLevelWidth方法的具体用法?C# Levels.GetLevelWidth怎么用?C# Levels.GetLevelWidth使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Levels
的用法示例。
在下文中一共展示了Levels.GetLevelWidth方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CheckShip
// Checks collision of the given object against the edges of the level
public void CheckShip(Object toCheck, Levels.SpaceLevel level)
{
bool currentHit = false;
Vector2 translationVector, centerDiff;
translationVector = Vector2.Zero;
centerDiff = new Vector2(level.GetLevelWidth() - toCheck.GetCenter().X, level.GetLevelHeight() - toCheck.GetCenter().Y);
if (CheckIntersection(toCheck.collisionPolygons, level.collisionPolygons, centerDiff, ref translationVector, true))
{
toCheck.SetPosition(new Vector2(toCheck.GetPosition().X + translationVector.X, toCheck.GetPosition().Y + translationVector.Y));
currentHit = true; ;
}
if (!currentHit)
{
//If they are not currently intersecting, check if they will intersect
Vector2 oldPosition1 = toCheck.GetPosition();
toCheck.SetPosition(new Vector2(oldPosition1.X + toCheck.Velocity.X, oldPosition1.Y + toCheck.Velocity.Y));
bool futureRet = CheckIntersection(toCheck.collisionPolygons, level.collisionPolygons, centerDiff, ref translationVector, true);
if (futureRet)
{
// Set the position back now that the future collision has been checked
toCheck.SetPosition(oldPosition1);
currentHit = true;
}
}
if (currentHit)
{
float speed = toCheck.Velocity.Length();
toCheck.Velocity = Vector2.Normalize(translationVector);
toCheck.Velocity *= speed;
}
}