コード例 #1
0
 public Form1() //建構子
 {
     InitializeComponent();
     airplane          = new CPlane(Properties.Resources.bblueplane, new Point(200, 500));
     boss              = new CBoss(Properties.Resources.bboss1, 10, 200, 5);
     boss1             = new CBoss(Properties.Resources.bboss1, 10, 200, 5);
     boss2             = new CBoss(Properties.Resources.bboss2, 10, 400, 10);
     boss3             = new CBoss(Properties.Resources.bboss3, 10, 600, 15);
     laser             = new SoundPlayer(Properties.Resources.bulletsound);
     explosion         = new SoundPlayer(Properties.Resources.explodesound);
     ReturnBtn.Visible = false;
     ReturnBtn.Enabled = false;
     label2.Visible    = false;
     label3.Visible    = false;
     comboBox1.Items.Add("Easy");
     comboBox1.Items.Add("Normal");
     comboBox1.Items.Add("Hard");
     comboBox1.Text = "Normal";
 }
コード例 #2
0
        private void StartBtn_Click(object sender, EventArgs e) //開始按鈕
        {
            isGameOver           = false;
            isBoss               = false;
            gametime             = 20;
            stbn                 = 1;
            timer1.Enabled       = true;
            timer2.Enabled       = true;
            this.BackgroundImage = Properties.Resources.bg1;
            boss1                = new CBoss(Properties.Resources.bboss1, 10, 200, 5);
            boss2                = new CBoss(Properties.Resources.bboss2, 10, 400, 10);
            boss3                = new CBoss(Properties.Resources.bboss3, 10, 600, 15);
            stage                = 1;
            score                = 0;
            bullettype           = 0;
            item.isLive          = false;
            label1.Visible       = false;
            StartBtn.Visible     = false;
            StartBtn.Enabled     = false;
            setboss              = false;

            if (comboBox1.Text == "Easy") //設定難易度
            {
                bulletamount = 10;
            }
            else if (comboBox1.Text == "Normal")
            {
                bulletamount = 8;
            }
            else
            {
                bulletamount = 5;
            }
            comboBox1.Visible = false;
            comboBox1.Enabled = false;
        }
コード例 #3
0
        private void timer1_Tick(object sender, EventArgs e)
        {
            int test = rd.Next(0, 100);

            if (isBoss)               //BOSS 出場
            {
                if (setboss == false) //設定BOSS等級
                {
                    if (stage == 1)
                    {
                        boss = boss1;
                    }
                    else if (stage == 2)
                    {
                        boss = boss2;
                    }
                    else
                    {
                        boss = boss3;
                    }
                    setboss = true;
                }

                if (stage == 1) //第一級BOSS
                {
                    if (test < 10)
                    {
                        CBullet bullet;
                        bullet        = new CBullet(Properties.Resources.bossbullet, new Point(0, 0), 2, 0, 10);
                        bullet.pt.X   = boss.pt.X + (boss.rec.Width / 2) - (bullet.rec.Width / 2);
                        bullet.pt.Y   = boss.pt.Y + bullet.rec.Height;
                        bullet.isLive = true;
                        bossbullet.Add(bullet);
                    }
                }
                else if (stage == 2) //第二級BOSS
                {
                    if (test < 10)
                    {
                        CBullet bullet;
                        bullet        = new CBullet(Properties.Resources.bossbullet2, new Point(0, 0), 2, 0, 10);
                        bullet.pt.X   = boss.pt.X + (boss.rec.Width / 2) - (bullet.rec.Width / 2);
                        bullet.pt.Y   = boss.pt.Y + bullet.rec.Height;
                        bullet.isLive = true;
                        bossbullet.Add(bullet);
                    }
                }

                else if (stage == 3) //第三級 BOSS
                {
                    if (test < 10)
                    {
                        CBullet bullet;
                        bullet        = new CBullet(Properties.Resources.bossbullet3, new Point(0, 0), 2, 5, 10);
                        bullet.pt.X   = boss.pt.X + (boss.rec.Width / 2) - (bullet.rec.Width / 2);
                        bullet.pt.Y   = boss.pt.Y + bullet.rec.Height;
                        bullet.isLive = true;
                        bossbullet.Add(bullet);
                    }
                }

                enemyList.Clear(); //清空敵人小飛機
                airplane.Move();   //移動
                boss.Move();       //移動


                for (int i = 0; i < bulletList.Count; i++) //玩家子彈
                {
                    CBullet bm = bulletList[i] as CBullet;
                    bm.Move();

                    if (boss.Checkdie(bm)) //打到BOSS
                    {
                        score += 10;
                        bossbullet.Clear();
                        enemyList.Clear();
                        bulletList.Clear();

                        if (stage == 1) //進入下一關
                        {
                            this.BackgroundImage = Properties.Resources.bg2;
                        }
                        else if (stage == 2)
                        {
                            this.BackgroundImage = Properties.Resources.bg3;
                        }
                        else if (stage == 3)
                        {
                            isGameOver        = true;
                            ReturnBtn.Visible = true;
                            ReturnBtn.Enabled = true;
                            label3.Visible    = true;
                            isGameCleared     = true;
                        }
                        stage++;
                        gametime = 20; //重設BOSS出場時間
                        isBoss   = false;
                        setboss  = false;
                    }
                    if (!bm.isLive)
                    {
                        bulletList.Remove(bm);
                    }
                }

                for (int i = 0; i < bossbullet.Count; i++) //BOSS 子彈
                {
                    CBullet bb = bossbullet[i] as CBullet;

                    if (stage == 3)
                    {
                        bb.Move2();
                    }
                    else
                    {
                        bb.Move();
                    }
                    if (bb.CheckCrash(airplane.rec)) //是否打到玩家
                    {
                        explosion.Play();
                        isGameOver        = true;
                        label2.Visible    = true;
                        ReturnBtn.Visible = true;
                        ReturnBtn.Enabled = true;
                    }
                    if (bb.CheckBoom(bulletList)) //是否打到玩家子彈
                    {
                        bossbullet.Remove(bb);
                    }
                }
            }
            else //敵人小飛機
            {
                if (test < 10) //10%機率出現敵人小飛機
                {
                    CEnemy em = new CEnemy(Properties.Resources.rredplane, test);
                    enemyList.Add(em);
                }

                if (changebullet == 1) //道具掉落
                {
                    if (isItem == false)
                    {
                        item   = new CEnemy(Properties.Resources.item, test);
                        isItem = true;
                    }
                }
                airplane.Move();
                for (int i = 0; i < bulletList.Count; i++) //玩家子彈
                {
                    CBullet bm = bulletList[i] as CBullet;
                    bm.Move();
                    if (!bm.isLive)
                    {
                        bulletList.Remove(bm);
                    }
                }
                for (int i = 0; i < enemyList.Count; i++) //敵人小飛機
                {
                    CEnemy en = enemyList[i] as CEnemy;
                    en.Move();
                    if (en.CheckCrash(airplane.rec)) //撞到玩家飛機
                    {
                        explosion.Play();
                        isGameOver        = true;
                        label2.Visible    = true;
                        ReturnBtn.Visible = true;
                        ReturnBtn.Enabled = true;
                    }
                    if (en.CheckBoom(bulletList)) //撞到玩家子彈
                    {
                        enemyList.Remove(en);
                        score++;
                        explosion.Play();
                    }
                }

                item.Move2();                                             //道具移動
                if (item.CheckCrash(airplane.rec) && item.isLive == true) //玩家吃到道具
                {
                    bullettype  = 1;
                    item.isLive = false;
                }
                else if (item.isLive == false && bullettype == 0) //道具沒被吃到
                {
                    isItem       = false;
                    changebullet = 0;
                }
            }
            this.Invalidate(); //畫圖
        }