iT邦幫忙

2022 iThome 鐵人賽

DAY 9
0
影片教學

視窗程式設計系列 第 9

【Day9】青蛙過街遊戲,與車子A到的處理

  • 分享至 

  • xImage
  •  

嗨,大家好,今天是視窗程式設計第九天的教學影片,在之前的影片已經成功讓車子做移動,同時也讓青蛙透過按鍵的觸發做出移動,而今天要來處理當青蛙碰到車子時,產生碰撞時的處理。

判斷兩張圖片是否產生碰撞,其實就是判斷兩張圖片的邊界是否有碰到,在此程式撰寫的語法為:

if( 圖片一名稱.Bounds.IntersectsWith( 圖片二名稱.Bounds) )
{
    // 撞到後執行的程式碼
}

也就是當兩張圖片的邊界有交集到時,就執行 if 內的程式碼,而在這次遊戲中,我們希望讓兩張圖片不再移動,並且顯示遊戲結束的字句,讓使用者知道已經撞到了。遊戲結束的字句採用 label 控制項,並且將 Visible 屬性設為 false,也就是在遊戲一開始時是不會看到它的存在。

同時新增一個 bool 型別的變數,來判斷是否產生過碰撞,若沒有(值為false),則在按鍵按下時可經由 KeyPress function 來做對應處理,若產生碰撞,則將該變數設為 true,使 KeyPress function 無法再處理鍵盤按鍵的輸入,並將 timer 做停止,使青蛙和汽車的圖片呈現靜止,最後將 label 的 Visible 屬性設為 true,就可以達成遊戲結束的效果。

關於碰撞條件內的程式如下:

if( pictureBox_frog.Bounds.IntersectsWith(pictureBox_car.Bounds) )
{
    game_state = true; // 表示碰撞
    label_game_state.Visible = true; // 顯示遊戲結束的 label
    timer1.Stop(); // 車子不再做移動
}

以上是今天的教學。

Yes


上一篇
【Day8】製作青蛙過街遊戲,透過鍵盤控制青蛙移動
下一篇
【Day10】青蛙成功過街了!
系列文
視窗程式設計30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言