[問題] 打磚塊遊戲
設定一個隨時間改變位置的球
碰到方塊時會改變方向
碰到牆壁時會改變方向
方塊被碰到後會消失
之前我的作法
把一個磚塊命名為brick1
把球命名為picball
然後是程式碼
if ((brick1.Visible) && (Rectangle.Intersect(picBall.Bounds, brick1.Bounds)
!= Rectangle.Empty))
{
vy = -vy;
brick1.Visible = false; //藉由隱藏brick2達成"消掉"的效果
}
當球和磚塊在畫面上接觸後
球的Y方向改變
磚塊變為隱藏
沒啥問題
問題在之後
我用for迴圈做了很多磚塊
int row=3;
int col=10;
int r ;
int c ;
bricks = new PictureBox[row, col];
for ( r=0;r < row; r++)
{
for ( c = 0; c < col; c++)
{
bricks[r, c] = new PictureBox();
bricks[r, c].Width = w;
bricks[r, c].Height = h;
bricks[r, c].Image = pictureBox1.Image;
bricks[r, c].Left = c * w;
bricks[r, c].Top = r * h;
this.Controls.Add(bricks[r, c]);
}
}
這樣就跳出很多個方塊來了
可是在消磚塊這個地方出了問題
我不知道球要去和誰"碰"?
如果intersect的對象是bricks[2,3]這樣
球只會和固定的磚塊產生反應
而且磚塊只有消失一瞬間
如果intersect的對象是bricks[r-1,c-1]這樣
球同樣也只會和固定的磚塊(最右下角)產生反應
而且也只是消去一瞬間而已
請問這種狀況要怎麼處理?
感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.230.77.67
→
03/14 08:22, , 1F
03/14 08:22, 1F
→
03/14 08:23, , 2F
03/14 08:23, 2F
→
03/14 08:23, , 3F
03/14 08:23, 3F
→
03/14 08:25, , 4F
03/14 08:25, 4F
推
03/09 12:33, , 5F
03/09 12:33, 5F
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章