/// <summary>
        /// Handle scene entry
        /// </summary>
        public override void Enter()
        {
            base.Enter();

            mSpriteSheet1.Load("Demos/DemoReel/Sprites");
            mSpriteSheet1.grid = new SpriteGrid(new Vector2i(16, 16));
            RB.SpriteSheetSet(mSpriteSheet1);

            mMap.Load("Demos/DemoReel/Tilemap");

            if (mMap != null)
            {
                mMapSize = mMap.size;

                mMap.LoadLayer("Clouds", 0);
                mMap.LoadLayer("Decoration", 1);
                mMap.LoadLayer("Terrain", 2);

                RB.MapLayerSpriteSheetSet(0, mSpriteSheet1);
                RB.MapLayerSpriteSheetSet(1, mSpriteSheet1);
                RB.MapLayerSpriteSheetSet(2, mSpriteSheet1);
            }

            if (mStyle == RB.PixelStyle.Wide)
            {
                RB.DisplayModeSet(new Vector2i(640 / 2, 360), mStyle);
            }
            else
            {
                RB.DisplayModeSet(new Vector2i(640, 360 / 2), mStyle);
            }
        }
예제 #2
0
        /// <summary>
        /// Handle scene entry
        /// </summary>
        public override void Enter()
        {
            base.Enter();

            RB.SpriteSheetSetup(0, "Demos/DemoReel/Sprites", new Vector2i(16, 16));
            RB.SpriteSheetSet(0);

            RB.SpriteSheetSetup(1, "Demos/DemoReel/Ghost", new Vector2i(104, 106));

            mMap = RB.MapLoadTMX("Demos/DemoReel/Tilemap");

            if (mMap != null)
            {
                RB.MapLoadTMXLayer(mMap, "Decoration", 0);
                RB.MapLoadTMXLayer(mMap, "Terrain", 1);

                RB.MapLayerSpriteSheetSet(0, 0);
                RB.MapLayerSpriteSheetSet(1, 0);
            }

            var demo = (DemoReel)RB.Game;

            RB.ShaderSetup(0, "Demos/DemoReel/WavyMaskShader");

            RB.SpriteSheetSetup(2, RB.DisplaySize);
            RB.SpriteSheetSetup(3, RB.DisplaySize);

            mBouncePos = new Vector2(RB.DisplaySize.width * 0.5f, RB.DisplaySize.height * 0.55f);
            mVelocity  = mSpeed;
        }
예제 #3
0
        /// <summary>
        /// Handle scene entry
        /// </summary>
        public override void Enter()
        {
            base.Enter();

            spriteSheet1.Load("Demos/DemoReel/Sprites");
            spriteSheet1.grid = new SpriteGrid(new Vector2i(16, 16));

            spriteSheet2.Load("Demos/DemoReel/Ghost");
            spriteSheet2.grid = new SpriteGrid(new Vector2i(104, 106));

            RB.SpriteSheetSet(spriteSheet1);

            mMap.Load("Demos/DemoReel/Tilemap");

            if (mMap != null)
            {
                mMap.LoadLayer("Decoration", 0);
                mMap.LoadLayer("Terrain", 1);

                RB.MapLayerSpriteSheetSet(0, spriteSheet1);
                RB.MapLayerSpriteSheetSet(1, spriteSheet1);
            }

            var demo = (DemoReel)RB.Game;

            shader1.Load("Demos/DemoReel/WavyMaskShader");

            spriteSheet3.Create(RB.DisplaySize);
            spriteSheet4.Create(RB.DisplaySize);

            mBouncePos = new Vector2(RB.DisplaySize.width * 0.5f, RB.DisplaySize.height * 0.55f);
            mVelocity  = mSpeed;
        }
예제 #4
0
        public Assets()
        {
            TerrainSprites.Load("Sprites/Terrain/TerrainSprites", SpriteSheetAsset.SheetType.SpritePack);
            TerrainSprites.grid = new SpriteGrid(new Vector2i(C.TILE_SIZE, C.TILE_SIZE));
            RB.MapLayerSpriteSheetSet((int)MapLayers.TERRAIN, TerrainSprites);

            CharacterSprites.Load("Sprites/Characters/CharacterSprites", SpriteSheetAsset.SheetType.SpritePack);
            CharacterSprites.grid = new SpriteGrid(new Vector2i(C.TILE_SIZE, C.TILE_SIZE));
            RB.MapLayerSpriteSheetSet((int)MapLayers.ENEMIES, CharacterSprites);
            RB.MapLayerSpriteSheetSet((int)MapLayers.PLAYER, CharacterSprites);

            /*
             * var gameFont = new FontAsset();
             * FontSprites.Load("Sprites/Font/FontSprites", SpriteSheetAsset.SheetType.SpritePack);
             * var chars = new List<char>()
             * {
             *  {'A'},{'B'},{'C'}
             * };
             * var glyphs = new List<string>()
             * {
             *  {"Unicode30FF"},{"Unicode30A0"},{"@"}
             * };
             * GameFont = new FontAsset();
             * GameFont.Setup(chars, glyphs, FontSprites, 0, 0, false);
             */
        }
예제 #5
0
        private bool LoadMap()
        {
            mTitleMap.Load("Demos/SuperFlagRun/TitleMap");
            mGameMap.Load("Demos/SuperFlagRun/GameMap");

            if (mTitleMap != null && mTitleMap.status == RB.AssetStatus.Ready)
            {
                mTitleMap.LoadLayer("Terrain", SuperFlagRun.MAP_LAYER_TITLE_TERRAIN);
                mTitleMap.LoadLayer("Deco", SuperFlagRun.MAP_LAYER_TITLE_DECO);
                mTitleMap.LoadLayer("Sky", SuperFlagRun.MAP_LAYER_TITLE_SKY);
            }

            if (mGameMap != null)
            {
                mGameMap.LoadLayer("Sky", SuperFlagRun.MAP_LAYER_SKY);
                mGameMap.LoadLayer("Clouds", SuperFlagRun.MAP_LAYER_CLOUDS);
                mGameMap.LoadLayer("Terrain", SuperFlagRun.MAP_LAYER_TERRAIN);
                mGameMap.LoadLayer("Background", SuperFlagRun.MAP_LAYER_BACKGROUND);
            }

            RB.MapLayerSpriteSheetSet(SuperFlagRun.MAP_LAYER_TITLE_TERRAIN, assets.spriteSheetTerrain);
            RB.MapLayerSpriteSheetSet(SuperFlagRun.MAP_LAYER_TITLE_DECO, assets.spriteSheetDeco);
            RB.MapLayerSpriteSheetSet(SuperFlagRun.MAP_LAYER_TITLE_SKY, assets.spriteSheetDeco);

            RB.MapLayerSpriteSheetSet(SuperFlagRun.MAP_LAYER_SKY, assets.spriteSheetDeco);
            RB.MapLayerSpriteSheetSet(SuperFlagRun.MAP_LAYER_CLOUDS, assets.spriteSheetDeco);
            RB.MapLayerSpriteSheetSet(SuperFlagRun.MAP_LAYER_TERRAIN, assets.spriteSheetTerrain);
            RB.MapLayerSpriteSheetSet(SuperFlagRun.MAP_LAYER_BACKGROUND, assets.spriteSheetDeco);

            RB.SpriteSheetSet(assets.spriteSheetTerrain);

            if (mGameMap != null)
            {
                mGameMapSize = mGameMap.size;

                // Convert TMXProperties to simple ColliderInfo.ColliderType, for faster access
                for (int x = 0; x < mGameMapSize.width; x++)
                {
                    for (int y = 0; y < mGameMapSize.height; y++)
                    {
                        var tilePos   = new Vector2i(x, y);
                        var tileProps = RB.MapDataGet <TMXMapAsset.TMXProperties>(MAP_LAYER_TERRAIN, tilePos);
                        if (tileProps != null)
                        {
                            RB.MapDataSet <ColliderInfo.ColliderType>(MAP_LAYER_TERRAIN, tilePos, (ColliderInfo.ColliderType)tileProps.GetInt("ColliderType"));
                        }
                        else
                        {
                            RB.MapDataSet <ColliderInfo.ColliderType>(MAP_LAYER_TERRAIN, tilePos, ColliderInfo.ColliderType.NONE);
                        }
                    }
                }
            }

            return(true);
        }
예제 #6
0
        /// <summary>
        /// Handle scene entry
        /// </summary>
        public override void Enter()
        {
            base.Enter();

            mSpriteSheet1.Load("Demos/DemoReel/Sprites");
            mSpriteSheet1.grid = new SpriteGrid(new Vector2i(16, 16));
            RB.SpriteSheetSet(mSpriteSheet1);

            mMap.Load("Demos/DemoReel/Tilemap");

            RB.MapLayerSpriteSheetSet(0, mSpriteSheet1);

            mMap.LoadLayer("Clouds", 1, mSpriteSheet1);
            mMap.LoadLayer("Decoration", 2, mSpriteSheet1);
            mMap.LoadLayer("Terrain", 3, mSpriteSheet1);
        }
        /// <summary>
        /// Initialize your game here.
        /// </summary>
        /// <returns>Return true if successful</returns>
        public bool Initialize()
        {
            assets.LoadAll();

            // You can load a spritesheet here
            RB.SpriteSheetSet(assets.spriteSheet);

            RB.EffectSet(RB.Effect.Scanlines, 0.5f);

            EntityFunctions.Initialize();
            S.InitializeAnims();

            SoundSerializer.Initialize();

            InitializeNewGame.InitializeConstants();

            RenderFunctions.Initialize();

            mSceneGame     = new SceneGame();
            mSceneMainMenu = new SceneMainMenu();
            mSceneMessage  = new SceneMessage();

            // Generate tile grid, this is a one time operation, we can keep reusing the grid
            var gridColor = Color.white;

            for (int x = 0; x < RB.MapSize.width; x++)
            {
                for (int y = 0; y < RB.MapSize.height; y++)
                {
                    RB.MapSpriteSet(C.LAYER_GRID, new Vector2i(x, y), S.GRID, gridColor);
                }
            }

            ChangeScene(SceneEnum.MAIN_MENU);

            RB.MapLayerSpriteSheetSet(C.LAYER_GRID, assets.spriteSheet);
            RB.MapLayerSpriteSheetSet(C.LAYER_TERRAIN, assets.spriteSheet);
            RB.MapLayerSpriteSheetSet(C.LAYER_VISIBILITY, assets.spriteSheet);

            // Collect any garbage created during initilization to avoid a performance hiccup later.
            System.GC.Collect();

            return(true);
        }
예제 #8
0
        /// <summary>
        /// Handle scene entry
        /// </summary>
        public override void Enter()
        {
            base.Enter();

            mSpriteSheet1.Load("Demos/DemoReel/Sprites");
            mSpriteSheet1.grid = new SpriteGrid(new Vector2i(16, 16));
            RB.SpriteSheetSet(mSpriteSheet1);

            RB.EffectReset();

            mMap.Load("Demos/DemoReel/Tilemap");

            RB.MapLayerSpriteSheetSet(0, mSpriteSheet1);
            RB.MapLayerSpriteSheetSet(1, mSpriteSheet1);
            RB.MapLayerSpriteSheetSet(2, mSpriteSheet1);

            if (mMap != null)
            {
                mMapSize = mMap.size;

                mMap.LoadLayer("Clouds", 0);
                mMap.LoadLayer("Decoration", 1);
                mMap.LoadLayer("Terrain", 2);
            }

            mEffectNames[(int)RB.Effect.Scanlines]       = "Scanlines";
            mEffectNames[(int)RB.Effect.Noise]           = "Noise";
            mEffectNames[(int)RB.Effect.Desaturation]    = "Desaturation";
            mEffectNames[(int)RB.Effect.Curvature]       = "Curvature";
            mEffectNames[(int)RB.Effect.Slide]           = "Slide";
            mEffectNames[(int)RB.Effect.Wipe]            = "Wipe";
            mEffectNames[(int)RB.Effect.Shake]           = "Shake";
            mEffectNames[(int)RB.Effect.Zoom]            = "Zoom";
            mEffectNames[(int)RB.Effect.Rotation]        = "Rotation";
            mEffectNames[(int)RB.Effect.ColorFade]       = "ColorFade";
            mEffectNames[(int)RB.Effect.ColorTint]       = "ColorTint";
            mEffectNames[(int)RB.Effect.Negative]        = "Negative";
            mEffectNames[(int)RB.Effect.Pixelate]        = "Pixelate";
            mEffectNames[(int)RB.Effect.Pinhole]         = "Pinhole";
            mEffectNames[(int)RB.Effect.InvertedPinhole] = "InvertedPinhole";
            mEffectNames[(int)RB.Effect.Fizzle]          = "Fizzle";
        }
예제 #9
0
        /// <summary>
        /// Handle scene entry
        /// </summary>
        public override void Enter()
        {
            base.Enter();

            mSpriteSheet1.Load("Demos/DemoReel/SpritesSmall");
            mSpriteSheet1.grid = new SpriteGrid(new Vector2i(8, 8));

            mSpriteSheet2.Load("Demos/DemoReel/WaterSmall");
            mSpriteSheet2.grid = new SpriteGrid(new Vector2i(8, 8));

            mCameraPos      = Vector2i.zero;
            mChunkCameraPos = Vector2i.zero;
            mTopLeftChunk   = new Vector2i(-100000, 100000);

            RB.MapClear();
            mMap.Load("Demos/DemoReel/TilemapInfinite");
            RB.MapLayerSpriteSheetSet(0, mSpriteSheet1);

            mClipRect  = new Rect2i(16, 4 + 219, 400, (16 * 8) + 2);
            mCameraPos = Vector2i.zero;
        }
예제 #10
0
    public void loadMapFiles(string mapName)
    {
        Vector2i mapDestPos     = new Vector2i(0, 0);
        Vector2i sourceChunkPos = new Vector2i(0, 0);
        // Load map
        var    map  = RB.MapLoadTMX(mapName);
        string path = "Assets/RetroBlit/Resources/map/map-data.json";

        StreamReader reader     = new StreamReader(path);
        String       rawmapdata = reader.ReadToEnd();

        reader.Close();
        // Load json map info and iterate through each object loading the layers from top to bottom //TODO
        LayerMaps layerMaps = Mapper.deserialize <LayerMaps>(rawmapdata);

        foreach (LayerMap m in layerMaps.allMaps)
        {
            RB.MapLoadTMXLayer(map, m.map_layer_name, m.layer);
            RB.SpriteSheetSetup(m.layer, m.sprite_sheet, new Vector2i(32, 32));
            RB.MapLayerSpriteSheetSet(m.layer, m.layer);
        }

        var objects = map.objectGroups[layerMaps.objectLayerName].objects;

        foreach (var curObj in objects)
        {
            //  Make a new badguy for this object
            BadGuy curBadGuy = new BadGuy(curObj.rect.x, curObj.rect.y);
            curBadGuy.size = new Vector2i(16, 16);

            badGuys.Add(curBadGuy);
        }

        // You can load a spritesheet here
        RB.SpriteSheetSetup(0, "MyGame/MySprites", new Vector2i(16, 16));
        RB.SpriteSheetSet(0);

        mapLayers = layerMaps.allMaps;
        mapSize   = map.size * 32;
    }
예제 #11
0
        /// <summary>
        /// Create the background pattern using random background tiles, and wall frame tiles
        /// </summary>
        private void MakeBackground()
        {
            var game = (BrickBustGame)RB.Game;

            Vector2i topLeft    = new Vector2i(0, 2);
            Vector2i topRight   = new Vector2i(RB.DisplaySize.width / game.assets.spriteSheet.grid.cellSize.width, 2);
            Vector2i bottomLeft = new Vector2i(0, RB.DisplaySize.height / game.assets.spriteSheet.grid.cellSize.height);

            // Background
            for (int x = topLeft.x; x <= topRight.x; x++)
            {
                for (int y = topLeft.y + 1; y <= bottomLeft.y; y++)
                {
                    RB.MapSpriteSet(0, new Vector2i(x, y), RB.SpriteIndex(UnityEngine.Random.Range(0, 4), 3));
                }
            }

            // Frame
            // Horizontal
            for (int x = topLeft.x + 1; x < topRight.x; x++)
            {
                RB.MapSpriteSet(1, new Vector2i(x, topLeft.y), RB.SpriteIndex(4, 3), RB.ROT_90_CW);
            }

            // Vertical
            for (int y = topLeft.y + 1; y <= bottomLeft.y; y++)
            {
                RB.MapSpriteSet(1, new Vector2i(topLeft.x, y), RB.SpriteIndex(4, 3));
                RB.MapSpriteSet(1, new Vector2i(topRight.x, y), RB.SpriteIndex(4, 3));
            }

            // Corners
            RB.MapSpriteSet(1, topLeft, RB.SpriteIndex(6, 3));
            RB.MapSpriteSet(1, topRight, RB.SpriteIndex(6, 3), RB.FLIP_H);

            RB.MapLayerSpriteSheetSet(0, game.assets.spriteSheet);
            RB.MapLayerSpriteSheetSet(1, game.assets.spriteSheet);
        }
        /// <summary>
        /// Handle scene entry
        /// </summary>
        public override void Enter()
        {
            base.Enter();

            mSpriteSheet1.Load("Demos/DemoReel/Sprites");
            mSpriteSheet1.grid = new SpriteGrid(new Vector2i(16, 16));
            RB.SpriteSheetSet(mSpriteSheet1);

            RB.EffectReset();

            mMap.Load("Demos/DemoReel/Tilemap");

            if (mMap != null)
            {
                mMap.LoadLayer("Decoration", 0);
                mMap.LoadLayer("Terrain", 1);

                RB.MapLayerSpriteSheetSet(0, mSpriteSheet1);
                RB.MapLayerSpriteSheetSet(1, mSpriteSheet1);
            }

            mShader1.Load("Demos/DemoReel/PresentRippleShader");
        }
        /// <summary>
        /// Handle scene entry
        /// </summary>
        public override void Enter()
        {
            base.Enter();

            spriteSheet1.Load("Demos/DemoReel/Sprites");
            spriteSheet1.grid = new SpriteGrid(new Vector2i(16, 16));

            spriteSheet2.Load("Demos/DemoReel/Water");
            spriteSheet2.grid = new SpriteGrid(new Vector2i(16, 16));

            mMap.Load("Demos/DemoReel/TilemapOcean");

            if (mMap != null)
            {
                mMap.LoadLayer("Clouds", 1);
                mMap.LoadLayer("Terrain", 2);
                mMap.LoadLayer("Fish", 3);

                RB.MapLayerSpriteSheetSet(1, spriteSheet1);
                RB.MapLayerSpriteSheetSet(2, spriteSheet1);
                RB.MapLayerSpriteSheetSet(3, spriteSheet1);
            }
        }
예제 #14
0
        /// <summary>
        /// Handle scene entry
        /// </summary>
        public override void Enter()
        {
            base.Enter();

            RB.SpriteSheetSetup(0, "Demos/DemoReel/DemoSpritePack", new Vector2i(16, 16));
            RB.SpriteSheetSetup(1, "Demos/DemoReel/Sprites", new Vector2i(16, 16));
            RB.SpriteSheetSetup(2, "Demos/DemoReel/DemoSpritePack", new Vector2i(8, 8));
            RB.SpriteSheetSet(0);

            mSpriteHero1         = RB.PackedSpriteGet("Characters/Hero1");
            mSpriteHero2         = RB.PackedSpriteGet("Characters/Hero2");
            mSpriteDirtCenter    = RB.PackedSpriteGet("Terrain/DirtCenter");
            mSpriteDirtSide      = RB.PackedSpriteGet("Terrain/DirtSide");
            mSpriteGrassTop      = RB.PackedSpriteGet("Terrain/GrassTop");
            mSpriteGrassTopRight = RB.PackedSpriteGet("Terrain/GrassTopRight");
            mSpriteWater         = RB.PackedSpriteGet("Terrain/Water");

            if (mSpriteHero1.Size.x == 0)
            {
                mBadSpritepack = true;
                return;
            }

            RB.MapSpriteSet(0, new Vector2i(0, 0), mSpriteGrassTopRight, RB.FLIP_H);
            RB.MapSpriteSet(0, new Vector2i(1, 0), mSpriteGrassTop);
            RB.MapSpriteSet(0, new Vector2i(2, 0), mSpriteGrassTop);
            RB.MapSpriteSet(0, new Vector2i(3, 0), mSpriteGrassTopRight);

            RB.MapSpriteSet(0, new Vector2i(0, 1), mSpriteDirtSide, RB.FLIP_H);
            RB.MapSpriteSet(0, new Vector2i(1, 1), mSpriteDirtCenter);
            RB.MapSpriteSet(0, new Vector2i(2, 1), mSpriteDirtCenter);
            RB.MapSpriteSet(0, new Vector2i(3, 1), mSpriteDirtSide);

            mNineSlice = new NineSlice("Other/NinesliceTopLeft", "Other/NinesliceTop", "Other/NinesliceMiddle");

            var glyphs = new List <string>();

            for (int i = 0; i <= 9; i++)
            {
                glyphs.Add("Font/" + i);
            }

            glyphs.Add("Font/colon");

            List <char> chars = new List <char>();

            for (char c = '0'; c <= '9'; c++)
            {
                chars.Add(c);
            }

            chars.Add(':');

            RB.FontSetup(0, chars, glyphs, 0, 1, 1, true);

            var mapping = new string[16];

            for (int i = 0; i < 16; i++)
            {
                mapping[i] = "Terrain/Tiny" + i;
            }

            var tinyMap = RB.MapLoadTMX("Demos/DemoReel/TinyMap");

            RB.MapLoadTMXLayer(tinyMap, "Terrain", 1, mapping);
            RB.MapLayerSpriteSheetSet(1, 2);
        }
예제 #15
0
        /// <summary>
        /// Update
        /// </summary>
        public override void Update()
        {
            base.Update();

            if (spriteSheet1.status == RB.AssetStatus.Ready &&
                spriteSheet2.status == RB.AssetStatus.Ready &&
                spriteSheet3.status == RB.AssetStatus.Ready &&
                !mSpritePackPostLoadDone)
            {
                RB.SpriteSheetSet(spriteSheet1);

                mSpriteHero1         = RB.PackedSpriteGet("Characters/Hero1");
                mSpriteHero2         = RB.PackedSpriteGet("Characters/Hero2");
                mSpriteDirtCenter    = RB.PackedSpriteGet("Terrain/DirtCenter");
                mSpriteDirtSide      = RB.PackedSpriteGet("Terrain/DirtSide");
                mSpriteGrassTop      = RB.PackedSpriteGet("Terrain/GrassTop");
                mSpriteGrassTopRight = RB.PackedSpriteGet("Terrain/GrassTopRight");
                mSpriteWater         = RB.PackedSpriteGet("Terrain/Water");

                RB.MapSpriteSet(0, new Vector2i(0, 0), mSpriteGrassTopRight, RB.FLIP_H);
                RB.MapSpriteSet(0, new Vector2i(1, 0), mSpriteGrassTop);
                RB.MapSpriteSet(0, new Vector2i(2, 0), mSpriteGrassTop);
                RB.MapSpriteSet(0, new Vector2i(3, 0), mSpriteGrassTopRight);

                RB.MapSpriteSet(0, new Vector2i(0, 1), mSpriteDirtSide, RB.FLIP_H);
                RB.MapSpriteSet(0, new Vector2i(1, 1), mSpriteDirtCenter);
                RB.MapSpriteSet(0, new Vector2i(2, 1), mSpriteDirtCenter);
                RB.MapSpriteSet(0, new Vector2i(3, 1), mSpriteDirtSide);

                RB.MapLayerSpriteSheetSet(0, spriteSheet1);

                mNineSlice = new NineSlice("Other/NinesliceTopLeft", "Other/NinesliceTop", "Other/NinesliceMiddle");

                var glyphs = new List <string>();
                for (int i = 0; i <= 9; i++)
                {
                    glyphs.Add("Font/" + i);
                }

                glyphs.Add("Font/colon");

                List <char> chars = new List <char>();
                for (char c = '0'; c <= '9'; c++)
                {
                    chars.Add(c);
                }

                chars.Add(':');

                font.Setup(chars, glyphs, spriteSheet1, 1, 1, true);

                var mapping = new string[16];
                for (int i = 0; i < 16; i++)
                {
                    mapping[i] = "Terrain/Tiny" + i;
                }

                mMap.Load("Demos/DemoReel/TinyMap");
                mMap.LoadLayer("Terrain", 1, mapping);
                RB.MapLayerSpriteSheetSet(1, spriteSheet3);

                mSpritePackPostLoadDone = true;
            }
        }