public static Spritemap makeWalker() { var map = new Spritemap(Library.Get <Texture>( "content/image/JulepSpice.png"), 20, 38); map.OriginX = map.Width / 2; map.OriginY = map.Height; map.Add("idle", FP.MakeFrames(0, 1), 1, true); map.Play("idle"); return(map); }
public override void Load(System.Xml.XmlNode node) { base.Load(node); cloak = new Spritemap(Library.GetTexture("assets/ArmsBosslowres.png"), 674 / 2, 349 / 2, onAnimationEnd); cloak.Add("Idle", FP.Frames(0), 1, true); cloak.Add("Reveal", FP.MakeFrames(0, 11), 5, false); AddGraphic(cloak); cloak.Scale = 4; cloak.OriginX = 673 / 8 - 15; cloak.OriginY = 349 / 4; cloak.Play("Idle"); }
public Orb(float x, float y, OrbType orbType, Entity follow) : base(x, y) { baseOrb = new Spritemap(Library.Get <Texture>(GetTexture(OrbType = orbType)), 24, 24); //baseOrb.Color = Engine.Random.Color(); baseOrb.CenterOrigin(); baseOrb.RenderStep = -1; baseOrb.Add("idle", FP.MakeFrames(0, 0), 3, true); baseOrb.Play("idle"); AddComponent <Image>(baseOrb); DistanceToLeader = DISTANCE_BEWTWEEN_ORBS * (int)OrbType; //Console.WriteLine(DistanceToLeader); followLeader = follow; }
public bool CreateHead(string headName, bool isAvatar) { try { var newHeadImage = Library.GetTexture((isAvatar ? "twitchAvatar//" : "twitch//") + headName); var animDataPath = string.Format("{0}{1}.json", Indigo.Content.TwitchEmoteProvider.TWITCH_CACHE_PATH, headName); Spritemap tempSp = null; if (!File.Exists(animDataPath)) { Head = new Image(newHeadImage); } else { var animationData = JsonLoader.Load <FramePacker.PackedSpriteMapMeta>(animDataPath, false); var headSpriteMap = new Spritemap(newHeadImage, animationData.FrameWidth, animationData.FrameHeight); headSpriteMap.Add("Default", FP.MakeFrames(0, animationData.TotalFrames - 1), 24, true); headSpriteMap.Play("Default"); //animationData.FPS Head = headSpriteMap; tempSp = headSpriteMap; } AddComponent(Head); Head.CenterOrigin(); Head.Scale = AnimatedEntityData.Animations[Sprite.CurrentAnim].HeadWidth / (float)Head.Width; Head.X = AnimatedEntityData.Animations[Sprite.CurrentAnim].HeadPositionX; Head.Y = AnimatedEntityData.Animations[Sprite.CurrentAnim].HeadPositionY; currentHeadTween = Tweener.Tween(Head, new { Y = AnimatedEntityData.Animations[Sprite.CurrentAnim].HeadPositionY - 4 }, .7f); currentHeadTween.Ease(Ease.ToAndFro); currentHeadTween.Repeat(); currentHeadName = headName; return(true); } catch (Exception ex) { #if DEBUG Console.WriteLine("Cannot Find: " + headName); Console.WriteLine(ex); #endif //throw (ex); return(false); } }
public override void Load(System.Xml.XmlNode node) { base.Load(node); //Graphic = Image.CreateRect(64, 64, FP.Color(0x66FF33)); //make the enemy hittable and all that jazz Type = "enemy"; physics = new PhysicsBody(); physics.Colliders.Add("wall"); physics.Colliders.Add("platform"); physics.Colliders.Add("player"); AddLogic(physics); //hitboxs and such spritemap = new Spritemap(Library.GetTexture("assets/RoadHeadlowres.png"), 167 / 2, 257 / 2, onAnimationEnd); spritemap.Add("Idle", FP.Frames(0), 5, true); spritemap.Add("Move", FP.MakeFrames(0, 2), 5, true); spritemap.Add("ChargeAttack", FP.MakeFrames(3, 12), 8, false); spritemap.Add("Attack", FP.MakeFrames(13, 22), 8, false); spritemap.Add("Recover", FP.MakeFrames(23, 27), 5, false); spritemap.Add("Injured", FP.MakeFrames(27, 23), 5, true); spritemap.Play("Move"); spritemap.OriginX = spritemap.Width / 2; spritemap.OriginY = spritemap.Height; AddGraphic(spritemap); SetOrigin(spritemap.Width / 2, 257 / 2); SetHitbox(spritemap.Width, spritemap.Height, spritemap.Width / 2, spritemap.Height); foreach (System.Xml.XmlNode n in node) { FP.Log(int.Parse(n.Attributes["x"].Value) + " " + float.Parse(n.Attributes["y"].Value)); positionNodes.Add(new Vector2i(int.Parse(n.Attributes["x"].Value), int.Parse(n.Attributes["y"].Value))); } if (positionNodes.Count > 0) { nextNode = positionNodes[0]; MoveToNextPos(); } }
public Player(float x, float y) : base(x, y) { image = new Spritemap(Library.Get <Texture>("content/image/Julep.png"), 87, 71); Spice = 100; Energy = 0f; MaxEnergy = 0; EnergyRechargeRate = 2f; JumpStrenth = 11f; RunSpeed = 4.0f; image.RenderStep = 1; image.Add("stand", FP.MakeFrames(0, 0), 0, true); image.Add("walk", FP.MakeFrames(1, 8), 10, true); image.Add("charge", FP.MakeFrames(9, 12), 10, true); image.Add("jump", FP.MakeFrames(13, 14), 10, true); image.Add("fall", FP.MakeFrames(15, 16), 10, true); //image.Add("hang", FP.MakeFrames(16, 16), 10, true); //image.Add("climb", FP.MakeFrames(17, 19), 10, true); image.Add("diveKick", FP.MakeFrames(17, 18), 10, true); image.Add("slide", FP.MakeFrames(19, 20), 10, true); image.Add("dash", FP.MakeFrames(21, 22), 10, true); image.Add("attackNormal", FP.MakeFrames(23, 28), 20, false); image.Add("attackDash", FP.MakeFrames(29, 14), 10, false); image.Play("stand"); Wings = new Spritemap(Library.Get <Texture>("content/image/JulepJump.png"), 54, 29, OnWingsComplete); Wings.RenderStep = -2; Wings.Add("wings", FP.MakeFrames(0, 7), 15, false); Wings.Visible = false; //AddComponent<Image>(Wings); AddComponent <Image>(image); image.OriginX = image.Width / 2; image.OriginY = image.Height; Wings.OriginX = Wings.Width / 2; Wings.OriginY = Wings.Height; SetHitbox(24, 70, 12, 70); GameWorld.player = this; Type = KQ.CollisionTypePlayer; Abilities = new Abilities(this); MovementInfo = new MovementInfo(this); player_controller = new PlayerController(new PSIdle(this)); image.Callback += () => { if (image.Complete) { player_controller.AnimationComplete(); } }; AddResponse(PickupType.AirDash, OnAirDashPickup); AddResponse(PickupType.AirJump, OnAirJumpPickup); AddResponse(PickupType.Jump, OnJumpPickup); AddResponse(PickupType.Dash, OnDashPickup); }
public InteractiveObject(InteractiveObjectData metaData, string objectName, float[,] perspectiveMap, InteractiveObjectRef interactiveObjectRef) { InteractiveObjectRef = interactiveObjectRef; this.PerspectiveMap = perspectiveMap; this.Type = INTERACTIVE_ENTITY_TYPE; images = new List <Image>(); MetaData = metaData; if (MetaData.Commands != null) { foreach (var c in MetaData.Commands) { c.parent = this; } } int totalFrames = 0; foreach (var animation in MetaData.Animations) { int frameNumber = 0; foreach (string path in Utility.RetrieveFilePathForFilesInDirectory(@"./content/objects/" + objectName + @"/" + animation.Name, "*.png")) { images.Add(new Image(Library.GetTexture(path)) { Scale = scale, OriginX = MetaData.HotSpot.X, OriginY = MetaData.HotSpot.Y }); if (animation.FootStepFrames != null && animation.FootStepFrames.Contains(frameNumber + 1)) { int frame = frameNumber + totalFrames; if (!footFallFrames.ContainsKey(animation.Name)) { footFallFrames.Add(animation.Name, new List <int> { frame }); } else { footFallFrames[animation.Name].Add(frame); } } frameNumber++; } totalFrames += frameNumber; } sprite = new Flipbook(images.Cast <Graphic>().ToArray()); int currentTotalFrames = 0; foreach (var animation in MetaData.Animations) { sprite.Add(animation.Name, FP.MakeFrames(currentTotalFrames, (currentTotalFrames += animation.Frames) - 1), animation.FPS, true); } AddComponent(sprite); this.OriginX = MetaData.HotSpot.X * scale; this.OriginY = MetaData.HotSpot.Y * scale; SetHitbox((int)(MetaData.FrameSize.X * scale), (int)(MetaData.FrameSize.Y * scale), (int)this.OriginX, (int)this.OriginY); if (perspectiveMap != null) { UpdateLayer(); } if (metaData.Attributes == null) { metaData.Attributes = new Dictionary <string, int>(); } if (interactiveObjectRef.Attributes == null) { interactiveObjectRef.Attributes = new Dictionary <string, int>(); } foreach (var key in metaData.Attributes.Keys) { if (!interactiveObjectRef.Attributes.ContainsKey(key)) { interactiveObjectRef.Attributes.Add(key, metaData.Attributes[key]); } } }