Ejemplo n.º 1
0
        public override void Start()
        {
            base.Start();

            var logoAsset = (SpriteAsset) Engine.GetAsset("logo");
            logo = new SpriteObject(Engine.Width, Engine.Height);
            logo.CurrentSprite = logoAsset;
            Engine.SpawnObject($"{Name}_logo", logo);
        }
Ejemplo n.º 2
0
 private void Pause()
 {
     GameManager.MainWindow = "pause";
     AudioSource.Pause();
     var pauseImage = new SpriteObject(Engine.Width, Engine.Height)
     {
         Order = 20,
         CurrentSprite = (SpriteAsset) Engine.GetAsset("pauseImage"),
         IgnoreCamera = true
     };
     Engine.SpawnObject("pause", pauseImage);
     Engine.TimeModifier = 0f;
 }
Ejemplo n.º 3
0
 public void SpawnBackgroundPart(int x, int y, SpriteAsset backgroundAsset, int order = 0, int width = -1,
     int height = -1, int paddingx = 0, int paddingy = 0)
 {
     width = width == -1 ? backgroundAsset.sprite.Width : width;
     height = height == -1 ? backgroundAsset.sprite.Height : height;
     var background = new SpriteObject();
     background.x = blockW + width*x + paddingx;
     background.y = blockH + height*y + paddingy;
     background.currentSprite = backgroundAsset;
     background.order = order;
     engine.SpawnObject(string.Format("{2}_bgblock_{0}.{1}_{3}", x, y, name, backgroundAsset.fileName),
         background);
 }
Ejemplo n.º 4
0
        static void Main(string[] args)
        {
            Engine engine = new Engine("test", 1024, 768, 60, false, false);
            engine.debugCollisions = true;

            // set default directory for assets, will be appened to all assets's path
            Asset.BasePath = "..\\..\\Assets";

            // load repeating texture
            var repeatingGoblins = new SpriteAsset("goblins.png", 100, 100, 150, 150, repeatx: true, repeaty: true);
            // auto hitbox and spriteasset with repeatx or/and repeaty are NOT compatible
            var obj = new SpriteObject(repeatingGoblins.Width + 20, repeatingGoblins.Height + 100);
            obj.CurrentSprite = repeatingGoblins;

            obj.OnUpdate += sender =>
            {
                var s = (SpriteObject)sender;
                s.SpriteOffset += new Vector2(10f, 0f) * s.DeltaTime;
            };

            // text
            TextConfig.Default = new TextConfig(new Asset("font.png"), charToSprite);
            var semiTransparentText = new TextObject(0.66f, Color.Red, 0.8f);
            semiTransparentText.Text = "SEMI TRANSPARENT";
            semiTransparentText.Y = obj.Height;
            var bigText = new TextObject(1.1f, Color.CadetBlue);
            bigText.Text = "BIG TEXT";
            var semiTransparentTextMeasure = semiTransparentText.Measure();
            bigText.Y = semiTransparentTextMeasure.Y + semiTransparentText.Y;
            var bigTextMeasure = bigText.Measure();

            // hitboxes
            var spriteSheet = new SpriteAsset("rob.png");
            var tileWidth = spriteSheet.Width/22;
            var tileHeight = spriteSheet.Height/1;
            var spriteAsset = new SpriteAsset("rob.png", 0, 0, tileWidth, tileHeight);
            var spriteH = new SpriteObject(spriteAsset.Width, spriteAsset.Height, true);
            spriteH.Y = bigText.Y + bigTextMeasure.Y;
            spriteH.CurrentSprite = spriteAsset;
            spriteH.Scale = new Vector2(5f, 5f);

            // spawn gameobjects
            engine.SpawnObject("obj", obj);

            engine.SpawnObject("semiTransparentText", semiTransparentText);
            engine.SpawnObject("bigText", bigText);

            engine.SpawnObject("spriteH", spriteH);

            engine.Run();
        }
Ejemplo n.º 5
0
        public TruncatedObject(string name, SpriteAsset bottomSpriteAsset, SpriteAsset topSpriteAsset)
            : base(bottomSpriteAsset.Width, bottomSpriteAsset.Height)
        {
            topSprite = new SpriteObject(topSpriteAsset.Width, topSpriteAsset.Height);
            topSprite.CurrentSprite = topSpriteAsset;
            topSprite.Order = 9;
            bottomSprite = new SpriteObject(bottomSpriteAsset.Width, bottomSpriteAsset.Height);
            bottomSprite.CurrentSprite = bottomSpriteAsset;
            bottomSprite.Order = 1;
            AddHitBox(
                "bottomtree", (int) (bottomSprite.Width*0.33f),
                (int) topSprite.Height, (int) (bottomSprite.Width*0.33f),
                (int) bottomSprite.Height);
            this.bottomSpriteAsset = bottomSpriteAsset;
            this.topSpriteAsset = topSpriteAsset;
            Name = name;

            OnDestroy += DestroyEvent;
        }
Ejemplo n.º 6
0
 public override GameObject Clone()
 {
     var go = new SpriteObject((int) Width, (int) Height);
     go.Name = Name;
     go.X = X;
     go.Y = Y;
     go.CurrentSprite = CurrentSprite.Clone();
     if (Animations != null)
     {
         go.Animations = new Dictionary<string, Animation>();
         foreach (var animKey in Animations.Keys)
         {
             go.Animations[animKey] = Animations[animKey].Clone();
             go.Animations[animKey].Owner = go;
         }
     }
     go.CurrentAnimation = CurrentAnimation;
     return go;
 }
Ejemplo n.º 7
0
        public override void Start()
        {
            base.Start();

            //var backgroundMaskSprite = (SpriteAsset)Engine.GetAsset("backgroundshadow0");
            //var backgroundMask = new SpriteObject(backgroundMaskSprite.Width, backgroundMaskSprite.Height);
            //backgroundMask.CurrentSprite = backgroundMaskSprite;
            //backgroundMask.Order = 1;
            //backgroundMask.IgnoreCamera = true;
            //Engine.SpawnObject("backgroundMask", backgroundMask);

            // details
            objectsSpawnRate.Add(new Dictionary<SpriteObject, float>());

            var tree0AssetTop = (SpriteAsset) Engine.GetAsset("tree0_top");
            var tree0AssetBottom = (SpriteAsset) Engine.GetAsset("tree0_bottom");
            var tree0 = new TruncatedObject("tree0", tree0AssetBottom, tree0AssetTop) {Order = 2};
            objectsSpawnRate[0][tree0] = 2f;

            var ritualAsset = (SpriteAsset) Engine.GetAsset("ritual0_0_0");
            var ritual0 = new Ritual(ritualAsset.Width, ritualAsset.Height, Ritual.RitualType.Demoniac) {Order = 2};
            var ritual1 = new Ritual(ritualAsset.Width, ritualAsset.Height, Ritual.RitualType.Earth) {Order = 2};
            var ritual2 = new Ritual(ritualAsset.Width, ritualAsset.Height, Ritual.RitualType.Life) {Order = 2};
            objectsSpawnRate[0][ritual0] = 0.066f;
            objectsSpawnRate[0][ritual1] = 0.066f;
            objectsSpawnRate[0][ritual2] = 0.066f;

            var swamp0Asset = (SpriteAsset)Engine.GetAsset("swamp0");
            var swamp0 = new SpriteObject(swamp0Asset.Width, swamp0Asset.Height, true)
            {
                Name = "swamp0",
                CurrentSprite = swamp0Asset,
                Order = 2
            };
            objectsSpawnRate[0][swamp0] = 0.1f;

            // backgrounds
            objectsSpawnRate.Add(new Dictionary<SpriteObject, float>());
            var background0Asset = (SpriteAsset) Engine.GetAsset("background0");
            var background0 = new SpriteObject(background0Asset.Width, background0Asset.Height)
            {
                Name = "background0",
                CurrentSprite = background0Asset,
                Order = 0
            };
            objectsSpawnRate[1][background0] = 1f;

            // enemies
            objectsSpawnRate.Add(new Dictionary<SpriteObject, float>());
            var bear = EnemyInfo.bear;
            bear.Name = "bear0";
            bear.Order = 6;
            objectsSpawnRate[2][bear] = 1f;

            var rhyno = EnemyInfo.rhyno;
            bear.Name = "rhyno0";
            bear.Order = 6;
            objectsSpawnRate[2][rhyno] = 1f;

            var wolf = EnemyInfo.wolf;
            bear.Name = "wolf0";
            bear.Order = 6;
            objectsSpawnRate[2][wolf] = 1f;


            var count = 0;
            foreach (var dict in objectsSpawnRate)
            {
                rndRanges.Add(0);
                foreach (var pair in dict)
                {
                    rndRanges[count] += pair.Value;
                }
                count++;
            }

            maxPosition = new Vector2(Engine.Width*3, Engine.Height*3);
            var player = (Player) Engine.Objects["player"];
            calculatedStart = new Vector2(player.X, player.Y);
            calculatedEnd = new Vector2(player.X, player.Y);
            UpdateWorld(player);
        }
Ejemplo n.º 8
0
 public override void Start()
 {
     base.Start();
     BackGround = new SpriteObject(width, height);
 }
Ejemplo n.º 9
0
        private void StartEvent()
        {
            started = true;

            var xPos = 0f;
            var maxHeight = 0f;
            foreach (var key in Utils.RandomKeys((int) (15 + GameManager.GlobalTimer/30f), KeyCodeForQte))
            {
                var text = new TextObject(FontSize, Color.Crimson)
                {
                    Text = $"{KeyToText(key)}",
                    Order = 10,
                    IgnoreCamera = true
                };
                var textMeasure = text.Measure();
                text.X = Engine.Width - textMeasure.X/2f + xPos;
                text.Y = Engine.Height - textMeasure.Y - Padding;
                qteList.Add(text);

                xPos += textMeasure.X + KeyPadding;
                Engine.SpawnObject($"QTE_key_{Name}_{key}", text);
                if (textMeasure.Y > maxHeight)
                    maxHeight = textMeasure.Y;
            }
            var qteBoxAsset = (SpriteAsset) Engine.GetAsset("qteContainer");
            qteBox = new SpriteObject(qteBoxAsset.Width, (int) (qteBoxAsset.Height*0.66f))
            {
                Order = 11,
                CurrentSprite = qteBoxAsset,
                IgnoreCamera = true
            };
            qteBox.X = Engine.Width/2 - qteBox.Width/2;
            qteBox.Y = Engine.Height - qteBox.Height - Padding*0.5f;
            Engine.SpawnObject($"{Name}_qteBox", qteBox);

            AudioSource.Volume = 0.7f;
            AudioSource.Play(((AudioAsset) Engine.GetAsset("sound_ritual_soundtrack")).Clip);
        }
Ejemplo n.º 10
0
 private void ManageFloor()
 {
     foreach (var room in currentFloor.roomsList)
     {
         if (room.enemies.Count > 0)
             return;
     }
     var escapeFloorName = string.Format("escape_floor_{0}", currentFloor.floorIndex);
     var escapeFloorObj = new SpriteObject();
     escapeFloorObj.order = 5;
     escapeFloorObj.x = engine.width/2;
     escapeFloorObj.y = engine.height/2;
     escapeFloorObj.currentSprite = (SpriteAsset) engine.GetAsset("escape_floor");
     escapeFloorObj.AddHitBox(escapeFloorName, 0, 0, 32, 32);
     engine.SpawnObject(escapeFloorName, escapeFloorObj);
 }
Ejemplo n.º 11
0
        public override void Start()
        {
            var logoObj = new SpriteObject();
            logoObj.currentSprite = (SpriteAsset) engine.GetAsset("logo");
            logoObj.x = engine.width/2 - logoObj.width/2;
            logoObj.y = engine.height/2 - logoObj.height/2;
            engine.SpawnObject("logo", logoObj);
            mainWindow = "logo";

            //test
            this.engine.PlaySound ("levelup_sound");
        }
Ejemplo n.º 12
0
 protected void SpawnBlock(int bx, int by)
 {
     string blockName = string.Format ("{0}_{1}_{2}_block", name, bx, by);
     GameObject block;
     if (blockAsset != null) {
         SpriteObject blockSprite = new SpriteObject ();
         blockSprite.currentSprite = blockAsset;
         block = blockSprite;
     } else if (blockObject != null) {
         block = blockObject();
     } else {
         return;
     }
     SpawnBlock (bx, by, block, blockName);
 }