예제 #1
0
        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;
            }
        }
예제 #2
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;
            }
        }