Exemple #1
0
        private View [] InitHackyViews()
        {
            var colour          = Color.FromRgba(0.0, 0.0, 0.0, 1.0);
            var tapFieldBoxView = new BoxView()
            {
                Color = Color.Transparent
            };
            var bestScoreLabel = new CLFormsLabel()
            {
                Text      = "0",
                TextColor = colour,
                HorizontalTextAlignment = TextAlignment.End
            };
            var userScoreLabel = new CLFormsLabel()
            {
                Text      = "0",
                TextColor = colour,
                HorizontalTextAlignment = TextAlignment.End
            };
            var menuLabel = new CLFormsLabel()
            {
                Text      = App.Strings.Menu,
                TextColor = colour
            };
            var startLabel = new CLFormsLabel()
            {
                Text      = App.Strings.Restart,
                TextColor = colour
            };
            var resultsLabel = new CLFormsLabel()
            {
                Text      = App.Strings.Results,
                TextColor = colour
            };
            var nameEntry = new CLFormsEntry()
            {
                Text     = "",
                Keyboard = Keyboard.Text,
//				IsVisible = false,
                LettersLimit = 11
            };

            return(new View [] { tapFieldBoxView, bestScoreLabel, userScoreLabel, menuLabel, startLabel, resultsLabel, nameEntry });
        }
Exemple #2
0
        public MainPage()
        {
            var backgroundLayout = new RelativeLayout()
            {
                BackgroundColor = Color.Black
            };
            var mainLayout = new RelativeLayout()
            {
                BackgroundColor = Color.Transparent
            };

            View [] hackyViews = null;
            if (Settings.Taught)
            {
                hackyViews = this.InitHackyViews();
            }
            this.Game = new ColorLinesNG(mainLayout, hackyViews);

            bool desktop = Device.Idiom == TargetIdiom.Desktop;

            if (!desktop && !App.iPhoneX)
            {
                mainLayout.Children.Add(
                    this.Game.GameView,
                    Constraint.RelativeToParent(parent => {
                    return(0.0);
                }),
                    Constraint.RelativeToParent(parent => {
                    return(0.0);
                }),
                    Constraint.RelativeToParent(parent => {
                    return(parent.Width);
                }),
                    Constraint.RelativeToParent(parent => {
                    return(parent.Height);
                })
                    );
            }
            else
            {
                backgroundLayout.Children.Add(
                    this.Game.GameView,
                    Constraint.RelativeToParent(parent => {
                    return(0.0);
                }),
                    Constraint.RelativeToParent(parent => {
                    return(0.0);
                }),
                    Constraint.RelativeToParent(parent => {
                    return(parent.Width);
                }),
                    Constraint.RelativeToParent(parent => {
                    return(parent.Height);
                })
                    );
            }
            if (Settings.Taught)
            {
                this.AddHackyViews(mainLayout, hackyViews);
            }

            if (!desktop)
            {
                backgroundLayout.Children.Add(
                    mainLayout,
                    Constraint.RelativeToParent(parent => {
                    return(0.0);
                }),
                    Constraint.RelativeToParent(parent => {
                    switch (Device.RuntimePlatform)
                    {
                    default:
                        return(0.0);

                    case Device.iOS:
                        return(App.iOSTopOffset);
                    }
                }),
                    Constraint.RelativeToParent(parent => {
                    return(parent.Width);
                }),
                    Constraint.RelativeToParent(parent => {
                    switch (Device.RuntimePlatform)
                    {
                    default:
                        return(parent.Height);

                    case Device.iOS:
                        return(parent.Height - (App.iOSTopOffset + App.iOSBottomOffset));
                    }
                })
                    );
            }
            else
            {
                backgroundLayout.Children.Add(
                    mainLayout,
                    Constraint.RelativeToParent(parent => {
                    double width;
                    if (parent.Width < App.MinDesktopWidth)
                    {
                        width = App.MinDesktopWidth;
                    }
                    else
                    {
                        double height;
                        if ((parent.Height * App.MinDesktopRatio) > parent.Width)
                        {
                            height = parent.Width / App.MinDesktopRatio;
                        }
                        else
                        {
                            height = parent.Height;
                        }
                        width = height * App.MinDesktopRatio;
                    }
                    return(parent.Width * 0.5 - width * 0.5);
                }),
                    Constraint.RelativeToParent(parent => {
                    if ((parent.Height * App.MinDesktopRatio) > parent.Width)
                    {
                        return(parent.Height * 0.5 - parent.Width / App.MinDesktopRatio * 0.5);
                    }
                    else
                    {
                        return(0.0);
                    }
                }),
                    Constraint.RelativeToParent(parent => {
                    double width;
                    if (parent.Width < App.MinDesktopWidth)
                    {
                        width = App.MinDesktopWidth;
                    }
                    else
                    {
                        double height;
                        if ((parent.Height * App.MinDesktopRatio) > parent.Width)
                        {
                            height = parent.Width / App.MinDesktopRatio;
                        }
                        else
                        {
                            height = parent.Height;
                        }
                        width = height * App.MinDesktopRatio;
                    }
                    return(width);
                }),
                    Constraint.RelativeToParent(parent => {
                    if ((parent.Height * App.MinDesktopRatio) > parent.Width)
                    {
                        return(parent.Width / App.MinDesktopRatio);
                    }
                    else
                    {
                        return(parent.Height);
                    }
                })
                    );
            }

            var loadingLabel = new CLFormsLabel()
            {
                Text            = App.Strings.Loading,
                TextScale       = 1.337f,
                BackgroundColor = Color.FromRgba(0, 0, 0, 255)
            };

            backgroundLayout.Children.Add(
                loadingLabel,
                Constraint.RelativeToParent(parent => {
                return(0.0);
            }),
                Constraint.RelativeToParent(parent => {
                return(0.0);
            }),
                Constraint.RelativeToParent(parent => {
                return(parent.Width);
            }),
                Constraint.RelativeToParent(parent => {
                return(parent.Height);
            })
                );
            this.Game.Inited += (sender, ev) => {
                Device.BeginInvokeOnMainThread(() => {
                    backgroundLayout.Children.Remove(loadingLabel);
                });
            };

            this.Content = backgroundLayout;
        }