童晶老師的遊戲開發課程作業 實時時鐘的實現

2022-06-11 12:48:10 字數 2514 閱讀 8635

此作業的要求參見[

作業要求

課程** [

專案名稱及分值

遊戲名稱

滿分分值

功能點提示

實時時鐘

20當前時刻、繪製指標

作業提交要求

除**及git以外,要求 wbs、psp,要求使用部落格報告完成的功能和截圖,講解

關鍵技術和**片斷。其中wbs要求包括不限於每個子任務的工時估算時間和實

際耗時,精確到分鐘。子任務可以包括分析、設計、**、測試、除錯、文件,

鼓勵精確到二級子任務如功能點等。

專案git位址

專案psp

型別任務

開始時間

結束時間

中斷時間(分鐘)

delta時間(分鐘)

準備課程學習

11.29 14:42

11.29 15:07025

程式設計功能實現

11.29 15:07

11.29 20:16

121188

程式設計除錯

11.29 19:27

11.29 20:16043

文件技術文件說明

11.30 9:50

11.30 13:36

14779

專案wbs

關鍵技術

在標頭檔案中加入include,繪製圖形舉例:

void main()

繪製靜態秒針

int center_x, center_y;  //中心座標,秒針的起始座標

center_x = width/2;

center_y = high/2;

int secondlength; //秒鐘的長度

secondlength = width / 5;

int secondend_x, secondend_y; //秒鐘的終點座標

秒針根據時間轉動

使用getlocaltime(&ti)獲取系統時間,獲取秒針一秒鐘轉動的角度secondangle = (double)ti.wsecond * 2 * pi / 60,記錄秒針終點座標

secondend_x = (int)center_x + secondlength * sin(secondangle);

secondend_y = (int)center_y - secondlength * cos(secondangle);

時針、分針的繪製及轉動與秒針類似,具體**如下:

float secondangle = 0;//秒針對應轉動角度

systemtime ti; //定義變數儲存系統時間

beginbatchdraw();

while (1)

表盤繪製

表盤的繪製,主要難點在於刻度的繪製。將乙個表盤分割為60等份,0,15,30,45,60表示的是表盤0,3,6,9時間;5,10,20,25,35,40,50,55表示的是表盤的整點時間。用if...else可以實現。

此外,我在繪製表盤名稱時,使用outtextxy(center_x-20 , center_y + width/6, "我的時鐘")遇到了問題,第三個引數為字串,編輯器提示我當前的字元太多,查詢了outtextxy()函式的定義,用char儲存字串,理論上是沒有問題的,最後查明原因是由於字元編碼不匹配引起的。用 char 表示字元時,英文占用乙個位元組,中文占用兩個位元組。使用了unicode、 mbcs兩種編碼方式,導致char型別的編碼出錯。

解決辦法:可以參考

//繪製表盤邊緣

setlinestyle(ps_solid, 2);

setcolor(white);

circle(center_x, center_y, width / 4);

//繪製刻度

int x, y;

for (int i = 0; i < 60; i++)

else if (i % 5 == 0) //5,10,20,25,35,40,50,55

else

}

5.完成效果圖

童晶老師的遊戲開發課程作業 飛機大戰的實現

此作業的要求參見 作業要求 課程 專案名稱及分值 遊戲名稱 滿分分值 功能點提示 飛機大戰 50移動飛機 發射子彈 敵機移動 消滅敵機 被敵機撞擊 存檔讀檔 作業提交要求 除 及git以外,要求 wbs psp,要求使用部落格報告完成的功能和截圖,講解 關鍵技術和 片斷。其中wbs要求包括不限於每個...

來自童晶老師的遊戲開發課程作業 貪吃蛇

此作業的要求 版本控制 其中getstdhandle 獲取指定的標準裝置的控制代碼,coord 表示乙個字元在控制台螢幕上的座標,setconsolecursorposition 設定控制台游標位置。通過找到小蛇的舊蛇頭座標以及下一步的方向確定新蛇頭的位置。通過判定新蛇頭的位置是否是食物的位置來決定...

張曉東老師的清華龍星課程

8月5號到9號,作為龍星課程的發起者之一,俄亥俄州立 osu 計算機系主任張曉東教授到清華講快取儲存方面的課程。因為相對不很對口,前兩天實驗室有人去,但我正忙著寫程式和文章,沒有去聽。今天上午才去聽了,感覺非常有幫助,不僅在知識技術層面上,還包括做學問的方法,思考問題的方法等等。張老師經常回國做講座...