DXライブラリ 総合スレッド その6
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2010/02/25(木) 23:29:14ID:hEXp+gEaGUIのゲームを比較的容易に作成する事を可能にする、
「DXライブラリ」に関するスレッドです。
DXライブラリに関するテクニックなどの情報交換などを行う事で、
多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。
【公式】
http://homepage2.nifty.com/natupaji/DxLib/
【過去スレ】
DXライブラリ 総合スレッド
http://pc11.2ch.net/test/read.cgi/gamedev/1197468399/
DXライブラリ 総合スレッド 2008
http://pc11.2ch.net/test/read.cgi/gamedev/1224923873/
DXライブラリ 総合スレッド その3
http://pc11.2ch.net/test/read.cgi/gamedev/1238429676/
DXライブラリ 総合スレッド その4
http://pc11.2ch.net/test/read.cgi/gamedev/1249822550/
DXライブラリ 総合スレッド その5
http://pc11.2ch.net/test/read.cgi/gamedev/1259912953/
0173名前は開発中のものです。
2010/03/18(木) 19:15:51ID:CYbX+by90174名前は開発中のものです。
2010/03/18(木) 19:27:54ID:8SEHg7PP0175名前は開発中のものです。
2010/03/18(木) 19:37:44ID:FxV9Fubh0176名前は開発中のものです。
2010/03/20(土) 10:54:34ID:huSKeekq皆さんのおかげでビルボードにする事ができますた!有り難う!!!
しかし、問題がまた一つ…
マップに障害物として、テクスチャ一枚貼り付けた面を置いた。SetTransColorで透かしてる。
マップだけ表示すると、見事に透過色の部分は透けているのだが
別モデルのオブジェトをその面の背後に設置したところ、うまく透けてくれない。
どういった状態かというと、テクスチャの透過色は透けて背景が見えているのだが
別モデルが背後にいるのに背景が見える・・・?説明しづらい状況なので画像を用意した。
(乱筆注意)
http://www.dotup.org/uploda/www.dotup.org741198.jpg
マップとオブジェクトは別ファイルだが、面倒くさいのでテクスチャは一緒。
質問ばっかですまないが、助けてくれたら嬉しい。
0177名前は開発中のものです。
2010/03/20(土) 11:29:45ID:+CkAhiqm奥行き順にソートして、奥のモノから順番に描画するようにすれば解決
0178名前は開発中のものです。
2010/03/20(土) 14:20:35ID:/X0ANmK10179名前は開発中のものです。
2010/03/20(土) 14:34:53ID:yzkEpwQD0180名前は開発中のものです。
2010/03/20(土) 14:36:00ID:rdbyVjdN0181名前は開発中のものです。
2010/03/20(土) 16:54:19ID:dBwcpyX2亀だけど、DXライブラリに扇形を描く関数ってあるの?
DxLib.hで"扇"とか"Pie"で検索かけたけど何も出てこなかった
0182名前は開発中のものです。
2010/03/20(土) 17:08:14ID:zRlxjJKl非公開関数にDrawCircleGaugeってのがある。
使ったことないからどういう挙動を取るのか知らんけど。
0183名前は開発中のものです。
2010/03/20(土) 17:47:18ID:yzkEpwQD0184名前は開発中のものです。
2010/03/20(土) 17:55:00ID:dBwcpyX2ありがとう!
使ってみる
0185名前は開発中のものです。
2010/03/20(土) 18:44:32ID:UA+moyul0186名前は開発中のものです。
2010/03/20(土) 18:49:35ID:Hntnabqcたとえ「動作保証なし」って明記してあっても、
そこを読んで使った人間が、それが原因でトラブルに遭ったとしたら
「そんなもの最初から公開するな!」って言い出すのは火を見るより明らか。
0187名前は開発中のものです。
2010/03/20(土) 18:49:55ID:q6HASH4Udxlib.h漁れば大抵のことは分かるよ。
0188名前は開発中のものです。
2010/03/20(土) 18:51:38ID:5BrCtlYiというのは、なかなか賢い方法だと思う。
0189名前は開発中のものです。
2010/03/20(土) 20:07:06ID:tt9sYyne「うまく動かないんですけど」とか
「どうやって使えばいいんでしょうか?」
なんて質問に対応するのが面倒だからだと思う。
0190名前は開発中のものです。
2010/03/21(日) 04:51:27ID:rCzCwe4P現状で既に対応が神レベルなわけだがw
0191名前は開発中のものです。
2010/03/21(日) 13:06:40ID:zkQ+srVWサンクス
0192名前は開発中のものです。
2010/03/22(月) 06:30:59ID:uvieysEr0193名前は開発中のものです。
2010/03/22(月) 13:51:26ID:I7IomX3v0194名前は開発中のものです。
2010/03/22(月) 14:44:58ID:FYxA/CST0195名前は開発中のものです。
2010/03/22(月) 14:51:24ID:EaQBZTnY0196名前は開発中のものです。
2010/03/22(月) 14:54:29ID:FYxA/CST0197名前は開発中のものです。
2010/03/22(月) 16:38:29ID:C5YMgfKV0198名前は開発中のものです。
2010/03/22(月) 16:59:24ID:Hc38DsYjちゃんと吹いたか?w
0199名前は開発中のものです。
2010/03/22(月) 18:14:21ID:XicM9SHzコンフィグの設定によって、それよりも大きい別のサイズで引き伸ばして表示出来るようにしたい。
要はSetEmulation320x240の別解像度版と言ったところ。
どうやるのがスマートかな。
描画系クラスをひたすらラッパして、1つ1つ拡大処理を行わせるしかない?
0200名前は開発中のものです。
2010/03/22(月) 18:17:58ID:EaQBZTnY或いはSetWindowSizeExtendRateとウィンドウサイズ変更を組み合わせる
0201名前は開発中のものです。
2010/03/22(月) 18:20:06ID:Hc38DsYj宣言 int SetWindowSizeExtendRate( double ExRate ) ;
概略 ウインドウモードの時のウインドウの大きさと描画画面の大きさの比率を設定する
0202名前は開発中のものです。
2010/03/22(月) 18:26:18ID:/ZrA42+90203名前は開発中のものです。
2010/03/22(月) 18:32:54ID:XicM9SHz今まで地味になにやってたんだろう俺(笑)
0204名前は開発中のものです。
2010/03/22(月) 18:46:02ID:Y44rl97h0205名前は開発中のものです。
2010/03/22(月) 21:11:09ID:Ylkk32ctまぁ描画クラスをラッピングしてもいけるけど。
0206名前は開発中のものです。
2010/03/22(月) 21:17:51ID:/ZrA42+9拡大縮小時のアルゴリズムを設定するAPIがあるけどその設定も無視される。
従って俺様が正解。
0207名前は開発中のものです。
2010/03/22(月) 21:19:43ID:mFq/Yxd90208名前は開発中のものです。
2010/03/22(月) 21:39:29ID:/ZrA42+90209名前は開発中のものです。
2010/03/22(月) 21:40:22ID:mFq/Yxd90210名前は開発中のものです。
2010/03/22(月) 21:56:47ID:/ZrA42+90211名前は開発中のものです。
2010/03/22(月) 22:01:35ID:EaQBZTnY整数倍なら普通に存在するし常套手段。
ただし>>199の言うとおり複数パターンの解像度があるなら、ニアレストネイバーだと酷い見た目になる
0212名前は開発中のものです。
2010/03/22(月) 22:12:58ID:XicM9SHz他人様に見せるレベルじゃないとは言え、一応ドット絵だからなあ。
ちなみに512x384という変則サイズでゲームを作って、それを640x480か800x600に引き伸ばしたいと思ってた。
いっそのこと2倍にしてしまおうか。
0213名前は開発中のものです。
2010/03/22(月) 22:20:21ID:Xkjz6Cweそりゃやめた方がいい。見栄えがとてもアレなことになるw
つーか、なんでわざわざそんな半端な解像度で作るんだ。ツクールVXの関係か?
素材はちゃんと想定解像度で揃えた方がいいよ。クオリティが全然変わってくる。
拡大縮小機能はあくまでオマケとして考えること。
0214名前は開発中のものです。
2010/03/22(月) 22:21:11ID:EaQBZTnY別にバイリニアでいいんじゃね そこまでおかしくなることもない
0215名前は開発中のものです。
2010/03/22(月) 22:33:53ID:+2vRg2cR0216名前は開発中のものです。
2010/03/22(月) 22:42:24ID:XicM9SHz・フルスクリーンにも対応できる
この2つの条件を満たしたいのよね。
フルスクリーンにするには、画面を標準的なサイズ(640x480や800x600など)に変更する以くらいしか思いつかない。
前にやったときは、2つの解像度で画面配置とか色々変えてやってみたんだけど、
さすがにこれは労力がかかりすぎた。
0217名前は開発中のものです。
2010/03/22(月) 22:52:41ID:rV1Y0nX10218名前は開発中のものです。
2010/03/22(月) 22:58:01ID:0x3obs8gフルスクリーンにするなら512×384も640×480もあんま変わらん。
512×384のままフルスクリーンにしてしまえばいい。
まあ、今時のディスプレイドライバが対応してるかは知らんが。
0219名前は開発中のものです。
2010/03/22(月) 23:06:24ID:XicM9SHz一番最初に考えて、ひどいなと思ってやめたw
>>218
少なくともウチの環境じゃ対応してなかったからなー。
さすがに確認できないのは色々と面倒くさい。
0220名前は開発中のものです。
2010/03/22(月) 23:08:47ID:0x3obs8gそもそもなんでそんなレガシーな解像度で作ってるんだ?
0221名前は開発中のものです。
2010/03/23(火) 00:19:20ID:GS8iVKAj0222名前は開発中のものです。
2010/03/23(火) 00:23:14ID:ISljKIQv0223名前は開発中のものです。
2010/03/23(火) 08:54:11ID:AXCuQ29/0224名前は開発中のものです。
2010/03/23(火) 09:14:42ID:gxCnh1tj0225名前は開発中のものです。
2010/03/23(火) 11:58:44ID:YXMSMc8V画像を縮小してメモリに保持する方法って無いですか
0226名前は開発中のものです。
2010/03/23(火) 12:16:26ID:yjI7ZKJL事前に縮小した画像を読み込まない理由はなんなの?
こっちこそ、それが知りたい
利用目的によって解決方法は様々だから
そうしたい理由を述べた方がいいよ
0227名前は開発中のものです。
2010/03/23(火) 12:20:15ID:Cw6AOstL縮小アルゴリズムは適当にネットで探す
0228名前は開発中のものです。
2010/03/23(火) 12:29:01ID:l82knREaそれだけでニコ動の解像度に合わせるのは十分ありだと思うぞ
0229名前は開発中のものです。
2010/03/23(火) 12:36:20ID:GBZ9iaKq640×480で製作したのを512×384に変換しても、
そもそもニコニコの画質がたかが知れてるから気にするほどの劣化は無い。
あと、有象無象の自作ゲームをアップしたところで宣伝効果はたかが知れてる。
閲覧数4桁行かんよ。
0230名前は開発中のものです。
2010/03/23(火) 12:37:29ID:Cw6AOstL撮影した動画を512*384に縮小するほうが明らかに良いと思うが
0231名前は開発中のものです。
2010/03/23(火) 13:13:36ID:oi8iyMuN0232名前は開発中のものです。
2010/03/23(火) 13:17:51ID:l82knREa品質>宣伝になってるのはほんと一握りのメーカーだけだよ
0233名前は開発中のものです。
2010/03/23(火) 13:25:13ID:Cw6AOstL宣伝のために品質を下げることはまず無い。強いて言えば宣伝費に圧迫されることによって表に出ない潜在的な研究成果が生まれること位。
0234名前は開発中のものです。
2010/03/23(火) 13:49:09ID:9vEQhXzn>>217わかるけど
512*384なんて解像度はドライバ側からありえない
0235名前は開発中のものです。
2010/03/23(火) 14:11:01ID:++pj2kz7http://www.elsa-jp.co.jp/products/graphicsboard/resolution/quadro.html
0236名前は開発中のものです。
2010/03/23(火) 14:12:25ID:++pj2kz7てかこれ何の商品だ?
0237名前は開発中のものです。
2010/03/23(火) 14:41:31ID:sE6KKUKg0238名前は開発中のものです。
2010/03/23(火) 15:33:13ID:WhugOCXV0239名前は開発中のものです。
2010/03/23(火) 15:43:03ID:z4Sj0akk0240名前は開発中のものです。
2010/03/23(火) 16:42:33ID:GS8iVKAj0241名前は開発中のものです。
2010/03/23(火) 16:49:09ID:wMJQRn7hエンコでどうとでもなるし画質劣化なんてわからないぐらいに抑えられる
別の理由があると思うんだが、なぜなんだぜ?
0242名前は開発中のものです。
2010/03/23(火) 20:01:35ID:5QVJzgJf誰にも出し抜かれないうちに実現したいんだろ。
自力で出来もしないのにケチなことには知恵が回る。
この手のガキには付き合わないほうがいいよw
0243名前は開発中のものです。
2010/03/23(火) 20:12:48ID:IlgZgFTs0244名前は開発中のものです。
2010/03/23(火) 20:23:45ID:7xtWgBdZ俺には、その発想なかったわ。
経験者は語るってやつかな。
0245名前は開発中のものです。
2010/03/23(火) 20:33:42ID:IlgZgFTsホント、出来ない奴ほど自分のアイデアが素晴らしいものだと思いこんで、
つまらないことばかりするんだよ。どっかの福本も言ってたじゃないか。
0246名前は開発中のものです。
2010/03/24(水) 01:02:14ID:eqD7xz7Kウィンドウ時はそのまま512*384で最大化時に640*480で枠付けたらいいと思う
そうなってるゲームあるし
0247名前は開発中のものです。
2010/03/24(水) 01:37:26ID:0baBlkEl0248名前は開発中のものです。
2010/03/24(水) 04:03:58ID:aLvqmjzQ画像を4枚表示してるだけなのに
FPSが42〜45くらいしか出ないんだぜ・・・
30カウンントごとにGetNowCount()して
(double)(30000/経過時間)ってやってる
ググッたらVistaでそういう症状が出たとかあったけど、俺XPだし・・・
DXライブラリでFPS制御って自動でやってたりするのん?
0249名前は開発中のものです。
2010/03/24(水) 06:24:19ID:DzrNVZ570250名前は開発中のものです。
2010/03/24(水) 11:45:55ID:eFhpq7n1毎フレーム画像読み込みやってんじゃない。
0251名前は開発中のものです。
2010/03/24(水) 12:49:01ID:yQ424YF50252名前は開発中のものです。
2010/03/24(水) 12:58:20ID:ZCmo6FOF0253名前は開発中のものです。
2010/03/24(水) 16:07:19ID:aLvqmjzQ確かめてみた
モニタのリフレッシュレートは60Hzだった
なんにもしないでFPS表示するだけのプログラム組んでみたけど
やっぱり43ぐらいしか出なかった
んで、DXライブラリのバージョンを3.00fから2.24cに落としたら
なんにもしない状態だとFPSは60出たけど
なんかやたらちらつくし、やりたい処理入れるとクソ重くて
使い物にならんかった・・・
DirectXとの相性なのか・・・?
0254名前は開発中のものです。
2010/03/24(水) 16:13:15ID:H1MROAKcとりあえずバージョンは3.02を入れれ
LoadGraphScreenはやってないんだな?
0255名前は開発中のものです。
2010/03/24(水) 16:25:00ID:6hYmxPv70256名前は開発中のものです。
2010/03/24(水) 16:31:28ID:aLvqmjzQ3.02で試してみた・・・が、やはりダメだた・・・
メインループ内の処理の内容は以下の通り
// 30カウントごとにFPSの更新を行う
// カウンター表示
// FPS表示
// ESCが押されたら終了
// カウンター加算
ScreenFlip();
ScreenFlip外すと7000FPSくらい出る
0257名前は開発中のものです。
2010/03/24(水) 16:44:27ID:H1MROAKcだ・か・ら・DrawGraphなのかLoadGraphScreenなのかと。
あと、裏画面設定はしてるよな?
0258名前は開発中のものです。
2010/03/24(水) 16:45:24ID:bIWSnw+J0259名前は開発中のものです。
2010/03/24(水) 16:54:02ID:aLvqmjzQんや、なーんもしないサンプルプログラムを
ちょっといじっただけだから
そもそも画像を描画してないんよ。
それでもFPSが45くらいまでしかでないんよ。
本来のソースでは、メインループ前に
SetDrawScreen( DX_SCREEN_BACK )してる
0260名前は開発中のものです。
2010/03/24(水) 16:56:03ID:bIWSnw+J0261名前は開発中のものです。
2010/03/24(水) 17:29:53ID:v/kSHX+iとりあえず、そのFPSを表示するプログラムのソースをうぷればいいじゃないの
0262名前は開発中のものです。
2010/03/24(水) 17:32:54ID:pNKd88tFていうか>>248で「画像を4枚表示してるだけ」と言ってるのに
「画像を描画してない」とはこれいかに。
0263名前は開発中のものです。
2010/03/24(水) 17:37:30ID:8+pX2m6J>>253
>なんにもしないでFPS表示するだけのプログラム組んでみたけど
>やっぱり43ぐらいしか出なかった
0264名前は開発中のものです。
2010/03/24(水) 17:43:43ID:aLvqmjzQ>>248は本来のプログラムの方の話で
>>259はサンプルプログラムをいじったテスト用のヤツの話ってことっす
わかりづらくてすまん
ではソースを晒してみる
まず変数宣言とプロトタイプ宣言
// ここにサンプルプログラムをペーストしてください
// 初期状態では LoadGraphScreen のサンプルプログラムが入力されています。
#include "DxLib.h"
static int KeyState[256];
static int before; /* パフォーマンス計測用 */
static int after; /* パフォーマンス計測用 */
static int time; /* 経過時間 */
static int gSTGCounterNow = 0;
static double gSTGFps = 0.0;
/* プロトタイプ宣言 */
int MainLoop();
int GetHitKeyPadStateAll();
int CheckKeyState( unsigned char keyhandle );
double GetFps();
0265名前は開発中のものです。
2010/03/24(水) 17:45:15ID:aLvqmjzQint WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow )
{
ChangeWindowMode(TRUE); /* ウィンドウモード */
if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
{return -1;}
//// BMP画像の表示
//LoadGraphScreen( 0 , 0 , "test1.bmp" , TRUE ) ;
DWORD color = GetColor(255,255,255);
/* メインループ */
while( MainLoop() == 0 ){
/* 30カウントごとにFPSの更新を行う */
if( gSTGCounterNow % 30 == 0 ){
gSTGFps = GetFps();
DrawFormatString( 0, 40, color, "GET!" );
}
DrawFormatString( 0, 0, color, "COUNT:%d", gSTGCounterNow );
DrawFormatString( 0, 20, color, "FPS:%f", gSTGFps );
if( CheckKeyState(KEY_INPUT_ESCAPE) == 1 )
break; /* ESCが押されたら終了へ */
gSTGCounterNow++;
// ScreenFlip();
}
// WaitKey() ; // キーの入力待ち((7-3)『WaitKey』を使用)
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}
0266名前は開発中のものです。
2010/03/24(水) 17:48:08ID:aLvqmjzQ/* 必須処理 */
int MainLoop(){
if( ProcessMessage() != 0 ) return -1; /* メッセージ処理 */
if( ClearDrawScreen() != 0 ) return -1; /* 画面をクリア */
if( GetHitKeyPadStateAll() != 0 ) return -1; /* キーの入力状態を保存 */
return 0;
}
/* キーとパッドの入力状態を取得 */
int GetHitKeyPadStateAll(){
char keybuff[256];
int i, padinput, mask = 1;
if( GetHitKeyStateAll( keybuff ) != 0 ) return -1; /* キーの状態を取得 */
for( i = 0; i < 256; i++ ){
if( keybuff[i] == 1){
KeyState[i]++;
} else {
KeyState[i] = 0;
}
}
return 0;
}
0267名前は開発中のものです。
2010/03/24(水) 17:49:27ID:aLvqmjzQ/* キーの押下状態を返す */
int CheckKeyState( unsigned char keyhandle ){
return KeyState[ keyhandle ];
}
double GetFps()
{
double fps;
after = GetNowCount();
fps = (double)(30000.0/(after - before));
before = after;
return fps;
}
0268名前は開発中のものです。
2010/03/24(水) 17:52:40ID:aLvqmjzQあ、ScreenFlip()コメントアウトしたままだった、ごめん
0269名前は開発中のものです。
2010/03/24(水) 17:58:31ID:bIWSnw+J0270名前は開発中のものです。
2010/03/24(水) 18:01:25ID:XTDZYbeS0271名前は開発中のものです。
2010/03/24(水) 18:04:46ID:rXfEfHUn0272名前は開発中のものです。
2010/03/24(水) 18:36:51ID:ye7/bw96程度の差はあれ、オレオレライブラリになるんじゃないかな。
0273名前は開発中のものです。
2010/03/24(水) 18:47:59ID:6hYmxPv7DrawFormatStringとCheckKeyStateをコメントアウトして画像だけを表示させるとどうなる?
ていうかなんでKeyState入れてんのにCheckKeyStateで書いてるんだ
■ このスレッドは過去ログ倉庫に格納されています