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); }
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; }
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); }
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(); }
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; }
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; }
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); }
public override void Start() { base.Start(); BackGround = new SpriteObject(width, height); }
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); }
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); }
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"); }
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); }