Пример #1
0
        public Ground(int dstX, int dstY, Dictionary <string, string> Params) : base(dstX, dstY, 0, 0)
        {
            var blockType = Params["BlockType"];
            var count     = int.Parse(Params["Count"]);
            var param     = new GameObjectParam
            {
                TypeName = blockType,
                Location = new int[] { dstX, dstY },
                Motion   = MotionEnum.Static,
                Params   = new Dictionary <string, string> {
                    { "State", "Normal" }
                },
            };

            for (var i = 0; i < count; i++)
            {
                var blockInstance = param.ToGameObject();
                param.Location[0] += blockInstance.Size.X;
                if (blockInstance is Block block)
                {
                    blocks.Add(block);
                }
            }
            Size = new Point(param.Location[0] - dstX, Constants.BLOCK_HEIGHT);
        }
Пример #2
0
        public IGameObject AddGameObject(GameObjectParam param)
        {
            var obj = param.ToGameObject();

            Data.Objects.Add(param);
            Objects.Add(obj);
            return(obj);
        }
Пример #3
0
        public void Reset()
        {
            Player?.Dispose();
            scenes.Clear();
            var param = new GameObjectParam
            {
                TypeName = "Mario",
                Location = new int[] { (int)Constants.MARIO_DEFAULT_LOCATION.X, (int)Constants.MARIO_DEFAULT_LOCATION.Y },
                Motion   = MotionEnum.Dynamic,
                Force    = WorldForce.Gravity | WorldForce.Friction,
                Mass     = 1,
            };

            Player      = (Mario)param.ToGameObject();
            ActiveScene = null;
            unsubscribe = null;
            Constants.AVAILABLE_SCENES.ForEach(level => scenes.Add(level, new SceneData(level, Player)));
            scenes.ForEach((name, scene) => scene.Reset());
        }