2016-07-26 55 views
0

我正在一個小型引擎,可以作爲獨立運行或在一個winform應用程序中運行。 到目前爲止,我得到了這兩個工作,唯一的問題是,在視覺工作室調試期間,winform應用程序的gamescreen更新緩慢,導致播放器滯後。本機C++ OpenGL託管C++ Winform C# - 調試過程中緩慢

但是,如果我打開創建.exe沒有調試器,它運行順利。

爲了讓我可以輕鬆編輯winform,查看我的更改並無延遲地玩遊戲我問你們是否可以幫助我。

你可以看到我的代碼在這裏:

https://github.com/insanepure/SweetEngine/

Sweet.Editor是C#WinForm的,它取決於Sweet.Wrapper,這是託管C++應用程序。這取決於Sweet.Game(對於遊戲特定的組件,也可以作爲獨立運行)和Sweet.Engine(這取決於Sweet Core等,但我抽象出來,所以你只需要在Sweet.Game中包含Sweet.Engine)

因此,該工具的工作原理是,它獲得特定Panel的HWND,然後使用該HWND創建引擎,而不是創建一個新的HWND。這是獨立和工具之間的唯一區別。

問題可能是因爲我在SweetEngine中運行我自己的循環。我試圖改變這一點,以便winform調用Update和Render,但是這在某種程度上比在單獨的循環中做得慢。 另外我不確定爲什麼這比創建應用程序調用Update和Render更快。

我遇到的另一個問題是我無法調試我的原生C++代碼,所以我不能進入它。這可以以某種方式解決嗎?

回答

0

切換到WPF並使用從usercontrol繼承的類,這種方式可以在調用OnPaint()時繪製,也可以使用計時器每秒調用OnPaint 60次。現在它工作得更好。