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; }
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); }
public Terrain(Block[,] map) { Map = map; GameModel.Instance.MouseInput.OnClick += onClickHandler; Init(); }
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; }
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; }
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; }