private void FormQueryFormula_Load(object sender, EventArgs e) { if (FormulaText != null) { int nAsPos = FormulaText.IndexOf(" as "); if (nAsPos > 0) { this.textBoxFormula.Text = FormulaText.Substring(0, nAsPos); this.textBoxAlias.Text = FormulaText.Substring(nAsPos + 4, FormulaText.Length - (nAsPos + 4)); } else { this.textBoxFormula.Text = FormulaText; } } comboBox2.Items.Clear(); foreach (PmsField pf in _pmsFieldList) { comboBox2.Items.Add(pf.fieldName); } if (comboBox2.Items.Count > 0) { comboBox2.SelectedIndex = 0; } if (OperaterType != 1) { buttonApp.Enabled = false; } }
public void Build(StageData stageData, bool fieldOnly = false, bool curtain = true, bool withSnapShot = true, bool dropAnimation = true) { this.stageData = stageData; var canvas = GameObject.Find(ResourceNames.canvas); var innerFramePaddingBottom = 5f; if (gameDirector == null) { gameDirector = GameObject.Find(ResourceNames.gameDirector).GetComponent <GameDirector>(); } if (!fieldOnly) { var screenComponents = ScreenComponentsFactory.Make(); var fieldMarginBottom = screenComponents.fieldMarginBottom; var fieldWidth = screenComponents.fieldWidth; var fieldHeight = screenComponents.fieldHeight; var headerHeight = screenComponents.headerHeight; var headerToolsWidth = screenComponents.headerToolsWidth; var headerMarginTop = screenComponents.headerMarginTop; var headerMarginBottom = screenComponents.headerMarginBottom; var headerToolsMargin = screenComponents.headerToolsMargin; var decorationCirclesWidth = screenComponents.decorationCirclesWidth; var decorationCirclesHeight = screenComponents.decorationCirclesHeight; var menuButtonWidth = headerToolsWidth * 0.1f; var formulaImageWidth = headerToolsWidth - menuButtonWidth - decorationCirclesWidth; var formulaImageHeight = formulaImageWidth / 10f; var menuButtonHeight = menuButtonWidth; var menuButtonObject = Instantiate(Resources.Load <GameObject>(ResourceNames.menuButton)); menuButtonObject.transform.SetParent(canvas.transform, false); var menuButtonRectTransform = menuButtonObject.GetComponent <RectTransform>(); menuButtonRectTransform.anchoredPosition = new Vector2( (Screen.width - fieldWidth) / 2, -headerMarginTop - (menuButtonHeight / 2f) - ((headerHeight - menuButtonHeight) / 2f) ); menuButtonRectTransform.sizeDelta = new Vector2(menuButtonWidth, menuButtonHeight); var menuButton = menuButtonObject.GetComponent <Button>(); menuButton.onClick.AddListener(() => { if (isAnimation || IsEmpty) { SoundWareHouse.Instance.seButtonError.Play(); return; } SoundWareHouse.Instance.seSpecialButton.Play(); gameDirector.ShowMenu(); }); var formulaImageObject = Instantiate(Resources.Load <GameObject>(ResourceNames.formulaImage)); formulaImageObject.transform.SetParent(canvas.transform, false); var formulaImageRectTransform = formulaImageObject.GetComponent <RectTransform>(); formulaImageRectTransform.anchoredPosition = new Vector2( menuButtonRectTransform.anchoredPosition.x + menuButtonRectTransform.sizeDelta.x + headerToolsMargin, -headerMarginTop - (formulaImageHeight / 2f) - ((headerHeight - formulaImageHeight) / 2f) ); formulaImageRectTransform.sizeDelta = new Vector2( formulaImageWidth, formulaImageHeight ); formulaText = formulaImageObject.GetComponentInChildren <FormulaText>(); var formulaTextRectTransform = formulaText.GetComponent <RectTransform>(); formulaTextRectTransform.anchoredPosition = new Vector2( formulaImageWidth * 0.01f, 0f ); formulaTextRectTransform.sizeDelta = formulaImageRectTransform.sizeDelta; formulaText.text = ""; var decorationCirclesObject = Instantiate(Resources.Load <GameObject>(ResourceNames.decorationCirclesImage)); decorationCirclesObject.transform.SetParent(canvas.transform, false); var decorationCirclesRectTransform = decorationCirclesObject.GetComponent <RectTransform>(); decorationCirclesRectTransform.anchoredPosition = new Vector2( formulaImageRectTransform.anchoredPosition.x + formulaImageRectTransform.sizeDelta.x + headerToolsMargin, -headerMarginTop - (decorationCirclesHeight / 2f) - ((headerHeight - decorationCirclesHeight) / 2f) ); decorationCirclesRectTransform.sizeDelta = new Vector2( decorationCirclesWidth, decorationCirclesHeight ); var outerFrameObject = Instantiate(Resources.Load <GameObject>(ResourceNames.gameFieldOuterFrameImage)); outerFrameObject.transform.SetParent(canvas.transform, false); var outerFrameRectTransform = outerFrameObject.GetComponent <RectTransform>(); outerFrameRectTransform.sizeDelta = new Vector2(fieldWidth, fieldHeight); outerFrameRectTransform.anchoredPosition = new Vector2(0f, fieldMarginBottom); innerFrameObject = Instantiate(Resources.Load <GameObject>(ResourceNames.gameFieldInnerFrameImage)); innerFrameObject.transform.SetParent(outerFrameObject.transform, false); var innerFrameRectTransform = innerFrameObject.GetComponent <RectTransform>(); innerFrameSize = new Vector2(fieldWidth - 30f, fieldHeight - 30f); innerFrameRectTransform.sizeDelta = innerFrameSize; //innerFrameRectTransform.sizeDelta = outerFrameRectTransform.sizeDelta * 0.97f; var numberOfButtonsInColumn = 5; buttonSize = (innerFrameRectTransform.sizeDelta.y - innerFramePaddingBottom - (padding * (numberOfButtonsInColumn - 1))) / numberOfButtonsInColumn; var maxToolCount = 4; var toolMargin = innerFrameSize.y * 0.05f; var maxButtonCount = 7; var rightSpace = (innerFrameSize.x - (buttonSize * maxButtonCount) - (padding * (maxButtonCount - 1))) / 2f; var toolSize = (innerFrameSize.y - (toolMargin * (maxToolCount + 2))) / maxToolCount; //Debug.Log(toolSize); var toolPositionX = (innerFrameSize.x / 2f) - ((rightSpace - toolSize) / 2f) - (toolSize / 2f); var helpButtonObject = Instantiate(Resources.Load <GameObject>(ResourceNames.helpButton)); helpButtonObject.transform.SetParent(innerFrameObject.transform, false); var helpButtonRectTransform = helpButtonObject.GetComponent <RectTransform>(); helpButtonRectTransform.anchoredPosition = new Vector2(toolPositionX, -(innerFrameSize.y / 2f) + (toolSize / 2f) + toolMargin); helpButtonRectTransform.sizeDelta = new Vector2(toolSize, toolSize); var helpButton = helpButtonObject.GetComponent <Button>(); helpButton.onClick.AddListener(() => { if (isAnimation || IsEmpty) { SoundWareHouse.Instance.seButtonError.Play(); return; } SoundWareHouse.Instance.seSpecialButton.Play(); gameDirector.ShowClearConditionAlert(); }); var backButtonObject = Instantiate(Resources.Load <GameObject>(ResourceNames.backButton)); backButtonObject.transform.SetParent(innerFrameObject.transform, false); var backButtonRectTransform = backButtonObject.GetComponent <RectTransform>(); backButtonRectTransform.anchoredPosition = new Vector2(toolPositionX, -(innerFrameSize.y / 2f) + (toolSize * 1.5f) + (toolMargin * 2f)); backButtonRectTransform.sizeDelta = new Vector2(toolSize, toolSize); var backButton = backButtonObject.GetComponent <Button>(); backButton.onClick.AddListener(() => { if (GoBackTurn()) { SoundWareHouse.Instance.seControlButton.GetComponent <AudioSource>().Play(); } else { SoundWareHouse.Instance.seButtonError.GetComponent <AudioSource>().Play(); } }); var forwardButtonObject = Instantiate(Resources.Load <GameObject>(ResourceNames.forwardButton)); forwardButtonObject.transform.SetParent(innerFrameObject.transform, false); var forwardButtonRectTransform = forwardButtonObject.GetComponent <RectTransform>(); forwardButtonRectTransform.anchoredPosition = new Vector2(toolPositionX, -(innerFrameSize.y / 2f) + (toolSize * 2.5f) + (toolMargin * 3f)); forwardButtonRectTransform.sizeDelta = new Vector2(toolSize, toolSize); var forwardButton = forwardButtonObject.GetComponent <Button>(); forwardButton.onClick.AddListener(() => { if (GoForwardTurn()) { SoundWareHouse.Instance.seControlButton.GetComponent <AudioSource>().Play(); } else { SoundWareHouse.Instance.seButtonError.GetComponent <AudioSource>().Play(); } }); var movesTextObject = Instantiate(Resources.Load <GameObject>(ResourceNames.movesText)); movesTextObject.transform.SetParent(innerFrameObject.transform, false); var movesTextRectTransform = movesTextObject.GetComponent <RectTransform>(); movesTextRectTransform.anchoredPosition = new Vector2(toolPositionX, -(innerFrameSize.y / 2f) + (toolSize * 3.5f) + (toolMargin * 5f)); movesTextRectTransform.sizeDelta = new Vector2(toolSize, toolSize); movesText = movesTextObject.GetComponent <Text>(); movesText.text = "0/" + stageData.moves.ToString() + "手"; } void MakeButtons() { var termButtons = new List <TermButton>(); var maxX = 0; foreach (var operand in stageData.operands) { maxX = Math.Max(maxX, operand.position.x); var operandButtonObject = Instantiate(Resources.Load <GameObject>(ResourceNames.operandButton)); var operandButton = operandButtonObject.GetComponent <OperandButton>(); operandButton.Operand = operand; operandButton.onClick.AddListener(() => { HandleOperandButton(operandButton); }); termButtons.Add(operandButton); } foreach (var oper in stageData.operators) { maxX = Math.Max(maxX, oper.position.x); var operatorButtonObject = Instantiate(Resources.Load <GameObject>(ResourceNames.operatorButton)); var operatorButton = operatorButtonObject.GetComponent <OperatorButton>(); operatorButton.Operator = oper; operatorButton.onClick.AddListener(() => { HandleOperatorButton(operatorButton); }); termButtons.Add(operatorButton); } foreach (var equal in stageData.equals) { maxX = Math.Max(maxX, equal.position.x); var equalButtonObject = Instantiate(Resources.Load <GameObject>(ResourceNames.equalButton)); var equalButton = equalButtonObject.GetComponent <EqualButton>(); equalButton.equal = equal; equalButton.onClick.AddListener(() => { HandleEqualButton(equalButton); }); termButtons.Add(equalButton); } termButtons.Sort((a, b) => { var pa = a.GetPosition(); var pb = b.GetPosition(); if (pa.y != pb.y) { return(pa.y - pb.y); } return(pa.x - pb.x); }); var index = 0; var paddingBetweenTermButtons = Screen.height * 0.05f; var notificationCount = 0; var buttonCount = termButtons.Count; if (this.maxX == int.MaxValue) { this.maxX = maxX; } else { maxX = this.maxX; } foreach (var termButton in termButtons) { termButton.transform.SetParent(innerFrameObject.transform, false); var rect = termButton.GetComponent <RectTransform>(); rect.sizeDelta = new Vector2(buttonSize, buttonSize); var buttonPosition = termButton.GetPosition(); var offsetX = innerFrameSize.x / 2f - ((float)(maxX + 1) / 2 * buttonSize) - ((float)maxX / 2 * padding); var x = buttonSize * buttonPosition.x + padding * buttonPosition.x + offsetX; var y = buttonSize * buttonPosition.y + padding * buttonPosition.y + innerFramePaddingBottom; if (dropAnimation) { rect.anchoredPosition = new Vector2( x, y + Screen.height + (paddingBetweenTermButtons * buttonPosition.y) + (paddingBetweenTermButtons / (maxX - buttonPosition.x + 1)) ); var delay = 0.1f; var animationDuration = 0.5f + (delay * index); termButton.GetComponent <UIAnimator>().Animate(UIAnimator.AnimationKey.PositionY, animationDuration, y, (animator) => { ++notificationCount; if (notificationCount == buttonCount) { gameDirector.ShowClearConditionAlert(); } SoundWareHouse.Instance.seButtonDropped.GetComponent <AudioSource>().Play(); return(true); }); } else { rect.anchoredPosition = new Vector2( x, y ); } ++index; } TermButtons = termButtons; if (withSnapShot) { SaveSnapShot(); } } if (curtain) { curtainObject.transform.SetAsLastSibling(); curtainObject.GetComponent <CurtainManager>().Open(() => { curtainObject.transform.SetAsFirstSibling(); MakeButtons(); return(true); }); } else { MakeButtons(); } }
void HandleKeyPressed(object param) { var value = (string)param; var calculatorKey = (CalculatorKey)Enum.Parse(typeof(CalculatorKey), value, true); switch (calculatorKey) { case CalculatorKey.One: case CalculatorKey.Two: case CalculatorKey.Three: case CalculatorKey.Four: case CalculatorKey.Five: case CalculatorKey.Six: case CalculatorKey.Seven: case CalculatorKey.Eight: case CalculatorKey.Nine: case CalculatorKey.Zero: FormulaText += ((int)calculatorKey).ToString(); OnPropertyChanged(nameof(CalculationResultText)); break; case CalculatorKey.Equal: if (!string.IsNullOrEmpty(formulaText)) { using (var calcQuick = new CalcQuickBase()) { CalculationResultText = calcQuick.ParseAndCompute(formulaText); OnPropertyChanged(nameof(CalculationResultText)); } } break; case CalculatorKey.Point: FormulaText += cultureInfoPL.NumberFormat.NumberDecimalSeparator; break; case CalculatorKey.Minus: FormulaText += '-'; break; case CalculatorKey.Multiply: FormulaText += '*'; break; case CalculatorKey.Divide: FormulaText += '/'; break; case CalculatorKey.Plus: FormulaText += '+'; break; case CalculatorKey.Backspace: if (!string.IsNullOrEmpty(FormulaText)) { FormulaText = FormulaText.Substring(0, FormulaText.Length - 1); } break; } return; }