//TBorderLayer border; public THeartToken(bool isBroken) { this.isBroken = isBroken; if (isBroken) { sprite = new FSprite("brokenHeart.psd"); } else { sprite = new FSprite("heart.psd"); } sprite.scale = 0.6f; sprite.color = new Color(1.0f, Random.Range(0.3f, 0.6f), Random.Range(0.3f, 0.6f), 1.0f); sprite.rotation = -10f; float duration = Random.Range(0.15f, 0.45f); Tween rotOut = new Tween(sprite, duration, new TweenConfig().floatProp("rotation", 10f)); Tween rotIn = new Tween(sprite, duration, new TweenConfig().floatProp("rotation", -10f)); TweenChain chain = new TweenChain(); chain.setIterations(-1); chain.append(rotOut).append(rotIn); Go.addTween(chain); chain.play(); }
public void AddHeart() { FSprite heart = new FSprite("heart.psd"); heart.x = Random.Range(heart.width / 2f, Futile.screen.width - heart.width / 2f); heart.y = Random.Range(heart.height / 2f, Futile.screen.height - heart.height / 2f - 50f /*UI bar*/); heart.scale = 0; heart.rotation = Random.Range(0, 359f); heart.color = new Color(1.0f, Random.Range(0.0f, 0.3f), Random.Range(0.0f, 0.3f), 1.0f); AddChild(heart); hearts.Add(heart); Go.to(heart, Random.Range(1.0f, 5.0f), new TweenConfig() .setIterations(-1) .floatProp("rotation", 360 * (RXRandom.Float() < 0.5f ? 1 : -1), true)); float inflationDuration = Random.Range(1.0f, 2.0f); Tween tweenUp = new Tween(heart, inflationDuration, new TweenConfig() .floatProp("scale", Random.Range(0.3f, 1.0f)) .setEaseType(EaseType.SineInOut)); Tween tweenDown = new Tween(heart, inflationDuration, new TweenConfig() .floatProp("scale", 0) .onComplete(OnHeartDisappearedWithoutBeingTouched) .setEaseType(EaseType.SineInOut)); TweenChain chain = new TweenChain(); chain.append(tweenUp); chain.append(tweenDown); Go.addTween(chain); chain.play(); }
private void Pulsate() { Debug.Log("PULSATE!!! " + (secondsPerBeat * (float)beatScale)); var scaleUp = new Tween(transform, secondsPerBeat * (float)beatScale, new TweenConfig().scale(defaultScale * scaleTo)); var scaleDown = new Tween(transform, secondsPerBeat * (float)beatScale, new TweenConfig().scale(defaultScale)); var scaleChain = new TweenChain().append(scaleUp).append(scaleDown); scaleChain.play(); }
// sets up the tweens so the flashingColor will actually flash bright/dark private void InitFlashingColorForCompletedLines() { Tween colorDown = new Tween(this, 0.2f, new TweenConfig().floatProp("flashingColorPercentage", 0.5f)); Tween colorUp = new Tween(this, 0.2f, new TweenConfig().floatProp("flashingColorPercentage", 1.0f)); TweenChain chain = new TweenChain(); chain.setIterations(-1); chain.append(colorDown).append(colorUp); Go.addTween(chain); chain.play(); }
public void StartWalking() { if (isWalking) { return; } isWalking = true; chain.play(); }
void MakeUIElements() { scoreLabel = new FLabel("SoftSugar", "0"); scoreLabel.anchorX = 1.0f; scoreLabel.anchorY = 1.0f; scoreLabel.scale = 0.75f; scoreLabel.x = Futile.screen.width + scoreLabel.textRect.width; scoreLabel.y = Futile.screen.height - 10f; scoreLabel.color = new Color(0.12f, 0.12f, 0.12f, 1.0f); AddChild(scoreLabel); missedLabel = new FLabel("SoftSugar", "Misses left: 0"); missedLabel.anchorX = 0.0f; missedLabel.anchorY = 1.0f; missedLabel.scale = 0.75f; missedLabel.x = -missedLabel.textRect.width; missedLabel.y = Futile.screen.height - 10f; missedLabel.color = new Color(0.75f, 0.12f, 0.12f, 1.0f); AddChild(missedLabel); startLabel1 = new FLabel("SoftSugar", "How much do I love you?"); startLabel2 = new FLabel("SoftSugar", "Click the hearts to find out,\nbut don't miss too many!"); startLabel1.color = new Color(0.75f, 0.12f, 0.12f, 1.0f); startLabel2.color = new Color(0.12f, 0.12f, 0.12f, 1.0f); float adj = 40f; startLabel1.x = startLabel2.x = Futile.screen.halfWidth; startLabel1.y = Futile.screen.halfHeight + adj; startLabel2.y = startLabel1.y - startLabel1.textRect.height / 2f - startLabel2.textRect.height / 2f - 10f + adj; startLabel1.scale = startLabel2.scale = 0; AddChild(startLabel1); AddChild(startLabel2); TweenConfig config1 = new TweenConfig() .floatProp("scale", 1.0f) .setEaseType(EaseType.SineInOut); TweenConfig config2 = new TweenConfig() .floatProp("scale", 0.5f) .setEaseType(EaseType.SineInOut); float duration = 0.5f; TweenChain chain = new TweenChain(); chain.append(new Tween(startLabel1, duration, config1)); chain.append(new Tween(startLabel2, duration, config2)); chain.setOnCompleteHandler(OnGameShouldBeReadyToStart); Go.addTween(chain); chain.play(); }
public WTBlahGame() : base("") { nursesPass = new FSprite("nursesPass.psd"); nursesPass.x = Futile.screen.halfWidth; nursesPass.y = Futile.screen.halfHeight; nursesPass.scale = 0.5f; AddChild(nursesPass); Go.defaultEaseType = EaseType.SineInOut; Tween tweenUp = new Tween(nursesPass, 0.3f, new TweenConfig() .floatProp("scale", 0.6f)); Tween tweenDown = new Tween(nursesPass, 0.3f, new TweenConfig() .floatProp("scale", 0.5f)); TweenChain chain = new TweenChain(); chain.setIterations(-1); chain.append(tweenUp).append(tweenDown); Go.addTween(chain); chain.play(); }
public void ShowWave(int lvl) { _text.text = $"Wave {lvl}"; var scaleInTween = Go.to(transform, 0.5f, new TweenConfig() .scale(1) .setEaseType(EaseType.ElasticOut) ); var scaleOutTween = Go.to(transform, 0.5f, new TweenConfig() .scale(0) .setEaseType(EaseType.ElasticOut) ); var chain = new TweenChain(); chain .append(scaleInTween) .appendDelay(3f) .append(scaleOutTween); chain.play(); }
public void OnWinLabelDoneAppearing(AbstractTween tween) { gameFullyOver = true; FLabel label = (tween as Tween).target as FLabel; Tween up = new Tween(label, 0.3f, new TweenConfig() .floatProp("scale", 1.1f) .setEaseType(EaseType.SineInOut)); Tween down = new Tween(label, 0.3f, new TweenConfig() .floatProp("scale", 1.0f) .setEaseType(EaseType.SineInOut)); TweenChain upDownChain = new TweenChain(); upDownChain.setIterations(-1); upDownChain.append(up); upDownChain.append(down); Go.addTween(upDownChain); upDownChain.play(); }
private void showGrid(float width, float height) { TweenChain chainY = new TweenChain(); TweenChain chainX = new TweenChain(); for(float y = height/2;y >= -height/2;y-=64) { FSliceSprite ss = new FSliceSprite(Futile.whiteElement, width, 1, 0, 0, 0, 0); ss.y = y; ss.x = -width; AddChild(ss); Tween t = new Tween(ss, 3 / (height / 64), new TweenConfig().floatProp("x", 0), null); chainY.append(t); } for(float x = -width/2;x<= width/2;x+=64) { FSliceSprite ss = new FSliceSprite(Futile.whiteElement, 1, height, 0, 0, 0, 0); ss.x = x; ss.y = height; AddChild(ss); Tween t = new Tween(ss, 3 / (width / 64), new TweenConfig().floatProp("y", 0), null); chainX.append(t); } chainY.play(); chainX.play(); }
public void ShakeWord(FSprite word) { /*float dur = Random.Range(0.05f, 0.15f); float xDelta = Random.Range(-5f, 5f); float yDelta = Random.Range(-5f, 5f);*/ float dur = 0.3f; float xDelta = -40f; float yDelta = -40f; Tween tweenIn = new Tween(word, dur, new TweenConfig().floatProp("x", xDelta, true).floatProp("y", yDelta, true)); Tween tweenOut = new Tween(word, dur, new TweenConfig().floatProp("x", -xDelta, true).floatProp("y", -yDelta, true).onComplete(HandleWordFinishedShake)); TweenChain tweenChain = new TweenChain(); tweenChain.append(tweenIn); tweenChain.append(tweenOut); if ((int)word.data == 0) { tweenChain1 = tweenChain; } else if ((int)word.data == 1) { tweenChain2 = tweenChain; } Go.addTween(tweenChain); tweenChain.play(); }
public void EndGame() { FlyOutUIElements(); scoreLabel.text = string.Format("{0:#,###0}", score); for (int i = hearts.Count - 1; i >= 0; i--) { FSprite heart = hearts[i]; foreach (AbstractTween tween in Go.tweensWithTarget(heart)) Go.removeTween(tween); heart.RemoveFromContainer(); hearts.Remove(heart); } if (score >= 1000000) { StartHeartShower(); FSoundManager.StopMusic(); FSoundManager.PlaySound("happyPiano"); gameIsOver = true; FLabel label = new FLabel("SoftSugar", "I love you times a million!"); label.color = new Color(0.12f, 0.12f, 0.12f, 1.0f); label.x = Futile.screen.halfWidth; label.y = Futile.screen.halfHeight; label.scale = 0; AddChild(label); TweenConfig config = new TweenConfig() .floatProp("scale", 1.0f) .setEaseType(EaseType.SineInOut) .onComplete(OnWinLabelDoneAppearing); Go.to(label, 0.5f, config); } if (numHeartsMissed >= 5) { gameIsOver = true; FSoundManager.StopMusic(); FSoundManager.PlaySound("sadPiano"); FLabel topLabel = new FLabel("SoftSugar", "Are you kidding me?!"); FLabel bottomLabel = new FLabel("SoftSugar", string.Format("I love you way more than x{0:#,###0}!", score)); topLabel.color = new Color(0.75f, 0.12f, 0.12f, 1.0f); bottomLabel.color = new Color(0.12f, 0.12f, 0.12f, 1.0f); bottomLabel.x = topLabel.x = Futile.screen.halfWidth; float bottomBeginning = 300f; float segmentHeight = (Futile.screen.height - bottomBeginning * 2f) / 3f; bottomLabel.y = segmentHeight - bottomLabel.textRect.height / 2f + bottomBeginning; topLabel.y = segmentHeight * 3f - topLabel.textRect.height / 2f + bottomBeginning; bottomLabel.scale = topLabel.scale = 0; AddChild(topLabel); AddChild(bottomLabel); TweenConfig config1 = new TweenConfig() .floatProp("scale", 1.0f) .setEaseType(EaseType.SineInOut); TweenConfig config2 = new TweenConfig() .floatProp("scale", 0.75f) .setEaseType(EaseType.SineInOut); float duration = 0.5f; TweenChain chain = new TweenChain(); chain.append(new Tween(topLabel, duration, config1)); chain.append(new Tween(bottomLabel, duration, config2)); chain.setOnCompleteHandler(OnGameShouldBeFullyOver); Go.addTween(chain); chain.play(); } }
public void DisplayNextString() { if (stringQueue.Count == 0) { hasStringsToShow = false; NoStringsLeftToShow(); return; } float startX = defaultX; float startY = defaultY; float holdX = defaultX; float holdY = defaultY; float endX = defaultX; float endY = defaultY; label.text = stringQueue[0]; label.CreateTextQuads(); if (labelShowType == LabelShowType.SlideFromLeft) { startX = -label.textRect.width / 2f; } else if (labelShowType == LabelShowType.SlideFromRight) { startX = Futile.screen.width + label.textRect.width / 2f; } else if (labelShowType == LabelShowType.SlideFromTop) { startY = Futile.screen.height + label.textRect.height / 2f; } else if (labelShowType == LabelShowType.SlideFromBottom) { startY = -label.textRect.height / 2f; } if (labelHideType == LabelHideType.SlideToLeft) { endX = -label.textRect.width / 2f; } else if (labelHideType == LabelHideType.SlideToRight) { endX = Futile.screen.width + label.textRect.width / 2f; } else if (labelHideType == LabelHideType.SlideToTop) { endY = Futile.screen.height + label.textRect.height / 2f; } else if (labelHideType == LabelHideType.SlideToBottom) { endY = -label.textRect.height / 2f; } label.x = startX; label.y = startY; Tween inTween = new Tween(label, inDuration, new TweenConfig() .floatProp("x", holdX) .floatProp("y", holdY) .onComplete(DoneMovingLabelIntoPlace) .setEaseType(easeType)); float holdDuration = defaultHoldDuration; if (shouldIncreaseHoldDurationBasedOnStringLength) { holdDuration = Mathf.Max((float)(label.text.Length / 10), 3.0f); } Tween holdTween = new Tween(label, holdDuration, new TweenConfig() .floatProp("x", 0, true) // just to fake it into thinking it has a real tween .onComplete(StartingToAnimateLabelOut)); Tween outTween = new Tween(label, outDuration, new TweenConfig() .floatProp("x", endX) .floatProp("y", endY) .setEaseType(easeType)); TweenChain chain = new TweenChain(); chain.append(inTween).append(holdTween).append(outTween); chain.setOnCompleteHandler(DoneShowingLabel); Go.addTween(chain); chain.play(); labelIsAnimating = true; label.isVisible = true; }
public void UpdateGoal() { if (totalDistance < goalDistance - 1000f || initiatedSceneSwitch) return; if (goalType == GoalType.GoalOne) { if (faceCoin == null) { faceCoin = new FSprite("danaHappy.png"); faceCoin.x = Futile.screen.width + 100f; faceCoin.y = 250f; everythingContainer.AddChild(faceCoin); everythingContainer.AddChild(whit); // move him to top Tween tween1 = new Tween(faceCoin, 0.5f, new TweenConfig() .floatProp("scaleX", -1.0f) .setEaseType(EaseType.SineInOut)); Tween tween2 = new Tween(faceCoin, 0.5f, new TweenConfig() .floatProp("scaleX", 1.0f) .setEaseType(EaseType.SineInOut)); TweenChain chain = new TweenChain(); chain.setIterations(-1); chain.append(tween1); chain.append(tween2); Go.addTween(chain); chain.play(); } faceCoin.x += Time.fixedDeltaTime * universalVelocity; if (faceCoin.x < 100f) { initiatedSceneSwitch = true; FSoundManager.PlaySound("success"); TMain.SwitchToScene(TMain.SceneType.DreamSceneOne); } } else if (goalType == GoalType.GoalTwo) { if (bigHeartCoin == null) { bigHeartCoin = new FSprite("heart.psd"); bigHeartCoin.scale = 2.0f; bigHeartCoin.x = Futile.screen.width + 100f; bigHeartCoin.color = new Color(1.0f, 0.2f, 0.2f, 1.0f); bigHeartCoin.y = 250f; everythingContainer.AddChild(bigHeartCoin); everythingContainer.AddChild(whit); // move to top Tween tween1 = new Tween(bigHeartCoin, 0.5f, new TweenConfig() .floatProp("scaleX", -1.0f) .setEaseType(EaseType.SineInOut)); Tween tween2 = new Tween(bigHeartCoin, 0.5f, new TweenConfig() .floatProp("scaleX", 1.0f) .setEaseType(EaseType.SineInOut)); TweenChain chain = new TweenChain(); chain.setIterations(-1); chain.append(tween1); chain.append(tween2); Go.addTween(chain); chain.play(); } bigHeartCoin.x += Time.fixedDeltaTime * universalVelocity; if (bigHeartCoin.x < 100f) { initiatedSceneSwitch = true; FSoundManager.StopMusic(); FSoundManager.PlaySound("success"); TMain.SwitchToScene(TMain.SceneType.DreamSceneTwo); } } else if (goalType == GoalType.GoalThree) { if (dana == null) { dana = new TWalkingCharacter("danaHead.png"); dana.x = Futile.screen.width + 100f; dana.y = 250f; everythingContainer.AddChild(dana); dana.StartWalking(); } dana.x += Time.fixedDeltaTime * universalVelocity * 0.25f; if (dana.x < 350f) { start.isVisible = goal.isVisible = false; FSoundManager.PlayMusic("yay"); foundEachother = true; dana.TurnAround(); dana.StopWalking(); whit.StopWalking(); parallaxScene.StopUpdating(); whit.StopCrouching(); StartHeartShower(); } } }
public void DisplayNextString() { if (stringQueue.Count == 0) { hasStringsToShow = false; NoStringsLeftToShow(); return; } float startX = defaultX; float startY = defaultY; float holdX = defaultX; float holdY = defaultY; float endX = defaultX; float endY = defaultY; label.text = stringQueue[0]; label.CreateTextQuads(); if (labelShowType == LabelShowType.SlideFromLeft) { startX = -label.textRect.width / 2f; } else if (labelShowType == LabelShowType.SlideFromRight) { startX = Futile.screen.width + label.textRect.width / 2f; } else if (labelShowType == LabelShowType.SlideFromTop) { startY = Futile.screen.height + label.textRect.height / 2f; } else if (labelShowType == LabelShowType.SlideFromBottom) { startY = -label.textRect.height / 2f; } if (labelHideType == LabelHideType.SlideToLeft) { endX = -label.textRect.width / 2f; } else if (labelHideType == LabelHideType.SlideToRight) { endX = Futile.screen.width + label.textRect.width / 2f; } else if (labelHideType == LabelHideType.SlideToTop) { endY = Futile.screen.height + label.textRect.height / 2f; } else if (labelHideType == LabelHideType.SlideToBottom) { endY = -label.textRect.height / 2f; } label.x = startX; label.y = startY; Tween inTween = new Tween(label, inDuration, new TweenConfig() .floatProp("x", holdX) .floatProp("y", holdY) .onComplete(DoneMovingLabelIntoPlace) .setEaseType(easeType)); float holdDuration = defaultHoldDuration; if (shouldIncreaseHoldDurationBasedOnStringLength) holdDuration = Mathf.Max((float)(label.text.Length / 10), 3.0f); Tween holdTween = new Tween(label, holdDuration, new TweenConfig() .floatProp("x", 0, true) // just to fake it into thinking it has a real tween .onComplete(StartingToAnimateLabelOut)); Tween outTween = new Tween(label, outDuration, new TweenConfig() .floatProp("x", endX) .floatProp("y", endY) .setEaseType(easeType)); TweenChain chain = new TweenChain(); chain.append(inTween).append(holdTween).append(outTween); chain.setOnCompleteHandler(DoneShowingLabel); Go.addTween(chain); chain.play(); labelIsAnimating = true; label.isVisible = true; }
public void UpdateSolidifyingTrebellaLetters() { timeSinceLastSolidifiedLetter += Time.deltaTime; if (timeSinceLastSolidifiedLetter > 0.5f) { timeSinceLastSolidifiedLetter -= 0.5f; FLabel nextLetterToChange = null; switch (numLettersSolidified) { case 0: foreach (FLabel letter in unsolidifiedTrebellaLetters) { if (letter.text == "T") { nextLetterToChange = letter; unsolidifiedTrebellaLetters.Remove(letter); break; } } break; case 1: foreach (FLabel letter in unsolidifiedTrebellaLetters) { if (letter.text == "R") { nextLetterToChange = letter; unsolidifiedTrebellaLetters.Remove(letter); break; } } break; case 2: foreach (FLabel letter in unsolidifiedTrebellaLetters) { if (letter.text == "E") { nextLetterToChange = letter; unsolidifiedTrebellaLetters.Remove(letter); break; } } break; case 3: foreach (FLabel letter in unsolidifiedTrebellaLetters) { if (letter.text == "B") { nextLetterToChange = letter; unsolidifiedTrebellaLetters.Remove(letter); break; } } break; case 4: foreach (FLabel letter in unsolidifiedTrebellaLetters) { if (letter.text == "E") { nextLetterToChange = letter; unsolidifiedTrebellaLetters.Remove(letter); break; } } break; case 5: foreach (FLabel letter in unsolidifiedTrebellaLetters) { if (letter.text == "L") { nextLetterToChange = letter; unsolidifiedTrebellaLetters.Remove(letter); break; } } break; case 6: foreach (FLabel letter in unsolidifiedTrebellaLetters) { if (letter.text == "L") { nextLetterToChange = letter; unsolidifiedTrebellaLetters.Remove(letter); break; } } break; case 7: foreach (FLabel letter in unsolidifiedTrebellaLetters) { if (letter.text == "A") { nextLetterToChange = letter; unsolidifiedTrebellaLetters.Remove(letter); break; } } break; } FSoundManager.PlaySound("bomb", 2.0f); FLabel solidifiedLetter = trebellaLetters[numLettersSolidified]; solidifiedLetter.x = nextLetterToChange.x; solidifiedLetter.y = nextLetterToChange.y; nextLetterToChange.RemoveFromContainer(); float duration = 0.2f; float distance = 5f; Tween bounce = new Tween(solidifiedLetter, duration, new TweenConfig() .setEaseType(EaseType.SineInOut) .floatProp("y", distance, true)); Tween bounceBack = new Tween(solidifiedLetter, duration, new TweenConfig() .setEaseType(EaseType.SineInOut) .floatProp("y", -distance, true)); TweenChain chain = new TweenChain(); chain.setIterations(-1, LoopType.RestartFromBeginning); chain.append(bounce); chain.append(bounceBack); Go.addTween(chain); chain.play(); numLettersSolidified++; if (numLettersSolidified >= 8) trebellaLettersDoneSolidifying = true; } }
public void UpdateSolidifyingTrebellaLetters() { timeSinceLastSolidifiedLetter += Time.deltaTime; if (timeSinceLastSolidifiedLetter > 0.5f) { timeSinceLastSolidifiedLetter -= 0.5f; FLabel nextLetterToChange = null; switch (numLettersSolidified) { case 0: foreach (FLabel letter in unsolidifiedTrebellaLetters) { if (letter.text == "T") { nextLetterToChange = letter; unsolidifiedTrebellaLetters.Remove(letter); break; } } break; case 1: foreach (FLabel letter in unsolidifiedTrebellaLetters) { if (letter.text == "R") { nextLetterToChange = letter; unsolidifiedTrebellaLetters.Remove(letter); break; } } break; case 2: foreach (FLabel letter in unsolidifiedTrebellaLetters) { if (letter.text == "E") { nextLetterToChange = letter; unsolidifiedTrebellaLetters.Remove(letter); break; } } break; case 3: foreach (FLabel letter in unsolidifiedTrebellaLetters) { if (letter.text == "B") { nextLetterToChange = letter; unsolidifiedTrebellaLetters.Remove(letter); break; } } break; case 4: foreach (FLabel letter in unsolidifiedTrebellaLetters) { if (letter.text == "E") { nextLetterToChange = letter; unsolidifiedTrebellaLetters.Remove(letter); break; } } break; case 5: foreach (FLabel letter in unsolidifiedTrebellaLetters) { if (letter.text == "L") { nextLetterToChange = letter; unsolidifiedTrebellaLetters.Remove(letter); break; } } break; case 6: foreach (FLabel letter in unsolidifiedTrebellaLetters) { if (letter.text == "L") { nextLetterToChange = letter; unsolidifiedTrebellaLetters.Remove(letter); break; } } break; case 7: foreach (FLabel letter in unsolidifiedTrebellaLetters) { if (letter.text == "A") { nextLetterToChange = letter; unsolidifiedTrebellaLetters.Remove(letter); break; } } break; } FSoundManager.PlaySound("bomb", 2.0f); FLabel solidifiedLetter = trebellaLetters[numLettersSolidified]; solidifiedLetter.x = nextLetterToChange.x; solidifiedLetter.y = nextLetterToChange.y; nextLetterToChange.RemoveFromContainer(); float duration = 0.2f; float distance = 5f; Tween bounce = new Tween(solidifiedLetter, duration, new TweenConfig() .setEaseType(EaseType.SineInOut) .floatProp("y", distance, true)); Tween bounceBack = new Tween(solidifiedLetter, duration, new TweenConfig() .setEaseType(EaseType.SineInOut) .floatProp("y", -distance, true)); TweenChain chain = new TweenChain(); chain.setIterations(-1, LoopType.RestartFromBeginning); chain.append(bounce); chain.append(bounceBack); Go.addTween(chain); chain.play(); numLettersSolidified++; if (numLettersSolidified >= 8) { trebellaLettersDoneSolidifying = true; } } }
public void HandleTouchOnBlackallAndTesser(FTouch touch) { FLabel touchedLetter = null; for (int i = 0; i < tesserLetters.Count; i++) { FLabel label = tesserLetters[i]; if (label == null) { continue; } Vector2 touchPos = label.GlobalToLocal(touch.position); if (label.textRect.Contains(touchPos)) { touchedLetter = label; break; } } for (int i = 0; i < blackallLetters.Count; i++) { FLabel label = blackallLetters[i]; if (label == null) { continue; } Vector2 touchPos = label.GlobalToLocal(touch.position); if (label.textRect.Contains(touchPos)) { touchedLetter = label; break; } } if (touchedLetter == null) { return; } touchWasUsedCorrectly = true; TweenChain chain = null; float duration = 0.2f; float extraRotation = 0f; // TESSER // T if (touchedLetter == tesserLetters[0]) { if (unsolidifiedTrebellaLetters.Contains(touchedLetter)) { FSoundManager.PlaySound("error"); return; } if (!movedT) { chain = TweenChainForLetter(touchedLetter, duration, trebellaFinalPositions[0].x, trebellaFinalPositions[0].y, extraRotation); movedT = true; unsolidifiedTrebellaLetters.Add(touchedLetter); } } // E if (touchedLetter == tesserLetters[1] || touchedLetter == tesserLetters[4]) { if (unsolidifiedTrebellaLetters.Contains(touchedLetter)) { FSoundManager.PlaySound("error"); return; } int index; if (numTouchedEs == 0) { index = 2; } else if (numTouchedEs == 1) { index = 4; } else { index = -1; } if (index != -1) { chain = TweenChainForLetter(touchedLetter, duration, trebellaFinalPositions[index].x, trebellaFinalPositions[index].y, extraRotation); numTouchedEs++; unsolidifiedTrebellaLetters.Add(touchedLetter); } else { int tesserIndex = 0; if (touchedLetter == tesserLetters[1]) { tesserIndex = 0; } else if (touchedLetter == tesserLetters[4]) { tesserIndex = 4; } KillLetter(touchedLetter); tesserLetters[tesserIndex] = null; numNonTrebellaLettersLeft--; } } // S if (touchedLetter == tesserLetters[2]) { KillLetter(touchedLetter); numNonTrebellaLettersLeft--; tesserLetters[2] = null; } // S if (touchedLetter == tesserLetters[3]) { KillLetter(touchedLetter); numNonTrebellaLettersLeft--; tesserLetters[3] = null; } // R if (touchedLetter == tesserLetters[5]) { if (unsolidifiedTrebellaLetters.Contains(touchedLetter)) { FSoundManager.PlaySound("error"); return; } if (!movedR) { chain = TweenChainForLetter(touchedLetter, duration, trebellaFinalPositions[1].x, trebellaFinalPositions[1].y, extraRotation); movedR = true; unsolidifiedTrebellaLetters.Add(touchedLetter); } } // BLACKALL // B if (touchedLetter == blackallLetters[0]) { if (unsolidifiedTrebellaLetters.Contains(touchedLetter)) { FSoundManager.PlaySound("error"); return; } if (!movedB) { chain = TweenChainForLetter(touchedLetter, duration, trebellaFinalPositions[3].x, trebellaFinalPositions[3].y, extraRotation); movedB = true; unsolidifiedTrebellaLetters.Add(touchedLetter); } } // L if (touchedLetter == blackallLetters[1] || touchedLetter == blackallLetters[6] || touchedLetter == blackallLetters[7]) { if (unsolidifiedTrebellaLetters.Contains(touchedLetter)) { FSoundManager.PlaySound("error"); return; } int index; if (numTouchedLs == 0) { index = 5; } else if (numTouchedLs == 1) { index = 6; } else { index = -1; } if (index != -1) { chain = TweenChainForLetter(touchedLetter, duration, trebellaFinalPositions[index].x, trebellaFinalPositions[index].y, extraRotation); numTouchedLs++; unsolidifiedTrebellaLetters.Add(touchedLetter); } else { int blackallIndex = 0; if (touchedLetter == blackallLetters[1]) { blackallIndex = 1; } else if (touchedLetter == blackallLetters[6]) { blackallIndex = 6; } else if (touchedLetter == blackallLetters[7]) { blackallIndex = 7; } KillLetter(touchedLetter); blackallLetters[blackallIndex] = null; numNonTrebellaLettersLeft--; } } // A if (touchedLetter == blackallLetters[2] || touchedLetter == blackallLetters[5]) { if (unsolidifiedTrebellaLetters.Contains(touchedLetter)) { FSoundManager.PlaySound("error"); return; } int index; if (numTouchedAs == 0) { index = 7; } else { index = -1; } if (index != -1) { chain = TweenChainForLetter(touchedLetter, duration, trebellaFinalPositions[index].x, trebellaFinalPositions[index].y, extraRotation); numTouchedAs++; unsolidifiedTrebellaLetters.Add(touchedLetter); } else { int blackallIndex = 0; if (touchedLetter == blackallLetters[2]) { blackallIndex = 2; } else if (touchedLetter == blackallLetters[5]) { blackallIndex = 5; } KillLetter(touchedLetter); blackallLetters[blackallIndex] = null; numNonTrebellaLettersLeft--; } } // C if (touchedLetter == blackallLetters[3]) { KillLetter(touchedLetter); blackallLetters[3] = null; numNonTrebellaLettersLeft--; } // K if (touchedLetter == blackallLetters[4]) { KillLetter(touchedLetter); blackallLetters[4] = null; numNonTrebellaLettersLeft--; } if (chain != null) { chain.setOnCompleteHandler(OnTrebellaLetterInPlace); Go.addTween(chain); chain.play(); } }
public void EndGame() { FlyOutUIElements(); scoreLabel.text = string.Format("{0:#,###0}", score); for (int i = hearts.Count - 1; i >= 0; i--) { FSprite heart = hearts[i]; foreach (AbstractTween tween in Go.tweensWithTarget(heart)) { Go.removeTween(tween); } heart.RemoveFromContainer(); hearts.Remove(heart); } if (score >= 1000000) { StartHeartShower(); FSoundManager.StopMusic(); FSoundManager.PlaySound("happyPiano"); gameIsOver = true; FLabel label = new FLabel("SoftSugar", "I love you times a million!"); label.color = new Color(0.12f, 0.12f, 0.12f, 1.0f); label.x = Futile.screen.halfWidth; label.y = Futile.screen.halfHeight; label.scale = 0; AddChild(label); TweenConfig config = new TweenConfig() .floatProp("scale", 1.0f) .setEaseType(EaseType.SineInOut) .onComplete(OnWinLabelDoneAppearing); Go.to(label, 0.5f, config); } if (numHeartsMissed >= 5) { gameIsOver = true; FSoundManager.StopMusic(); FSoundManager.PlaySound("sadPiano"); FLabel topLabel = new FLabel("SoftSugar", "Are you kidding me?!"); FLabel bottomLabel = new FLabel("SoftSugar", string.Format("I love you way more than x{0:#,###0}!", score)); topLabel.color = new Color(0.75f, 0.12f, 0.12f, 1.0f); bottomLabel.color = new Color(0.12f, 0.12f, 0.12f, 1.0f); bottomLabel.x = topLabel.x = Futile.screen.halfWidth; float bottomBeginning = 300f; float segmentHeight = (Futile.screen.height - bottomBeginning * 2f) / 3f; bottomLabel.y = segmentHeight - bottomLabel.textRect.height / 2f + bottomBeginning; topLabel.y = segmentHeight * 3f - topLabel.textRect.height / 2f + bottomBeginning; bottomLabel.scale = topLabel.scale = 0; AddChild(topLabel); AddChild(bottomLabel); TweenConfig config1 = new TweenConfig() .floatProp("scale", 1.0f) .setEaseType(EaseType.SineInOut); TweenConfig config2 = new TweenConfig() .floatProp("scale", 0.75f) .setEaseType(EaseType.SineInOut); float duration = 0.5f; TweenChain chain = new TweenChain(); chain.append(new Tween(topLabel, duration, config1)); chain.append(new Tween(bottomLabel, duration, config2)); chain.setOnCompleteHandler(OnGameShouldBeFullyOver); Go.addTween(chain); chain.play(); } }
private void HandleGameComplete(AbstractTween tween) { Go.to(playArea, 0.3f, new TweenConfig().floatProp("scale", 0f).floatProp("alpha", 0.0f)); TweenChain chain = new TweenChain(); chain.append(new Tween(_bestScoreLabel, 1f, new TweenConfig().setEaseType(EaseType.SineOut).floatProp("anchorX", 0.5f) .floatProp("anchorY", 0.5f) .floatProp("scale", 1f) .floatProp("x", 0.0f) .floatProp("y", 0.0f))); bool highscoreGET = false; for(int i = 0; i < FScoreManager.Scores.Count; i++){ if(BaseMain.Instance._score > (long)FScoreManager.Scores[i]) highscoreGET = true; } if(highscoreGET){ _bestScoreLabel.text = string.Format("new high score:\n{0}", BaseMain.Instance._score); Tween move = new Tween(_bestScoreLabel, 0.5f, new TweenConfig().floatProp("alpha", 0).setIterations(6, LoopType.PingPong)); this.AddChild(new FKeyBoard("BitOut", HandleUpdate, setText)); chain.append(move); }else{ _bestScoreLabel.text = string.Format("score: {0}", BaseMain.Instance._score); } chain.setOnCompleteHandler(HandleGameComplete2); chain.play(); }
public void UpdateGoal() { if (totalDistance < goalDistance - 1000f || initiatedSceneSwitch) { return; } if (goalType == GoalType.GoalOne) { if (faceCoin == null) { faceCoin = new FSprite("danaHappy.png"); faceCoin.x = Futile.screen.width + 100f; faceCoin.y = 250f; everythingContainer.AddChild(faceCoin); everythingContainer.AddChild(whit); // move him to top Tween tween1 = new Tween(faceCoin, 0.5f, new TweenConfig() .floatProp("scaleX", -1.0f) .setEaseType(EaseType.SineInOut)); Tween tween2 = new Tween(faceCoin, 0.5f, new TweenConfig() .floatProp("scaleX", 1.0f) .setEaseType(EaseType.SineInOut)); TweenChain chain = new TweenChain(); chain.setIterations(-1); chain.append(tween1); chain.append(tween2); Go.addTween(chain); chain.play(); } faceCoin.x += Time.fixedDeltaTime * universalVelocity; if (faceCoin.x < 100f) { initiatedSceneSwitch = true; FSoundManager.PlaySound("success"); TMain.SwitchToScene(TMain.SceneType.DreamSceneOne); } } else if (goalType == GoalType.GoalTwo) { if (bigHeartCoin == null) { bigHeartCoin = new FSprite("heart.psd"); bigHeartCoin.scale = 2.0f; bigHeartCoin.x = Futile.screen.width + 100f; bigHeartCoin.color = new Color(1.0f, 0.2f, 0.2f, 1.0f); bigHeartCoin.y = 250f; everythingContainer.AddChild(bigHeartCoin); everythingContainer.AddChild(whit); // move to top Tween tween1 = new Tween(bigHeartCoin, 0.5f, new TweenConfig() .floatProp("scaleX", -1.0f) .setEaseType(EaseType.SineInOut)); Tween tween2 = new Tween(bigHeartCoin, 0.5f, new TweenConfig() .floatProp("scaleX", 1.0f) .setEaseType(EaseType.SineInOut)); TweenChain chain = new TweenChain(); chain.setIterations(-1); chain.append(tween1); chain.append(tween2); Go.addTween(chain); chain.play(); } bigHeartCoin.x += Time.fixedDeltaTime * universalVelocity; if (bigHeartCoin.x < 100f) { initiatedSceneSwitch = true; FSoundManager.StopMusic(); FSoundManager.PlaySound("success"); TMain.SwitchToScene(TMain.SceneType.DreamSceneTwo); } } else if (goalType == GoalType.GoalThree) { if (dana == null) { dana = new TWalkingCharacter("danaHead.png"); dana.x = Futile.screen.width + 100f; dana.y = 250f; everythingContainer.AddChild(dana); dana.StartWalking(); } dana.x += Time.fixedDeltaTime * universalVelocity * 0.25f; if (dana.x < 350f) { start.isVisible = goal.isVisible = false; FSoundManager.PlayMusic("yay"); foundEachother = true; dana.TurnAround(); dana.StopWalking(); whit.StopWalking(); parallaxScene.StopUpdating(); whit.StopCrouching(); StartHeartShower(); } } }