電腦遊戲製作開發設計論壇 首頁 電腦遊戲製作開發設計論壇
任何可以在PC上跑的遊戲都可以討論,主要以遊戲之製作開發為主軸,希望讓台灣的遊戲人有個討論、交流、教學、經驗傳承的園地
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入 

Google
問題

 
發表新主題   回覆主題    電腦遊戲製作開發設計論壇 首頁 -> 遊戲程式高級班:DirectX、OpenGL及各種圖型函式庫
上一篇主題 :: 下一篇主題  
發表人 內容
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 果凍幣

發表發表於: 2009-2-11, PM 11:44 星期三    文章主題: Re: [求助] 畫面顯示不出來 引言回覆

babu61509 寫到:
能不能直接貼個範例出來呢

範例就在這 http://www.gamelife.idv.tw/viewtopic.php?t=368
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    電腦遊戲製作開發設計論壇 首頁 -> 遊戲程式高級班:DirectX、OpenGL及各種圖型函式庫 所有的時間均為 台灣時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
可以 在這個版面附加檔案
可以 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作