Beispiel #1
0
        protected override void AddedToScene()
        {
            base.AddedToScene();
            var actualSize   = Scene.Window.WindowSizeInPixels;
            var hexMexCamera = new HexMexCamera(VisibleBoundsWorldspace.Size);

            Camera = hexMexCamera;

            var radius = actualSize.Width / 4 * 1f;

            StartGameButton.Radius = radius;
            HelpButton.Radius      = radius;
            //OptionsButton.Radius = radius;

            var d      = Math.Sin(Math.PI / 3) * radius * 2;
            var deltaX = Math.Sin(Math.PI / 6) * d;
            var deltaY = Math.Cos(Math.PI / 6) * d;

            StartGameButton.PositionX = (float)(deltaX / 2);
            StartGameButton.PositionY = 0 + StartGameButton.Radius;
            HelpButton.PositionX      = (float)(StartGameButton.PositionX - deltaX);
            HelpButton.PositionY      = (float)(StartGameButton.PositionY - deltaY);
            //OptionsButton.PositionX = (float)(StartGameButton.PositionX + deltaX);
            //OptionsButton.PositionY = (float)(StartGameButton.PositionY - deltaY);
            AddChild(StartGameButton);
            AddChild(HelpButton);
            //AddChild(OptionsButton);
            hexMexCamera.MoveToPosition(CCPoint.Zero);
        }
Beispiel #2
0
 public MenuLayer(World world, HexMexCamera hexMexCamera)
 {
     VisualSettings = world.GameSettings.VisualSettings;
     HexMexCamera   = hexMexCamera;
     Visible        = false;
     AddChild(DrawNode);
 }
Beispiel #3
0
        public GameLayer(World world, HexMexCamera camera, CCColor4B color) : base(color)
        {
            HexMexCamera = camera;
            TouchHandler = new GameTouchHandler(this, HexMexCamera);
            World        = world;
            var hexagonLayer         = new HexagonLayer(World, HexMexCamera);
            var edgeLayer            = new EdgeLayer(World, HexMexCamera);
            var resourcePackageLayer = new ResourcePackageLayer(World, HexMexCamera);
            var structureLayer       = new StructureLayer(World, HexMexCamera);
            var controlLayer         = new ButtonLayer(World, HexMexCamera);
            var statisticLayer       = new StatisticLayer(World);
            var researchButtonLayer  = new ReseachLayer(World);
            var menuLayer            = new MenuLayer(World, HexMexCamera);

            controlLayer.ConstructionRequested        += (buttonLayer, buildButton) => ConstructionMenuRequested(buildButton, menuLayer);
            controlLayer.DisplayStructureRequested    += (buttonLayer, structureButton) => DisplayStructureMenu(structureButton, menuLayer);
            researchButtonLayer.ResearchButtonTouched += rbl => DisplayResearchMenu(menuLayer);

            var layers = new CCLayer[] { hexagonLayer, edgeLayer, resourcePackageLayer, structureLayer, controlLayer, statisticLayer, researchButtonLayer, menuLayer };

            foreach (var layer in layers)
            {
                AddChild(layer);
            }

            TouchLayers = new ReadOnlyCollection <TouchLayer>(layers.OfType <TouchLayer>().Reverse().ToList());

            BuildMenu = new BuildMenu(World.UnlockManager, World.GameSettings.VisualSettings, World.GameSettings.LanguageSettings, world.GameSettings.BuildingDescriptionDatabase);
            BuildMenu.ConstructionRequested += ConstructBuilding;
            StructureMenu = new StructureMenu(World.GameSettings.VisualSettings, World);
            ResearchMenu  = new ResearchMenu(World.GameSettings.BuildingDescriptionDatabase, World.UnlockManager, World.GameSettings.VisualSettings, World.GameSettings.LanguageSettings);

            Schedule();
        }
Beispiel #4
0
 public HexagonLayer(World world, HexMexCamera camera) : base(camera)
 {
     Corners = HexagonHelper.GenerateWorldCorners(CCPoint.Zero, 1).ToArray();
     World   = world;
     World.HexagonManager.HexagonRevealed += (hm, h) => Render();
     AddChild(DrawNode);
     Render();
 }
Beispiel #5
0
 public EdgeLayer(World world, HexMexCamera camera) : base(camera)
 {
     World = world;
     World.StructureManager.StructureAdded   += (sm, s) => RedrawRequested = true;
     World.StructureManager.StructureRemoved += (sm, s) => RedrawRequested = true;
     AddChild(DrawNode);
     Schedule();
 }
Beispiel #6
0
 public ResourcePackageLayer(World world, HexMexCamera camera) : base(camera)
 {
     World = world;
     world.ResourceManager.PackageStarted += ResourceManager_PackageStarted;
     world.ResourceManager.PackageArrived += ResourceManager_PackageArrived;
     AddChild(DrawNode);
     Schedule();
 }
Beispiel #7
0
 public ButtonLayer(World world, HexMexCamera hexMexCamera) : base(hexMexCamera)
 {
     GameSettings = world.GameSettings;
     AddChild(DrawNode);
     ButtonManager                = world.ButtonManager;
     ButtonManager.ButtonAdded   += ButtonAdded;
     ButtonManager.ButtonRemoved += ButtonRemoved;
     Schedule();
 }
Beispiel #8
0
 public StructureLayer(World world, HexMexCamera camera) : base(camera)
 {
     World = world;
     world.StructureManager.StructureAdded    += StructureAdded;
     world.StructureManager.StructureRemoved  += StructureRemoved;
     world.StructureManager.StructureReplaced += StructureReplaced;
     Schedule(Update, 0.05f);
     AddChild(DrawNode);
 }
Beispiel #9
0
 public GameScene(CCWindow window, World world) : base(window)
 {
     World          = world;
     World.Victory += World_Victory;
     World.Defeat  += World_Defeat;
     HexMexCamera   = new HexMexCamera(BoundingBoxTransformedToWorld.Size);
     HexMexCamera.MoveToPosition(CCPoint.Zero);
     Camera                  = HexMexCamera;
     AddChild(GameLayer      = new GameLayer(World, HexMexCamera, CCColor4B.Black));
     AddChild(WinDefeatLayer = new WinDefeatLayer());
     HexMexCamera.SetZoomFactor(0.5f);
 }