嗨,大家好,今天是視窗程式設計第二十天的影片教學,在昨天的教學影片當中,我們學到 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;
}
}
以上就是今天的教學。