void LoadWaterDrop(int x, int y) { // create the water drop object; place it around the center of the tile Vector2 pos = GetCellPosition(x, y) + new Vector2(TileWidth / 2, TileHeight / 3); WaterDrop w = new WaterDrop(this, pos); // add it to the game world AddChild(w); // store an extra reference to it waterDrops.Add(w); }
/// <summary>Add a water tile.</summary> private Tile LoadWaterTile(int x, int y) { GameObjectList waterdrops = Find("waterdrops") as GameObjectList; TileField tiles = Find("tiles") as TileField; WaterDrop w = new WaterDrop(); w.Origin = w.Center; w.Position = new Vector2((x + 0.5f) * tiles.CellWidth, (y + 0.5f) * tiles.CellHeight - 10); waterdrops.Add(w); return(new Tile()); }
public void PropagateTest() { var propagator = new Propagator(Propagator.DefaultNeighborsGetter); var context = new WaterContext(_map, propagator); var drop = new WaterDrop(0.1); context.AddDrop(drop, (2, 2)); context.PropagateWater(WaterContext.DefaultNeighborsGetter); var drops = context.Drops; Assert.Equal(4, drops.Count); }
public void MergeTest() { var propagator = new Propagator(Propagator.DefaultNeighborsGetter); var context = new WaterContext(_map, propagator); var drop = new WaterDrop(0.1); context.AddDrop(drop, (2, 2)); context.PropagateWater(WaterContext.DefaultNeighborsGetter); context.PropagateWater(WaterContext.DefaultNeighborsGetter); var dropsBefore = context.Drops.ToDictionary(x => x.Key, x => x.Value); context.Merge(); var dropsAfter = context.Drops.ToDictionary(x => x.Key, x => x.Value); Assert.Equal(16, dropsBefore.Count); Assert.Equal(9, dropsAfter.Count); }
private Tile LoadWaterTile(int x, int y) { GameObjectList waterdrops = this.Find("waterdrops") as GameObjectList; TileField tiles = this.Find("tiles") as TileField; WaterDrop w = new WaterDrop(); w.Origin = w.Center; w.Position = new Vector2(x * tiles.CellWidth, y * tiles.CellHeight - 10); w.Position += new Vector2(tiles.CellWidth, tiles.CellHeight) / 2; waterdrops.Add(w); return new Tile(); }