コード例 #1
0
        public static void PutOnGround(this IPlatformerObject obj, TileMap tiles, int ignoreDistance)
        {
            var tile = tiles.GetTilesHit(obj.Position).First();

            while (!tile.IsSolid)
            {
                var nextTile = tile.GetAdjacent(Direction.Down);
                if (nextTile.Position.Top > tiles.Position.Height)
                {
                    return;
                }
                tile = nextTile;
            }

            if (tile.Position.Top < obj.Position.Bottom + ignoreDistance)
            {
                obj.Position.SetBottom(tile.Position.Top);
            }
        }
コード例 #2
0
ファイル: WaterHelper.cs プロジェクト: mp1011/Simple2DGame
 public static void AddWaterPhysics(IPlatformerObject actor)
 {
     actor.Motion.AddMultiplier(new MotionMultiplier(actor.IsUnderWater, "underwater"));
 }