示例#1
0
 /// <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();
     }
 }
示例#2
0
        /// <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;
            }
        }
示例#3
0
        /// <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;
            }
        }
示例#4
0
 /// <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;
     }
 }
示例#5
0
 /// <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);
 }
示例#6
0
        /// <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];
        }