Exemple #1
0
 //------------- Thread ( 淡入 )-------------//
 public void TurnGameOver(pageName page)
 {
     isGameOver = true;
     if (count == 12)
     {
         isGameOver  = false;
         Global.page = page;
     }
     else if (count >= 11)
     {
         Thread.Sleep(50);
         gameOver.Action();
     }
     else if (count == 0)
     {
         Form1.NewStage(page);
         Thread.Sleep(40);
         count++;
     }
     else
     {
         Thread.Sleep(40);
         empty.Action();
         count++;
     }
 }
        public void Fly()
        {
            brownDragon.Action();
            if (brownDragon.Center.X >= 950)
            {
                brownDragon.Center = new Point(brownDragon.Center.X - 5, brownDragon.Center.Y);
            }
            else
            {
                //------ 發射射線
                if (myEndPoint.X >= 0)
                {
                    music.ContiPlayMusic("RaysAttack.mp3");
                    myEndPoint.X -= 50;
                }
                else
                {
                    music.StopMusic("RaysAttack.mp3");
                    myEndPoint.X = 860;
                }

                //------ 恐龍上下移動
                if (brownDragon.Center.Y <= 50)
                {
                    up = false;
                }

                if (!up)
                {
                    brownDragon.Center = new Point(brownDragon.Center.X, brownDragon.Center.Y + 5);
                    myStartPoint.Y    += 5;
                    myEndPoint.Y      += 5;
                }

                if (brownDragon.Center.Y >= 650)
                {
                    up = true;
                }

                if (up)
                {
                    brownDragon.Center = new Point(brownDragon.Center.X, brownDragon.Center.Y - 5);
                    myStartPoint.Y    -= 5;
                    myEndPoint.Y      -= 5;
                }
            }
        }
        public void Action()
        {
            switch (step)
            {
            //遊戲進場說明
            case 0:
                Thread.Sleep(100);
                river.Action();
                river2.AntiAction();
                // 說明頁切換
                switch (explainPage)
                {
                case 1:
                    // mainCharater 動作
                    mainCharacter.Action();
                    mainCharacter.Jump(-7, 430);
                    break;

                case 2:
                    mainCharacter.Action();
                    break;

                case 3:
                    // yellowDragon 動作
                    yellowDragon[0].Action();
                    if (yellowDragon[0].Center.Y <= 350)
                    {
                        isUp = false;
                    }
                    else if (yellowDragon[0].Center.Y >= 600)
                    {
                        isUp = true;
                    }
                    if (isUp)
                    {
                        yellowDragon[0].Move(0, -20);
                    }
                    else if (!isUp)
                    {
                        yellowDragon[0].Move(0, 20);
                    }
                    break;
                }
                break;

            //遊戲開始
            case 1:
                countTime.StartT();
                Thread.Sleep(90);
                music.PlayMusic(4);

                if (yellowDragon[0] == null && yellowDragon[1] == null)
                {
                    if (winroad.Center.X < 520)
                    {
                        pinkDragon.Action();
                        pinkDragon.Move(-4, 0);
                        if (pinkDragon.isClick(mainCharacter.Center.X + 50, mainCharacter.Center.Y))
                        {
                            step = 5;
                        }
                    }
                    else
                    {
                        winroad.Move(-10, 0);
                        pinkDragon.Move(-10, 0);
                    }
                }

                // 所有圖片動畫
                if (winroad.Center.X > 520)
                {
                    river.Action();
                    river2.AntiAction();
                    grid.Action(-160, new Point(1900, 700), -10, 0);
                    background.Action(-440, new Point(1700, 340), -3, 0);
                }
                mainCharacter.Action();

                //---------------- Enemys
                Global.target = 0;
                for (int i = 0; i < yellow_NUM; i++)
                {
                    if (yellowDragon[i] != null)
                    {
                        Global.target += yellowDragon[i].Enemys;
                        yellowDragon[i].Action();
                        yellowDragon[i].Jump(grid.continuousActors[grid.continuousActors.Count - 1].Center, i);
                        if (yellowDragon[i].isClick(mainCharacter.Center.X, mainCharacter.Center.Y))
                        {
                            Console.WriteLine("撞到哪一隻 :" + i);
                            Global.HP -= 1;
                            music.PlayMusic(1);
                            if (Global.HP <= 0)
                            {
                                step = 3;
                            }
                            mainCharacter.Motion(2);
                        }
                        healthPts[i].Center = new Point(yellowDragon[i].Center.X, yellowDragon[i].Center.Y - 120);
                        healthPts[i].Health(yellowDragon[i].HP, 5);
                        if (yellowDragon[i].Enemys == 0 && yellowDragon[i] != null)
                        {
                            yellowDragon[i] = null;
                        }
                    }
                }

                // 恐龍是否走在路上
                touch = 0;
                for (int i = 0; i < grid.continuousActors.Count; i++)
                {
                    if (grid.continuousActors[i].isClick(mainCharacter.Center.X - 15, mainCharacter.Center.Y + 60))
                    {
                        touch++;
                        if (mainCharacter.Center.Y > 630)
                        {
                            touch--;
                        }
                    }
                }
                // 恐龍動作(跳/墜落)

                if (winroad.Center.X <= 750)
                {
                    mainCharacter.Center = new Point(mainCharacter.Center.X + 4, 550);
                }
                else
                {
                    mainCharacter.Jump2(-30, touch);
                }


                // 恐龍扣血
                if (mainCharacter.Center.Y > 950)
                {
                    Global.HP -= 1;
                    music.ContiPlayMusic("drop.wav");
                    if (Global.HP <= 0)
                    {
                        step = 3;
                    }
                    mainCharacter.Motion(2);
                    mainCharacter.Center = new Point(190, 190);
                    mainCharacter.t      = 0;
                    mainCharacter.isjump = false;
                }

                // 計時直到碰見粉紅
                if (!pinkDragon.isClick(mainCharacter.Center.X, mainCharacter.Center.Y))
                {
                    countTime.EndT();
                }
                break;

            //遊戲勝場
            case 2:
                music.StopMusic("cave2.wav");
                turn.TurnWin(pageName.mainPage);
                break;

            //遊戲敗場
            case 3:
                music.StopMusic("cave2.wav");
                turn.TurnGameOver(pageName.mainPage);
                break;

            case 4:
                Ranker ranker = new Ranker();
                ranker.Load();
                ranker.Clear();
                ranker.ShowRank(0);
                step = 6;
                break;

            case 5:
                switch (End)
                {
                case 0:
                    explain = new AnimateActor("story32", 1, new Point(550, 410), 2);
                    End     = 1;
                    Thread.Sleep(3500);
                    break;

                case 1:
                    explain.ClearImages();
                    explain.AddImage("story33", 1);
                    music.PlayMusic("hurt3.mp3");
                    End = 2;
                    Thread.Sleep(1000);
                    break;

                case 2:
                    explain.ClearImages();
                    explain.AddImage("story34", 1);
                    End = 3;
                    Thread.Sleep(2500);
                    music = null;
                    music = new Music("Stage1.mp3");
                    break;

                case 3:
                    explain.ClearImages();
                    explain.AddImage("story35", 1);
                    End = 4;
                    Thread.Sleep(2500);
                    break;

                case 4:
                    explain.ClearImages();
                    explain.AddImage("story36", 1);
                    Thread.Sleep(3500);
                    step = 4;
                    music.PlayMusic("Pass.mp3");
                    break;
                }

                break;

            case 6:
                turn.TurnWin(pageName.mainPage);
                break;
            }
        }
Exemple #4
0
        //------------ 放在 Form1 裡的 Runanimate() ----------//
        public void Action()
        {
            switch (step)
            {
            //遊戲進場
            case 0:
                step = 1;
                break;

            //遊戲開始
            case 1:
                Thread.Sleep(150);
                turnTable.rotates();

                if (click == 1)
                {
                }
                else if (click == 2)
                {
                    switch (actorChange)
                    {
                    case 0: greenDragon.Action(); break;

                    case 1: orangeDragon.Action(); break;

                    case 2: bird.Action(); break;

                    case 3: tinyDragon.Action(); break;

                    case 4: brownDragon.Action(); break;

                    case 5: blackDragon.Action(); break;

                    case 6: yellowDragon.Action(); break;
                    }
                }

                if (btn == 1)
                {
                    redButton.Action();
                }
                else if (btn == 2)
                {
                    blueButton.Action();
                }
                else if (btn == 3)
                {
                    greenButton.Action();
                }
                else if (btn == 4)
                {
                    purpleButton.Action();
                }

                if (turnTable.turnEnd)
                {
                    turnLabel.Invoke((Action) delegate { turnLabel.Text = "You win " + (Global.HP) + " eggs (HP)"; });
                    turnLabel.Invoke((Action) delegate { turnLabel.Location = new System.Drawing.Point(541, 200); });
                }
                if (turnTable.turnEnd)
                {
                    step = 2;
                }
                break;

            //遊戲出場
            case 2:
                Global.Name = nameTextbox.Text.ToString();
                if (Global.Mode == 2)
                {
                    turn.TurnWin(pageName.stage02);
                }
                else
                {
                    turn.TurnWin(pageName.stage01);
                }
                break;
            }
        }
Exemple #5
0
        public void Action()
        {
            switch (step)
            {
            //遊戲進場說明
            case 0:
                Thread.Sleep(100);
                river.Action();
                river2.AntiAction();
                // 說明頁切換
                switch (explainPage)
                {
                case 0:
                    mainCharacter.Action();
                    // mainCharater 動作
                    if (mainCanJump)
                    {
                        if (mainCharacter.Center.Y >= 280 && touch == 0)
                        {
                            mainCharacter.Move(0, -3 * jumpt);
                            jumpt++;
                        }
                        else if (mainCharacter.Center.Y <= 430)
                        {
                            touch = -1;
                            mainCharacter.Move(0, 3 * jumpt);
                            jumpt--;
                            if (mainCharacter.Center.Y > 430)
                            {
                                mainCanJump = false;
                                jumpt       = 0;
                                touch       = 0;
                            }
                        }
                    }

                    break;

                case 1:
                    mainCharacter.Action();
                    break;

                case 2:
                    // yellowDragon 動作
                    yellowDragon[0].Action();
                    if (yellowDragon[0].Center.Y <= 350)
                    {
                        isUp = false;
                    }
                    else if (yellowDragon[0].Center.Y >= 600)
                    {
                        isUp = true;
                    }
                    if (isUp)
                    {
                        yellowDragon[0].Move(0, -20);
                    }
                    else if (!isUp)
                    {
                        yellowDragon[0].Move(0, 20);
                    }
                    break;
                }


                break;

            //遊戲開始
            case 1:
                countTime.StartT();
                Thread.Sleep(90);
                music.PlayMusic(4);
                if (yellowDragon[0].Enemys == 0 && yellowDragon[1].Enemys == 0)
                {
                    if (winroad.Center.X < 520)
                    {
                        pinkDragon.Action();
                        pinkDragon.Move(-4, 0);
                        if (pinkDragon.isClick(mainCharacter.Center.X + 50, mainCharacter.Center.Y))
                        {
                            step = 4;
                        }
                    }
                    else
                    {
                        winroad.Move(-10, 0);
                        pinkDragon.Move(-10, 0);
                    }
                }

                // 所有圖片動畫
                if (winroad.Center.X > 520)
                {
                    river.Action();
                    river2.AntiAction();
                    grid.Action(-160, new Point(1900, 700), -10, 0);
                    background.Action(-440, new Point(1700, 340), -3, 0);
                }
                mainCharacter.Action();

                //---------------- Enemys
                for (int i = 0; i < yellow_NUM; i++)
                {
                    if (yellowDragon[i] != null)
                    {
                        yellowDragon[i].Action();
                        yellowDragon[i].Jump(grid.continuousActors[grid.continuousActors.Count - 1].Center, i);
                        if (yellowDragon[i].isClick(mainCharacter.Center.X, mainCharacter.Center.Y))
                        {
                            Global.HP -= 1;
                            music.PlayMusic(1);
                            if (Global.HP <= 0)
                            {
                                step = 3;
                            }
                            mainCharacter.Motion(2);
                        }
                        healthPts[i].Center = new Point(yellowDragon[i].Center.X, yellowDragon[i].Center.Y - 120);
                        healthPts[i].Health(yellowDragon[i].HP, 5);
                    }
                }

                // 恐龍是否走在路上
                touch = 0;
                for (int i = 0; i < grid.continuousActors.Count; i++)
                {
                    if (grid.continuousActors[i].isClick(mainCharacter.Center.X - 15, mainCharacter.Center.Y + 60))
                    {
                        touch++;
                    }
                }

                // 恐龍動作(跳/墜落)
                if (ispower && jumpt > -10)
                {
                    jumpt--;
                }
                if (isjump)
                {
                    if (jumpt < 2)
                    {
                        mainCharacter.Move(0, -30 + jumpt);
                    }
                    else
                    {
                        isjump = false;
                        jumpt  = 0;
                    }

                    jumpt++;
                }
                else if (winroad.Center.X <= 750)
                {
                    mainCharacter.Center = new Point(mainCharacter.Center.X + 4, 550);
                }
                else if (touch == 0)
                {
                    mainCharacter.GMove(0, 3);
                }

                // 恐龍扣血
                if (mainCharacter.Center.Y > 950)
                {
                    Global.HP -= 1;
                    music.ContiPlayMusic("drop.wav");
                    if (Global.HP <= 0)
                    {
                        step = 3;
                    }
                    mainCharacter.Motion(2);
                    mainCharacter.Center = new Point(190, 190);
                    mainCharacter.t      = 0;
                    isjump = false;
                }

                // 計時直到碰見粉紅
                if (!pinkDragon.isClick(mainCharacter.Center.X, mainCharacter.Center.Y))
                {
                    countTime.EndT();
                }
                break;

            //遊戲勝場
            case 2:
                music.StopMusic("cave2.wav");
                turn.Turn(pageName.mainPage);
                break;

            //遊戲敗場
            case 3:
                music.StopMusic("cave2.wav");
                turn.Turn(pageName.mainPage);
                break;

            case 4:
                music.PlayMusic("Pass.mp3");
                Ranker ranker = new Ranker();
                ranker.Load();
                ranker.Clear();
                ranker.ShowRank(0);
                step = 2;
                break;
            }
        }
Exemple #6
0
        //---------------- 加在 Form1.Thread 裡 ----------------//
        public void Move()
        {
            switch (step)
            {
            //遊戲進場
            case 0:
                Thread.Sleep(100);
                if (explain != null)
                {
                    explain.Action();
                }

                break;

            //遊戲開始
            case 1:
                music.ContiPlayMusic("fire2.mp3");
                //在Thread裡面的動作記得要睡覺。
                countTime.StartT();
                Thread.Sleep(50);
                mainCharactor.Action();
                blackDragon.Action();
                redfire.Action();
                bluefire.Action();

                //background.Center = new Point(background.Center.X + 30, background.Center.Y - 30);
                //background.Center = new Point(background.Center.X - 30, background.Center.Y + 30);

                //----------------  clouds
                clouds.Action(-150, new Point(1300, 0 + 50 * randomizer.Next(1, 5)), -1, 0);
                countTime.EndT();
                break;

            //遊戲勝場
            case 2:
                music.StopMusic("fire2.mp3");
                turn.TurnWin(pageName.stage03);
                music.PlayMusic("burned.mp3");
                break;

            //遊戲敗場
            case 3:
                music.StopMusic("fire2.mp3");

                turn.TurnGameOver(pageName.mainPage);
                break;

            //遊戲過關
            case 4:
                music.PlayMusic("Pass.mp3");
                Ranker ranker = new Ranker();
                ranker.Load();
                ranker.Clear();
                ranker.ShowRank(2);
                step = 5;
                break;

            case 5:
                turn.TurnWin(pageName.mainPage);
                break;
            }
        }