ミニテクニック - (2012/02/02 (木) 01:36:54) の編集履歴(バックアップ)
技術指南/ミニテクニック
このページはDxLibでゲームなり何なりを作る上で役に立つ?と思われるアルゴリズムorお役立ち情報の紹介です.
基本,3Dネタを紹介する予定です.
基本,3Dネタを紹介する予定です.
まず,DxLibのサンプルプログラムは見ておきましょう.多分参考になる技術も幾つかあるかもしれません.
あとは,同じくDxLibの掲示板もログを漁るなどしてみると意外と同じ疑問を持った方がいらっしゃるかもしれません.
あとは,同じくDxLibの掲示板もログを漁るなどしてみると意外と同じ疑問を持った方がいらっしゃるかもしれません.
- NowLoadingのやり方(非同期読み込み)@Ver.3.07
- 3Dゲームでの剣を振りかざした時の残像の作り方@DxLib掲示板
- DxLibとBullet(物理エンジン)との連携などについて@わくわくプログラミング自習室
- DxLib(DxLib.h)の関数一覧?@AEXE.のHP
- 3Dモデルのワイヤーフレーム表示方法
- 爆発などで画面を歪ませる処理@DxLib掲示板
- ウインドウのX(閉じる)を押された時のイベントを取得する処理@DxLib掲示板
DxLibのver.3.07から非同期読み込みが対応しました.
それにより,ゲームでよくあるNowLoading...といったロード中の演出も可能です.
関数のリファレンスに関しては本家のページを参考.
そのサンプルを以下に.(本家DxLibのリファレンスを一部改良)
それにより,ゲームでよくあるNowLoading...といったロード中の演出も可能です.
関数のリファレンスに関しては本家のページを参考.
そのサンプルを以下に.(本家DxLibのリファレンスを一部改良)
- #include "DxLib.h"
- //最大読み込み数
- #define load_max 20
- //main
- int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
- {
- int GrHandle[ load_max];//読み込みの配列
- int StartTime ;//開始時間
- int EndTime;//終了時間
- bool LoadFlag = false;//完了フラグ
-
- // ウインドウモードで起動
- ChangeWindowMode( TRUE ) ;
- // DXライブラリの初期化
- if( DxLib_Init() < 0 ) return -1 ;
-
- // 現在経過時間を得る
- StartTime = GetNowCount() ;
- // 非同期読み込み設定に変更
- SetUseASyncLoadFlag( TRUE ) ;
-
- // load_max回読み込む
- for(int i = 0 ; i < load_max ; i ++ )
- {
- MV1SetLoadModelUsePhysicsMode( DX_LOADMODEL_PHYSICS_DISABLE ) ;//一応非物理演算モードで読み込む
- GrHandle[ i ] = MV1LoadModel( "DxChara.x" ) ; //DXLIB付属モデル
- }
-
- // 同期読み込み設定に変更
- SetUseASyncLoadFlag( FALSE ) ;
- // 描画先を裏画面にする
- SetDrawScreen( DX_SCREEN_BACK ) ;
-
- // メインループ(何かキーが押されたらループを抜ける)
- while( ProcessMessage() == 0 && CheckHitKeyAll() == 0 )
- {
- // 画面のクリア
- ClearDrawScreen() ;
-
- //読み込み率のバーを表示
- DrawBox(50,50,550,50+20,GetColor(255,255,255),0);
- DrawBox(50,50,550-500/load_max*GetASyncLoadNum(),50+20,GetColor(255,255,255),1);
- if(GetASyncLoadNum() >0 )
- {//まだ読み込み中なら表示
- DrawFormatString( 0, 20, GetColor( 255,255,255 ), "Now Loading...[%d%]", (load_max-GetASyncLoadNum())*100/load_max ) ;
- }else
- {//読み込み完了動作
- if(LoadFlag == false)
- {//読み込み完了フラグがfalseならば
- EndTime = GetNowCount() ;// 現在経過時間を得る
- LoadFlag = true;
- }
- //まだ読み込み中なら表示
- DrawFormatString( 0, 20, GetColor( 255,255,255 ), "読み込み終了...何かキーを押し終了して下さい@読み込み時間:%d[ms]", EndTime - StartTime) ;
- }
- // 現在の非同期読み込みの数を描画
- DrawFormatString( 0, 0, GetColor( 255,255,255 ), "非同期読み込みの数 %d[最大数:%d]", GetASyncLoadNum(),load_max ) ;
-
- // 裏画面の内容を表画面に反映
- ScreenFlip();
- }
- // DXライブラリの後始末
- DxLib_End();
- // ソフトの終了
- return 0;
- }
-
http://i-libro.net/wpmu
もしかすると役に立つかも…
もしかすると役に立つかも…
http://www.aexe.net/DxlibH_305_func.htm
公式より更に踏み込んだ感じのリスト
公式より更に踏み込んだ感じのリスト
int MV1SetWireFrameDrawFlag( int MHandle, int Flag );//モデルをワイヤーフレームで描画するかどうかを設定する
上記の関数を用いて引数のFlag=TRUEとしてからMV1DrawModel(int MHandle);関数を使って表示するとワイヤーフレームでモデルが表示されます.
上記の関数を用いて引数のFlag=TRUEとしてからMV1DrawModel(int MHandle);関数を使って表示するとワイヤーフレームでモデルが表示されます.
- int model;//モデルの変数
- //中略
- MV1SetWireFrameDrawFlag(model,TRUE);//ワイヤーフレームの有効
- MV1DrawModel(model);//モデルの表示
-
http://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=2295
最新のライブラリでないと動かない関数を利用しているので注意(3.06f)
最新のライブラリでないと動かない関数を利用しているので注意(3.06f)
http://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=past&no=320
http://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=past&no=1602
勝手にウインドウを閉じられると困る場合には使えそうです.Ex.セーブデータなど...
http://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=past&no=1602
勝手にウインドウを閉じられると困る場合には使えそうです.Ex.セーブデータなど...