示例#1
0
 void OnMouseDown()
 {
     //GameObject.Find("AudioBulk").GetComponent <AudioSource>().Play();
     ScoreChange.ScoreUP();
     Destroy(gameObject);
     //GetComponent <AudioSource> ().Play ();
 }
示例#2
0
        public int Run(string data, string caseName, int numberOfAttempts = 1, bool printResults = true)
        {
            TOutput bestResults = GetBestResult(numberOfAttempts, data);

            string newOutPath = caseName + ".new.out";
            string finalPath  = caseName + ".out";

            m_Printer.PrintToFile(bestResults, newOutPath);
            if (printResults)
            {
                m_Printer.PrintToConsole(bestResults);
            }

            if (m_Calculator != null)
            {
                ScoreChange score = ReplaceIfBetter(data, finalPath, newOutPath);
                PrintResults(caseName, score.Improvment);
                return(score.NewScore);
            }
            else
            {
                Console.WriteLine(caseName + ": Calculator is null. No comparison was made");
            }

            return(0);
        }
示例#3
0
文件: Game.cs 项目: veritas501/snake
        private void PaintGame()
        {
            gp.Clear(Color.FromKnownColor(KnownColor.Control));

            if (GameConfig.GameOver == false)
            {
                if (food.IfEaten())
                {
                    Console.WriteLine("food eaten");
                    score += GameConfig.GamePoint;
                    ScoreChange?.Invoke(score);
                }
                food.MakeFood().Paint(gp);
                foreach (var body in snake.Move())
                {
                    body.Paint(gp);
                }
            }
            else
            {
                Console.WriteLine("game over!!");
                t.Enabled = false;
                //重置snake
                snake.Reset();
                //使得下局重置food位置
                Food.Eaten = true;
            }
        }
示例#4
0
        private void OnClearLines(int linesCount)
        {
            int an  = 10 + (linesCount - 1) * 10;
            int sum = (10 + an) / 2 * linesCount;

            _score         += sum;
            _textScore.text = _score.ToString();
            ScoreChange?.Invoke(_score);
        }
    Text text;                      // Reference to the Text component.


    void Awake()
    {
        // Set up the reference.
        text = GetComponent <Text> ();

        // Reset the score.
        score = 0;

        OnScoreChange += UpdateScore;
    }
示例#6
0
        private void TriggerScoreChange(ScoreChange change, HitObject hitObject)
        {
            if (change == ScoreChange.Ignore)
            {
                return;
            }

            ScoreChange hitAmount = change & ScoreChange.HitValuesOnly;

            if (hitAmount != ScoreChange.Ignore)
            {
                //handle combo additions here
                ComboScoreCounts[hitAmount] += 1;

                List <HitObject> objects = ActiveStreamObjects;

                int index = objects.IndexOf(hitObject);
                int count = objects.Count;

                bool multitouchSameEndTime = hitObject.connectedObject != null && Math.Abs(hitObject.connectedObject.EndTime - hitObject.EndTime) < 10;

                //is next hitObject the end of a combo?
                if (index == count - 1 || //last object in the song.
                    objects[index + 1].NewCombo || //next object is a new combo.
                    (multitouchSameEndTime && index < count - 2 && objects[index + 1] == hitObject.connectedObject && objects[index + 2].NewCombo)    //this is part of a multitouch sequence with a new combo following.
                    )
                {
                    //apply combo addition
                    if (ComboScoreCounts[ScoreChange.Hit100] == 0 && ComboScoreCounts[ScoreChange.Hit50] == 0 && ComboScoreCounts[ScoreChange.Miss] == 0)
                    {
                        change |= ScoreChange.GekiAddition;
                    }
                    else if (ComboScoreCounts[ScoreChange.Hit50] == 0 && ComboScoreCounts[ScoreChange.Miss] == 0)
                    {
                        change |= ScoreChange.KatuAddition;
                    }
                    else
                    {
                        change |= ScoreChange.MuAddition;
                    }

                    if (!(multitouchSameEndTime && !hitObject.connectedObject.IsHit))
                    {
                        ResetComboCounts();
                    }
                }
            }

            hitObject.HitAnimation(change);

            if (OnScoreChanged != null)
            {
                OnScoreChanged(change, hitObject);
            }
        }
示例#7
0
            protected override ScoreChange HitActionInitial()
            {
                ScoreChange s = base.HitActionInitial();

                if (s != ScoreChange.Ignore)
                {
                    burstEndpoint();
                }

                return(s);
            }
示例#8
0
        protected override void hitObjectManager_OnScoreChanged(ScoreChange change, HitObject hitObject)
        {
            base.hitObjectManager_OnScoreChanged(change, hitObject);

            if (InitialHp == 0)
            {
                healthBar.ReduceCurrentHp(100);
            }
            if (InitialHp == 200)
            {
                healthBar.IncreaseCurrentHp(100);
            }
        }
示例#9
0
 public void ResetScore()
 {
     score       = 0;
     up          = 0;
     medium      = 0;
     down        = 0;
     timer       = 0;
     spawnCount  = 0;
     caught      = false;
     lives       = 3;
     played      = false;
     consecutive = 0;
     ScoreChange?.Invoke(-1, ChangeType.Reset);
 }
示例#10
0
 private void PrintResults(string caseName, ScoreChange scoreChange)
 {
     if (scoreChange.Improvment < 0)
     {
         WriteLineToConsoleInColor(caseName + ": new was worse: " + scoreChange.NewScore + ". decrease by " + scoreChange.Improvment, ConsoleColor.Red);
     }
     else if (scoreChange.Improvment == 0)
     {
         WriteLineToConsoleInColor(caseName + ": new was the same as last: " + scoreChange.NewScore, ConsoleColor.Yellow);
     }
     else
     {
         WriteLineToConsoleInColor(caseName + " new was better: " + scoreChange.NewScore + ". improve by " + scoreChange.Improvment, ConsoleColor.Green);
     }
 }
示例#11
0
    private void OnCollisionEnter(Collision collision)
    {
        if (collision.collider.tag == "Ball")
        {
            score++;
            caught = true;
            float floorHeight     = Playspace.Instance.FloorCenter.y;
            float collisionHeight = collision.contacts[0].point.y;

            // check ball collision position to categorize exercise
            float      height = collisionHeight - floorHeight;
            ChangeType type;
            if (height > upLimit)
            {
                up  += 1;
                type = ChangeType.Up;
            }
            else if (height < downLimit)
            {
                down += 1;
                type  = ChangeType.Down;
            }
            else
            {
                medium += 1;
                type    = ChangeType.Middle;
            }

            // Notify all event handler of ScoreChange
            ScoreChange?.Invoke(1, type);
            // catch 3 balls in a row: lives++ with limit 3
            consecutive++;
            if (consecutive >= 3)
            {
                lives       = Mathf.Min(3, lives + 1);
                consecutive = 0;
            }
            // destroy is handled in explosion script
        }

        if (collision.collider.tag == "Bomb")
        {
            Instantiate(GameObject.Find("AudioManager").GetComponent <AudioManager>().bombExplode,
                        collision.collider.transform.position, Quaternion.identity);
            lives = 0;
        }
    }
示例#12
0
        internal void SetProgress(float progress, ScoreChange latestChange)
        {
            progressRect.Scale.X = GameBase.BaseSize.X * (progress - lastProgressStart);

            if (latestChange != lastDisplayedChange)
            {
                lastDisplayedChange = latestChange;

                Color4 displayColour = gray_colour;

                float heightMultiplier = 1;

                switch (lastDisplayedChange)
                {
                case ScoreChange.Hit300:
                    displayColour = new Color4(255, 156, 55, 255);
                    break;

                case ScoreChange.Hit100:
                    displayColour    = new Color4(117, 204, 65, 255);
                    heightMultiplier = 0.9f;
                    break;

                case ScoreChange.Hit50:
                    displayColour    = new Color4(118, 65, 143, 255);
                    heightMultiplier = 0.8f;
                    break;

                case ScoreChange.Miss:
                    displayColour    = new Color4(144, 0, 16, 255);
                    heightMultiplier = 0.7f;
                    break;
                }

                progressRect.FlashColour(Color4.White, 1000);
                //progressRect.Transform(new TransformationV(TransformationType.VectorScale, new Vector2(progressRect.Scale.X, progressRect.Scale.Y * 2), progressRect.Scale, Clock.ModeTime, Clock.ModeTime + 1000, EasingTypes.In));

                progressRect        = new pRectangle(new Vector2(progressRect.Scale.X + progressRect.Position.X, 0), new Vector2(0, HEIGHT * heightMultiplier - 1), true, 1, displayColour);
                progressRect.Field  = FieldTypes.StandardSnapBottomLeft;
                progressRect.Origin = OriginTypes.BottomLeft;
                Add(progressRect);

                lastProgressStart = progress;
            }
        }
示例#13
0
        internal override void HitAnimation(ScoreChange action, bool animateNumber = false)
        {
            SpriteHitCircle1.Transformations.Clear();
            SpriteHitCircleText.Transformations.Clear();
            SpriteApproachCircle.Transformations.Clear();

            if (connectedObject != null)
            {
                connectionSprite.FadeOut(100);
            }

            int now = SpriteHitCircle1.ClockingNow;

            if (action > ScoreChange.Miss)
            {
                //Fade out the actual hit circle
                Transformation circleScaleOut = new TransformationF(TransformationType.Scale, 1.1F, 1.4F,
                                                                    now, now + DifficultyManager.FadeOut, EasingTypes.InHalf);

                Transformation textScaleOut = new TransformationF(TransformationType.Scale, 1.1F, 1.4F,
                                                                  now, now + DifficultyManager.FadeOut, EasingTypes.InHalf);

                Transformation circleFadeOut = new TransformationF(TransformationType.Fade, 1, 0,
                                                                   now, now + DifficultyManager.FadeOut);

                SpriteHitCircle1.Transformations.Clear();
                SpriteHitCircle1.Transform(circleScaleOut);
                SpriteHitCircle1.Transform(circleFadeOut);

                SpriteHitCircleText.Transformations.Clear();
                if (animateNumber)
                {
                    SpriteHitCircleText.Transform(textScaleOut);
                    SpriteHitCircleText.Transform(circleFadeOut);
                }
            }

            base.HitAnimation(action);
        }
示例#14
0
        public long Run(string data, string caseName, int numberOfAttempts = 1, bool printResults = true, List <double> runParams = null)
        {
            RunParams = runParams;
            TOutput bestResults = GetBestResult(numberOfAttempts, data, caseName);

            string newOutPath      = Path.Combine(m_OutputDirectory, caseName + ".new.out");
            string finalPath       = Path.Combine(m_OutputDirectory, caseName + ".out");
            string bestScoreFolder = Path.Combine(m_OutputDirectory, "zzzbestScoreFolder");

            if (!Directory.Exists(bestScoreFolder))
            {
                Directory.CreateDirectory(bestScoreFolder);
            }

            string bestScorePath = Path.Combine(bestScoreFolder, caseName + ".bestScore");

            m_Printer.PrintToFile(bestResults, newOutPath);
            if (printResults)
            {
                m_Printer.PrintToConsole(bestResults);
            }

            if (m_Calculator != null)
            {
                ScoreChange score = ReplaceIfBetter(bestResults, data, bestScorePath, finalPath, newOutPath);
                PrintResults(caseName, score);
                return(score.NewScore);
                //ScoreChange score = ReplaceIfBetter(data, finalPath, newOutPath);
                //PrintResults(caseName, score);
                //return score.NewScore;
            }
            else
            {
                Console.WriteLine(caseName + ": Calculator is null. No comparison was made");
            }

            return(0);
        }
示例#15
0
 void Update()
 {
     if (transform.position.y < -6f)
     {
         LifeChange.LifeDec();
         Destroy(gameObject);
     }
     if (fallSpeed <= 0.1)
     {
         fallSpeed = 0.1f;
     }
     transform.position -= new Vector3(0, fallSpeed * Time.deltaTime, 0);
     if (Input.GetKey("escape"))
     {
         SceneManager.LoadScene("main");
         //Lose
     }
     if (bomb)
     {
         ScoreChange.ScoreUP();
         Destroy(gameObject);
     }
 }
示例#16
0
 public void AddScore(int deletedLinesAmount)
 {
     _scoreData.Score += _lineCost * deletedLinesAmount;
     ScoreChange?.Invoke(_scoreData.Score);
 }
示例#17
0
 public void ChangeScore(int amount)
 {
     ScoreAmount.Score += amount;
     ScoreChange?.Invoke(ScoreAmount.Score);
 }
示例#18
0
 void Start()
 {
     ScoreAmount.Score = PlayerPrefs.GetInt("Score");
     ScoreChange?.Invoke(ScoreAmount.Score);
 }
示例#19
0
        //plaatjes draaien (lars)
        private void CardClick(object sender, MouseButtonEventArgs e)
        {
            Image terug = new Image();
            Image card  = (Image)sender;
            int   index = (int)card.Tag;

            alleKaarten[index].clicked();



            if (ClickCards < 2)
            {
                ClickCards++;

                if (ClickCards == 2)
                {
                    ShowCards();
                    card.Source = null;
                    ImageSource kaart1 = alleKaarten[Vorigekaart].Show();
                    ImageSource kaart2 = alleKaarten[index].Show();
                    if (kaart1.ToString() == kaart2.ToString())
                    {
                        if (player1 == true)
                        {
                            punten.Add(punten1);
                            punten1++;
                            ScoreChange?.Invoke();
                            MessageBox.Show("2 gelijken!");
                        }
                        if (player1 == false)
                        {
                            punten.Add(punten2);
                            punten2++;
                            ScoreChange?.Invoke();
                            MessageBox.Show("2 gelijken!");
                        }
                        alleKaarten[Vorigekaart].Onzichtbaar();

                        alleKaarten[index].Onzichtbaar();

                        bool alleKaartenOnzichtbaar = true;
                        foreach (Kaart kaart in alleKaarten)
                        {
                            if (kaart.IsZichtbaar())
                            {
                                alleKaartenOnzichtbaar = false;
                            }
                        }

                        if (alleKaartenOnzichtbaar)
                        {
                            if (punten1 > punten2)
                            {
                                MessageBox.Show("De winnaar is: " + playernames[0]);
                            }
                            else if (punten1 < punten2)
                            {
                                MessageBox.Show("De winnaar is: " + playernames[1]);
                            }
                            else
                            {
                                MessageBox.Show("Gefeliciteerd, jullie zijn beide toppers");
                            }
                        }
                    }
                    else
                    {
                        MessageBox.Show("Niet gelijk");
                        alleKaarten[Vorigekaart].Terugdraaien();
                        alleKaarten[index].Terugdraaien();
                    }
                    if (player1 == true)
                    {
                        player1 = false;
                    }
                    else
                    {
                        player1 = true;
                    }
                    ClickCards = 0;
                }
                else
                {
                    Vorigekaart = index;
                }
            }
            ShowCards();
        }
示例#20
0
 public void OnScoreChange(GameScore gameScore)
 {
     ScoreChange?.Invoke(this, new ScoreChangeEventArgs(gameScore));
 }
示例#21
0
 protected virtual void OnScoreChange()
 {
     ScoreChange?.Invoke(this);
 }
示例#22
0
 public void ChangeScore()
 {
     ScoreAmount.Score += UpgradeStats.ClickPower;
     ScoreChange?.Invoke(ScoreAmount.Score);
 }
示例#23
0
 private void OnBlockAdded(int scoreCount)
 {
     _score         += scoreCount;
     _textScore.text = _score.ToString();
     ScoreChange?.Invoke(_score);
 }