Example #1
0
        private void drawUI()
        {
            //draw font for X
            x = new Text();
            x.SetAlignment(horizontal, vertical);
            x.Position = new IntVector2(positionXx, positionYx);
            x.Name     = "X";
            x.Value    = "Nama = ";
            x.SetFont(ui_font, font_small);
            x.SetColor(uicolor);
            ui_node.AddChild(x);

            //draw font for Y
            y = new Text();
            y.SetAlignment(horizontal, vertical);
            y.Position = new IntVector2(positionXy, positionYy);
            y.Name     = "Y";
            y.Value    = "Perintah = ";
            y.SetFont(ui_font, font_small);
            y.SetColor(uicolor);
            ui_node.AddChild(y);

            //draw font for Y
            z = new Text();
            z.SetAlignment(horizontal, vertical);
            z.Position = new IntVector2(positionXz, positionYz);
            z.Name     = "Z";
            z.Value    = "Perintah = ";
            z.SetFont(ui_font, font_small);
            z.SetColor(uicolor);
            ui_node.AddChild(z);
        }
Example #2
0
        /// <summary>
        /// Inits the game debug window.
        /// </summary>
        public void InitGameDebugWindow()
        {
            // Remove Focus or game will think pause menu is open
            UI.SetFocusElement(null);

            // Create the Window and add it to the UI's root node
            var window = new Window();

            UI.Root.AddChild(window);

            // Set Window size and layout settings
            window.SetPosition(-150, -50);
            window.SetAlignment(HorizontalAlignment.Right, VerticalAlignment.Center);
            window.SetSize(550, 150);
            window.SetColor(new Color(0.2f, 0.2f, 0.2f, 0.5f));
            window.Name = "WindowDebug";

            // Create the Window title Text
            backWheelSpeedText = new Text {
                Name          = "back_wheel_speed",
                Value         = "0.0",
                TextAlignment = HorizontalAlignment.Right
            };

            backWheelSpeedText.SetFont("Fonts/Anonymous Pro.ttf", 20);
            backWheelSpeedText.SetColor(Color.Green);
            backWheelSpeedText.SetAlignment(HorizontalAlignment.Right, VerticalAlignment.Center);

            // Add the title bar to the Window
            window.AddChild(backWheelSpeedText);

            // Apply styles
            window.SetStyleAuto(null);
            backWheelSpeedText.SetStyleAuto(null);
        }
Example #3
0
        public RangeSlider(string label, Single minRange, Single maxRange, int height = 35) : base()
        {
            this.minRange = minRange;
            this.maxRange = maxRange;
            this.SetLayout(LayoutMode.Horizontal, 10, new IntRect(0, 0, 0, 0));
            this.SetStyleAuto(null);
            this.SetFixedHeight(height);
            Label       = new Text();
            Label.Value = label;
            this.AddChild(Label);

            //set the label to adjust size depending on the length of the text
            Label.LayoutFlexScale = new Vector2(0, 0);
            Label.SetMinSize(0, 0);
            Label.SetFixedWidth(10 * label.Length);
            Label.SetAlignment(HorizontalAlignment.Left, VerticalAlignment.Center);
            Slider = new Slider();
            this.AddChild(Slider);

            //slider will respect height, but stretch horizontally
            Slider.SetMaxSize(100000, height);

            ValueEditor = new LineEdit();
            ValueEditor.SetStyleAuto(null);
            this.AddChild(ValueEditor);
            ValueEditor.SetMaxSize(100, 18);
            ValueEditor.SetFixedWidth(10 * 10);

            ValueEditor.VerticalAlignment             = VerticalAlignment.Center;
            ValueEditor.TextElement.VerticalAlignment = VerticalAlignment.Center;
            ValueEditor.TextElement.SetStyleAuto(null);

            //when the slider changes, set the value display and call the action function;
            Slider.SliderChanged += (args =>
            {
                ValueEditor.Text = " " + this.Value.ToString();
                var newargs = new RangeSliderEventArgs(args.Element, this.Value);
                this.SliderChanged(newargs);
            });

            ValueEditor.TextFinished += (args =>
            {
                Single value;
                if (Single.TryParse(args.Text, out value))
                {
                    this.Value = this.Clamp(value);
                }
            });

            Label.SetStyleAuto(null);
            Slider.SetStyleAuto(null);
        }
Example #4
0
        public static Text CreateText(UIElement parent, ScreenInfoRatio screenInfo, Font font, int fontSize, int xPos, int yPos, HorizontalAlignment hAlign, VerticalAlignment vAlign)
        {
            var text = new Text();

            parent.AddChild(text);

            text.SetAlignment(hAlign, vAlign);
            text.SetPosition(screenInfo.SetX(xPos), screenInfo.SetY(yPos));
            text.SetFont(font, screenInfo.SetX(fontSize));
            text.SetColor(Color.Black);

            return(text);
        }
Example #5
0
        Button CreateButton(int x, int y, int xSize, int ySize, string text)
        {
            // Create the button and center the text onto it
            Button button = new Button();

            this.AddChild(button);
            button.SetStyleAuto(null);
            button.SetPosition(x, y);
            button.SetSize(xSize, ySize);

            Text buttonText = new Text();

            button.AddChild(buttonText);
            buttonText.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Center);
            buttonText.SetFontSize(20);
            buttonText.Value = text;

            return(button);
        }
Example #6
0
        void InitWindow()
        {
            // Create the Window and add it to the UI's root node
            window = new Window();
            uiRoot.AddChild(window);
            // Set Window size and layout settings
            window.SetPosition(184, 68);
            window.SetSize(78, 40);
            window.SetColor(Color.Transparent);
            //window.SetLayout(LayoutMode.Horizontal, 0, new IntRect(3, 3, 3, 3));
            window.SetAlignment(HorizontalAlignment.Left, VerticalAlignment.Top);
            window.Name = "Window";

            // Create Window 'titlebar' container
            UIElement titleBar = new UIElement();

            titleBar.SetAlignment(HorizontalAlignment.Right, VerticalAlignment.Center);
            //titleBar.SetLayout(LayoutMode.Horizontal, 0, new IntRect(0, 0, 0, 0));

            // Create the Window title Text
            var windowTitle = new Text {
                Name          = "WindowCoins",
                Value         = "9999",
                TextAlignment = HorizontalAlignment.Right
            };

            windowTitle.SetFont("Fonts/Anonymous Pro.ttf", 20);
            windowTitle.SetAlignment(HorizontalAlignment.Right, VerticalAlignment.Center);

            // Add the controls to the title bar
            titleBar.AddChild(windowTitle);

            // Add the title bar to the Window
            window.AddChild(titleBar);

            // Apply styles
            window.SetStyleAuto(null);
            windowTitle.SetStyleAuto(null);

            /////////
            CreateUserControls();
        }
Example #7
0
        private void drawUI()
        {
            //draw font for X
            x = new Text();
            x.SetAlignment(horizontal, vertical);
            x.Position = new IntVector2(positionXx, positionYx);
            x.Name     = "X";
            x.Value    = "X = ";
            x.SetFont(ui_font, font_large);
            x.SetColor(uicolor);
            ui_node.AddChild(x);

            //draw font for Y
            y = new Text();
            y.SetAlignment(horizontal, vertical);
            y.Position = new IntVector2(positionXy, positionYy);
            y.Name     = "Y";
            y.Value    = "Y = ";
            y.SetFont(ui_font, font_large);
            y.SetColor(uicolor);
            ui_node.AddChild(y);

            //draw font for Z
            z = new Text();
            z.SetAlignment(horizontal, vertical);
            z.Position = new IntVector2(positionXz, positionYz);
            z.Name     = "Z";
            z.Value    = "Z = ";
            z.SetFont(ui_font, font_large);
            z.SetColor(uicolor);
            ui_node.AddChild(z);

            //draw font for RMQ
            rmq = new Text();
            rmq.SetAlignment(horizontal, vertical);
            rmq.Position = new IntVector2(positionXz, positionYz);
            rmq.Name     = "RMQ";
            rmq.Value    = "RMQ = ";
            rmq.SetFont(ui_font, font_large);
            rmq.SetColor(uicolor);
            ui_node.AddChild(z);
        }
Example #8
0
		Button CreateButton(int x, int y, int xSize, int ySize, string text)
		{
			UIElement root = UI.Root;
			var cache = ResourceCache;
			Font font = cache.GetFont("Fonts/Anonymous Pro.ttf");

			// Create the button and center the text onto it
			Button button = new Button();
			root.AddChild(button);
			button.SetStyleAuto(null);
			button.SetPosition(x, y);
			button.SetSize(xSize, ySize);

			Text buttonText = new Text();
			button.AddChild(buttonText);
			buttonText.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Center);
			buttonText.SetFont(font, 12);
			buttonText.Value = text;

			return button;
		}
Example #9
0
        Button CreateButton(string text, int width)
        {
            var  cache = ResourceCache;
            Font font  = cache.GetFont("Fonts/Anonymous Pro.ttf");

            Button button = new Button();

            buttonContainer.AddChild(button);
            button.SetStyleAuto(null);
            button.SetFixedWidth(width);

            var buttonText = new Text();

            button.AddChild(buttonText);
            buttonText.SetFont(font, 12);
            buttonText.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Center);

            buttonText.Value = text;

            return(button);
        }
Example #10
0
        Button CreateButton(int x, int y, int xSize, int ySize, string text)
        {
            UIElement root  = UI.Root;
            var       cache = ResourceCache;
            Font      font  = cache.GetFont("Fonts/Anonymous Pro.ttf");

            // Create the button and center the text onto it
            Button button = new Button();

            root.AddChild(button);
            button.SetStyleAuto(null);
            button.SetPosition(x, y);
            button.SetSize(xSize, ySize);

            Text buttonText = new Text();

            button.AddChild(buttonText);
            buttonText.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Center);
            buttonText.SetFont(font, 12);
            buttonText.Value = text;

            return(button);
        }
        void CreateScreenBody()
        {
            _container           = root.CreateSprite();
            _container.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            _container.ImageRect = AssetsCoordinates.Generic.Boxes.ContainerTrasparent;
            _container.SetSize((int)(dim.XScreenRatio * 1200), (int)(dim.YScreenRatio * 1400));
            _container.SetPosition(GameInstance.ScreenInfo.SetX(0), GameInstance.ScreenInfo.SetY(240));

            // No track window
            _noTrackWindow = new Window();
            _container.AddChild(_noTrackWindow);
            _noTrackWindow.SetPosition(GameInstance.ScreenInfo.SetY(1180), GameInstance.ScreenInfo.SetY(200));
            _noTrackWindow.SetSize(GameInstance.ScreenInfo.SetX(650), GameInstance.ScreenInfo.SetY(450));
            _noTrackWindow.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            _noTrackWindow.ImageRect = AssetsCoordinates.Generic.Boxes.PauseMenuBox;
            _noTrackWindow.Opacity   = 0.5f;
            //_noTrackWindow.SetColor(Color.Black);

            var noTrackText = new Text();

            _noTrackWindow.AddChild(noTrackText);
            noTrackText.SetPosition(GameInstance.ScreenInfo.SetX(20), GameInstance.ScreenInfo.SetY(15));
            noTrackText.SetSize((int)(dim.XScreenRatio * 610), (int)(dim.YScreenRatio * 370));
            noTrackText.UseDerivedOpacity = false;
            noTrackText.Value             = "Use SmartRoadSense to collect at least 15 minutes of road data and unlock new levels!";
            noTrackText.Wordwrap          = true;
            noTrackText.SetColor(Color.White);
            noTrackText.SetFont(font, 20);

            /*
             * ScrollBar scrollBar = new ScrollBar();
             * container.AddChild(scrollBar);
             *
             * scrollBar.SetPosition(GameInstance.ScreenInfo.SetX(10), GameInstance.ScreenInfo.SetY(10));
             * scrollBar.SetSize(GameInstance.ScreenInfo.SetX(1800), GameInstance.ScreenInfo.SetY(20));
             * scrollBar.SetColor(Color.Cyan);
             * scrollBar.Range = TrackManager.Instance.TrackCount;
             *
             * var slider = scrollBar.Slider;
             * slider.Range = TrackManager.Instance.TrackCount;
             * slider.SetColor(Color.Blue);
             *
             * slider.DragEnd += (DragEndEventArgs args) => {
             *  Debug.WriteLine("Scrollbar Value: " + scrollBar.Value);
             *  Debug.WriteLine("Slider: " + slider.Value);
             * };
             */
            _prevLevel = new Button();
            _container.AddChild(_prevLevel);
            _prevLevel.SetStyleAuto(null);
            _prevLevel.Opacity = 0.5f;
            _prevLevel.SetPosition(GameInstance.ScreenInfo.SetX(250), GameInstance.ScreenInfo.SetY(250));
            _prevLevel.SetSize((int)(dim.YScreenRatio * 400), (int)(dim.YScreenRatio * 400));
            _prevLevel.Texture = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            //prev_level.ImageRect = AssetsCoordinates.Generic.Boxes.LevelBeach;
            _prevLevel.Pressed += (PressedEventArgs args) => {
                PreviousRace();
            };

            Text prevLevel = new Text();

            _prevLevel.AddChild(prevLevel);
            prevLevel.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Center);
            prevLevel.SetPosition(0, GameInstance.ScreenInfo.SetY(30));
            prevLevel.Opacity = 0.5f;
            prevLevel.SetFont(font, dim.XScreenRatio * 30);
            prevLevel.SetColor(Color.Black);
            prevLevel.Value = "TRACK";

            prevLevelN = new Text();
            _prevLevel.AddChild(prevLevelN);
            prevLevelN.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Center);
            prevLevelN.SetPosition(0, GameInstance.ScreenInfo.SetY(120));
            prevLevelN.Opacity = 0.5f;
            prevLevelN.SetFont(font, dim.XScreenRatio * 70);
            prevLevelN.SetColor(Color.Black);
            prevLevelN.Value = "1";

            /* SELECTED */
            _selLevel = new Button();
            _container.AddChild(_selLevel);
            _selLevel.SetStyleAuto(null);
            _selLevel.SetPosition(GameInstance.ScreenInfo.SetY(700), GameInstance.ScreenInfo.SetY(200));
            _selLevel.SetSize((int)(dim.XScreenRatio * 450), (int)(dim.YScreenRatio * 450));
            _selLevel.Texture = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);

            Text selLevel = new Text();

            _selLevel.AddChild(selLevel);
            selLevel.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Center);
            selLevel.SetPosition(GameInstance.ScreenInfo.SetX(-40), GameInstance.ScreenInfo.SetY(40));
            selLevel.SetFont(font, dim.XScreenRatio * 50);
            selLevel.SetColor(Color.Black);
            selLevel.Value = "TRACK";

            selLevelN = new Text();
            _selLevel.AddChild(selLevelN);
            selLevelN.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Center);
            selLevelN.SetPosition(GameInstance.ScreenInfo.SetX(100), GameInstance.ScreenInfo.SetY(40));
            selLevelN.SetFont(font, dim.XScreenRatio * 50);
            selLevelN.SetColor(Color.Black);
            selLevelN.Value = "";

            Text difficulty = new Text();

            _selLevel.AddChild(difficulty);
            difficulty.SetAlignment(HorizontalAlignment.Left, VerticalAlignment.Center);
            difficulty.SetPosition(GameInstance.ScreenInfo.SetX(20), GameInstance.ScreenInfo.SetY(120));
            difficulty.SetFont(font, dim.XScreenRatio * 30);
            difficulty.SetColor(Color.Black);
            difficulty.Value = "Difficulty:";

            difficultyN = new Text();
            _selLevel.AddChild(difficultyN);
            difficultyN.SetAlignment(HorizontalAlignment.Right, VerticalAlignment.Center);
            difficultyN.SetPosition(GameInstance.ScreenInfo.SetX(-20), GameInstance.ScreenInfo.SetY(120));
            difficultyN.SetFont(font, dim.XScreenRatio * 30);
            difficultyN.SetColor(Color.Gray);
            difficultyN.Value = "N/A";

            Text BestTime = new Text();

            _selLevel.AddChild(BestTime);
            BestTime.SetAlignment(HorizontalAlignment.Left, VerticalAlignment.Center);
            BestTime.SetPosition(GameInstance.ScreenInfo.SetX(20), GameInstance.ScreenInfo.SetY(180));
            BestTime.SetFont(font, dim.XScreenRatio * 30);
            BestTime.SetColor(Color.Black);
            BestTime.Value = "Best Time:";

            BestTimeN = new Text();
            _selLevel.AddChild(BestTimeN);
            BestTimeN.SetAlignment(HorizontalAlignment.Right, VerticalAlignment.Center);
            BestTimeN.SetPosition(GameInstance.ScreenInfo.SetX(-20), GameInstance.ScreenInfo.SetY(180));
            BestTimeN.SetFont(font, dim.XScreenRatio * 30);
            BestTimeN.SetColor(Color.Gray);
            BestTimeN.Value = "00:00:0";

            /*END SELECTED */

            _nextLevel = new Button();
            _container.AddChild(_nextLevel);
            _nextLevel.Opacity = 0.5f;
            _nextLevel.SetStyleAuto(null);
            _nextLevel.SetPosition(GameInstance.ScreenInfo.SetX(1280), GameInstance.ScreenInfo.SetY(250));
            _nextLevel.SetSize((int)(dim.XScreenRatio * 400), (int)(dim.YScreenRatio * 400));
            _nextLevel.Texture  = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            _nextLevel.Pressed += (PressedEventArgs args) => {
                NextRace();
            };

            Text nextLevel = new Text();

            _nextLevel.AddChild(nextLevel);
            nextLevel.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Center);
            nextLevel.SetPosition(0, GameInstance.ScreenInfo.SetY(30));
            nextLevel.Opacity = 0.5f;
            nextLevel.SetFont(font, dim.XScreenRatio * 30);
            nextLevel.SetColor(Color.Black);
            nextLevel.Value = "TRACK";

            nextLevelN = new Text();
            _nextLevel.AddChild(nextLevelN);
            nextLevelN.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Center);
            nextLevelN.SetPosition(0, GameInstance.ScreenInfo.SetY(120));
            nextLevelN.Opacity = 0.5f;
            nextLevelN.SetFont(font, dim.XScreenRatio * 70);
            nextLevelN.SetColor(Color.Black);
            nextLevelN.Value = "3";

            UpdateActiveLevels();

            /*START BUTTONS - random & selected level*/

            Button StartRandom = new Button();

            _container.AddChild(StartRandom);
            StartRandom.SetStyleAuto(null);
            //StartRandom.Opacity = 0.25f;
            StartRandom.SetPosition(GameInstance.ScreenInfo.SetX(100), GameInstance.ScreenInfo.SetY(700));
            StartRandom.SetSize((int)(dim.XScreenRatio * 700), (int)(dim.YScreenRatio * 100));
            StartRandom.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            StartRandom.ImageRect = AssetsCoordinates.Generic.Boxes.RankIncreaseBar;
            StartRandom.Pressed  += (PressedEventArgs args) => {
                //SessionManager.Instance.SelectedLevelId = "smoothed-averaged-20.csv";
                TrackManager.Instance.SelectedTrackId = 0;
                Launcher(true);
            };

            Text level = new Text();

            StartRandom.AddChild(level);
            level.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Center);
            level.SetPosition(0, 0);
            level.SetFont(font, dim.SetX(40));
            level.SetColor(Color.White);
            level.Value = "RANDOM TRACK";

            Button StartGame = new Button();

            _container.AddChild(StartGame);
            StartGame.SetStyleAuto(null);
            StartGame.SetPosition(GameInstance.ScreenInfo.SetX(1150), GameInstance.ScreenInfo.SetY(700));
            StartGame.SetSize((int)(dim.XScreenRatio * 700), (int)(dim.YScreenRatio * 100));
            StartGame.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            StartGame.ImageRect = AssetsCoordinates.Generic.Boxes.RaceCompleted;
            StartGame.Pressed  += (PressedEventArgs args) => {
                if (_counter >= 1)
                {
                    Launcher();
                }
            };

            Text go = new Text();

            StartGame.AddChild(go);
            go.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Center);
            go.SetPosition(0, 0);
            go.SetFont(font, dim.SetX(40));
            go.SetColor(Color.White);
            go.Value = "GO!";

            /* END START BUTTONS */
        }
        void CreateLevelBar()
        {
            _container           = root.CreateSprite();
            _container.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            _container.ImageRect = AssetsCoordinates.Generic.Boxes.ContainerTrasparent;
            _container.SetSize((int)(dim.XScreenRatio * 800), (int)(dim.YScreenRatio * 400));
            _container.SetPosition(GameInstance.ScreenInfo.SetX(500), GameInstance.ScreenInfo.SetY(30));

            Sprite LevelToComplete = new Sprite();

            _container.AddChild(LevelToComplete);
            LevelToComplete.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            LevelToComplete.ImageRect = AssetsCoordinates.Generic.Boxes.LevelToComplete;
            LevelToComplete.SetSize((int)(dim.XScreenRatio * 400), (int)(dim.YScreenRatio * 100));
            LevelToComplete.SetPosition(GameInstance.ScreenInfo.SetX(350), GameInstance.ScreenInfo.SetY(240));

            //per comodità utilizzo direttamente IntRect e non AssetsCoordinate
            // in questo punto dovrebbe essere creato l'IntRect utilizzando la percentuale di completamento del livello
            var    buttons    = cache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            double totPoints  = CharacterLevelData.PointsToNextLevel();
            double currPoints = CharacterLevelData.CurrentLevelPoints();
            double currX      = currPoints / totPoints * 100;
            double totX       = dim.SetX(400);

            int x    = 2017; // punto d'inizio "left" dell'immagine del bottone
            int y    = (int)Math.Round(x + currX / 100 * totX);
            int size = y - x;

            Sprite LevelCompleted = new Sprite();

            _container.AddChild(LevelCompleted);
            LevelCompleted.Texture   = buttons;
            LevelCompleted.ImageRect = new IntRect(x, 1410, y, 1471);
            LevelCompleted.SetSize(dim.SetX(size), dim.SetY(100));
            LevelCompleted.SetPosition(dim.SetX(350), dim.SetY(240));
            //LevelCompleted.SetPosition((int)(dim.XScreenRatio * 220), (int)(dim.YScreenRatio * 220));

            // LEVEL INDICATOR
            Sprite LevelInd = new Sprite();

            _container.AddChild(LevelInd);
            LevelInd.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            LevelInd.ImageRect = AssetsCoordinates.Generic.Boxes.LevelBlueBox;
            LevelInd.SetSize((int)(dim.XScreenRatio * 140), (int)(dim.YScreenRatio * 140));
            LevelInd.SetPosition(GameInstance.ScreenInfo.SetX(220), GameInstance.ScreenInfo.SetY(220));

            // Title
            Text level = new Text();

            LevelInd.AddChild(level);
            level.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Top);
            level.SetPosition(0, GameInstance.ScreenInfo.SetY(10));
            level.SetFont(font, dim.XScreenRatio * 20);
            level.Value = "LEVEL";

            // Value
            Text levelnumber = new Text();

            LevelInd.AddChild(levelnumber);
            levelnumber.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Center);
            levelnumber.SetPosition(0, GameInstance.ScreenInfo.SetY(20));
            levelnumber.SetFont(font, dim.XScreenRatio * 50);
            levelnumber.Value = string.Format("{0}", CharacterManager.Instance.User.Level);
        }
Example #13
0
        void CreateTopBar()
        {
            _blackBar = _root.CreateSprite();
            _root.AddChild(_blackBar);
            _blackBar.Texture = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.TopBar.ResourcePath);
            _blackBar.Opacity = 0.5f;
            _blackBar.SetPosition(0, (int)(_dim.YScreenRatio * 30));
            _blackBar.SetSize((int)(_dim.XScreenRatio * 2000), (int)(_dim.YScreenRatio * 140));
            _blackBar.ImageRect = AssetsCoordinates.Generic.TopBar.Rectangle;

            btnBack = new Button();
            _blackBar.AddChild(btnBack);
            btnBack.UseDerivedOpacity = false;
            btnBack.SetStyleAuto(null);
            btnBack.SetPosition(_dim.SetX(10), _dim.SetY(0));
            btnBack.HorizontalAlignment = HorizontalAlignment.Left;
            btnBack.VerticalAlignment   = VerticalAlignment.Center;
            btnBack.SetSize(_dim.SetX(120), _dim.SetY(120));
            btnBack.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Icons.ResourcePath);
            btnBack.ImageRect = AssetsCoordinates.Generic.Icons.BntBack;
            btnBack.Pressed  += args => {
                GameInstance.LaunchScene(GameScenesEnumeration.MENU);
            };

            if (VehicleManager.Instance.UnlockedVehicles.VehicleModel.Count == 0)
            {
#if __ANDROID__
                btnBack.Visible = false;
#else
                btnBack.Visible = true;
#endif
            }

            //COINS
            Button coins = new Button();
            _blackBar.AddChild(coins);
            coins.UseDerivedOpacity = false;
            coins.SetStyleAuto(null);
            coins.SetPosition(_dim.SetX(150), _dim.SetY(0));
            coins.HorizontalAlignment = HorizontalAlignment.Left;
            coins.VerticalAlignment   = VerticalAlignment.Center;
            coins.SetSize(_dim.SetX(70), _dim.SetY(70));
            coins.Texture           = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Icons.ResourcePath);
            coins.ImageRect         = AssetsCoordinates.Generic.Icons.IconCoin;
            coins.UseDerivedOpacity = false;

            //Wallet text
            _wallet = new Text();
            coins.AddChild(_wallet);
            _wallet.SetPosition((int)(_dim.XScreenRatio * 90), (int)(_dim.YScreenRatio * 10));
            _wallet.SetFont(_font, _dim.XScreenRatio * 30);
            _wallet.Value = string.Format($"{CharacterManager.Instance.Wallet}");

            // SCREEN TITLE
            Button screen_title = new Button();
            _root.AddChild(screen_title);
            screen_title.SetStyleAuto(null);
            screen_title.SetPosition((int)(_dim.XScreenRatio * 1500), (int)(_dim.YScreenRatio * 50));
            screen_title.SetSize((int)(_dim.XScreenRatio * 400), (int)(_dim.YScreenRatio * 100));
            screen_title.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            screen_title.ImageRect = AssetsCoordinates.Generic.Boxes.BoxTitle;
            screen_title.Enabled   = false;

            Text buttonTitleText = new Text();
            screen_title.AddChild(buttonTitleText);
            buttonTitleText.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Center);
            buttonTitleText.SetPosition(0, 0);
            buttonTitleText.SetFont(_font, _dim.XScreenRatio * 30);
            buttonTitleText.Value = "VEHICLE SELECT";

            _screenInfo = new Text();
            _root.AddChild(_screenInfo);
            _screenInfo.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Top);
            _screenInfo.SetPosition(_dim.SetX(0), _dim.SetY(220));
            _screenInfo.SetFont(_font, _dim.SetX(40));
            _screenInfo.SetColor(Color.White);
            if (VehicleManager.Instance.UnlockedVehicles == null || VehicleManager.Instance.UnlockedVehicles.VehicleModel.Count == 0)
            {
                _screenInfo.Value = "Please select a free starting vehicle.";
            }
            else
            {
                _screenInfo.Value = "";
            }
        }
        void CreateRightSection()
        {
            var audio = GameInstance.Audio;

            var    cont_base  = GameInstance.ResourceCache.GetTexture2D("Textures/Garage/cont_base.png");
            Sprite containerR = new Sprite();

            containerR         = GameInstance.UI.Root.CreateSprite();
            containerR.Texture = cont_base;
            containerR.SetSize(GameInstance.ScreenInfo.SetX(960), GameInstance.ScreenInfo.SetY(1080));
            containerR.SetPosition(GameInstance.ScreenInfo.SetX(960), GameInstance.ScreenInfo.SetY(0));
            containerR.ImageRect = new IntRect(0, 0, 56, 56);

            //green sprite
            Sprite SFX = new Sprite();

            SFX.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            SFX.ImageRect = AssetsCoordinates.Generic.Boxes.VolumeBarGreen;
            SFX.SetSize(GameInstance.ScreenInfo.SetX(170), GameInstance.ScreenInfo.SetY(100));
            SFX.SetAlignment(HorizontalAlignment.Left, VerticalAlignment.Top);
            SFX.SetPosition(GameInstance.ScreenInfo.SetX(50), GameInstance.ScreenInfo.SetY(225));
            containerR.AddChild(SFX);

            Text SFXtext = new Text();

            SFX.AddChild(SFXtext);
            SFXtext.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Center);
            SFXtext.SetPosition(GameInstance.ScreenInfo.SetX(-10), 0);
            SFXtext.SetFont(_baseFont, GameInstance.ScreenInfo.SetX(30));
            SFXtext.Value = "SFX";

            //slider
            Slider sfxSlider = new Slider {
                Size                = new IntVector2(GameInstance.ScreenInfo.SetX(500), GameInstance.ScreenInfo.SetY(100)),
                Position            = new IntVector2(GameInstance.ScreenInfo.SetX(230), GameInstance.ScreenInfo.SetY(225)),
                HorizontalAlignment = HorizontalAlignment.Left,
                VerticalAlignment   = VerticalAlignment.Top,
                Texture             = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath),
                ImageRect           = AssetsCoordinates.Generic.Boxes.VolumeBarWhite,
                Range               = 1.0f
            };

            containerR.AddChild(sfxSlider);
            sfxSlider.SetStyleAuto(null);
            sfxSlider.Range = 1.0f;

            var knob = sfxSlider.Knob;

            knob.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            knob.ImageRect = AssetsCoordinates.Generic.Boxes.VolumeBarKnob;
            knob.SetFixedSize(GameInstance.ScreenInfo.SetX(45), GameInstance.ScreenInfo.SetY(100));
            sfxSlider.Value = audio.GetMasterGain(SoundType.Effect.ToString());

            sfxSlider.SliderChanged += (SliderChangedEventArgs args) => {
                audio.SetMasterGain(SoundType.Effect.ToString(), args.Value);
                SoundManager.Instance.EffectsGain = args.Value;
            };

            //"MAX" text
            Sprite MAX = new Sprite();

            MAX.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            MAX.ImageRect = AssetsCoordinates.Generic.Boxes.VolumeBarMAX;
            MAX.SetSize(GameInstance.ScreenInfo.SetX(130), GameInstance.ScreenInfo.SetY(100));
            MAX.SetAlignment(HorizontalAlignment.Left, VerticalAlignment.Top);
            MAX.SetPosition(GameInstance.ScreenInfo.SetX(750), GameInstance.ScreenInfo.SetY(225));
            containerR.AddChild(MAX);

            //green sprite
            Sprite Music = new Sprite();

            Music.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            Music.ImageRect = AssetsCoordinates.Generic.Boxes.VolumeBarGreen;
            Music.SetSize(GameInstance.ScreenInfo.SetX(170), GameInstance.ScreenInfo.SetY(100));
            Music.SetAlignment(HorizontalAlignment.Left, VerticalAlignment.Top);
            Music.SetPosition(GameInstance.ScreenInfo.SetX(50), GameInstance.ScreenInfo.SetY(350));
            containerR.AddChild(Music);

            Text MusicText = new Text();

            Music.AddChild(MusicText);
            MusicText.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Center);
            MusicText.SetPosition(GameInstance.ScreenInfo.SetX(-10), 0);
            MusicText.SetFont(_baseFont, GameInstance.ScreenInfo.SetX(30));
            MusicText.Value = "MUSIC";

            //slider
            Slider musicSlider = new Slider();

            containerR.AddChild(musicSlider);
            musicSlider.SetStyleAuto(null);
            musicSlider.SetPosition(GameInstance.ScreenInfo.SetX(230), GameInstance.ScreenInfo.SetY(350));
            musicSlider.SetSize(GameInstance.ScreenInfo.SetX(500), GameInstance.ScreenInfo.SetY(100));
            musicSlider.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            musicSlider.ImageRect = AssetsCoordinates.Generic.Boxes.VolumeBarWhite;
            musicSlider.Range     = 1.0f;

            var knobM = musicSlider.Knob;

            knobM.SetFixedSize(GameInstance.ScreenInfo.SetX(45), GameInstance.ScreenInfo.SetY(100));
            knobM.Texture     = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            knobM.ImageRect   = AssetsCoordinates.Generic.Boxes.VolumeBarKnob;
            musicSlider.Value = audio.GetMasterGain(SoundType.Music.ToString());

            musicSlider.SliderChanged += (SliderChangedEventArgs args) => {
                audio.SetMasterGain(SoundType.Music.ToString(), args.Value);
                SoundManager.Instance.MusicGain = args.Value;
            };

            //"MAX" text
            Sprite MAX2 = new Sprite();

            MAX2.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            MAX2.ImageRect = AssetsCoordinates.Generic.Boxes.VolumeBarMAX;
            MAX2.SetSize(GameInstance.ScreenInfo.SetX(130), GameInstance.ScreenInfo.SetY(100));
            MAX2.SetAlignment(HorizontalAlignment.Left, VerticalAlignment.Top);
            MAX2.SetPosition(GameInstance.ScreenInfo.SetX(750), GameInstance.ScreenInfo.SetY(350));
            containerR.AddChild(MAX2);

            // FB
            Button Facebook = new Button();

            containerR.AddChild(Facebook);
            Facebook.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            Facebook.ImageRect = AssetsCoordinates.Generic.Boxes.Facebook;
            Facebook.SetSize(GameInstance.ScreenInfo.SetX(150), GameInstance.ScreenInfo.SetY(150));
            Facebook.SetAlignment(HorizontalAlignment.Left, VerticalAlignment.Top);
            Facebook.SetPosition(GameInstance.ScreenInfo.SetX(300), GameInstance.ScreenInfo.SetY(500));
            Facebook.Pressed += args => {
                OpenBrowser("https://www.facebook.com/smartroadsense/");
            };

            // TWITTER
            Button Twitter = new Button();

            containerR.AddChild(Twitter);
            Twitter.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            Twitter.ImageRect = AssetsCoordinates.Generic.Boxes.Tweeter;
            Twitter.SetSize(GameInstance.ScreenInfo.SetX(150), GameInstance.ScreenInfo.SetY(150));
            Twitter.SetAlignment(HorizontalAlignment.Left, VerticalAlignment.Top);
            Twitter.SetPosition(GameInstance.ScreenInfo.SetX(500), GameInstance.ScreenInfo.SetY(500));
            Twitter.Pressed += args => {
                OpenBrowser("https://twitter.com/smartroadsense");
            };


            Button Credits = new Button();

            containerR.AddChild(Credits);
            Credits.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            Credits.ImageRect = AssetsCoordinates.Generic.Boxes.Credits;
            Credits.SetSize(GameInstance.ScreenInfo.SetX(600), GameInstance.ScreenInfo.SetY(100));
            Credits.SetAlignment(HorizontalAlignment.Left, VerticalAlignment.Top);
            Credits.SetPosition(GameInstance.ScreenInfo.SetX(200), GameInstance.ScreenInfo.SetY(800));
            Credits.Pressed += args => {
                GameInstance.LaunchScene(GameScenesEnumeration.CREDITS);
            };

            Text CreditsText = new Text();

            Credits.AddChild(CreditsText);
            CreditsText.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Center);
            CreditsText.SetPosition(0, 0);
            CreditsText.SetFont(_baseFont, GameInstance.ScreenInfo.SetX(30));
            CreditsText.Value = "CREDITS";

            Credits.Visible = false;
        }
        void CreateProfileBar()
        {
            var generic_bts = cache.GetTexture2D("Textures/Generic/generic_btn.png");
            var cont_base   = cache.GetTexture2D("Textures/Garage/cont_base.png");
            var profiles    = cache.GetTexture2D("Textures/Generic/profiles.png");
            var garage_bts  = cache.GetTexture2D("Textures/Garage/garage_bts.png");

            // Buttons container (root element)
            cont_profile         = root.CreateSprite();
            cont_profile.Texture = cont_base;
            cont_profile.SetSize((int)(dim.XScreenRatio * 1200), (int)(dim.YScreenRatio * 600));
            cont_profile.SetPosition((int)(dim.XScreenRatio * 10), (int)(dim.YScreenRatio * 160));
            cont_profile.ImageRect = new IntRect(0, 0, 56, 56);

            // Continue
            var continueBtn = new Button();

            root.AddChild(continueBtn);
            continueBtn.SetStyleAuto(null);
            continueBtn.SetPosition(dim.SetX(0), dim.SetY(-30));
            continueBtn.HorizontalAlignment = HorizontalAlignment.Center;
            continueBtn.VerticalAlignment   = VerticalAlignment.Bottom;
            continueBtn.SetSize(dim.SetX(300), dim.SetY(100));
            continueBtn.Texture   = generic_bts;
            continueBtn.ImageRect = new IntRect(260, 0, 520, 110);

            Text continueText = new Text();

            continueBtn.AddChild(continueText);
            continueText.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Center);
            continueText.SetPosition(0, 0);
            continueText.SetFont(font, dim.XScreenRatio * 35);
            continueText.Value = "Continue";

            continueBtn.Pressed += (PressedEventArgs args) => {
                System.Diagnostics.Debug.WriteLine("Pressed");
                if (CharacterManager.Instance.User == null)
                {
                    // Creating new user
                    System.Diagnostics.Debug.WriteLine("Creating new user");
                    CharacterManager.Instance.User = new UserInfo {
                        Experience = 0,
                        PortraitId = counter,
                        Username   = _nameText,
                        Wallet     = 0
                    };
                }
                else
                {
                    // Update user data
                    System.Diagnostics.Debug.WriteLine("Updating user");
                    var user = CharacterManager.Instance.User;
                    user.PortraitId = counter;
                    user.Username   = _nameText;
                    CharacterManager.Instance.User = user;
                }
                if (_isUserProfile)
                {
                    GameInstance.LaunchScene(GameScenesEnumeration.USER_PROFILE);
                }
                else
                {
                    GameInstance.LaunchScene(GameScenesEnumeration.MENU);
                }
            };

            Window nameContainer = new Window();

            cont_profile.AddChild(nameContainer);
            nameContainer.SetStyleAuto(null);
            nameContainer.SetPosition((int)(dim.XScreenRatio * 100), (int)(dim.YScreenRatio * 50));
            nameContainer.SetSize((int)(dim.XScreenRatio * 650), (int)(dim.YScreenRatio * 100));
            nameContainer.Texture   = generic_bts;
            nameContainer.ImageRect = new IntRect(0, 288, 1012, 402);
            continueBtn.Visible     = !string.IsNullOrEmpty(_nameText);

            var enterTextString = "Rudy Reckless";

            if (_isUserProfile)
            {
                enterTextString = CharacterManager.Instance.User.Username;
            }

            lineEdit = new LineEdit {
                Name                = "nameEdit",
                Position            = new IntVector2(dim.SetX(0), dim.SetY(0)),
                HorizontalAlignment = HorizontalAlignment.Center,
                VerticalAlignment   = VerticalAlignment.Center,
                Size                = new IntVector2(dim.SetX(640), dim.SetY(90))
            };
            lineEdit.SetColor(Color.Transparent);
            lineEdit.Text = enterTextString;
            lineEdit.TextElement.SetFont(font, dim.SetX(35));
            lineEdit.TextElement.VerticalAlignment   = VerticalAlignment.Center;
            lineEdit.TextElement.HorizontalAlignment = HorizontalAlignment.Center;
            nameContainer.AddChild(lineEdit);

            continueBtn.Visible = true;
            lineEdit.Focused   += (FocusedEventArgs args) => {
                _nameText = enterTextString;
                System.Diagnostics.Debug.WriteLine("Focused line edit");
            };

            /*
             * lineEdit.TextChanged += (TextChangedEventArgs args) => {
             *  if(args.Text.Equals(enterTextString) || args.Text.Contains("Enter n")) {
             *      lineEdit.Text = string.Empty;
             *      _nameText = string.Empty;
             *      continueBtn.Visible = false;
             *      return;
             *  }
             *  if(args.Text.Length < 3) {
             *      continueBtn.Visible = false;
             *      return;
             *  }
             *  continueBtn.Visible = true;
             *  _nameText = args.Text;
             * };
             */

            //male
            male = new Button();
            cont_profile.AddChild(male);
            male.SetStyleAuto(null);
            male.SetPosition((int)(dim.XScreenRatio * 800), (int)(dim.YScreenRatio * 50));
            male.SetSize((int)(dim.XScreenRatio * 300), (int)(dim.YScreenRatio * 100));
            male.Texture   = generic_bts;
            male.ImageRect = new IntRect(0, 0, 260, 110);
            Text buttonmale = new Text();

            male.AddChild(buttonmale);
            buttonmale.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Center);
            buttonmale.SetPosition(0, 0);
            buttonmale.SetFont(font, dim.XScreenRatio * 30);
            buttonmale.Value = "MALE";
            male.Pressed    += args => {
                counter = 0;
                ScrollImage();
            };

            //female
            female = new Button();
            cont_profile.AddChild(female);
            female.SetStyleAuto(null);
            female.SetPosition((int)(dim.XScreenRatio * 1120), (int)(dim.YScreenRatio * 50));
            female.SetSize((int)(dim.XScreenRatio * 300), (int)(dim.YScreenRatio * 100));
            female.Texture   = generic_bts;
            female.ImageRect = new IntRect(0, 0, 260, 110);
            Text buttonfemale = new Text();

            female.AddChild(buttonfemale);
            buttonfemale.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Center);
            buttonfemale.SetPosition(0, 0);
            buttonfemale.SetFont(font, dim.XScreenRatio * 30);
            buttonfemale.Value = "FEMALE";
            female.Pressed    += args => {
                counter = 12;
                ScrollImage();
            };

            //other
            other = new Button();
            cont_profile.AddChild(other);
            other.SetStyleAuto(null);
            other.SetPosition((int)(dim.XScreenRatio * 1440), (int)(dim.YScreenRatio * 50));
            other.SetSize((int)(dim.XScreenRatio * 300), (int)(dim.YScreenRatio * 100));
            other.Texture   = generic_bts;
            other.ImageRect = new IntRect(0, 0, 260, 110);
            Text buttonother = new Text();

            other.AddChild(buttonother);
            buttonother.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Center);
            buttonother.SetPosition(0, 0);
            buttonother.SetFont(font, dim.XScreenRatio * 30);
            buttonother.Value = "OTHER";
            other.Pressed    += args => {
                counter = 24;
                ScrollImage();
            };

            // Buttons container (root element)
            cont_img         = root.CreateSprite();
            cont_img.Texture = cont_base;
            cont_img.SetSize((int)(dim.XScreenRatio * 1200), (int)(dim.YScreenRatio * 800));
            cont_img.SetPosition((int)(dim.XScreenRatio * 10), (int)(dim.YScreenRatio * 250));
            cont_img.ImageRect = new IntRect(0, 0, 56, 56);

            p_prev_img = new Button();
            cont_profile.AddChild(p_prev_img);
            p_prev_img.SetStyleAuto(null);
            p_prev_img.Opacity = 0.25f;
            p_prev_img.SetPosition((int)(dim.XScreenRatio * -400), (int)(dim.YScreenRatio * 300));
            p_prev_img.SetSize((int)(dim.XScreenRatio * 450), (int)(dim.YScreenRatio * 450));
            p_prev_img.Texture   = profiles;
            p_prev_img.ImageRect = new IntRect(0, 0, 250, 250);

            prev_img = new Button();
            cont_profile.AddChild(prev_img);
            prev_img.SetStyleAuto(null);
            prev_img.Opacity = 0.5f;
            prev_img.SetPosition((int)(dim.XScreenRatio * 100), (int)(dim.YScreenRatio * 250));
            prev_img.SetSize((int)(dim.XScreenRatio * 500), (int)(dim.YScreenRatio * 500));
            prev_img.Texture   = profiles;
            prev_img.ImageRect = new IntRect(0, 0, 250, 250);
            prev_img.Pressed  += args => {
                if (counter <= 0)
                {
                    counter = 44;
                }
                else
                {
                    counter = counter - 1;
                }
                ScrollImage();
            };

            sel_img = new Button();
            cont_profile.AddChild(sel_img);
            sel_img.SetStyleAuto(null);
            sel_img.SetPosition((int)(dim.XScreenRatio * 650), (int)(dim.YScreenRatio * 220));
            sel_img.SetSize((int)(dim.XScreenRatio * 550), (int)(dim.YScreenRatio * 550));
            sel_img.Texture   = profiles;
            sel_img.ImageRect = new IntRect(250, 0, 500, 250);

            next_img = new Button();
            cont_profile.AddChild(next_img);
            next_img.Opacity = 0.5f;
            next_img.SetStyleAuto(null);
            next_img.SetPosition((int)(dim.XScreenRatio * 1250), (int)(dim.YScreenRatio * 250));
            next_img.SetSize((int)(dim.XScreenRatio * 500), (int)(dim.YScreenRatio * 500));
            next_img.Texture   = profiles;
            next_img.ImageRect = new IntRect(500, 0, 750, 250);
            next_img.Pressed  += args => {
                if (counter == 44)
                {
                    //next_img.Enabled = false;
                    counter = 0;
                }
                else
                {
                    next_img.Enabled = true;
                    counter          = counter + 1;
                }
                ScrollImage();
            };

            n_next_img = new Button();
            cont_profile.AddChild(n_next_img);
            n_next_img.SetStyleAuto(null);
            n_next_img.Opacity = 0.25f;
            n_next_img.SetPosition((int)(dim.XScreenRatio * 1800), (int)(dim.YScreenRatio * 300));
            n_next_img.SetSize((int)(dim.XScreenRatio * 450), (int)(dim.YScreenRatio * 450));
            n_next_img.Texture   = profiles;
            n_next_img.ImageRect = new IntRect(0, 0, 250, 250);


            //slider
            imageSlider = new Slider();
            cont_profile.AddChild(imageSlider);
            imageSlider.SetStyleAuto(null);
            imageSlider.SetPosition(GameInstance.ScreenInfo.SetX(400), GameInstance.ScreenInfo.SetY(160));
            imageSlider.SetSize(GameInstance.ScreenInfo.SetX(1100), GameInstance.ScreenInfo.SetY(55));
            imageSlider.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            imageSlider.ImageRect = AssetsCoordinates.Generic.Boxes.VolumeBarWhite;
            imageSlider.Opacity   = 0.2f;
            imageSlider.Range     = 44;

            var knobM = imageSlider.Knob;

            knobM.SetFixedSize(GameInstance.ScreenInfo.SetX(100), GameInstance.ScreenInfo.SetY(55));
            knobM.Texture           = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            knobM.ImageRect         = AssetsCoordinates.Generic.Boxes.VolumeBarWhite;
            knobM.UseDerivedOpacity = false;
            imageSlider.Value       = counter;

            imageSlider.SliderChanged += (SliderChangedEventArgs args) => {
                counter = (int)args.Value;
                ScrollImage();
                System.Diagnostics.Debug.WriteLine("VALORE = " + (int)args.Value);
            };
        }
Example #16
0
        void DefineCurrVehicle()
        {
            if (_selectedVehicle != null)
            {
                _selectedVehicle.Remove();
            }

            _selectedVehicle = new Button();
            _vehicleBar.AddChild(_selectedVehicle);
            _selectedVehicle.UseDerivedOpacity = false;
            _selectedVehicle.Texture           = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Garage.FullVehicles.ResourcePath);
            _currentVehicleModel = VehicleManager.Instance.GetVehicleFromId(_idDVehicle);
            _selectedVehicle.SetSize((int)(_dim.XScreenRatio * 600), (int)(_dim.YScreenRatio * 600));
            _selectedVehicle.SetPosition((int)(_dim.XScreenRatio * 650), (int)(_dim.YScreenRatio * -100));

            _selectedVehicle.Pressed += args => {
                if (VehicleManager.Instance.UnlockedVehicles.VehicleModel.Count == 0)
                {
                    if (_currentVehicleModel.UnlockCost == -1)
                    {
                        ConfirmationWindow(string.Format("You can't select this vehicle at this moment."), true);
                    }
                    else
                    {
                        // Unlock vehicle
                        VehicleManager.Instance.SelectedVehicleModel = VehicleManager.Instance.Vehicles.VehicleModel.First(v => v.IdVehicle == _idDVehicle);
                        VehicleManager.Instance.UnlockVehicle();

                        Debug.WriteLine("Unlocked vehicle " + _currentVehicleModel.IdVehicle);
                        ConfirmationWindow(string.Format("{0} unlocked!", _selectedVehicle.Name), false, true);
                    }
                }
                else if (!VehicleManager.Instance.UnlockedVehicles.VehicleModel.Exists(v => v.IdVehicle == _currentVehicleModel.IdVehicle))
                {
                    // If selected and vehicle needs to be unlocked, unlock vehicle without changing scene
                    if (_currentVehicleModel.UnlockCost != -1)
                    {
                        if (CharacterManager.Instance.Wallet >= _currentVehicleModel.UnlockCost)
                        {
                            CharacterManager.Instance.Wallet -= _currentVehicleModel.UnlockCost;
                            _wallet.Value = CharacterManager.Instance.Wallet.ToString();
                            // Unlock vehicle
                            VehicleManager.Instance.SelectedVehicleModel = VehicleManager.Instance.Vehicles.VehicleModel.First(v => v.IdVehicle == _idDVehicle);
                            VehicleManager.Instance.UnlockVehicle();

                            Debug.WriteLine("Unlocked vehicle " + _currentVehicleModel.IdVehicle);
                            ConfirmationWindow(string.Format("{0} unlocked!", _selectedVehicle.Name), false, true);
                        }
                        else
                        {
                            ConfirmationWindow(string.Format("Collect more coins to unlock this vehicle."), true);
                        }
                    }
                    else
                    {
                        var components = VehicleManager.Instance.CollectedComponentsForVehicle(_currentVehicleModel.IdVehicle).VehicleComponents;
                        if (components.Brakes && components.Performance && components.Suspensions && components.Wheels)
                        {
                            // Unlock vehicle
                            VehicleManager.Instance.SelectedVehicleModel = VehicleManager.Instance.Vehicles.VehicleModel.First(v => v.IdVehicle == _idDVehicle);
                            VehicleManager.Instance.UnlockVehicle();

                            Debug.WriteLine("Unlocked vehicle " + _currentVehicleModel.IdVehicle);
                            ConfirmationWindow(string.Format(_selectedVehicle.Name + "unlocked!"), false, true);
                        }
                        else
                        {
                            ConfirmationWindow(string.Format("Collect all four components to unlock this vehicle."), true);
                        }
                    }
                }
                else
                {
                    VehicleManager.Instance.SelectedVehicleModel = VehicleManager.Instance.Vehicles.VehicleModel.First(v => v.IdVehicle == _idDVehicle);
                    GameInstance.LaunchScene(GameScenesEnumeration.MENU);
                }
            };

            _carName = new Text();
            _selectedVehicle.AddChild(_carName);
            _carName.SetPosition(_dim.SetX(0), _dim.SetY(-80));
            _carName.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Bottom);
            _carName.SetFont(_font, _dim.SetX(40));

            _unlockCost = new Text();
            _selectedVehicle.AddChild(_unlockCost);
            _unlockCost.SetPosition(_dim.SetX(40), _dim.SetY(-30));
            _unlockCost.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Bottom);
            _unlockCost.SetFont(_font, _dim.SetX(30));
            _unlockCost.Visible = false;

            _coinIcon = new BorderImage();
            _selectedVehicle.AddChild(_coinIcon);
            _coinIcon.SetPosition(_dim.SetX(-50), _dim.SetY(-30));
            _coinIcon.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Bottom);
            _coinIcon.Visible = false;
            _coinIcon.SetSize(_dim.SetX(50), _dim.SetY(50));
            _coinIcon.Texture           = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Icons.ResourcePath);
            _coinIcon.ImageRect         = AssetsCoordinates.Generic.Icons.IconCoin;
            _coinIcon.UseDerivedOpacity = false;

            _lockedVehicle = new Sprite();
            _selectedVehicle.AddChild(_lockedVehicle);
            _lockedVehicle.SetPosition((int)(_dim.XScreenRatio * 630), (int)(_dim.YScreenRatio * 200));
            _lockedVehicle.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Icons.ResourcePath);
            _lockedVehicle.ImageRect = AssetsCoordinates.Generic.Icons.IconLocked;
            _lockedVehicle.SetSize(_dim.SetX(100), _dim.SetY(100));
        }
Example #17
0
 /// <summary>
 /// Set alignment of this Text object with the passed in value.
 /// </summary>
 public static void SetAlignment(this Text t, TextData fontData)
 {
     t.SetAlignment(fontData.alignment);
 }
        void CreateTopBar()
        {
            black_bar = root.CreateSprite();
            GameInstance.UI.Root.AddChild(black_bar);
            black_bar.Texture = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.TopBar.ResourcePath);
            black_bar.Opacity = 0.5f;
            black_bar.SetPosition(GameInstance.ScreenInfo.SetX(0), (int)(dim.YScreenRatio * 30));
            black_bar.SetSize((int)(dim.XScreenRatio * 2000), (int)(dim.YScreenRatio * 140));
            black_bar.ImageRect = AssetsCoordinates.Generic.TopBar.Rectangle;

            Button btn_back = new Button();

            root.AddChild(btn_back);
            btn_back.SetStyleAuto(null);
            btn_back.SetPosition((int)(dim.XScreenRatio * 40), (int)(dim.YScreenRatio * 40));
            btn_back.SetSize((int)(dim.XScreenRatio * 120), (int)(dim.YScreenRatio * 120));
            btn_back.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Icons.ResourcePath);
            btn_back.ImageRect = AssetsCoordinates.Generic.Icons.BntBack;
            btn_back.Pressed  += args => {
                GameInstance.LaunchScene(GameScenesEnumeration.MENU);
            };


            //COINS
            Button coins = new Button();

            root.AddChild(coins);
            coins.SetStyleAuto(null);
            coins.SetPosition((int)(dim.XScreenRatio * 180), (int)(dim.YScreenRatio * 60));
            coins.SetSize((int)(dim.XScreenRatio * 75), (int)(dim.YScreenRatio * 70));
            coins.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Icons.ResourcePath);
            coins.ImageRect = AssetsCoordinates.Generic.Icons.IconCoin;


            //Wallet text
            Text wallet = new Text();

            coins.AddChild(wallet);
            wallet.SetPosition((int)(dim.XScreenRatio * 90), (int)(dim.YScreenRatio * 10));
            wallet.SetFont(font, dim.XScreenRatio * 30);
            int wallet_tot = CharacterManager.Instance.Wallet;

            wallet.Value = "" + wallet_tot;

            // SCREEN TITLE
            Button screen_title = new Button();

            root.AddChild(screen_title);
            screen_title.SetStyleAuto(null);
            screen_title.SetPosition((int)(dim.XScreenRatio * 1500), (int)(dim.YScreenRatio * 50));
            screen_title.SetSize((int)(dim.XScreenRatio * 400), (int)(dim.YScreenRatio * 100));
            screen_title.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            screen_title.ImageRect = AssetsCoordinates.Generic.Boxes.BoxTitle;
            screen_title.Enabled   = false;

            Text buttonTitleText = new Text();

            screen_title.AddChild(buttonTitleText);
            buttonTitleText.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Center);
            buttonTitleText.SetPosition(GameInstance.ScreenInfo.SetX(0), GameInstance.ScreenInfo.SetY(0));
            buttonTitleText.SetFont(font, dim.XScreenRatio * 30);
            buttonTitleText.Value = "RESULTS";
        }
Example #19
0
        void CreateUpgradeBars()
        {
            var contBase = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Garage.ContBase.ResourcePath);

            // UPDGRADES
            _contUpgrade         = _root.CreateSprite();
            _contUpgrade.Texture = contBase;
            _contUpgrade.SetSize((int)(_dim.XScreenRatio * 1200), (int)(_dim.YScreenRatio * 300));
            _contUpgrade.SetPosition((int)(_dim.XScreenRatio * 0), (int)(_dim.YScreenRatio * 750));
            _contUpgrade.ImageRect = AssetsCoordinates.Generic.Garage.ContBase.TrasparentItem;

            _performanceBar = new BorderImage();
            _contUpgrade.AddChild(_performanceBar);
            _performanceBar.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            _performanceBar.ImageRect = AssetsCoordinates.Generic.Boxes.BoxPerformanceUpgrade;
            _performanceBar.SetSize((int)(_dim.XScreenRatio * 550), (int)(_dim.YScreenRatio * 95));
            _performanceBar.SetPosition((int)(_dim.XScreenRatio * 1000), (int)(_dim.YScreenRatio * 100));



            _suspensionsBar = new BorderImage();
            _contUpgrade.AddChild(_suspensionsBar);
            _suspensionsBar.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            _suspensionsBar.ImageRect = AssetsCoordinates.Generic.Boxes.BoxSuspensionUpgrade;
            _suspensionsBar.SetSize((int)(_dim.XScreenRatio * 550), (int)(_dim.YScreenRatio * 95));
            _suspensionsBar.SetPosition((int)(_dim.XScreenRatio * 1000), (int)(_dim.YScreenRatio * 200));

            _wheelBar = new BorderImage();
            _contUpgrade.AddChild(_wheelBar);
            _wheelBar.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            _wheelBar.ImageRect = AssetsCoordinates.Generic.Boxes.BoxWheelUpgrade;
            _wheelBar.SetSize((int)(_dim.XScreenRatio * 550), (int)(_dim.YScreenRatio * 95));
            _wheelBar.SetPosition((int)(_dim.XScreenRatio * 440), (int)(_dim.YScreenRatio * 100));

            _brakeBar = new BorderImage();
            _contUpgrade.AddChild(_brakeBar);
            _brakeBar.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            _brakeBar.ImageRect = AssetsCoordinates.Generic.Boxes.BoxBrakeUpgrade;
            _brakeBar.SetSize((int)(_dim.XScreenRatio * 550), (int)(_dim.YScreenRatio * 95));
            _brakeBar.SetPosition((int)(_dim.XScreenRatio * 440), (int)(_dim.YScreenRatio * 200));

            // COMPONENTS
            _contComponents         = _root.CreateSprite();
            _contComponents.Texture = contBase;
            _contComponents.SetSize(_dim.SetX(1920), _dim.SetY(300));
            _contComponents.SetPosition(_dim.SetX(0), _dim.SetY(720));
            _contComponents.ImageRect = new IntRect(0, 0, 56, 56);

            Body = new BorderImage();
            _contComponents.AddChild(Body);
            Body.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            Body.ImageRect = AssetsCoordinates.Generic.Boxes.ComponentBodyRed;
            Body.SetSize(_dim.SetX(150), _dim.SetY(150));
            Body.SetPosition(_dim.SetX(-300), _dim.SetY(150));
            Body.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Top);

            Engine = new BorderImage();
            _contComponents.AddChild(Engine);
            Engine.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            Engine.ImageRect = AssetsCoordinates.Generic.Boxes.ComponentEngineRed;
            Engine.SetSize(_dim.SetX(150), _dim.SetY(150));
            Engine.SetPosition(_dim.SetX(-130), _dim.SetY(150));
            Engine.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Top);

            Suspensions = new BorderImage();
            _contComponents.AddChild(Suspensions);
            Suspensions.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            Suspensions.ImageRect = AssetsCoordinates.Generic.Boxes.ComponentSuspensionRed;
            Suspensions.SetSize(_dim.SetX(150), _dim.SetY(150));
            Suspensions.SetPosition(_dim.SetX(130), _dim.SetY(150));
            Suspensions.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Top);

            Wheel = new BorderImage();
            _contComponents.AddChild(Wheel);
            Wheel.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            Wheel.ImageRect = AssetsCoordinates.Generic.Boxes.ComponentWheelRed;
            Wheel.SetSize(_dim.SetX(150), _dim.SetY(150));
            Wheel.SetPosition(_dim.SetX(300), _dim.SetY(150));
            Wheel.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Top);


            // UPDGRADES
            _contUpgradeCost         = _root.CreateSprite();
            _contUpgradeCost.Texture = contBase;
            _contUpgradeCost.SetSize((int)(_dim.XScreenRatio * 1200), (int)(_dim.YScreenRatio * 300));
            _contUpgradeCost.SetPosition((int)(_dim.XScreenRatio * 0), (int)(_dim.YScreenRatio * 750));
            _contUpgradeCost.ImageRect = AssetsCoordinates.Generic.Garage.ContBase.TrasparentItem;

            _performanceCost = new BorderImage();
            _contUpgradeCost.AddChild(_performanceCost);
            _performanceCost.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Icons.ResourcePath);
            _performanceCost.ImageRect = AssetsCoordinates.Generic.Icons.UpgradeCost;
            _performanceCost.SetSize((int)(_dim.XScreenRatio * 90), (int)(_dim.YScreenRatio * 90));
            _performanceCost.SetPosition((int)(_dim.XScreenRatio * 1550), (int)(_dim.YScreenRatio * 100));

            _performanceUpBtn = new Button();
            _performanceCost.AddChild(_performanceUpBtn);
            _performanceUpBtn.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Icons.ResourcePath);
            _performanceUpBtn.ImageRect = AssetsCoordinates.Generic.Icons.UpgradeRight;
            _performanceUpBtn.SetSize((int)(_dim.XScreenRatio * 85), (int)(_dim.YScreenRatio * 90));
            _performanceUpBtn.SetPosition((int)(_dim.XScreenRatio * 100), (int)(_dim.YScreenRatio * 0));
            _performanceUpBtn.Pressed += args => {
                UpgradeComponent(0);
            };

            perCost = new Text();
            _performanceCost.AddChild(perCost);
            perCost.SetPosition((int)(_dim.XScreenRatio * 0), (int)(_dim.YScreenRatio * 0));
            perCost.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Center);
            perCost.SetFont(_font, _dim.XScreenRatio * 20);
            perCost.SetColor(Color.Black);

            _wheelCost = new BorderImage();
            _contUpgradeCost.AddChild(_wheelCost);
            _wheelCost.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Icons.ResourcePath);
            _wheelCost.ImageRect = AssetsCoordinates.Generic.Icons.UpgradeCost;
            _wheelCost.SetSize((int)(_dim.XScreenRatio * 90), (int)(_dim.YScreenRatio * 90));
            _wheelCost.SetPosition((int)(_dim.XScreenRatio * 345), (int)(_dim.YScreenRatio * 100));

            _wheelUpBtn = new Button();
            _wheelCost.AddChild(_wheelUpBtn);
            _wheelUpBtn.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Icons.ResourcePath);
            _wheelUpBtn.ImageRect = AssetsCoordinates.Generic.Icons.UpgradeLeft;
            _wheelUpBtn.SetSize((int)(_dim.XScreenRatio * 85), (int)(_dim.YScreenRatio * 90));
            _wheelUpBtn.SetPosition((int)(_dim.XScreenRatio * -100), (int)(_dim.YScreenRatio * 0));
            _wheelUpBtn.Pressed += args => {
                UpgradeComponent(1);
            };

            wheCost = new Text();
            _wheelCost.AddChild(wheCost);
            wheCost.SetPosition((int)(_dim.XScreenRatio * 0), (int)(_dim.YScreenRatio * 0));
            wheCost.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Center);
            wheCost.SetFont(_font, _dim.XScreenRatio * 20);
            wheCost.SetColor(Color.Black);

            _suspensionsCost = new BorderImage();
            _contUpgradeCost.AddChild(_suspensionsCost);
            _suspensionsCost.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Icons.ResourcePath);
            _suspensionsCost.ImageRect = AssetsCoordinates.Generic.Icons.UpgradeCost;
            _suspensionsCost.SetSize((int)(_dim.XScreenRatio * 90), (int)(_dim.YScreenRatio * 90));
            _suspensionsCost.SetPosition((int)(_dim.XScreenRatio * 1550), (int)(_dim.YScreenRatio * 200));

            _suspensionsUpBtn = new Button();
            _suspensionsCost.AddChild(_suspensionsUpBtn);
            _suspensionsUpBtn.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Icons.ResourcePath);
            _suspensionsUpBtn.ImageRect = AssetsCoordinates.Generic.Icons.UpgradeRight;
            _suspensionsUpBtn.SetSize((int)(_dim.XScreenRatio * 85), (int)(_dim.YScreenRatio * 90));
            _suspensionsUpBtn.SetPosition((int)(_dim.XScreenRatio * 100), (int)(_dim.YScreenRatio * 0));
            _suspensionsUpBtn.Pressed += args => {
                UpgradeComponent(2);
            };

            susCost = new Text();
            _suspensionsCost.AddChild(susCost);
            susCost.SetPosition((int)(_dim.XScreenRatio * 0), (int)(_dim.YScreenRatio * 0));
            susCost.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Center);
            susCost.SetFont(_font, _dim.XScreenRatio * 20);
            susCost.SetColor(Color.Black);

            _brakeCost = new BorderImage();
            _contUpgradeCost.AddChild(_brakeCost);
            _brakeCost.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Icons.ResourcePath);
            _brakeCost.ImageRect = AssetsCoordinates.Generic.Icons.UpgradeCost;
            _brakeCost.SetSize((int)(_dim.XScreenRatio * 90), (int)(_dim.YScreenRatio * 90));
            _brakeCost.SetPosition((int)(_dim.XScreenRatio * 345), (int)(_dim.YScreenRatio * 200));

            _brakeUpBtn = new Button();
            _brakeCost.AddChild(_brakeUpBtn);
            _brakeUpBtn.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Icons.ResourcePath);
            _brakeUpBtn.ImageRect = AssetsCoordinates.Generic.Icons.UpgradeLeft;
            _brakeUpBtn.SetSize((int)(_dim.XScreenRatio * 85), (int)(_dim.YScreenRatio * 90));
            _brakeUpBtn.SetPosition((int)(_dim.XScreenRatio * -100), (int)(_dim.YScreenRatio * 0));
            _brakeUpBtn.Pressed += args => {
                UpgradeComponent(3);
            };

            SetUpgrade();
            SetCollectedComponents();
            GetCarImg();
        }
Example #20
0
        private void drawUI()
        {
            //draw font for X
            x = new Text();
            x.SetAlignment(horizontal, vertical);
            x.Position = new IntVector2(positionXx1, positionYx1);
            x.Name     = "X";
            x.Value    = "Camera ID = ";
            x.SetFont(ui_font, font_small);
            x.SetColor(uicolor);
            ui_node.AddChild(x);

            //draw font for Y
            y = new Text();
            y.SetAlignment(horizontal, vertical);
            y.Position = new IntVector2(positionXy1, positionYx1);
            y.Name     = "Y";
            y.Value    = "Gestur = ";
            y.SetFont(ui_font, font_small);
            y.SetColor(uicolor);
            ui_node.AddChild(y);

            //draw font for Z
            z = new Text();
            z.SetAlignment(horizontal, vertical);
            z.Position = new IntVector2(positionXz1, positionYx1);
            z.Name     = "Z";
            z.Value    = "Confidence = ";
            z.SetFont(ui_font, font_small);
            z.SetColor(uicolor);
            ui_node.AddChild(z);

            //draw font for X
            x1 = new Text();
            x1.SetAlignment(horizontal, vertical);
            x1.Position = new IntVector2(positionXx1, positionYy1);
            x1.Name     = "X1";
            x1.Value    = "Camera ID = ";
            x1.SetFont(ui_font, font_small);
            x1.SetColor(uicolor);
            ui_node.AddChild(x1);

            //draw font for Y
            y1 = new Text();
            y1.SetAlignment(horizontal, vertical);
            y1.Position = new IntVector2(positionXy1, positionYy1);
            y1.Name     = "Y1";
            y1.Value    = "Gestur = ";
            y1.SetFont(ui_font, font_small);
            y1.SetColor(uicolor);
            ui_node.AddChild(y1);

            //draw font for Z
            z1 = new Text();
            z1.SetAlignment(horizontal, vertical);
            z1.Position = new IntVector2(positionXz1, positionYy1);
            z1.Name     = "Z1";
            z1.Value    = "Confidence = ";
            z1.SetFont(ui_font, font_small);
            z1.SetColor(uicolor);
            ui_node.AddChild(z1);

            //draw font for X
            x2 = new Text();
            x2.SetAlignment(horizontal, vertical);
            x2.Position = new IntVector2(positionXx1, positionYz1);
            x2.Name     = "X2";
            x2.Value    = "Camera ID = ";
            x2.SetFont(ui_font, font_small);
            x2.SetColor(uicolor);
            ui_node.AddChild(x2);

            //draw font for Y
            y2 = new Text();
            y2.SetAlignment(horizontal, vertical);
            y2.Position = new IntVector2(positionXy1, positionYz1);
            y2.Name     = "Y2";
            y2.Value    = "Gestur = ";
            y2.SetFont(ui_font, font_small);
            y2.SetColor(uicolor);
            ui_node.AddChild(y2);

            //draw font for Z
            z2 = new Text();
            z2.SetAlignment(horizontal, vertical);
            z2.Position = new IntVector2(positionXz1, positionYz1);
            z2.Name     = "Z2";
            z2.Value    = "Confidence = ";
            z2.SetFont(ui_font, font_small);
            z2.SetColor(uicolor);
            ui_node.AddChild(z2);

            //draw font for X
            x3 = new Text();
            x3.SetAlignment(horizontal, vertical);
            x3.Position = new IntVector2(positionXx1, positionYa1);
            x3.Name     = "X3";
            x3.Value    = "Camera ID = ";
            x3.SetFont(ui_font, font_small);
            x3.SetColor(uicolor);
            ui_node.AddChild(x3);

            //draw font for Y
            y3 = new Text();
            y3.SetAlignment(horizontal, vertical);
            y3.Position = new IntVector2(positionXy1, positionYa1);
            y3.Name     = "Y3";
            y3.Value    = "Gestur = ";
            y3.SetFont(ui_font, font_small);
            y3.SetColor(uicolor);
            ui_node.AddChild(y3);

            //draw font for Z
            z3 = new Text();
            z3.SetAlignment(horizontal, vertical);
            z3.Position = new IntVector2(positionXz1, positionYa1);
            z3.Name     = "Z3";
            z3.Value    = "Confidence = ";
            z3.SetFont(ui_font, font_small);
            z3.SetColor(uicolor);
            ui_node.AddChild(z3);

            //draw font for X
            x4 = new Text();
            x4.SetAlignment(horizontal, vertical);
            x4.Position = new IntVector2(positionXx1, positionYKinect);
            x4.Name     = "X3";
            x4.Value    = "Camera ID = ";
            x4.SetFont(ui_font, font_small);
            x4.SetColor(uicolor);
            ui_node.AddChild(x4);

            //draw font for Y
            y4 = new Text();
            y4.SetAlignment(horizontal, vertical);
            y4.Position = new IntVector2(positionXy1, positionYKinect);
            y4.Name     = "Y3";
            y4.Value    = "Gestur = ";
            y4.SetFont(ui_font, font_small);
            y4.SetColor(uicolor);
            ui_node.AddChild(y4);
        }
        private void drawUI()
        {
            //Sensor ID1
            //draw font for X
            x = new Text();
            x.SetAlignment(horizontal, vertical);
            x.Position = new IntVector2(positionXx, positionYx);
            x.Name     = "X";
            x.Value    = "Temperatur = ";
            x.SetFont(ui_font, font_small);
            x.SetColor(uicolor);
            ui_node.AddChild(x);

            //draw font for Y
            y = new Text();
            y.SetAlignment(horizontal, vertical);
            y.Position = new IntVector2(positionXy, positionYy);
            y.Name     = "Y";
            y.Value    = "Kelembapan = ";
            y.SetFont(ui_font, font_small);
            y.SetColor(uicolor);
            ui_node.AddChild(y);

            //draw font for Z
            z = new Text();
            z.SetAlignment(horizontal, vertical);
            z.Position = new IntVector2(positionXz, positionYz);
            z.Name     = "Z";
            z.Value    = "Intensitas Cahaya = ";
            z.SetFont(ui_font, font_small);
            z.SetColor(uicolor);
            ui_node.AddChild(z);


            //draw font for a
            a = new Text();
            a.SetAlignment(horizontal, vertical);
            a.Position = new IntVector2(positionXa, positionYa);
            a.Name     = "A";
            a.Value    = "Kebisingan Suara" +
                         " = ";
            a.SetFont(ui_font, font_small);
            a.SetColor(uicolor);
            ui_node.AddChild(a);

            //Sensor ID2
            //draw font for X
            x1 = new Text();
            x1.SetAlignment(horizontal, vertical);
            x1.Position = new IntVector2(positionXx1, positionYx1);
            x1.Name     = "X1";
            x1.Value    = "Temperatur = ";
            x1.SetFont(ui_font, font_small);
            x1.SetColor(uicolor);
            ui_node.AddChild(x1);

            //draw font for Y
            y1 = new Text();
            y1.SetAlignment(horizontal, vertical);
            y1.Position = new IntVector2(positionXy1, positionYy1);
            y1.Name     = "Y1";
            y1.Value    = "Kelembapan = ";
            y1.SetFont(ui_font, font_small);
            y1.SetColor(uicolor);
            ui_node.AddChild(y1);

            //draw font for Z
            z1 = new Text();
            z1.SetAlignment(horizontal, vertical);
            z1.Position = new IntVector2(positionXz1, positionYz1);
            z1.Name     = "Z1";
            z1.Value    = "Intensitas Cahaya = ";
            z1.SetFont(ui_font, font_small);
            z1.SetColor(uicolor);
            ui_node.AddChild(z1);


            //draw font for a
            a1 = new Text();
            a1.SetAlignment(horizontal, vertical);
            a1.Position = new IntVector2(positionXa1, positionYa1);
            a1.Name     = "A1";
            a1.Value    = "Kebisingan Suara" +
                          " = ";
            a1.SetFont(ui_font, font_small);
            a1.SetColor(uicolor);
            ui_node.AddChild(a1);

            //Sensor ID3
            //draw font for X
            x2 = new Text();
            x2.SetAlignment(horizontal, vertical);
            x2.Position = new IntVector2(positionXx2, positionYx2);
            x2.Name     = "X2";
            x2.Value    = "Temperatur = ";
            x2.SetFont(ui_font, font_small);
            x2.SetColor(uicolor);
            ui_node.AddChild(x2);

            //draw font for Y
            y2 = new Text();
            y2.SetAlignment(horizontal, vertical);
            y2.Position = new IntVector2(positionXy2, positionYy2);
            y2.Name     = "Y2";
            y2.Value    = "Kelembapan = ";
            y2.SetFont(ui_font, font_small);
            y2.SetColor(uicolor);
            ui_node.AddChild(y2);

            //draw font for Z
            z2 = new Text();
            z2.SetAlignment(horizontal, vertical);
            z2.Position = new IntVector2(positionXz2, positionYz2);
            z2.Name     = "Z2";
            z2.Value    = "Intensitas Cahaya = ";
            z2.SetFont(ui_font, font_small);
            z2.SetColor(uicolor);
            ui_node.AddChild(z2);


            //draw font for a
            a2 = new Text();
            a2.SetAlignment(horizontal, vertical);
            a2.Position = new IntVector2(positionXa2, positionYa2);
            a2.Name     = "A2";
            a2.Value    = "Kebisingan Suara" +
                          " = ";
            a2.SetFont(ui_font, font_small);
            a2.SetColor(uicolor);
            ui_node.AddChild(a2);

            //Sensor ID4
            //draw font for X
            x3 = new Text();
            x3.SetAlignment(horizontal, vertical);
            x3.Position = new IntVector2(positionXx3, positionYx3);
            x3.Name     = "X3";
            x3.Value    = "Temperatur = ";
            x3.SetFont(ui_font, font_small);
            x3.SetColor(uicolor);
            ui_node.AddChild(x3);

            //draw font for Y
            y3 = new Text();
            y3.SetAlignment(horizontal, vertical);
            y3.Position = new IntVector2(positionXy3, positionYy3);
            y3.Name     = "Y3";
            y3.Value    = "Kelembapan = ";
            y3.SetFont(ui_font, font_small);
            y3.SetColor(uicolor);
            ui_node.AddChild(y3);

            //draw font for Z
            z3 = new Text();
            z3.SetAlignment(horizontal, vertical);
            z3.Position = new IntVector2(positionXz3, positionYz3);
            z3.Name     = "Z3";
            z3.Value    = "Intensitas Cahaya = ";
            z3.SetFont(ui_font, font_small);
            z3.SetColor(uicolor);
            ui_node.AddChild(z3);


            //draw font for a
            a3 = new Text();
            a3.SetAlignment(horizontal, vertical);
            a3.Position = new IntVector2(positionXa3, positionYa3);
            a3.Name     = "A3" +
                          "";
            a3.Value = "Kebisingan Suara" + " = ";
            a3.SetFont(ui_font, font_small);
            a3.SetColor(uicolor);
            ui_node.AddChild(a3);
        }
Example #22
0
        void SetUpgrade()
        {
            var green_bars = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Garage.GreenBars.ResourcePath);

            var selectedVehicle = _currentVehicleModel;

            if (VehicleManager.Instance.UnlockedVehicles.VehicleModel.Contains(selectedVehicle))
            {
                selectedVehicle = VehicleManager.Instance.UnlockedVehicles.VehicleModel.First(v => v.IdVehicle == _currentVehicleModel.IdVehicle);
            }

            int perf = selectedVehicle.Performance;
            int whe  = selectedVehicle.Wheel;
            int susp = selectedVehicle.Suspensions;
            int brk  = selectedVehicle.Brake;

            int _pUPCost = perf + 1;

            perCost.Value = _pUPCost + "K";
            int _wUPCost = whe + 1;

            wheCost.Value = _wUPCost + "K";
            int _sUPCost = susp + 1;

            susCost.Value = _wUPCost + "K";



            // perf, whe, sup or brk *20 equals the X Size of the performance bar.
            int performance = perf * 20;
            int wheels      = whe * 20;
            int suspensions = susp * 20;
            int brake       = brk * 20;

            _performanceBarA = new Sprite();
            _performanceBar.AddChild(_performanceBarA);
            _performanceBarA.Texture = green_bars;
            _performanceBarA.SetPosition((int)(_dim.XScreenRatio * 90), (int)(_dim.YScreenRatio * 16));
            _performanceBarA.SetSize((int)(_dim.XScreenRatio * performance), (int)(_dim.YScreenRatio * 80));
            _performanceBarA.ImageRect = new IntRect(0, 75, performance, 140);

            _suspensionsBarA = new Sprite();
            _suspensionsBar.AddChild(_suspensionsBarA);
            _suspensionsBarA.Texture = green_bars;
            _suspensionsBarA.SetSize((int)(_dim.XScreenRatio * suspensions), (int)(_dim.YScreenRatio * 80));
            _suspensionsBarA.SetPosition((int)(_dim.XScreenRatio * 90), (int)(_dim.YScreenRatio * 16));
            _suspensionsBarA.ImageRect = new IntRect(0, 75, suspensions, 140);

            _wheelBarA = new Sprite();
            _wheelBar.AddChild(_wheelBarA);
            _wheelBarA.Texture = green_bars;
            _wheelBarA.SetSize((int)(_dim.XScreenRatio * wheels), (int)(_dim.YScreenRatio * 80));
            _wheelBarA.SetPosition((int)(_dim.XScreenRatio * 90), (int)(_dim.YScreenRatio * 16));
            _wheelBarA.ImageRect = new IntRect(0, 75, wheels, 140);

            _brakeBarA = new Sprite();
            _brakeBar.AddChild(_brakeBarA);
            _brakeBarA.Texture = green_bars;
            _brakeBarA.SetSize((int)(_dim.XScreenRatio * brake), (int)(_dim.YScreenRatio * 80));
            _brakeBarA.SetPosition((int)(_dim.XScreenRatio * 90), (int)(_dim.YScreenRatio * 16));
            _brakeBarA.ImageRect = new IntRect(0, 75, brake, 140);


            braCost = new Text();
            _brakeCost.AddChild(braCost);
            braCost.SetPosition((int)(_dim.XScreenRatio * 0), (int)(_dim.YScreenRatio * 0));
            braCost.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Center);
            braCost.SetFont(_font, _dim.XScreenRatio * 20);
            braCost.SetColor(Color.Black);
        }
        void CreateScene()
        {
            container           = root.CreateSprite();
            container.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            container.ImageRect = AssetsCoordinates.Generic.Boxes.ContainerTrasparent;
            container.SetSize((int)(dim.XScreenRatio * 1200), (int)(dim.YScreenRatio * 1400));
            container.SetPosition((int)(dim.XScreenRatio * 0), (int)(dim.YScreenRatio * 0));

            Sprite LevelInd = new Sprite();

            container.AddChild(LevelInd);
            LevelInd.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            LevelInd.ImageRect = AssetsCoordinates.Generic.Boxes.LevelBlueBox;
            LevelInd.SetSize((int)(dim.XScreenRatio * 140), (int)(dim.YScreenRatio * 140));
            LevelInd.SetPosition((int)(dim.XScreenRatio * 220), (int)(dim.YScreenRatio * 220));

            //STATIC TEXT
            Text level = new Text();

            LevelInd.AddChild(level);
            level.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Top);
            level.SetPosition(GameInstance.ScreenInfo.SetX(0), GameInstance.ScreenInfo.SetY(10));
            level.SetFont(font, dim.XScreenRatio * 20);
            level.Value = "RACE";

            // CURRENT RACE NUMBER
            Text levelnumber = new Text();

            LevelInd.AddChild(levelnumber);
            levelnumber.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Center);
            levelnumber.SetPosition(GameInstance.ScreenInfo.SetX(0), GameInstance.ScreenInfo.SetY(15));
            levelnumber.SetFont(font, dim.XScreenRatio * 50);
            if (_postLevelData != null && _postLevelData.TrackData != null)
            {
                levelnumber.Value = _postLevelData.TrackData.IdTrack.ToString();
            }

            Sprite LevelIcon = new Sprite();

            container.AddChild(LevelIcon);
            LevelIcon.Texture = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);

            LevelIcon.ImageRect = AssetsCoordinates.Generic.Boxes.IconBeach;
            LevelIcon.SetSize((int)(dim.XScreenRatio * 1200), (int)(dim.YScreenRatio * 140));
            LevelIcon.SetPosition((int)(dim.XScreenRatio * 410), (int)(dim.YScreenRatio * 220));

            Sprite ResultsContainer = new Sprite();

            container.AddChild(ResultsContainer);
            ResultsContainer.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            ResultsContainer.ImageRect = AssetsCoordinates.Generic.Boxes.ContainerTrasparent;
            ResultsContainer.SetSize((int)(dim.XScreenRatio * 1200), (int)(dim.YScreenRatio * 1200));
            ResultsContainer.SetPosition((int)(dim.XScreenRatio * 220), (int)(dim.YScreenRatio * 250));

            // CURRENT TIME
            Sprite TimeIcon = new Sprite();

            ResultsContainer.AddChild(TimeIcon);
            TimeIcon.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            TimeIcon.ImageRect = AssetsCoordinates.Generic.Boxes.TimeIconBar;
            TimeIcon.SetSize((int)(dim.XScreenRatio * 800), (int)(dim.YScreenRatio * 100));
            TimeIcon.SetPosition((int)(dim.XScreenRatio * 350), (int)(dim.YScreenRatio * 120));

            // Title
            Text Time = new Text();

            TimeIcon.AddChild(Time);
            Time.SetAlignment(HorizontalAlignment.Left, VerticalAlignment.Center);
            Time.SetPosition(GameInstance.ScreenInfo.SetX(100), GameInstance.ScreenInfo.SetY(0));
            Time.SetFont(font, dim.XScreenRatio * 30);
            Time.Value = "Time:";

            // Time value
            Text TimeTot = new Text();

            TimeIcon.AddChild(TimeTot);
            TimeTot.SetAlignment(HorizontalAlignment.Right, VerticalAlignment.Center);
            TimeTot.SetPosition(GameInstance.ScreenInfo.SetX(-30), GameInstance.ScreenInfo.SetY(0));
            TimeTot.SetFont(font, dim.XScreenRatio * 30);
            if (_postLevelData != null && _postLevelData.TrackData != null)
            {
                TimeTot.Value = TimeSpan.FromMilliseconds(_postLevelData.Time).MillisRepresentation();
            }

            // BEST TIME
            Sprite BestIcon = new Sprite();

            ResultsContainer.AddChild(BestIcon);
            BestIcon.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            BestIcon.ImageRect = AssetsCoordinates.Generic.Boxes.BestIconBar;
            BestIcon.SetSize((int)(dim.XScreenRatio * 800), (int)(dim.YScreenRatio * 100));
            BestIcon.SetPosition((int)(dim.XScreenRatio * 350), (int)(dim.YScreenRatio * 230));

            // Title
            Text Best = new Text();

            BestIcon.AddChild(Best);
            Best.SetAlignment(HorizontalAlignment.Left, VerticalAlignment.Center);
            Best.SetPosition(GameInstance.ScreenInfo.SetX(100), GameInstance.ScreenInfo.SetY(0));
            Best.SetFont(font, dim.XScreenRatio * 30);
            Best.Value = "Best:";

            // Value
            Text BestTot = new Text();

            BestIcon.AddChild(BestTot);
            BestTot.SetAlignment(HorizontalAlignment.Right, VerticalAlignment.Center);
            BestTot.SetPosition(GameInstance.ScreenInfo.SetX(-30), GameInstance.ScreenInfo.SetY(0));
            BestTot.SetFont(font, dim.XScreenRatio * 30);
            if (_postLevelData != null && _postLevelData.TrackData != null)
            {
                BestTot.Value = TimeSpan.FromMilliseconds(_postLevelData.TrackData.BestTime).MillisRepresentation();
            }

            // COMPONENTS
            Sprite ComponentsIcon = new Sprite();

            ResultsContainer.AddChild(ComponentsIcon);
            ComponentsIcon.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            ComponentsIcon.ImageRect = AssetsCoordinates.Generic.Boxes.ComponentsIconBar;
            ComponentsIcon.SetSize((int)(dim.XScreenRatio * 800), (int)(dim.YScreenRatio * 100));
            ComponentsIcon.SetPosition((int)(dim.XScreenRatio * 350), (int)(dim.YScreenRatio * 340));

            // Title
            Text components = new Text();

            ComponentsIcon.AddChild(components);
            components.SetAlignment(HorizontalAlignment.Left, VerticalAlignment.Center);
            components.SetPosition(GameInstance.ScreenInfo.SetX(100), GameInstance.ScreenInfo.SetY(0));
            components.SetFont(font, dim.XScreenRatio * 30);
            components.Value = "Components:";

            // Value
            Text ComponentsTot = new Text();

            ComponentsIcon.AddChild(ComponentsTot);
            ComponentsTot.SetAlignment(HorizontalAlignment.Right, VerticalAlignment.Center);
            ComponentsTot.SetPosition(GameInstance.ScreenInfo.SetX(-30), GameInstance.ScreenInfo.SetY(0));
            ComponentsTot.SetFont(font, dim.XScreenRatio * 30);
            if (_postLevelData != null && _postLevelData.TrackData != null)
            {
                ComponentsTot.Value = "x" + _postLevelData.Components;
            }

            // COINS
            Sprite CoinsIcon = new Sprite();

            ResultsContainer.AddChild(CoinsIcon);
            CoinsIcon.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            CoinsIcon.ImageRect = AssetsCoordinates.Generic.Boxes.CoinsIconBar;
            CoinsIcon.SetSize((int)(dim.XScreenRatio * 800), (int)(dim.YScreenRatio * 100));
            CoinsIcon.SetPosition((int)(dim.XScreenRatio * 350), (int)(dim.YScreenRatio * 450));

            // Title
            Text Coins = new Text();

            CoinsIcon.AddChild(Coins);
            Coins.SetAlignment(HorizontalAlignment.Left, VerticalAlignment.Center);
            Coins.SetPosition(GameInstance.ScreenInfo.SetX(100), GameInstance.ScreenInfo.SetY(0));
            Coins.SetFont(font, dim.XScreenRatio * 30);
            Coins.Value = "Coins:";

            // Value
            Text CoinsTot = new Text();

            CoinsIcon.AddChild(CoinsTot);
            CoinsTot.SetAlignment(HorizontalAlignment.Right, VerticalAlignment.Center);
            CoinsTot.SetPosition(GameInstance.ScreenInfo.SetX(-30), GameInstance.ScreenInfo.SetY(0));
            CoinsTot.SetFont(font, dim.XScreenRatio * 30);
            if (_postLevelData != null && _postLevelData.TrackData != null)
            {
                CoinsTot.Value = "x" + _postLevelData.Coins;
            }

            // POINTS
            Sprite PointsIcon = new Sprite();

            ResultsContainer.AddChild(PointsIcon);
            PointsIcon.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            PointsIcon.ImageRect = AssetsCoordinates.Generic.Boxes.PointsIconBar;
            PointsIcon.SetSize((int)(dim.XScreenRatio * 800), (int)(dim.YScreenRatio * 100));
            PointsIcon.SetPosition((int)(dim.XScreenRatio * 350), (int)(dim.YScreenRatio * 560));

            // Title
            Text Points = new Text();

            PointsIcon.AddChild(Points);
            Points.SetAlignment(HorizontalAlignment.Left, VerticalAlignment.Center);
            Points.SetPosition(GameInstance.ScreenInfo.SetX(100), GameInstance.ScreenInfo.SetY(0));
            Points.SetFont(font, dim.XScreenRatio * 30);
            Points.Value = "Points:";

            // Value
            Text PointsTot = new Text();

            PointsIcon.AddChild(PointsTot);
            PointsTot.SetAlignment(HorizontalAlignment.Right, VerticalAlignment.Center);
            PointsTot.SetPosition(GameInstance.ScreenInfo.SetX(-30), GameInstance.ScreenInfo.SetY(0));
            PointsTot.SetFont(font, dim.XScreenRatio * 30);
            if (_postLevelData != null && _postLevelData.TrackData != null)
            {
                PointsTot.Value = _postLevelData.Points.ToString();
            }

            // CHARACTER LEVEL
            Sprite RankRadBox1 = new Sprite();

            container.AddChild(RankRadBox1);
            RankRadBox1.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            RankRadBox1.ImageRect = AssetsCoordinates.Generic.Boxes.RankRedBox;
            RankRadBox1.SetSize((int)(dim.XScreenRatio * 140), (int)(dim.YScreenRatio * 140));
            RankRadBox1.SetPosition((int)(dim.XScreenRatio * 220), (int)(dim.YScreenRatio * 920));

            // Title
            Text rank1 = new Text();

            RankRadBox1.AddChild(rank1);
            rank1.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Top);
            rank1.SetPosition(GameInstance.ScreenInfo.SetX(0), GameInstance.ScreenInfo.SetY(10));
            rank1.SetFont(font, dim.XScreenRatio * 20);
            rank1.Value = "LEVEL";

            // Value
            Text ranknumber = new Text();

            RankRadBox1.AddChild(ranknumber);
            ranknumber.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Center);
            ranknumber.SetPosition(GameInstance.ScreenInfo.SetX(0), GameInstance.ScreenInfo.SetY(15));
            ranknumber.SetFont(font, dim.XScreenRatio * 50);
            ranknumber.Value = CharacterManager.Instance.User.Level.ToString();


            var    buttons    = cache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            double totPoints  = CharacterLevelData.PointsToNextLevel();
            double currPoints = CharacterLevelData.CurrentLevelPoints();
            double currX      = currPoints / totPoints * 100;
            double totX       = dim.SetX(400);

            int x    = 1773; // punto d'inizio "left" dell'immagine del bottone
            int y    = (int)Math.Round(x + currX / 100 * totX);
            int size = y - x;

            System.Diagnostics.Debug.WriteLine("Size value = " + size + " Tot points = " + totPoints + " currPoints = " + currPoints + " X = " + x + " Y = " + y);
            // LEVEL BASE BOX
            Sprite RankIncrease = new Sprite();

            container.AddChild(RankIncrease);
            RankIncrease.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            RankIncrease.ImageRect = AssetsCoordinates.Generic.Boxes.RankIncreaseBar;
            RankIncrease.SetSize((int)(dim.XScreenRatio * 1000), (int)(dim.YScreenRatio * 140));
            RankIncrease.SetPosition((int)(dim.XScreenRatio * 410), (int)(dim.YScreenRatio * 920));

            Sprite LevelCompleted = new Sprite();

            RankIncrease.AddChild(LevelCompleted);
            LevelCompleted.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            LevelCompleted.ImageRect = AssetsCoordinates.Generic.Boxes.RaceCompleted;
            //            readonly static public IntRect RaceCompleted = new IntRect(1773, 977, 2370, 1049);
            LevelCompleted.ImageRect = new IntRect(x, 977, y, 1049);
            LevelCompleted.SetSize(dim.SetX(size), dim.SetY(140));
            LevelCompleted.SetPosition(0, 0);

            // LEVEL CURRENT POINTS BOX
            Sprite RankRadBox2 = new Sprite();

            container.AddChild(RankRadBox2);
            RankRadBox2.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            RankRadBox2.ImageRect = AssetsCoordinates.Generic.Boxes.RankRedBox;
            RankRadBox2.SetSize((int)(dim.XScreenRatio * 140), (int)(dim.YScreenRatio * 140));
            RankRadBox2.SetPosition((int)(dim.XScreenRatio * 1470), (int)(dim.YScreenRatio * 920));

            // CHARACTER NEXT LEVEL
            Text rank2 = new Text();

            RankRadBox2.AddChild(rank2);
            rank2.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Top);
            rank2.SetPosition(GameInstance.ScreenInfo.SetX(0), GameInstance.ScreenInfo.SetY(10));
            rank2.SetFont(font, dim.XScreenRatio * 20);
            rank2.Value = "LEVEL";

            // Value
            Text ranknumber2 = new Text();

            RankRadBox2.AddChild(ranknumber2);
            ranknumber2.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Center);
            ranknumber2.SetPosition(GameInstance.ScreenInfo.SetX(0), GameInstance.ScreenInfo.SetY(15));
            ranknumber2.SetFont(font, dim.XScreenRatio * 50);
            ranknumber2.Value = (CharacterManager.Instance.User.Level + 1).ToString();
        }
Example #24
0
        Button CreateButton(int x, int y, int xSize, int ySize, int lr, int tr, int rr, int br, string text, int action)
        {
            Font font = GameInstance.ResourceCache.GetFont("Fonts/OpenSans-Bold.ttf");
            // Create the button and center the text onto it
            Button button = new Button();

            GameInstance.UI.Root.AddChild(button);
            button.SetStyleAuto(null);
            button.SetPosition((int)(dim.XScreenRatio * x), (int)(dim.YScreenRatio * y));
            button.SetSize((int)(dim.XScreenRatio * xSize), (int)(dim.YScreenRatio * ySize));

            var btn1Texture = GameInstance.ResourceCache.GetTexture2D("Textures/menutmp.png");

            button.Texture   = btn1Texture;
            button.ImageRect = new IntRect(lr, tr, rr, br);
            Text buttonText = new Text();

            button.AddChild(buttonText);
            //button.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Top);
            buttonText.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Center);
            buttonText.SetPosition(GameInstance.ScreenInfo.SetX(40), 0);
            buttonText.SetFont(font, dim.XScreenRatio * 25);
            buttonText.Value = text;

            button.Pressed += args => {
                switch (action)
                {
                case 2:

                    Plugin.Settings.CrossSettings.Current.AddOrUpdateValue("EXIT_FLAG", 1);
                    GameInstance.LaunchScene(GameScenesEnumeration.LEVEL_SELECT);
                    break;

                case 3:

                    Plugin.Settings.CrossSettings.Current.AddOrUpdateValue("EXIT_FLAG", 1);
                    GameInstance.LaunchScene(GameScenesEnumeration.GARAGE);
                    break;

                case 7:

                    Plugin.Settings.CrossSettings.Current.AddOrUpdateValue("EXIT_FLAG", 1);
                    GameInstance.LaunchScene(GameScenesEnumeration.PROFILE);
                    break;

                case 9:

                    Plugin.Settings.CrossSettings.Current.AddOrUpdateValue("EXIT_FLAG", 1);
                    GameInstance.LaunchScene(GameScenesEnumeration.SETTINGS);
                    break;

                case 10:

                    Plugin.Settings.CrossSettings.Current.AddOrUpdateValue("EXIT_FLAG", 1);
                    GameInstance.LaunchScene(GameScenesEnumeration.USER_PROFILE);
                    break;

                case 11:
                    ComingSoon();
                    break;
                }
            };

            return(button);
        }
Example #25
0
 /// <summary>
 /// Set alignment of this Text object with the passed in value.
 /// </summary>
 public static void SetAlignment(this Text t, Text text)
 {
     t.SetAlignment(text.alignment);
 }
        void CreateProfileBar()
        {
            container           = root.CreateSprite();
            container.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            container.ImageRect = AssetsCoordinates.Generic.Boxes.ContainerTrasparent;
            container.SetSize((int)(dim.XScreenRatio * 1200), (int)(dim.YScreenRatio * 1400));
            container.SetPosition((int)(dim.XScreenRatio * 0), (int)(dim.YScreenRatio * 50));

            // USER LEVEL INDICATOR
            Sprite LevelInd = new Sprite();

            container.AddChild(LevelInd);
            LevelInd.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            LevelInd.ImageRect = AssetsCoordinates.Generic.Boxes.LevelBlueBox;
            LevelInd.SetSize((int)(dim.XScreenRatio * 140), (int)(dim.YScreenRatio * 140));
            LevelInd.SetPosition((int)(dim.XScreenRatio * 80), (int)(dim.YScreenRatio * 220));

            // Title
            Text level = new Text();

            LevelInd.AddChild(level);
            level.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Top);
            level.SetPosition(0, 10);
            level.SetFont(font, dim.XScreenRatio * 20);
            level.Value = "LEVEL";

            // Value
            Text levelnumber = new Text();

            LevelInd.AddChild(levelnumber);
            levelnumber.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Center);
            levelnumber.SetPosition(0, 15);
            levelnumber.SetFont(font, dim.XScreenRatio * 50);
            levelnumber.Value = string.Format("{0}", CharacterManager.Instance.User.Level);

            Sprite AchievementsIcon = new Sprite();

            container.AddChild(AchievementsIcon);
            AchievementsIcon.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            AchievementsIcon.ImageRect = AssetsCoordinates.Generic.Boxes.IconAchievementsBlue;
            AchievementsIcon.SetSize((int)(dim.XScreenRatio * 140), (int)(dim.YScreenRatio * 140));
            AchievementsIcon.SetPosition((int)(dim.XScreenRatio * 80), (int)(dim.YScreenRatio * 400));

            Sprite WhiteBox = new Sprite();

            container.AddChild(WhiteBox);
            WhiteBox.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            WhiteBox.ImageRect = AssetsCoordinates.Generic.Boxes.WhiteBackground;
            WhiteBox.SetSize((int)(dim.XScreenRatio * 500), (int)(dim.YScreenRatio * 500));
            WhiteBox.SetPosition((int)(dim.XScreenRatio * 250), (int)(dim.YScreenRatio * 220));

            var character = JsonReaderCharacter.GetSingleCharacter(CharacterManager.Instance.User.PortraitId);
            int left      = character.ImagePosition.Left;
            int top       = character.ImagePosition.Top;
            int right     = character.ImagePosition.Right;
            int bottom    = character.ImagePosition.Bottom;

            //set the profile image
            Button ProfileImage = new Button();

            container.AddChild(ProfileImage);
            ProfileImage.Texture   = cache.GetTexture2D("Textures/Generic/profiles.png");
            ProfileImage.ImageRect = new IntRect(left, top, right, bottom);
            ProfileImage.SetSize((int)(dim.XScreenRatio * 490), (int)(dim.YScreenRatio * 495));
            ProfileImage.SetPosition((int)(dim.XScreenRatio * 255), (int)(dim.YScreenRatio * 220));
            ProfileImage.Pressed += args => {
                GameInstance.LaunchScene(GameScenesEnumeration.PROFILE);
            };

            var buttonProfileImage = new Button();

            container.AddChild(buttonProfileImage);
            buttonProfileImage.Texture   = cache.GetTexture2D("Textures/Generic/profiles.png");
            buttonProfileImage.ImageRect = new IntRect(left, top, right, bottom);
            buttonProfileImage.SetSize((int)(dim.XScreenRatio * 490), (int)(dim.YScreenRatio * 495));
            buttonProfileImage.SetPosition((int)(dim.XScreenRatio * 255), (int)(dim.YScreenRatio * 220));

            buttonProfileImage.Pressed += (PressedEventArgs args) => {
                GameInstance.LaunchScene(GameScenesEnumeration.PROFILE, true);
            };

            // USERNAME
            Sprite UsernameBar = new Sprite();

            container.AddChild(UsernameBar);
            UsernameBar.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            UsernameBar.ImageRect = AssetsCoordinates.Generic.Boxes.BarNameBlue;
            UsernameBar.SetSize((int)(dim.XScreenRatio * 660), (int)(dim.YScreenRatio * 70));
            UsernameBar.SetPosition((int)(dim.XScreenRatio * 160), (int)(dim.YScreenRatio * 800));

            // Valye
            Text Username = new Text();

            UsernameBar.AddChild(Username);
            Username.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Center);
            Username.SetPosition(0, 0);
            Username.SetFont(font, dim.XScreenRatio * 30);
            Username.Value = CharacterManager.Instance.User.Username;
        }
Example #27
0
 /// <summary>
 /// Set alignment of this Text object with the passed in value.
 /// </summary>
 public static void SetAlignment <T>(this Text t, T toValue)
 {
     t.SetAlignment((TextAnchor)Enum.Parse(typeof(T), toValue.ToString()));
 }
        void CreateUserHistoryBar()
        {
            container           = root.CreateSprite();
            container.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            container.ImageRect = AssetsCoordinates.Generic.Boxes.ContainerTrasparent;
            container.SetSize((int)(dim.XScreenRatio * 900), (int)(dim.YScreenRatio * 1400));
            container.SetPosition((int)(dim.XScreenRatio * 900), (int)(dim.YScreenRatio * 50));

            // TOTAL NUMBER OF RACES
            Text NOfRaces = new Text();

            container.AddChild(NOfRaces);
            NOfRaces.SetAlignment(HorizontalAlignment.Left, VerticalAlignment.Top);
            NOfRaces.SetPosition(GameInstance.ScreenInfo.SetX(0), GameInstance.ScreenInfo.SetY(200));
            NOfRaces.SetFont(font, dim.XScreenRatio * 30);
            NOfRaces.Value = "No. of Races:";

            // Value
            Text NOfRacesValue = new Text();

            container.AddChild(NOfRacesValue);
            NOfRacesValue.SetAlignment(HorizontalAlignment.Right, VerticalAlignment.Top);
            NOfRacesValue.SetPosition(GameInstance.ScreenInfo.SetX(0), GameInstance.ScreenInfo.SetY(200));
            NOfRacesValue.SetFont(font, dim.XScreenRatio * 30);
            NOfRacesValue.Value = string.Format("{0}", TrackManager.Instance.PlayedLevels);

            // COMPLETED RACES NUMBER
            Text RacesCompleted = new Text();

            container.AddChild(RacesCompleted);
            RacesCompleted.SetAlignment(HorizontalAlignment.Left, VerticalAlignment.Top);
            RacesCompleted.SetPosition(GameInstance.ScreenInfo.SetX(0), GameInstance.ScreenInfo.SetY(260));
            RacesCompleted.SetFont(font, dim.XScreenRatio * 30);
            RacesCompleted.Value = "Races Completed:";

            // Value
            Text RacesCompletedValue = new Text();

            container.AddChild(RacesCompletedValue);
            RacesCompletedValue.SetAlignment(HorizontalAlignment.Right, VerticalAlignment.Top);
            RacesCompletedValue.SetPosition(GameInstance.ScreenInfo.SetX(0), GameInstance.ScreenInfo.SetY(260));
            RacesCompletedValue.SetFont(font, dim.XScreenRatio * 30);
            RacesCompletedValue.Value = string.Format("{0}", TrackManager.Instance.CompletedLevels);

            // FAILED RACES NUMBER
            Text RacesFailed = new Text();

            container.AddChild(RacesFailed);
            RacesFailed.SetAlignment(HorizontalAlignment.Left, VerticalAlignment.Top);
            RacesFailed.SetPosition(GameInstance.ScreenInfo.SetX(0), GameInstance.ScreenInfo.SetY(320));
            RacesFailed.SetFont(font, dim.XScreenRatio * 30);
            RacesFailed.Value = "Races Failed:";

            // Value
            Text RacesFailedValue = new Text();

            container.AddChild(RacesFailedValue);
            RacesFailedValue.SetAlignment(HorizontalAlignment.Right, VerticalAlignment.Top);
            RacesFailedValue.SetPosition(GameInstance.ScreenInfo.SetX(0), GameInstance.ScreenInfo.SetY(320));
            RacesFailedValue.SetFont(font, dim.XScreenRatio * 30);
            RacesFailedValue.Value = string.Format("{0}", TrackManager.Instance.FailedLevels);

            // RACE COMPLETION RATIO
            Text RacesCompletitionRatio = new Text();

            container.AddChild(RacesCompletitionRatio);
            RacesCompletitionRatio.SetAlignment(HorizontalAlignment.Left, VerticalAlignment.Top);
            RacesCompletitionRatio.SetPosition(GameInstance.ScreenInfo.SetX(0), GameInstance.ScreenInfo.SetY(380));
            RacesCompletitionRatio.SetFont(font, dim.XScreenRatio * 30);
            RacesCompletitionRatio.Value = "Races Completition Ratio:";

            // Value
            Text RacesCompletitionRatioValue = new Text();

            container.AddChild(RacesCompletitionRatioValue);
            RacesCompletitionRatioValue.SetAlignment(HorizontalAlignment.Right, VerticalAlignment.Top);
            RacesCompletitionRatioValue.SetPosition(GameInstance.ScreenInfo.SetX(0), GameInstance.ScreenInfo.SetY(380));
            RacesCompletitionRatioValue.SetFont(font, dim.XScreenRatio * 30);
            RacesCompletitionRatioValue.Value = string.Format("{0} %", TrackManager.Instance.CompletedPercentage.ToString("n2"));

            // MOST SINGLE RACE POINTS
            Text MostPoints = new Text();

            container.AddChild(MostPoints);
            MostPoints.SetAlignment(HorizontalAlignment.Left, VerticalAlignment.Top);
            MostPoints.SetPosition(GameInstance.ScreenInfo.SetX(0), GameInstance.ScreenInfo.SetY(440));
            MostPoints.SetFont(font, dim.XScreenRatio * 30);
            MostPoints.Value = "Most Points - Single Race:";

            // Value
            Text MostPointsValue = new Text();

            container.AddChild(MostPointsValue);
            MostPointsValue.SetAlignment(HorizontalAlignment.Right, VerticalAlignment.Top);
            MostPointsValue.SetPosition(GameInstance.ScreenInfo.SetX(0), GameInstance.ScreenInfo.SetY(440));
            MostPointsValue.SetFont(font, dim.XScreenRatio * 30);
            MostPointsValue.Value = string.Format("{0}", TrackManager.Instance.MostPointsInSingleRace);

            // EXPERIENCE
            Text TotalPoints = new Text();

            container.AddChild(TotalPoints);
            TotalPoints.SetAlignment(HorizontalAlignment.Left, VerticalAlignment.Top);
            TotalPoints.SetPosition(GameInstance.ScreenInfo.SetX(0), GameInstance.ScreenInfo.SetY(500));
            TotalPoints.SetFont(font, dim.XScreenRatio * 30);
            TotalPoints.Value = "Total Points:";

            // Value
            Text TotalPointsValue = new Text();

            container.AddChild(TotalPointsValue);
            TotalPointsValue.SetAlignment(HorizontalAlignment.Right, VerticalAlignment.Top);
            TotalPointsValue.SetPosition(GameInstance.ScreenInfo.SetX(0), GameInstance.ScreenInfo.SetY(500));
            TotalPointsValue.SetFont(font, dim.XScreenRatio * 30);
            TotalPointsValue.Value = string.Format("{0}", CharacterManager.Instance.User.Experience);

            // COINS
            Text CoinsCollected = new Text();

            container.AddChild(CoinsCollected);
            CoinsCollected.SetAlignment(HorizontalAlignment.Left, VerticalAlignment.Top);
            CoinsCollected.SetPosition(GameInstance.ScreenInfo.SetX(0), GameInstance.ScreenInfo.SetY(560));
            CoinsCollected.SetFont(font, dim.XScreenRatio * 30);
            CoinsCollected.Value = "Coins Collected:";

            // Value
            Text CoinsCollectedValue = new Text();

            container.AddChild(CoinsCollectedValue);
            CoinsCollectedValue.SetAlignment(HorizontalAlignment.Right, VerticalAlignment.Top);
            CoinsCollectedValue.SetPosition(GameInstance.ScreenInfo.SetX(0), GameInstance.ScreenInfo.SetY(560));
            CoinsCollectedValue.SetFont(font, dim.XScreenRatio * 30);
            CoinsCollectedValue.Value = string.Format("{0}", CharacterManager.Instance.User.Wallet);

            // VEHICLES OWNED
            Text VehiclesOwned = new Text();

            container.AddChild(VehiclesOwned);
            VehiclesOwned.SetAlignment(HorizontalAlignment.Left, VerticalAlignment.Top);
            VehiclesOwned.SetPosition(GameInstance.ScreenInfo.SetX(0), GameInstance.ScreenInfo.SetY(620));
            VehiclesOwned.SetFont(font, dim.XScreenRatio * 30);
            VehiclesOwned.Value = "Vehicles Owned:";

            // Value
            Text VehiclesOwnedValue = new Text();

            container.AddChild(VehiclesOwnedValue);
            VehiclesOwnedValue.SetAlignment(HorizontalAlignment.Right, VerticalAlignment.Top);
            VehiclesOwnedValue.SetPosition(GameInstance.ScreenInfo.SetX(0), GameInstance.ScreenInfo.SetY(620));
            VehiclesOwnedValue.SetFont(font, dim.XScreenRatio * 30);
            VehiclesOwnedValue.Value = string.Format($"{VehicleManager.Instance.UnlockedVehicles.VehicleModel.Count}");

            // UNLOCKED VEHICLES

            /*
             * Text VehiclesUnlocked = new Text();
             * container.AddChild(VehiclesUnlocked);
             * VehiclesUnlocked.SetAlignment(HorizontalAlignment.Left, VerticalAlignment.Top);
             * VehiclesUnlocked.SetPosition(GameInstance.ScreenInfo.SetX(0), GameInstance.ScreenInfo.SetY(680));
             * VehiclesUnlocked.SetFont(font, dim.XScreenRatio * 30);
             * VehiclesUnlocked.Value = "Vehicles Unlocked:";
             *
             * // Value
             * Text VehiclesUnlockedValue = new Text();
             * container.AddChild(VehiclesUnlockedValue);
             * VehiclesUnlockedValue.SetAlignment(HorizontalAlignment.Right, VerticalAlignment.Top);
             * VehiclesUnlockedValue.SetPosition(GameInstance.ScreenInfo.SetX(0), GameInstance.ScreenInfo.SetY(680));
             * VehiclesUnlockedValue.SetFont(font, dim.XScreenRatio * 30);
             * VehiclesUnlockedValue.Value = string.Format("{0}", VehicleManager.Instance.VehiclesUnlocked);
             */
/*
 *          // COMPONENTS COLLECTED
 *          Text ComponentsCollected = new Text();
 *          container.AddChild(ComponentsCollected);
 *          ComponentsCollected.SetAlignment(HorizontalAlignment.Left, VerticalAlignment.Top);
 *          ComponentsCollected.SetPosition(GameInstance.ScreenInfo.SetX(0), GameInstance.ScreenInfo.SetY(740));
 *          ComponentsCollected.SetFont(font, dim.XScreenRatio * 30);
 *          ComponentsCollected.Value = "Components Collected:";
 *
 *          // Value
 *          Text ComponentsCollectedValue = new Text();
 *          container.AddChild(ComponentsCollectedValue);
 *          ComponentsCollectedValue.SetAlignment(HorizontalAlignment.Right, VerticalAlignment.Top);
 *          ComponentsCollectedValue.SetPosition(GameInstance.ScreenInfo.SetX(0), GameInstance.ScreenInfo.SetY(740));
 *          ComponentsCollectedValue.SetFont(font, dim.XScreenRatio * 30);
 *          ComponentsCollectedValue.Value = "0";
 *
 *          // BOOSTERS USED
 *          Text BoostersUsed = new Text();
 *          container.AddChild(BoostersUsed);
 *          BoostersUsed.SetAlignment(HorizontalAlignment.Left, VerticalAlignment.Top);
 *          BoostersUsed.SetPosition(GameInstance.ScreenInfo.SetX(0), GameInstance.ScreenInfo.SetY(800));
 *          BoostersUsed.SetFont(font, dim.XScreenRatio * 30);
 *          BoostersUsed.Value = "Boosters Used:";
 *
 *          // Value
 *          Text BoostersUsedValue = new Text();
 *          container.AddChild(BoostersUsedValue);
 *          BoostersUsedValue.SetAlignment(HorizontalAlignment.Right, VerticalAlignment.Top);
 *          BoostersUsedValue.SetPosition(GameInstance.ScreenInfo.SetX(0), GameInstance.ScreenInfo.SetY(800));
 *          BoostersUsedValue.SetFont(font, dim.XScreenRatio * 30);
 *          BoostersUsedValue.Value = "0";
 */
        }
Example #29
0
        Button CreateButton(string text, int width)
        {
            var cache = ResourceCache;
            Font font = cache.GetFont("Fonts/Anonymous Pro.ttf");

            Button button = new Button();
            buttonContainer.AddChild(button);
            button.SetStyleAuto(null);
            button.SetFixedWidth(width);

            var buttonText = new Text();
            button.AddChild(buttonText);
            buttonText.SetFont(font, 12);
            buttonText.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Center);

            buttonText.Value = text;

            return button;
        }
Example #30
0
        /// <summary>
        /// Returns the name of the UI Element
        /// </summary>
        /// <returns>Splash screen.</returns>
        /// <param name="GameInstance">Game instance.</param>
        public static string CreateSplashScreen(Game GameInstance, Node parent, bool randomLevel = false)
        {
            // Get data
            var data    = TrackManager.Instance.LoadingScreenFacts;
            var rnd     = new Random();
            var argIdx  = rnd.Next(0, data.LoadingScreens.Count);
            var arg     = data.LoadingScreens[argIdx];
            var factIdx = rnd.Next(0, arg.Facts.Count);
            var fact    = arg.Facts[factIdx];

            // get poster asset
            IntRect poster;

            switch (arg.Type)
            {
            case LoadingScreenType.CLI:
                poster = AssetsCoordinates.Backgrounds.LoadingScreen.Posters.Climate;
                break;

            case LoadingScreenType.ENV:
                poster = AssetsCoordinates.Backgrounds.LoadingScreen.Posters.Environment;
                break;

            case LoadingScreenType.RES:
                poster = AssetsCoordinates.Backgrounds.LoadingScreen.Posters.Resources;
                break;

            case LoadingScreenType.WASTE:
                poster = AssetsCoordinates.Backgrounds.LoadingScreen.Posters.Waste;
                break;

            case LoadingScreenType.WILD:
                poster = AssetsCoordinates.Backgrounds.LoadingScreen.Posters.Wild;
                break;

            default:
                poster = AssetsCoordinates.Backgrounds.LoadingScreen.Posters.Environment;
                break;
            }

            var splashscreen = new Window {
                Name                = "SplashUI",
                Position            = new IntVector2(GameInstance.ScreenInfo.SetX(0), GameInstance.ScreenInfo.SetY(0)),
                Size                = new IntVector2(GameInstance.ScreenInfo.SetX(1920), GameInstance.ScreenInfo.SetY(1080)),
                HorizontalAlignment = HorizontalAlignment.Left,
                VerticalAlignment   = VerticalAlignment.Top,
                Texture             = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Backgrounds.FixedBackground.ResourcePath),
                ImageRect           = AssetsCoordinates.Backgrounds.FixedBackground.ImageRect,
                Priority            = 999
            };

            GameInstance.UI.Root.AddChild(splashscreen);

            // TOP BAR
            var topBar = new Sprite();

            splashscreen.AddChild(topBar);
            topBar.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.TopBar.ResourcePath);
            topBar.ImageRect = AssetsCoordinates.Generic.TopBar.Rectangle;
            topBar.Opacity   = 0.5f;
            topBar.SetPosition(GameInstance.ScreenInfo.SetX(0), GameInstance.ScreenInfo.SetY(30));
            topBar.SetSize(GameInstance.ScreenInfo.SetX(2000), GameInstance.ScreenInfo.SetY(120));

            Button screenTitle = new Button();

            //screenTitle.SetStyleAuto(null);
            screenTitle.HorizontalAlignment = HorizontalAlignment.Right;
            screenTitle.VerticalAlignment   = VerticalAlignment.Center;
            screenTitle.SetPosition(GameInstance.ScreenInfo.SetX(-150), GameInstance.ScreenInfo.SetY(0));
            screenTitle.SetSize(GameInstance.ScreenInfo.SetX(400), GameInstance.ScreenInfo.SetY(95));
            screenTitle.Texture           = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            screenTitle.ImageRect         = AssetsCoordinates.Generic.Boxes.BoxTitle;
            screenTitle.Enabled           = false;
            screenTitle.UseDerivedOpacity = false;
            topBar.AddChild(screenTitle);

            Text buttonTitleText = new Text();

            screenTitle.AddChild(buttonTitleText);
            buttonTitleText.SetAlignment(HorizontalAlignment.Left, VerticalAlignment.Center);
            buttonTitleText.SetPosition(GameInstance.ScreenInfo.SetX(20), GameInstance.ScreenInfo.SetY(0));
            buttonTitleText.SetFont(GameInstance.ResourceCache.GetFont(GameInstance.defaultFont), GameInstance.ScreenInfo.SetX(35));
            buttonTitleText.Value             = "LOADING";
            buttonTitleText.UseDerivedOpacity = false;

            BorderImage wheel = new BorderImage();

            screenTitle.AddChild(wheel);
            wheel.SetAlignment(HorizontalAlignment.Right, VerticalAlignment.Center);
            wheel.SetPosition(GameInstance.ScreenInfo.SetX(-15), GameInstance.ScreenInfo.SetY(0));
            wheel.SetSize(100, 100);
            wheel.Texture           = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Icons.ResourcePath);
            wheel.ImageRect         = AssetsCoordinates.Generic.Icons.LoadingWheel;
            wheel.UseDerivedOpacity = false;

            /*
             * ValueAnimation textAnimation = new ValueAnimation();
             * textAnimation.SetKeyFrame(0.0f, Color.Blue);
             * textAnimation.SetKeyFrame(1.0f, Color.Red);
             * textAnimation.SetKeyFrame(2.0f, Color.Green);
             *
             * Debug.WriteLine($"Name: {nameof(UIElement.Position)}");
             * buttonTitleText.SetAttributeAnimation(nameof(Color), textAnimation, WrapMode.Loop);
             *
             * ValueAnimation positionAnimation = new ValueAnimation {
             *  InterpolationMethod = InterpMethod.Spline
             * };
             * positionAnimation.SetKeyFrame(0.0f, new IntVector2(-25,0));
             * positionAnimation.SetKeyFrame(1.0f, new IntVector2(-35, 0));
             * positionAnimation.SetKeyFrame(2.0f, new IntVector2(-45, 0));
             * positionAnimation.SetKeyFrame(3.0f, new IntVector2(-55, 0));
             * positionAnimation.SetKeyFrame(4.0f, new IntVector2(-65, 0));
             *
             * wheel.SetAttributeAnimation(nameof(UIElement.Position), positionAnimation);
             * wheel.AnimationEnabled = true;
             * wheel.ApplyAttributes();
             */

            // BODY
            if (randomLevel)
            {
                var text = new Text();
                text.SetFont(GameInstance.ResourceCache.GetFont(GameInstance.defaultFont), 17);
                text.SetPosition(GameInstance.ScreenInfo.SetX(20), GameInstance.ScreenInfo.SetY(172));
                text.Value             = "*Coins and items collected in the random level are not saved.";
                text.UseDerivedOpacity = false;
                splashscreen.AddChild(text);
            }

            var posterImage = new Window {
                Name                = "PosterUI",
                Position            = new IntVector2(GameInstance.ScreenInfo.SetX(200), GameInstance.ScreenInfo.SetY(50)),
                Size                = new IntVector2(GameInstance.ScreenInfo.SetX(500), GameInstance.ScreenInfo.SetY(636)),
                HorizontalAlignment = HorizontalAlignment.Left,
                VerticalAlignment   = VerticalAlignment.Center,
                Texture             = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Backgrounds.LoadingScreen.Posters.Path),
                ImageRect           = poster
            };

            splashscreen.AddChild(posterImage);

            var textWindow = new Window {
                Name                = "splashScreenTextWindow",
                Position            = new IntVector2(GameInstance.ScreenInfo.SetX(750), GameInstance.ScreenInfo.SetY(50)),
                Size                = new IntVector2(GameInstance.ScreenInfo.SetX(1000), GameInstance.ScreenInfo.SetY(636)),
                HorizontalAlignment = HorizontalAlignment.Left,
                VerticalAlignment   = VerticalAlignment.Center
            };

            textWindow.SetColor(Color.Transparent);
            splashscreen.AddChild(textWindow);

            var titleBox = new Text {
                Name                = "splashScreenTitle",
                Position            = new IntVector2(GameInstance.ScreenInfo.SetX(10), GameInstance.ScreenInfo.SetY(-20)),
                Size                = new IntVector2(GameInstance.ScreenInfo.SetX(1000), GameInstance.ScreenInfo.SetY(60)),
                HorizontalAlignment = HorizontalAlignment.Left,
                VerticalAlignment   = VerticalAlignment.Top,
                Wordwrap            = true
            };

            titleBox.SetFont(GameInstance.ResourceCache.GetFont(GameInstance.defaultFont), GameInstance.ScreenInfo.SetX(50));
            titleBox.Value = arg.Title;
            textWindow.AddChild(titleBox);

            var textBox = new Text {
                Name                = "splashScreenText",
                Position            = new IntVector2(GameInstance.ScreenInfo.SetX(10), GameInstance.ScreenInfo.SetY(75)),
                Size                = new IntVector2(GameInstance.ScreenInfo.SetX(1000), GameInstance.ScreenInfo.SetY(350)),
                HorizontalAlignment = HorizontalAlignment.Left,
                VerticalAlignment   = VerticalAlignment.Top,
                Wordwrap            = true
            };

            textBox.SetFont(GameInstance.ResourceCache.GetFont(GameInstance.defaultFont), GameInstance.ScreenInfo.SetX(30));
            textBox.Value = fact.Message;
            textWindow.AddChild(textBox);

            var btnContinue = new Button {
                Texture             = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath),
                ImageRect           = AssetsCoordinates.Generic.Boxes.GroupSelected,
                Name                = "ButtonContinue",
                Position            = new IntVector2(GameInstance.ScreenInfo.SetX(0), GameInstance.ScreenInfo.SetY(0)),
                Size                = new IntVector2(GameInstance.ScreenInfo.SetX(400), GameInstance.ScreenInfo.SetY(95)),
                HorizontalAlignment = HorizontalAlignment.Center,
                VerticalAlignment   = VerticalAlignment.Bottom
            };

            btnContinue.Visible = false;
            textWindow.AddChild(btnContinue);

            Text btnContinueText = new Text();

            btnContinueText.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Center);
            btnContinueText.SetPosition(GameInstance.ScreenInfo.SetX(-10), GameInstance.ScreenInfo.SetY(0));
            btnContinueText.SetFont(GameInstance.ResourceCache.GetFont(GameInstance.defaultFont), GameInstance.ScreenInfo.SetX(35));
            btnContinueText.Value = "CONTINUE";
            btnContinue.AddChild(btnContinueText);

            return(splashscreen.Name);
        }
        void CreateTopBar()
        {
            var generic_bts = cache.GetTexture2D("Textures/Generic/generic_btn.png");

            black_bar = root.CreateSprite();
            root.AddChild(black_bar);
            black_bar.Texture = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.TopBar.ResourcePath);
            black_bar.Opacity = 0.5f;
            black_bar.SetPosition(0, (int)(dim.YScreenRatio * 30));
            black_bar.SetSize((int)(dim.XScreenRatio * 2000), (int)(dim.YScreenRatio * 140));
            black_bar.ImageRect = AssetsCoordinates.Generic.TopBar.Rectangle;

            // BACK
            Button btn_back = new Button();

            root.AddChild(btn_back);
            btn_back.SetStyleAuto(null);
            btn_back.SetPosition((int)(dim.XScreenRatio * 40), (int)(dim.YScreenRatio * 40));
            btn_back.SetSize((int)(dim.XScreenRatio * 120), (int)(dim.YScreenRatio * 120));
            btn_back.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Icons.ResourcePath);
            btn_back.ImageRect = AssetsCoordinates.Generic.Icons.BntBack;
            btn_back.Pressed  += args => {
                if (_isUserProfile)
                {
                    GameInstance.LaunchScene(GameScenesEnumeration.USER_PROFILE);
                }
                else
                {
                    GameInstance.LaunchScene(GameScenesEnumeration.MENU);
                }
            };

            if (VehicleManager.Instance.UnlockedVehicles.VehicleModel.Count == 0)
            {
#if __ANDROID__
                btn_back.Visible = false;
#else
                btn_back.Visible = true;
#endif
            }


            //COINS
            Button coins = new Button();
            root.AddChild(coins);
            coins.SetStyleAuto(null);
            coins.SetPosition((int)(dim.XScreenRatio * 180), (int)(dim.YScreenRatio * 60));
            coins.SetSize((int)(dim.XScreenRatio * 75), (int)(dim.YScreenRatio * 70));
            coins.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Icons.ResourcePath);
            coins.ImageRect = AssetsCoordinates.Generic.Icons.IconCoin;


            //Wallet text
            Text wallet = new Text();
            coins.AddChild(wallet);
            wallet.SetPosition((int)(dim.XScreenRatio * 90), (int)(dim.YScreenRatio * 10));
            wallet.SetFont(font, dim.XScreenRatio * 30);
            int wallet_tot = CharacterManager.Instance.Wallet;

            wallet.Value = "" + wallet_tot;

            // SCREEN TITLE
            Button screen_title = new Button();
            root.AddChild(screen_title);
            screen_title.SetStyleAuto(null);
            screen_title.SetPosition((int)(dim.XScreenRatio * 1500), (int)(dim.YScreenRatio * 50));
            screen_title.SetSize((int)(dim.XScreenRatio * 400), (int)(dim.YScreenRatio * 100));
            screen_title.Texture   = generic_bts;
            screen_title.Enabled   = false;
            screen_title.ImageRect = new IntRect(0, 110, 513, 213);
            Text buttonTitleText = new Text();
            screen_title.AddChild(buttonTitleText);
            buttonTitleText.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Center);
            buttonTitleText.SetPosition(0, 0);
            buttonTitleText.SetFont(font, dim.XScreenRatio * 30);
            buttonTitleText.Value = "CHARACTER";

            screen_info = new Text();
            screen_title.AddChild(screen_info);
            screen_info.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Center);
            screen_info.SetPosition((int)(dim.XScreenRatio * -100), (int)(dim.YScreenRatio * 80));
            screen_info.SetFont(font, dim.XScreenRatio * 20);
            screen_info.SetColor(Color.White);
            //screen_info.Value = "Please enter a name and select an character.";
            screen_info.Value = "Please select a character.";
        }
        void CreateLeftSection()
        {
            Sprite MiniGameScene = new Sprite();

            MiniGameScene.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            MiniGameScene.ImageRect = AssetsCoordinates.Generic.Boxes.MiniGameScreen;
            MiniGameScene.SetSize(GameInstance.ScreenInfo.SetX(940), GameInstance.ScreenInfo.SetY(530));
            MiniGameScene.SetAlignment(HorizontalAlignment.Left, VerticalAlignment.Top);
            MiniGameScene.SetPosition(GameInstance.ScreenInfo.SetX(50), GameInstance.ScreenInfo.SetY(230));
            GameInstance.UI.Root.AddChild(MiniGameScene);

            Sprite PausaButton = new Sprite();

            MiniGameScene.AddChild(PausaButton);
            PausaButton.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            PausaButton.ImageRect = AssetsCoordinates.Generic.Boxes.PausaButton;
            PausaButton.SetSize(GameInstance.ScreenInfo.SetX(50), GameInstance.ScreenInfo.SetY(50));
            PausaButton.SetAlignment(HorizontalAlignment.Left, VerticalAlignment.Top);
            PausaButton.SetPosition(GameInstance.ScreenInfo.SetX(40), GameInstance.ScreenInfo.SetY(40));

            Buttons = new Sprite();
            MiniGameScene.AddChild(Buttons);
            Buttons.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            Buttons.ImageRect = AssetsCoordinates.Generic.Boxes.ButtonsLeft;
            Buttons.SetAlignment(HorizontalAlignment.Left, VerticalAlignment.Top);

            AccBrakeBtn = new Sprite();
            MiniGameScene.AddChild(AccBrakeBtn);
            AccBrakeBtn.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            AccBrakeBtn.ImageRect = AssetsCoordinates.Generic.Boxes.AccBrakeRight;
            AccBrakeBtn.SetAlignment(HorizontalAlignment.Left, VerticalAlignment.Top);

            Sprite ButtonsA = new Sprite();

            ButtonsA.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            ButtonsA.ImageRect = AssetsCoordinates.Generic.Boxes.SelectionBoxGreenPart;
            ButtonsA.SetSize(GameInstance.ScreenInfo.SetX(345), GameInstance.ScreenInfo.SetY(81));
            ButtonsA.SetAlignment(HorizontalAlignment.Left, VerticalAlignment.Top);
            ButtonsA.SetPosition(GameInstance.ScreenInfo.SetX(50), GameInstance.ScreenInfo.SetY(800));
            GameInstance.UI.Root.AddChild(ButtonsA);

            Text b1 = new Text();

            ButtonsA.AddChild(b1);
            b1.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Center);
            b1.SetPosition(0, 0);
            b1.SetFont(_baseFont, GameInstance.ScreenInfo.SetX(30));
            b1.Value = "BUTTONS";


            Button ButtonsB = new Button();

            ButtonsB.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            ButtonsB.ImageRect = AssetsCoordinates.Generic.Boxes.SelectionBoxWhitePart;
            ButtonsB.SetSize(GameInstance.ScreenInfo.SetX(595), GameInstance.ScreenInfo.SetY(81));
            ButtonsB.SetAlignment(HorizontalAlignment.Left, VerticalAlignment.Top);
            ButtonsB.SetPosition(GameInstance.ScreenInfo.SetX(395), GameInstance.ScreenInfo.SetY(800));
            GameInstance.UI.Root.AddChild(ButtonsB);

            b2 = new Text();
            ButtonsB.AddChild(b2);
            b2.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Center);
            b2.SetPosition(0, 0);
            b2.SetFont(_baseFont, GameInstance.ScreenInfo.SetX(30));

            ButtonsB.Pressed += args => {
                switch (ButtonDimensions)
                {
                case GameplayButtonSize.SMALL:
                    b2.Value         = "MEDIUM";
                    ButtonDimensions = GameplayButtonSize.MEDIUM;
                    SettingsManager.Instance.GameplayButtonSize = GameplayButtonSize.MEDIUM;
                    SetButtonConfig();
                    break;

                case GameplayButtonSize.MEDIUM:
                    b2.Value         = "LARGE";
                    ButtonDimensions = GameplayButtonSize.LARGE;
                    SettingsManager.Instance.GameplayButtonSize = GameplayButtonSize.LARGE;
                    SetButtonConfig();
                    break;

                case GameplayButtonSize.LARGE:
                    b2.Value         = "SMALL";
                    ButtonDimensions = GameplayButtonSize.SMALL;
                    SettingsManager.Instance.GameplayButtonSize = GameplayButtonSize.SMALL;
                    SetButtonConfig();
                    break;
                }
            };


            Sprite AccBrake = new Sprite();

            AccBrake.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            AccBrake.ImageRect = AssetsCoordinates.Generic.Boxes.SelectionBoxGreenPart;
            AccBrake.SetSize(GameInstance.ScreenInfo.SetX(345), GameInstance.ScreenInfo.SetY(81));
            AccBrake.SetAlignment(HorizontalAlignment.Left, VerticalAlignment.Top);
            AccBrake.SetPosition(GameInstance.ScreenInfo.SetX(50), GameInstance.ScreenInfo.SetY(900));
            GameInstance.UI.Root.AddChild(AccBrake);

            Text a1 = new Text();

            AccBrake.AddChild(a1);
            a1.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Center);
            a1.SetPosition(0, 0);
            a1.SetFont(_baseFont, GameInstance.ScreenInfo.SetX(30));
            a1.Value = "ACC./BRAKE";

            Button AccBrakeB = new Button();

            AccBrakeB.Texture   = GameInstance.ResourceCache.GetTexture2D(AssetsCoordinates.Generic.Boxes.ResourcePath);
            AccBrakeB.ImageRect = AssetsCoordinates.Generic.Boxes.SelectionBoxWhitePart;
            AccBrakeB.SetSize(GameInstance.ScreenInfo.SetX(595), GameInstance.ScreenInfo.SetY(81));
            AccBrakeB.SetAlignment(HorizontalAlignment.Left, VerticalAlignment.Top);
            AccBrakeB.SetPosition(GameInstance.ScreenInfo.SetX(395), GameInstance.ScreenInfo.SetY(900));
            GameInstance.UI.Root.AddChild(AccBrakeB);

            a2 = new Text();
            AccBrakeB.AddChild(a2);
            a2.SetAlignment(HorizontalAlignment.Center, VerticalAlignment.Center);
            a2.SetPosition(0, 0);
            a2.SetFont(_baseFont, GameInstance.ScreenInfo.SetX(30));

            AccBrakeB.Pressed += args => {
                if (ButtonOrientation == ControllerPosition.LEFT_CONTROLLER)
                {
                    ButtonOrientation = ControllerPosition.RIGHT_CONTROLLER;
                    SettingsManager.Instance.ControllerLayout = ControllerPosition.RIGHT_CONTROLLER;
                    SetButtonConfig();
                }
                else
                {
                    a2.Value          = "RIGHT";
                    ButtonOrientation = ControllerPosition.LEFT_CONTROLLER;
                    SettingsManager.Instance.ControllerLayout = ControllerPosition.LEFT_CONTROLLER;
                    SetButtonConfig();
                }
            };
        }