Example #1
0
        public Block[,] generateMap(int width, int height)
        {
            var blockRowSize = (int)Math.Ceiling((double)width / Terrain.BlockSize);
            var blockColumnSize = (int)Math.Ceiling((double)height / Terrain.BlockSize);

            var blocks = new Block[blockRowSize, blockColumnSize];

            var rand = new Random();

            // feel only last 3 lines.
            for (int i = 0 ; i < blockRowSize ; ++i)
            {
                for (int j = 0; j < blockColumnSize; ++j)
                {
                    // make choice.
                    if ((j >= blockColumnSize - visibleBlockLayers && rand.Next() % 2 != 0) || ((i < visibleBlockLayers || i >= blockRowSize - visibleBlockLayers) && rand.Next() % 2 != 0))
                    {
                        // random texture.
                        blocks[i, j] = GameModel.Instance.GenericFactory.CreateBlock(((int)(rand.Next(1, 3)) == 1) ? "ground" : "stone", Terrain.BlockSize * i, Terrain.BlockSize * j);
                    }
                }
            }

            return blocks;
        }
Example #2
0
 protected void onBlockDestroyHandler(Block block)
 {
     block.disablePhysics();
     GameModel.Instance.DrawManager.RemoveObjectForDraw(block);
     Item item = GameModel.Instance.GenericFactory.CreateItem(block.Position.X, block.Position.Y);
     item.ThrowOut();
     Items.Add(item);
 }
Example #3
0
        public Terrain(Block[,] map)
        {
            Map = map;

            GameModel.Instance.MouseInput.OnClick += onClickHandler;

            Init();
        }
Example #4
0
 public Body CreateBlockBody(Block block)
 {
     Body body = BodyFactory.CreateRectangle(GameModel.Instance.World, ConvertUnits.ToSimUnits(block.Width), ConvertUnits.ToSimUnits(block.Height), 1f);
     body.Position = ConvertUnits.ToSimUnits(block.Position);
     body.BodyType = BodyType.Static;
     body.Restitution = 0;//block.Restitution;
     body.Friction = 0;//block.Friction;
     body.CollisionCategories = Category.Cat1;
     body.CollidesWith = Category.All;
     return body;
 }
Example #5
0
        public Block CreateBlock(string type, int x, int y)
        {
            var data = GameModel.Instance.ContentManager.getBlockDTOByType(type);
            var texture = GameModel.Instance.ContentManager.getBlockTextureByName(data.type);

            var instance = new Block
                               {
                                   Texture = texture,
                                   Width = Terrain.BlockSize,
                                   Height = Terrain.BlockSize,
                                   DrawLayerType = DrawManager.DrawLayerType.StaticBlock,
                                   Restitution = data.restitution,
                                   Friction = data.friction
                               };

            instance.Position = new Vector2(x, y);
            GameModel.Instance.DrawManager.AddObjectForDraw(instance);
            return instance;
        }
Example #6
0
        public Block CreateTestBlock(string type, int x, int y)
        {
            //var data = GameModel.Instance.ContentManager.getBlockDTOByType(type);
            var texture = GameModel.Instance.TextureHelper.GenerateSimpleTexture(100, 10, Color.YellowGreen);

            var instance = new Block
            {
                Texture = texture,
                Width = 100,
                Height = 10,
                DrawLayerType = DrawManager.DrawLayerType.StaticBlock,
                Restitution = 0,
                Friction = 0
            };

            instance.Position = new Vector2(x, y);
            instance.Body = GameModel.Instance.BodyManager.CreateBlockBody(instance);
            GameModel.Instance.DrawManager.AddObjectForDraw(instance);
            return instance;
        }