/// <summary> /// Constructor. /// </summary> /// <param name="settings">Settings</param> /// <param name="scene">Scene</param> public Players(Settings settings, WormScene scene) : base(5) { for (int i = 0; i < 5; i++) { Player player = new Player(settings, scene, i + 1); player.Disable(false); player.Add(scene); pool[i] = player; Enable(); } }
/// <summary> /// Constructor. /// </summary> /// <param name="settings">Settings</param> /// <param name="scene">WormScene</param> public Worms(Settings settings, WormScene scene) : base(settings.wormAmount) { surface = settings.surface; modules = new Pooler <WormModule>(settings, scene, settings.moduleAmount); for (int i = 0; i < settings.wormAmount; i++) { Worm worm = new Worm(settings, scene, modules); worm.Disable(false); worm.Add(scene); pool[i] = worm; } }
/// <summary> /// Constructor. /// </summary> /// <param name="settings">Settings</param> public Blocks(Settings settings, Game game, WormScene scene) : base(settings.moduleAmount) { tilemap = settings.tilemap; eraser = new Eraser(settings, game, scene); blockSpawner = new BlockSpawner(settings, eraser); for (int i = 0; i < settings.moduleAmount; i++) { BlockModule current = new BlockModule(settings, this); current.Disable(false); pool[i] = current; } }
/// <summary> /// Constructor. /// </summary> /// <param name="settings">Settings</param> /// <param name="game">Game, required for coroutine</param> /// <param name="scene">Scene</param> public Eraser(Settings settings, Game game, WormScene scene) : base(settings.moduleAmount) { this.game = game; collision = settings.collision; renderer = new Entity { Surface = settings.surface }; halfSize = settings.halfSize; scene.Add(renderer); for (int i = 0; i < settings.moduleAmount; i++) { EraserModule eraser = new EraserModule(settings, renderer); eraser.Disable(false); pool[i] = eraser; } }
/// <summary> /// Constructor. /// </summary> /// <param name="settings">Settings</param> /// <param name="scene">WormScene</param> /// <param name="modules">Worm module pooler</param> public Worm(Settings settings, WormScene scene, Pooler <WormModule> modules) { disableWorms = settings.disableWorms; this.scene = scene; this.modules = modules; collision = settings.collision; halfSize = settings.halfSize; size = settings.size; step = settings.step; eraser = Image.CreateRectangle(size, Colors.background); head = Image.CreateRectangle(size); eraser.CenterOrigin(); head.CenterOrigin(); Surface = settings.surface; AddGraphic(eraser); AddGraphic(head); }
/// <summary> /// Constructor. /// </summary> /// <param name="settings">Settings</param> /// <param name="scene">Scene</param> /// <param name="playerNumber">Player number (1-5)</param> public Player(Settings settings, WormScene scene, int playerNumber) { this.scene = scene; this.playerNumber = playerNumber; spawnPosition = new Vector2(settings.windowWidth / 2, settings.windowHeight / 2); playerSpeed = 144.0f / settings.refreshRate * 0.05f; int outlineThickness = settings.size / 7; Image image = Image.CreateCircle(settings.size / 2 - outlineThickness - 2); image.OutlineThickness = outlineThickness; image.OutlineColor = Colors.background; // or foregroundColor, depending on color palette image.CenterOrigin(); AddGraphic(image); int color = playerNumber; if (color >= Colors.palette.Length) { color = Colors.palette.Length - 1; } Graphic.Color = Colors.palette[color]; }