此作業的要求參見[
作業要求
課程** [
專案名稱及分值
遊戲名稱
滿分分值
功能點提示
飛機大戰
50移動飛機、發射子彈、敵機移動、消滅敵機、被敵機撞擊、存檔讀檔
作業提交要求
除**及git以外,要求 wbs、psp,要求使用部落格報告完成的功能和截圖,講解
關鍵技術和**片斷。其中wbs要求包括不限於每個子任務的工時估算時間和實
際耗時,精確到分鐘。子任務可以包括分析、設計、**、測試、除錯、文件,
鼓勵精確到二級子任務如功能點等。
專案git位址
專案psp
型別任務
開始時間
結束時間
中斷時間(分鐘)
delta時間(分鐘)
分析技術原型、函式設計
12.07 8:07
12.07 9:23076
程式設計實現英雄機能按鍵移動
12.07 9:51
12.07 10:16025
程式設計實現子彈的移動
12.07 10:20
12.07 11:03043
程式設計實現敵機的移動
12.07 11:03
11.29 11:26023
程式設計實現子彈擊中敵機
12.07 11:30
11.29 12:18048
程式設計實現得分的變化
12.08 14:00
12.08 14:14014
程式設計實現多發子彈
12.08 14:14
12.08 15:38084
程式設計實現多個敵機
12.08 15:40
12.08 16:54074
程式設計英雄機與敵機碰撞
12.08 18:14
12.08 19:23069
部落格技術文件說明
12.08 20:30
12.08 22:11
0101
總耗時0
559min
專案wbs
任務型別
估計時間
實際用時
----
----
----
技術原型、函式設計
45min
76min
訊息迴圈
25min
15min
獲取按鍵訊息
30min
25min
物件移動
90min
56min
隨機數生成
10min
20min
碰撞檢測
90min
117min
邊界控制
30min
67min
關鍵技術
我機:繪製->按鍵控制移動->被敵機擊中,遊戲結束
子彈:繪製->按鍵控制子彈發射->子彈上移
敵機:繪製->敵機下移->子彈擊中,敵機消失
介面繪製
獲取按鍵訊息
物件移動
隨機數生成
碰撞檢測
邊界控制
void show() //介面顯示
printf("\n");
}printf("得分:%d",score);
};
通過kbhit()函式獲取按鍵訊息,從而控制英雄級的移動及子彈的發射狀況。
void getuserinput() // 與使用者輸入有關的更新
if ((input == 'd') && position_y < width - 2)
if ((input == 'w') && position_x > 1)
if ((input == 's') && position_x < high - 2)
if (input == ' ')}};
更新敵機及子彈的位置,需要先將子彈原始位置的陣列值置為0,再改變子彈縱座標位置後,陣列值置為2。敵機位置的改變原理同子彈一致。
void updatebullet() //更新子彈位置}}
}};
子彈與敵機的碰撞檢測做的較簡單,迴圈遍歷整個陣列,如果當前位置的陣列值為2,則表示此處為子彈,再判斷該位置的座標與敵機座標是否相同,相同則表示擊中敵機,分數加1。與此同時子彈與敵機均消失,然後生成新的敵機。下面給出的**是多台敵機的碰撞檢測情況。
同理,如果當前位置的陣列值為1,表示英雄機在此處,判斷敵機座標是否與英雄機座標相同,相同則遊戲結束。
void hitenemy() }}
if (game[i][j] == 1) //我機與敵機相撞}}}}}
採用了while迴圈來重繪頁面,為了控制頁面的重繪游標的閃動,引入了hidecursor()函式來隱藏游標。
//隱藏游標函式
void hidecursor()
;//第二個值為0表示隱藏游標
setconsolecursorinfo(getstdhandle(std_output_handle), &cursor_info);
}
最終效果
來自童晶老師的遊戲開發課程作業 貪吃蛇
此作業的要求 版本控制 其中getstdhandle 獲取指定的標準裝置的控制代碼,coord 表示乙個字元在控制台螢幕上的座標,setconsolecursorposition 設定控制台游標位置。通過找到小蛇的舊蛇頭座標以及下一步的方向確定新蛇頭的位置。通過判定新蛇頭的位置是否是食物的位置來決定...
童晶老師的遊戲開發課程作業 實時時鐘的實現
此作業的要求參見 作業要求 課程 專案名稱及分值 遊戲名稱 滿分分值 功能點提示 實時時鐘 20當前時刻 繪製指標 作業提交要求 除 及git以外,要求 wbs psp,要求使用部落格報告完成的功能和截圖,講解 關鍵技術和 片斷。其中wbs要求包括不限於每個子任務的工時估算時間和實 際耗時,精確到分...
最簡單的飛機遊戲 根據童老師寫出來的,emmmm
emmmm,說實在的一開始c語言很無聊,但是童老師的課很有意思,就跟著開始做點小遊戲。作為乙個測繪的孩子,正在試圖學好程式設計。這是乙個最簡單的飛機遊戲,可以控制飛機前有左右移動來消除靶子並且計分。靶子是偽隨機數生成的位置,試圖在同一行隨機移動,成功。試圖在乙個區域內隨機移動,效果不好。暫時不清楚為...