コースデザイン「役に立たない」 - ゲーム開発のアイデアに

二年生は、最初の大学のコース設計ソフトウェアを作った非常に興奮していた、私はあなたが本当のコンピュータの世界を見に行くされていることを感じて、とても早く先輩は私の仲間の先輩に良い影響を与えることを何依頼します次、私はC ++で言語を選択し、MFCは、私は一人だったので、それはプロットと設計テーブルのいくつかの避けられない、それはRPGも、いくつかの機能は、ゲームを行うために役立つ提供して......しかし、十分ではありません技術は、コードもゼロから書き始めているものを学ぶために少し、です、でも先生は、私は若すぎたようで何エンジンを私に尋ねられたとき......関与このクラスベースの問題がでている:MFC画像を表示する方法、機能制御を再マッピング再描画メッセージは、ダブルバッファリングを使用してフリッカ問題を解決するため、マルチスレッド表示画像、マルチスレッド制御変数、各種フラグ変数をグローバルタグを使用して(単純なトリックであります愚かな方法で)、計画およびランダムヒープソートなどの本の中でいくつかの簡単な計算タスク、だけでなく、PS技術を学び、彼は自分自身をZuoshaを持っていたすべての後に......(書き込むことができません)

さて、それはジュニア次の学期ですが、私はゲームの試作品を作った他のフレームワークとし、それが後に、ほぼ95彼らは中学校で再生するだけでなく、もう少し複雑な感情をプレイするときに、テキスト型のゲームの一種です。基本的な技術は、PSのゲームや無数の裁判官の文章のパイルアップを使用することです。クリエイティブゲームデザインは、それが困難であるが、最も難しい部分、機能的なデザインと革新的なアイデアやソフトウェアが最も稀であり、そして技術の開発であるだけでなく、人々の考え方、制限や上限があるでしょう。

最初の二年生のクラスベースの開発者のログは、右ここに掲載しました:

プロセスコードの構造を変更します:

バッファリングされていないスレッドが再描画されていない> - - >スレッドバッファの再描画を持っていません - >バッファはスレッドが再描画持っているかもしれワイヤレスプロセスがバッファリングされていない再描画されません。

過去のバージョン:

1.0ドラマの基本的な実現、無線プロセス制御、ダブルバッファ、無スキル、ノー経路探索。話を再生するときにクラッシュをクリックして、文字があまりにも速く点滅を移動します。

2.0スレッド制御を高め、コードの全体的な構造の変化、後は、クラッシュを解決する]をクリックし、画面のちらつき、初期増加のスキルの問題を解決しません。

ダブルバッファリングの修正のちらつきを高めようと、再びコードの3.0全体的な構造を変更し、失敗しました。

コードの構造に4.0再び大きな変化は、すべての描画を有効にダブルバッファの以前のバージョンの変化は、フリッカが消えるように、(マウスおよびキーボード応答またはスレッドの前)のOnPaintに配置されます。

5.0コードのバグがいくつかの変更が発生したため、物語の構造を改善し、キャストスキルを向上させます。

6.0リリース位置のスキルを調整し、決意のモンスターに対して攻撃のスキルを向上させます。

7.0-書かれたシーンやプロットボス、AIの周りに自由に移動するボス、ボスの人はボスの決意を殺し、AIの追撃AI、ボス選択スキルを放棄します。

デバッグの経験:

窓DCを得るために必要な負荷のMFC、マッピングするための方法のCImageクラスを描き、破壊するには、リソースを解放することを忘れないでください。
でstdafx.hをしてstdafx.cppにおけるヘッダファイルの導入。
そのようなメニューバーとして、デフォルトのものを、削除、は、MainFrm.cppは、ファイルを変更する必要があります。
ウィンドウのLandOfHonor.cppのサイズを変更します。
CChildView.hの主要部分とCChildView.cpp内のコード。
ファイル名とパスが正しくなければならない、そうでない場合は時間が表示されます!=ビットマップなどは、例外を中止します。
最後に、紛争、省スペース型の変数名を避けるために、読み込んだ画像を削除することを忘れない未完成、文ブロックDCを解放することを忘れないでください。
アルゴリズムによって、画面に従って、あなたは、表示するためにマップするために、アルゴリズムマップは地図表示アルゴリズムの順序に従って、順序を表示することを示したいと思います。
ゲームが条件と応答を決定するために注意を払うように、グラフを貼り付ける必要があるかを決定するためのフラグの多くを必要と図面の多くを描画するすべてのステップ、同じ時間になります。
そのようなマップ、生と死のモンスター、および0,1は、フラグを使用して完了できるかどうかについての質問に、家に入るなど、多くの条件、。
マッピングし続けながら多量、及び点滅によって引き起こされる画像、および処理スレッドできカドガンDC緩衝液(ダブルバッファ)からです。
バックグラウンドでの透明性の問題は、PS(魔法の杖と選択削除)、そして透明機能を削除しました。
一部重複したコードは、プログラムが退屈ではない最適化されます、パッケージを合併しました。
コントロールの複数のスレッドでは、コードの構造と経験がはるかに良いでしょう。
トロフィーを拾って殺害、モンスターの死は、スレッドのサポートを必要とします。
OnPaintに配置するすべての描画コード。
テキスト記述は、MFCのAPIで使用することができ、あなたは、省スペース、より柔軟なディスプレイ物語を外部画像への依存を減らすことができます。 

二つのアプローチ:
//応答:マーカー、無効- >のOnPaint:描かれたマーク、効果的な  
応答@:マーカー、タイマー- >タイマー:無効- >のOnPaint:描かれたマークを、効果的な
/ *のcDC = this-> GetDC( ); // DCの現在のウィンドウを取得     
GetClientRect(&クライアント); //ウィンドウサイズを取得 
cacheDC.CreateCompatibleDC(NULL); //は、DCバッファを作成  
cacheCBitmap.CreateCompatibleBitmap(CDC、client.Widthを()、client.Height());
cacheDC.SelectObject(&cacheCBitmap);
cacheDC.FillSolidRect(クライアント、CDC-> GetBkColor()); //元のクライアント領域によって背景を埋める、または黒になり
...... ..//コード。
//最後に、DCウィンドウにDC出力バッファの内容  
CDC->のBitBlt(0、0、client.Width()、client.Height()、&cacheDC、0、0、SRCCOPY);
ValidateRect( &クライアント); //描画領域が有効になる作る                       
cacheDC.DeleteDC(); //は、DCバッファリリース  
cacheCBitmap.DeleteObjectを(); //オブジェクトを解放  
ReleaseDCの(CDC); //は、DCを解放     
} * /

おすすめ

転載: blog.csdn.net/hhr603894090/article/details/91894584