示例#1
0
        // Public functions.
        public Player(Scene scene)
        {
            textureInfo     = new TextureInfo(new Texture2D("/Application/assets/player-spritemap.png", false), new Vector2i(13, 1));
            sprite          = new SpriteTile(textureInfo);
            sprite.Position = new Vector2(AppMain.ScreenWidth * .2f, AppMain.ScreenHeight * .5f);
            sprite.Quad.S   = textureInfo.TileSizeInPixelsf;
            sprite.CenterSprite(TRS.Local.Center);
            // Player variables
            isAlive     = true;
            moveState   = MoveStatus.Disabled;
            rotateAngle = .0f;

            // Attach update fucntion to scheduler
            sprite.Schedule(Update);

            // Create animation function
            sprite.ScheduleInterval((dt) => {
                if (IsAlive)
                {
                    int tileIndex      = sprite.TileIndex1D < 8 ? sprite.TileIndex1D + 1 : 1;
                    sprite.TileIndex1D = tileIndex;
                }
            }, 0.2f);
            sprite.ScheduleInterval((dt) => {
                if (!IsAlive)
                {
                    int tileIndex      = sprite.TileIndex1D < 12 ? sprite.TileIndex1D + 1 : 12;
                    sprite.TileIndex1D = tileIndex;
                }
            }, 0.16f);

            // Add to the current scene.
            scene.AddChild(sprite);
        }
示例#2
0
        public void initTitle()
        {
            this.Camera2D.SetViewFromViewport();

            logo          = new SpriteUV(new TextureInfo("/Application/data/logo.png"));
            logo.Scale    = logo.TextureInfo.TextureSizef * 1.8f;
            logo.Pivot    = new Vector2(0.5f, 0.5f);
            logo.Position = new Vector2((960.0f / 2.0f), (540.0f / 2.0f) + 80f);

            sprite_button_newgame          = new SpriteUV(new TextureInfo("/Application/data/button_newgame.png"));
            sprite_button_newgame.Scale    = sprite_button_newgame.TextureInfo.TextureSizef * 1.2f;
            sprite_button_newgame.Position = new Vector2((960.0f / 5.0f), (540.0f / 4.0f) - sprite_button_newgame.TextureInfo.TextureSizef.Y / 2.0f);

            sprite_button_tutorial          = new SpriteUV(new TextureInfo("/Application/data/button_tutorial.png"));
            sprite_button_tutorial.Scale    = sprite_button_newgame.TextureInfo.TextureSizef * 1.2f;
            sprite_button_tutorial.Position = new Vector2((960.0f / 2.0f), (540.0f / 4.0f) - sprite_button_newgame.TextureInfo.TextureSizef.Y / 2.0f);

            sprite_button_autoaim          = new SpriteUV(new TextureInfo("/Application/data/button_autoaimon.png"));
            sprite_button_autoaim.Scale    = sprite_button_newgame.TextureInfo.TextureSizef * 1.2f;
            sprite_button_autoaim.Position = new Vector2((960.0f / 2.0f) + (960.0f / 3.5f), (540.0f / 4.0f) - sprite_button_newgame.TextureInfo.TextureSizef.Y / 2.0f);

            sprite_button_newgame.Pivot  = new Vector2(0.5f, 0.5f);
            sprite_button_autoaim.Pivot  = new Vector2(0.5f, 0.5f);
            sprite_button_tutorial.Pivot = new Vector2(0.5f, 0.5f);

            Foreground.AddChild(sprite_button_newgame);
            Foreground.AddChild(sprite_button_tutorial);
            Foreground.AddChild(sprite_button_autoaim);
            Foreground.AddChild(logo);


            var tex     = new Texture2D("/Application/data/tiles/simple5.png", false);
            var texture = new TextureInfo(tex, new Vector2i(1, 13));

            menuBackground = new SpriteList(texture);

            int menuBackgroundWidth  = 100;
            int menuBackgroundHeight = 50;


            //mini background discofloor
            for (int x = 0; x < 30; x++)
            {
                for (int y = 0; y < 17; y++)
                {
                    SpriteTile bgTile = new SpriteTile(texture);
                    bgTile.TileIndex1D = Support.random.Next(4, 13);
                    bgTile.Position    = new Vector2((float)x * 32.0f, (float)y * 32.0f);
                    bgTile.Scale       = bgTile.TextureInfo.TileSizeInPixelsf * 2.0f;
                    bgTile.ScheduleInterval((dt) => { bgTile.TileIndex1D = Support.random.Next(4, 13); }, 0.2f, -1);
                    menuBackground.AddChild(bgTile);
                }
            }

            Background.AddChild(menuBackground);
        }
示例#3
0
        public void initLevelSelect()
        {
            this.levelSelection = 0;

            this.Camera2D.SetViewFromViewport();

            //labels
            labels = new List <Support.CustomLabel> ();


            //mini background discofloor

            var tex     = new Texture2D("/Application/data/tiles/simple5.png", false);
            var texture = new TextureInfo(tex, new Vector2i(1, 13));

            var menuBackground = new SpriteList(texture);

            for (int x = 0; x < 30; x++)
            {
                for (int y = 0; y < 17; y++)
                {
                    SpriteTile bgTile = new SpriteTile(texture);
                    bgTile.TileIndex1D = Support.random.Next(4, 13);
                    bgTile.Position    = new Vector2((float)x * 32.0f, (float)y * 32.0f);
                    bgTile.Scale       = bgTile.TextureInfo.TileSizeInPixelsf * 2.0f;
                    bgTile.ScheduleInterval((dt) => {
                        bgTile.TileIndex1D = Support.random.Next(4, 13);
                    }, 0.2f, -1);
                    menuBackground.AddChild(bgTile);
                }
            }

            Background.AddChild(menuBackground);



            for (int i = 0; i < MapManager.Instance.predefinedMaps.Count; i++)
            {
                //add thumbnail
                float newX        = 960.0f / 2.0f + i * (thumbnailSize + thumbnailSpacing);
                float scaleFactor = FMath.Clamp(thumbnailSize - FMath.Abs((960.0f / 2.0f) - newX) / 4.0f, 0.0f, thumbnailSize);
                MapManager.Instance.predefinedMaps [i].thumbnailSprite.Scale    = new Vector2(scaleFactor, scaleFactor);
                MapManager.Instance.predefinedMaps [i].thumbnailSprite.Position = new Vector2(newX, 544.0f / 2.0f);

                Foreground.AddChild(MapManager.Instance.predefinedMaps [i].thumbnailSprite);

                //add label:
                var tempLabel = new Support.CustomLabel(new Vector2(newX, 544.0f / 2.0f - thumbnailSize * 0.6f), "Level " + (i + 1) + "\nHighscore: 0", SceneManager.UIFontMap);
                labels.Add(tempLabel);

                Foreground.AddChild(tempLabel);
            }
        }
示例#4
0
        public BlackHole() : base()
        {
            textureInfo = new TextureInfo(new Texture2D("/Application/textures/Level/BlackHoles.png", false), new Vector2i(4, 1));

            sprite        = new SpriteTile(textureInfo);
            sprite.Quad.S = textureInfo.TileSizeInPixelsf;
            //sprite.Pivot  = new Vector2(sprite.Quad.S.X/2, sprite.Quad.S.Y/2);

            tileIndex = 0;

            sprite.ScheduleInterval((dt) =>
            {
                if (tileIndex >= 4)
                {
                    tileIndex = 0;
                }

                sprite.TileIndex2D = new Vector2i(tileIndex, 0);
                tileIndex++;
            }, 0.10f);
        }
示例#5
0
        public LevelFlag() : base()
        {
            textureInfo = new TextureInfo(new Texture2D("/Application/textures/Level/levelFlag.png", false), new Vector2i(4, 1));

            sprite        = new SpriteTile(textureInfo);
            sprite.Quad.S = textureInfo.TileSizeInPixelsf;
            sprite.Scale  = new Vector2(1.7f, 1.7f);

            tileIndex = 0;

            sprite.ScheduleInterval((dt) =>
            {
                if (tileIndex >= 4)
                {
                    tileIndex = 0;
                }

                sprite.TileIndex2D = new Vector2i(tileIndex, 0);
                tileIndex++;
            }, 0.12f);
        }
示例#6
0
        public LaserGate(int random) : base()
        {
            textureInfo = new TextureInfo(new Texture2D("/Application/textures/Level/LaserBeams.png", false), new Vector2i(18, 1));

            sprite        = new SpriteTile(textureInfo);
            sprite.Quad.S = textureInfo.TileSizeInPixelsf;

            //sprite.Pivot = new Vector2(sprite.Quad.S.X/2, sprite.Quad.S.Y/2);

            tileIndex = random;

            sprite.ScheduleInterval((dt) =>
            {
                if (tileIndex >= 18)
                {
                    tileIndex = 0;
                }

                sprite.TileIndex2D = new Vector2i(tileIndex, 0);
                tileIndex++;
            }, 0.10f);
        }
示例#7
0
        public Gem() : base()
        {
            textureInfo = new TextureInfo(new Texture2D("/Application/textures/Level/gem.png", false), new Vector2i(8, 1));

            sprite        = new SpriteTile(textureInfo);
            sprite.Quad.S = textureInfo.TileSizeInPixelsf;

            tileIndex = 0;

            scoreValue = 200;

            sprite.ScheduleInterval((dt) =>
            {
                if (tileIndex >= 6)
                {
                    tileIndex = 0;
                }

                sprite.TileIndex2D = new Vector2i(tileIndex, 0);
                tileIndex++;
            }, 0.12f);
        }