画面外に出た部分の描画内容の消滅
Re: 画面外に出た部分の描画内容の消滅
C#,VBでGameをつくるときは考えなくてもいいので気がつかなかったのですがC/C++では”再描画”は必要なようです。
http://wisdom.sakura.ne.jp/system/winap ... index.htmlに私が勉強したC言語のページがあります。http://wisdom.sakura.ne.jp/system/winap ... win35.htmlの内容とhttp://wisdom.sakura.ne.jp/system/winap ... win34.htmlの内容は必須と思われます。
C言語の私のホームページのメモを読んで気づきました。
http://wisdom.sakura.ne.jp/system/winap ... index.htmlに私が勉強したC言語のページがあります。http://wisdom.sakura.ne.jp/system/winap ... win35.htmlの内容とhttp://wisdom.sakura.ne.jp/system/winap ... win34.htmlの内容は必須と思われます。
C言語の私のホームページのメモを読んで気づきました。
Re: 画面外に出た部分の描画内容の消滅
ありがとうございます。
じっくり読み解いてみますね
今作っているのはゲームというよりは3Dモデルのモデリングツールみたいな感じでしょうか。
なので全画面モードで起動した事はないです。
ただゲームを見越して汎用性を高く組んでいる(つもり)なのでゲームを作るのにソースは使用すると思います。
じっくり読み解いてみますね
今作っているのはゲームというよりは3Dモデルのモデリングツールみたいな感じでしょうか。
なので全画面モードで起動した事はないです。
ただゲームを見越して汎用性を高く組んでいる(つもり)なのでゲームを作るのにソースは使用すると思います。
Re: 画面外に出た部分の描画内容の消滅
wc.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
の行をコメントアウトしたらどうなります?ついでにWndProcのWM_PAINTを処理しているところも省いて。
色々コードを取り除いた時の弊害かもしれませんが、インデントがめちゃくちゃだったり
WinMainが__stdcallになっていなかったり、ブロックの対応関係がとれていなかったり
DirectInputのヘッダとリンクが行われていなかったりでこのままのコード動きませんね。
動いても何も描画はされない状態・・・。
の行をコメントアウトしたらどうなります?ついでにWndProcのWM_PAINTを処理しているところも省いて。
色々コードを取り除いた時の弊害かもしれませんが、インデントがめちゃくちゃだったり
WinMainが__stdcallになっていなかったり、ブロックの対応関係がとれていなかったり
DirectInputのヘッダとリンクが行われていなかったりでこのままのコード動きませんね。
動いても何も描画はされない状態・・・。
Re: 画面外に出た部分の描画内容の消滅
ありがとうございます!wc.hdrBackgroundの行をコメントアウトしたら解決しました!シェーダ美味しい さんが書きました:wc.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
の行をコメントアウトしたらどうなります?ついでにWndProcのWM_PAINTを処理しているところも省いて。
色々コードを取り除いた時の弊害かもしれませんが、インデントがめちゃくちゃだったり
WinMainが__stdcallになっていなかったり、ブロックの対応関係がとれていなかったり
DirectInputのヘッダとリンクが行われていなかったりでこのままのコード動きませんね。
動いても何も描画はされない状態・・・。
WinMainに関してはWINAPIを書かなきゃいけないということをすっかり忘れていました。DXライブラリでもやったはずなんですけどね…(苦笑)
インデンがめちゃくちゃで読みづらいのはもともとです。
もっと読みやすいコードを意識しなければいけませんね…
DirectInputのヘッダとのリンクはそれに関したクラスを作って書いたヘッダでリンクさせてあるせいですね。コードをここにあげる際にリンクをさせる事を忘れていました。というか存在を忘れていました…
Re: 画面外に出た部分の描画内容の消滅
解決したようでよかったです。その方針で良いのか分かりませんが。
個人的には、DirectXを用いる際には(そのウィンドウに対しては)Win32APIを下手に混在させない事を意識しています。
それぞれが競合しあって、分かりやすいところでは先ほどの点滅が起こるというような事になってしまうので、WndProcでは最低限の事のみ、後はゲームロジックとしてループ内で記述する形ですね。
ツールを作成するということなので、見た目を表示する部分(今回の部分?)、操作を受け付ける部分(3D空間の操作等があるかもしれませんが)、データを操作する部分など、適切に切り分けて設計出来ると良いですね。応援しております。
個人的には、DirectXを用いる際には(そのウィンドウに対しては)Win32APIを下手に混在させない事を意識しています。
それぞれが競合しあって、分かりやすいところでは先ほどの点滅が起こるというような事になってしまうので、WndProcでは最低限の事のみ、後はゲームロジックとしてループ内で記述する形ですね。
ツールを作成するということなので、見た目を表示する部分(今回の部分?)、操作を受け付ける部分(3D空間の操作等があるかもしれませんが)、データを操作する部分など、適切に切り分けて設計出来ると良いですね。応援しております。
Re: 画面外に出た部分の描画内容の消滅
オフトピック
1. WM_ERASEBKGNDで何もせず1を返す
2. WM_PAINTで何もせずBeginPaintとEndPaintだけを呼び出す
をテンプレにしておくとよいと思います。
1.は背景消去処理そのものを無効化します。
2.はWM_PAINTメッセージが連投されないように無効領域を解消します。
2. WM_PAINTで何もせずBeginPaintとEndPaintだけを呼び出す
をテンプレにしておくとよいと思います。
1.は背景消去処理そのものを無効化します。
2.はWM_PAINTメッセージが連投されないように無効領域を解消します。
Re: 画面外に出た部分の描画内容の消滅
分かりました。アドバイスありがとうございます!ISLe さんが書きました:オフトピック1. WM_ERASEBKGNDで何もせず1を返す
2. WM_PAINTで何もせずBeginPaintとEndPaintだけを呼び出す
をテンプレにしておくとよいと思います。
1.は背景消去処理そのものを無効化します。
2.はWM_PAINTメッセージが連投されないように無効領域を解消します。