小屋創作

日誌2014-06-20 13:03

[程式設計] C#視窗(Form)單位控制方法 - 進階篇

作者:夜下月


同步發表於Ptt.cc C_Sharp版
https://www.ptt.cc/bbs/C_Sharp/M.1403239991.A.74B.html

使用 .NET Framework 4.5
http://www.microsoft.com/zh-tw/download/details.aspx?id=30653

進階篇

Q: 為什麼切換移動方向會卡卡的?
A: 因為Form1_KeyDown的事件處理,一次只能處理一個按鍵,
所以要解決這個問題,必須自己監聽按鍵。

以最基本的畫面更新速度FPS 30.0來說,這代表的是
每秒有30張禎數在跑(Frame Per Second),
也就是每秒處理30次畫面動作。

所以需要產一個Thread,每秒工作30次。
(可以試試把 FPS_PAGE 改成10看看)


而在C#中,若產生控制項的Thread與進行操作的Thread不同,會發生錯誤。
所以自訂一個控制項的委派方法去進行控制項操作(InvokeIfRequired)


另外在這個程式中,會用到兩個數學式
1. 求兩點距離
2. 單位移動位置


程式碼





註:
Keyboard.IsKeyDown 需要增加參考
1. PresentationCore.dll
2. WindowsBase.dll

並 using namesapce
System.Windows.Input


完成檔(僅exe)
http://ppt.cc/YuOr

5

2

LINE 分享

相關創作

20240427 遊戲進度:程式優化

台灣獨立遊戲《人造機械之翼》參展CooMIC²,體驗JRPG風格的浪漫飛行冒險

C語言列舉(enum)成員的走訪與避免被誤改

留言

開啟 APP

face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】