// Use this for initialization void Awake() { charController = GetComponent <HumanCharacterController>(); }
public override void SetUp() { base.SetUp(); //this.Context.Map = BinTileMapSerializer.Load("editor.map"); /*if (File.Exists("landscape.map")) * { * this.Context.Map = BinTileMapSerializer.Load("landscape.map"); * } * else * { * this.GenerateTerrain(); * BinTileMapSerializer.Save("landscape.map", this.Context.Map); * }*/ this.Context.Map.SaveToImage(this.Graphics, "map.png"); this.characters.GetOrAdd("Cat", (name) => new Character(name) { JumpPower = 500f, WalkSpeed = 400f, RunSpeed = 500f, ClimbSpeed = 300f, WalkMaxSpeed = 150f, RunMaxSpeed = 250f, ClimbMaxSpeed = 100f, WaterModifier = 0.4f, SwimPower = 200f, Sprite = Store.Instance.Sprites <NamedAnimatedSpriteSheetTemplate>("Base", "player.cat"), Bounds = new RectangleF(Point2.Zero, new Size2(8, 16)), }); this.characters.GetOrAdd("Bear", (name) => new Character(name) { JumpPower = 400f, WalkSpeed = 300f, RunSpeed = 400f, ClimbSpeed = 300f, WalkMaxSpeed = 100f, RunMaxSpeed = 150f, ClimbMaxSpeed = 100f, WaterModifier = 0.4f, SwimPower = 200f, Sprite = Store.Instance.Sprites <NamedAnimatedSpriteSheetTemplate>("Base", "player.bear"), Bounds = new RectangleF(Point2.Zero, new Size2(8, 16)), }); this.characters.GetOrAdd("Pig", (name) => new Character(name) { JumpPower = 450f, WalkSpeed = 350f, RunSpeed = 450f, ClimbSpeed = 300f, WalkMaxSpeed = 125f, RunMaxSpeed = 175f, ClimbMaxSpeed = 100f, WaterModifier = 0.4f, SwimPower = 200f, Sprite = Store.Instance.Sprites <NamedAnimatedSpriteSheetTemplate>("Base", "player.pig"), Bounds = new RectangleF(Point2.Zero, new Size2(8, 16)), }); this.characters.GetOrAdd("Girl", (name) => new Character(name) { JumpPower = 450f, WalkSpeed = 350f, RunSpeed = 450f, ClimbSpeed = 300f, WalkMaxSpeed = 125f, RunMaxSpeed = 175f, ClimbMaxSpeed = 100f, WaterModifier = 0.4f, SwimPower = 200f, Sprite = Store.Instance.Sprites <NamedAnimatedSpriteSheetTemplate>("Base", "player.girl"), Bounds = new RectangleF(Point2.Zero, new Size2(12, 20)), }); this.characters.GetOrAdd("Worm", (name) => new Enemy(name) { WalkSpeed = 270f, RunSpeed = 270f, WalkMaxSpeed = 25f, RunMaxSpeed = 25f, WaterModifier = 0.4f, Sprite = Store.Instance.Sprites <NamedAnimatedSpriteSheetTemplate>("Base", "enemy.worm"), Bounds = new RectangleF(Point2.Zero, new Size2(17, 18)), }); var controller = new HumanCharacterController(); controller[HumanActions.Jump] = new KeyboardAction(Keys.Space); controller[HumanActions.Swim] = new KeyboardAction(Keys.Space); controller[HumanActions.WalkLeft] = new KeyboardAction(Keys.A); controller[HumanActions.WalkRight] = new KeyboardAction(Keys.D); controller[HumanActions.RunModifier] = new OrAction(new KeyboardAction(Keys.LeftShift), new KeyboardAction(Keys.RightShift)); controller[HumanActions.Squat] = new KeyboardAction(Keys.S); this.player = new CharacterObject(this.Context); this.player.Character = this.characters["Cat"]; this.player.Controller = controller; if (this.Context.Spawn.Any()) { var random = new Random(); var spawn = random.Choice(this.Context.Spawn); this.player.Position3D = new Vector3(spawn.World.X, spawn.World.Y, 0.5f); } else { this.player.Position3D = new Vector3(0, 0, 0.5f); } this.player.IsGravityEnabled = !this.godMode; this.Context.AddObject(this.player); this.Context.AttachLightSource(this.player, new Light { RelativePosition = new Vector2(this.player.Bounds.Width / 2, this.player.Bounds.Height / 2), Colour = Color.Yellow }); var enemy = new CharacterObject(this.Context); enemy.Character = this.characters["Worm"]; enemy.Controller = new EnemyController(); enemy.Position3D = this.player.Position3D; enemy.IsGravityEnabled = true; enemy.Direction = CharacterObject.Facing.Right; this.Context.AddObject(enemy); /*var npc = new CharacterObject(this.Context); * npc.Character = this.characters["Bear"]; * npc.Controller = new ComputerController(); * npc.Position3D = new Vector3(1280, startY, 0.5f); * npc.IsGravityEnabled = true; * npc.Direction = CharacterObject.Facing.Right; * this.Context.AddObject(npc); * this.Context.AttachLightSource(npc, new Light * { * RelativePosition = new Vector2(this.player.Bounds.Width / 2, this.player.Bounds.Height / 2), * Colour = Color.White * });*/ }