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);
        }
Beispiel #2
0
        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");
        }
Beispiel #3
0
        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;
        }
Beispiel #4
0
        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);
            }
        }
Beispiel #5
0
        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();
            }
        }
Beispiel #6
0
        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);
        }
Beispiel #7
0
        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]);
                }
            }
        }