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(); }
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(); }
//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(); }
void Start() { // create a TweenConfig that we will use on all 4 cubes var config = new TweenConfig() .setEaseType( EaseType.QuadIn ) // set the ease type for the tweens .materialColor( Color.magenta ) // tween the material color to magenta .eulerAngles( new Vector3( 0, 360, 0 ) ) // do a 360 rotation .position( new Vector3( 2, 8, 0 ), true ) // relative position tween so it will be start from the current location .setIterations( 2, LoopType.PingPong ); // 2 iterations with a PingPong loop so we go out and back // create the chain and set it to have 2 iterations var chain = new TweenChain().setIterations( 2 ); // add a completion handler for the chain chain.setOnCompleteHandler( c => Debug.Log( "chain complete" ) ); // create a Tween for each cube and it to the chain foreach( var cube in cubes ) { var tween = new Tween( cube, 0.5f, config ); chain.append( tween ); } _tween = chain; }
// 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 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(); }
//TBorderLayer border; public TWalkingCharacter(string headImage) { FAtlasManager am = Futile.atlasManager; frameElements = new FAtlasElement[8]; crouchFrameElements = new FAtlasElement[8]; frameElements[0] = am.GetElementWithName("walkAnim/walk0.png"); frameElements[1] = am.GetElementWithName("walkAnim/walk1.png"); frameElements[2] = am.GetElementWithName("walkAnim/walk2.png"); frameElements[3] = am.GetElementWithName("walkAnim/walk3.png"); frameElements[4] = am.GetElementWithName("walkAnim/walk4.png"); frameElements[5] = am.GetElementWithName("walkAnim/walk1.png"); frameElements[6] = am.GetElementWithName("walkAnim/walk2.png"); frameElements[7] = am.GetElementWithName("walkAnim/walk3.png"); crouchFrameElements[0] = am.GetElementWithName("squashedWalkAnim/squashedWalk0.png"); crouchFrameElements[1] = am.GetElementWithName("squashedWalkAnim/squashedWalk1.png"); crouchFrameElements[2] = am.GetElementWithName("squashedWalkAnim/squashedWalk2.png"); crouchFrameElements[3] = am.GetElementWithName("squashedWalkAnim/squashedWalk3.png"); crouchFrameElements[4] = am.GetElementWithName("squashedWalkAnim/squashedWalk4.png"); crouchFrameElements[5] = am.GetElementWithName("squashedWalkAnim/squashedWalk1.png"); crouchFrameElements[6] = am.GetElementWithName("squashedWalkAnim/squashedWalk2.png"); crouchFrameElements[7] = am.GetElementWithName("squashedWalkAnim/squashedWalk3.png"); bodySprite = new FSprite("walkAnim/walk0.png"); bodySprite.scale = 0.5f; bodySprite.anchorY = 0; bodySprite.y = -200f; AddChild(bodySprite); headSprite = new FSprite(headImage); headSprite.y = 25f; headSprite.x -= 5f; headSprite.scale = 0.5f; headSprite.anchorY = 0; headSprite.rotation = -3f; AddChild(headSprite); Tween rotateOut = new Tween(headSprite, 0.3f, new TweenConfig().floatProp("rotation", 3f)); Tween rotateIn = new Tween(headSprite, 0.3f, new TweenConfig().floatProp("rotation", -3f)); chain = new TweenChain(); chain.setIterations(-1); chain.append(rotateOut).append(rotateIn); Go.addTween(chain); }
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(); }
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 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 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 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 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 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(); } } }