public void DidBeginContact(SKPhysicsContact contact) { inprogress = false; Console.WriteLine("We Collided!"); gameended = true; void gameOver() { var textures = Enumerable.Range(1, 4).Select( (i) => SKTexture.FromImageNamed(String.Format("Death-{0}", i))).ToArray(); deathSpin = SKAction.RepeatAction(SKAction.AnimateWithTextures(textures, .1), 4); var shrink = SKAction.ScaleTo(0f, 2f); var death = SKAction.Sequence(deathSpin, shrink); playerObject.RunAction(death); var playDeath = SKAction.PlaySoundFileNamed("playerDeath", false); playerDied.RunAction(playDeath); gameSong.RunAction(SKAction.CreateStop()); } void animateOver() { var grow = SKAction.ScaleTo(2.0f, 1.5); var shrink = SKAction.ScaleTo(.5f, 1.5); var animate = SKAction.RepeatActionForever(SKAction.Sequence(grow, shrink)); endGame.RunAction(animate); } playerObject.RemoveAllActions(); obstacle.RemoveAllActions(); sidewalk1.RemoveAllActions(); sidewalk2.RemoveAllActions(); sidewalk3.RemoveAllActions(); building1.RemoveAllActions(); building2.RemoveAllActions(); building3.RemoveAllActions(); building4.RemoveAllActions(); building5.RemoveAllActions(); building6.RemoveAllActions(); building7.RemoveAllActions(); building8.RemoveAllActions(); building9.RemoveAllActions(); building10.RemoveAllActions(); building11.RemoveAllActions(); building12.RemoveAllActions(); building13.RemoveAllActions(); building14.RemoveAllActions(); road1.RemoveAllActions(); road2.RemoveAllActions(); road3.RemoveAllActions(); road4.RemoveAllActions(); road5.RemoveAllActions(); road6.RemoveAllActions(); obstacle1.RemoveAllActions(); obstacle2.RemoveAllActions(); enemy.RemoveAllActions(); obstacle4.RemoveAllActions(); scores.Add(score); scores.Sort((a, b) => - 1 * a.CompareTo(b)); var sl = scores.Count; if (sl >= 10) { { sl = 10; } } var plist = NSUserDefaults.StandardUserDefaults; for (int i = 0; i < sl; i++) { { Console.WriteLine(scores[i]); plist.SetInt(scores[i], String.Format("Score-{0}", i)); } } score = 0; //unsubscribe obstacle objects at the end of the round timer.Elapsed -= sendobstacle; timer1.Elapsed -= sendobstacle1; timer2.Elapsed -= sendobstacle2; timer3.Elapsed -= sendobstacle3; timer4.Elapsed -= sendobstacle4; gameOver(); AddChild(endGame); animateOver(); }