iT邦幫忙

2022 iThome 鐵人賽

DAY 20
0
影片教學

視窗程式設計系列 第 20

【Day20】用 Array 建立磚塊

  • 分享至 

  • xImage
  •  

嗨,大家好,今天是視窗程式設計第二十天的影片教學,在昨天的教學影片當中,我們學到 Array 的基本概念,今天要透過 Array 的實作產生遊戲中的磚塊。

關於遊戲的磚塊要先進行宣告:

// 產生的磚塊存入的 array
Label[] brick = new Label[36];
// 參數分別為:產生行數,產生列數,每個磚塊的間距,brick[0] 所在高度,brick[0] 所在水平位置,用來存取brick[i]
int brickRow = 6, brickColumn = 6, brickPadding = 30, brickSetTop = 50, brickSetLeft = 80 , i = 0;

接著,由於希望在form載入時就顯示,將下列程式碼打在Form1_Load內:

// 迴圈用來產生 6*6 的磚塊
for (var c = 0; c < brickColumn; c++)
{
    for (var r = 0; r < brickRow; r++)
    {
        brick[i] = new Label();
        brick[i].Tag = "brick";
        brick[i].BackColor = Color.White;
        //brick[i].BackColor = Color.FromArgb(100, 0, 0,255); 透過rgb
        brick[i].Size = new System.Drawing.Size(100, 20);
        brick[i].Location = new Point((c * (120 + brickPadding)) + brickSetLeft,
                           (r * (20 + brickPadding)) + brickSetTop);
        
        brick[i].BringToFront();
        this.Controls.Add(brick[i]);
        i++;
    }
}

而磚塊碰到球的處理情形可以這樣寫就是採用foreach的方式去判斷:

foreach (Control x in this.Controls)
{
    if (x.Tag == "brick" && pictureBox_ball.Bounds.IntersectsWith(x.Bounds))
    {
        this.Controls.Remove(x); // 移除該磚塊
        dy = -dy;
    }
}

以上就是今天的教學。

Yes


上一篇
【Day19】關於Array的簡介
下一篇
【Day21】鍵盤壞了怎麼辦?沒關係,透過滑鼠也能移動板子
系列文
視窗程式設計30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言