上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
Okerofujin 略有貢獻的成員
註冊時間: 2007-10-19 文章: 71
-40.53 果凍幣
|
發表於: 2009-2-3, PM 10:11 星期二 文章主題: 問題 |
|
|
問題
Okerofujin 在 2018-7-5, PM 11:34 星期四 作了第 1 次修改 |
|
回頂端 |
|
|
babu61509 散播福音的祭司
註冊時間: 2007-08-26 文章: 142
681.01 果凍幣
|
發表於: 2009-2-4, AM 10:34 星期三 文章主題: Re: [求助] 畫面顯示不出來 |
|
|
因為沒有new (倒
player1 是指標,沒空間給它放當然會有錯誤!
==============[解決方法]=================
最最簡單的解決方法 :
在 Game::Run 函式的第一行貼上
Player1 = new Player();
就解決了.
==============[建議事項]
1. 請開啟 偵錯 功能.
既然都已經選擇用會讓人懶惰的編輯器了!
請開啟 偵錯 吧!
代碼: |
1. 專案屬性的 組態屬性 的 C/C++ 的 一般 的 偵錯資訊格式 選 C7相容
2. 專案屬性的 組態屬性 的 C/C++ 的 最佳化 的 最佳化 選 停用
3. 專案屬性的 組態屬性 的 連結器 的 偵錯 的 產生偵錯資訊 選 是
|
2. Game.h 那些不用設成靜態吧= _= ,上面加個 #include "Player.h",把靜態都弄掉,Game.cpp的 include player.h可以去掉,重新定義那邊也可以去掉.
p.s 程式流程其實可以改一下,既然都已經把初始化寫成一個函式了,也不必通通擠在Run裡面0 w0 _________________ 已經畢業了!! |
|
回頂端 |
|
|
Okerofujin 略有貢獻的成員
註冊時間: 2007-10-19 文章: 71
-40.53 果凍幣
|
發表於: 2009-2-8, AM 12:21 星期日 文章主題: |
|
|
問題
Okerofujin 在 2018-7-5, PM 11:34 星期四 作了第 1 次修改 |
|
回頂端 |
|
|
babu61509 散播福音的祭司
註冊時間: 2007-08-26 文章: 142
681.01 果凍幣
|
發表於: 2009-2-8, PM 12:56 星期日 文章主題: |
|
|
這是動態宣告跟靜態宣告的差別。
static 指的是靜態宣告
也就是說,程式一開始就會分配一塊記憶體給他,直到程式結束才會把它釋放掉(也要看宣告的位置,還有變數生命週期)。
其實DX裝置用靜態宣告是OK的(遊戲幾乎從頭到尾都會用到)
不過載入的資料(圖像、音樂等等),用動態會比較好~ (除非遊戲從頭到尾都是那些東西=_=)
用不到的時候可以釋放掉以節省資源。 _________________ 已經畢業了!! |
|
回頂端 |
|
|
Okerofujin 略有貢獻的成員
註冊時間: 2007-10-19 文章: 71
-40.53 果凍幣
|
發表於: 2009-2-9, AM 3:41 星期一 文章主題: 問題 |
|
|
問題
Okerofujin 在 2018-7-5, PM 11:34 星期四 作了第 1 次修改 |
|
回頂端 |
|
|
babu61509 散播福音的祭司
註冊時間: 2007-08-26 文章: 142
681.01 果凍幣
|
發表於: 2009-2-10, PM 12:12 星期二 文章主題: Re: [求助] 畫面顯示不出來 |
|
|
有沒有 MFC 高手能說明一下視窗建立流程阿XD?
我看你的程式是直接建立一個視窗把它SHOW出來而已。
是不是因為沒向 OS 註冊視窗,所以X鍵沒反應,改 主迴圈 似乎也沒用?
查網路上資料,MFC建立視窗的流程 :
1. 塡 WNDCLASS 或 WNDCLASSEX 。
2. 用 RegisterClass() 或 RegisterClassEx() 向OS註冊 。
3. 用 CreateWindow() 或 CreateWindowEx() 建立視窗 。
4. 用 ShowWindow() 跟 UpdateWindow(hWnd) 把它顯示出來。
(這只是步驟而已,有沒有高手能詳細說明一下理由,也不用講太深,只要講為什麼要這樣做就可以了@v@)
不過你的程式跳過了1跟2耶... (還能顯示出來真神奇XD)
在想是不是因為沒註冊所以msg收不到,而msg收不到一直在while(true)裡面跑,因此CPU吃滿滿。(執行的時候按鈕出現的很慢就是因為該程式把CPU吃光了)
p.s 那個程式流程,我想了又想還是不要講好了0 _0 (畢竟只是我自己的想法)
讓你自己去思考,怎樣寫程式看起來會簡潔又明瞭。
提示 : 把程式的流程寫出來,再分類動手寫。 _________________ 已經畢業了!! |
|
回頂端 |
|
|
songfat 時常出沒的會員
註冊時間: 2008-01-25 文章: 34
192.68 果凍幣
|
發表於: 2009-2-10, PM 12:52 星期二 文章主題: Re: [求助] 畫面顯示不出來 |
|
|
babu61509 寫到: | 有沒有 MFC 高手能說明一下視窗建立流程阿XD?
我看你的程式是直接建立一個視窗把它SHOW出來而已。
是不是因為沒向 OS 註冊視窗,所以X鍵沒反應,改 主迴圈 似乎也沒用?
查網路上資料,MFC建立視窗的流程 :
1. 塡 WNDCLASS 或 WNDCLASSEX 。
2. 用 RegisterClass() 或 RegisterClassEx() 向OS註冊 。
3. 用 CreateWindow() 或 CreateWindowEx() 建立視窗 。
4. 用 ShowWindow() 跟 UpdateWindow(hWnd) 把它顯示出來。
|
你說的這個不是MFC,而是用win32API建立視窗的流程 |
|
回頂端 |
|
|
skyvoice 偶而上來逛逛的過客
註冊時間: 2009-01-22 文章: 14
128.78 果凍幣
|
發表於: 2009-2-10, PM 4:43 星期二 文章主題: Re: [求助] 畫面顯示不出來 |
|
|
babu61509 寫到: | 我看你的程式是直接建立一個視窗把它SHOW出來而已。
是不是因為沒向 OS 註冊視窗,所以X鍵沒反應,改 主迴圈 似乎也沒用?
查網路上資料,MFC建立視窗的流程 :
1. 塡 WNDCLASS 或 WNDCLASSEX 。
2. 用 RegisterClass() 或 RegisterClassEx() 向OS註冊 。
3. 用 CreateWindow() 或 CreateWindowEx() 建立視窗 。
4. 用 ShowWindow() 跟 UpdateWindow(hWnd) 把它顯示出來。
(這只是步驟而已,有沒有高手能詳細說明一下理由,也不用講太深,只要講為什麼要這樣做就可以了@v@)
不過你的程式跳過了1跟2耶... (還能顯示出來真神奇XD)
在想是不是因為沒註冊所以msg收不到,而msg收不到一直在while(true)裡面跑,因此CPU吃滿滿。(執行的時候按鈕出現的很慢就是因為該程式把CPU吃光了) |
它用系統內建的 "#32770" (Dialog Box) 視窗類別,已註冊過了不用再註冊,直接建立視窗就可以
但是它沒有處理 WM_CLOSE 訊息,當按下 X 按鈕並不會關閉視窗
要能關閉視窗有以下方式:
1. 使用預設的 DefWindowProc 視窗訊息程序,此程序有處理 WM_CLOSE,預設處置是摧毀視窗
2. 攔截 WM_CLOSE 訊息,並摧毀視窗
3. 直接摧毀視窗 |
|
回頂端 |
|
|
Okerofujin 略有貢獻的成員
註冊時間: 2007-10-19 文章: 71
-40.53 果凍幣
|
發表於: 2009-2-10, PM 10:05 星期二 文章主題: 問題 |
|
|
問題
Okerofujin 在 2018-7-5, PM 11:34 星期四 作了第 1 次修改 |
|
回頂端 |
|
|
babu61509 散播福音的祭司
註冊時間: 2007-08-26 文章: 142
681.01 果凍幣
|
發表於: 2009-2-11, AM 9:57 星期三 文章主題: Re: [求助] 畫面顯示不出來 |
|
|
skyvoice 寫到: |
它用系統內建的 "#32770" (Dialog Box) 視窗類別,已註冊過了不用再註冊,直接建立視窗就可以
但是它沒有處理 WM_CLOSE 訊息,當按下 X 按鈕並不會關閉視窗
要能關閉視窗有以下方式:
1. 使用預設的 DefWindowProc 視窗訊息程序,此程序有處理 WM_CLOSE,預設處置是摧毀視窗
2. 攔截 WM_CLOSE 訊息,並摧毀視窗
3. 直接摧毀視窗 |
能不能直接貼個範例出來呢
我就算把HPkon的視窗訊息主迴圈改成這樣還是沒辦法關掉。
代碼: |
while( msg.message != WM_CLOSE )
{
if( PeekMessage( &msg , hWnd , 0U , 0U , PM_REMOVE ) )
{
if( msg.message == WM_QUIT || msg.message == WM_DESTROY || msg.message == WM_CLOSE)
{
PostQuitMessage(0);
break;
}
TranslateMessage( &msg );
DispatchMessage( &msg );
}
else
{
this->Render();
}
}
|
_________________ 已經畢業了!! |
|
回頂端 |
|
|
skyvoice 偶而上來逛逛的過客
註冊時間: 2009-01-22 文章: 14
128.78 果凍幣
|
|
回頂端 |
|
|
|