[過去ログ] DXライブラリ 総合スレッド その4 (1001レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
813
(2): 2009/11/15(日)17:20 ID:T7dfTd78(1/5) AAS
すみませんが超初心者のトラブルを助けてください
14歳からはじめるC言語ゲームプログラミングを買ってそれに従って
Express 2008 にDXライブラリーを組み込んで使い始めました(Vista 64bit)

まず以下のプログラムを書いてデバッグ開始すると黒いウィンドウが現れ
その左上に水色の正方形があらわれました

#include "DxLib.h"
int WINAPI WinMain(HINSTANCE hI, HINSTANCE hP, LPSTR IpC, int nC){
省12
814: 2009/11/15(日)17:22 ID:uXtMwLeG(1/2) AAS
809じゃないけど3D使わないならDxLibでまず充分な感じかな?
CPU使用率高いのは気になる といってもDxLibしか使えないから比較のしようがないんだけど
815
(1): 2009/11/15(日)17:24 ID:uXtMwLeG(2/2) AAS
>>813
・セーブしてない
・何らかの原因でセーブできてない
・エラーが出ていて前回ビルドしたものをそのまま起動している

いずれにせよDxライブラリとは関係ないと思われ
816
(1): 2009/11/15(日)17:51 ID:T7dfTd78(2/5) AAS
>>815
ありがとうございます

○○.cppの保存をしてからやってもダメでした

あらわれたウィンドウを消すと
出力元の表示 デバッグ

Alloc memory dump Total size:0(0.000kb) Alloc num:0

スレッド 'Win32 スレッド' (0xc5c) はコード 0 (0x0) で終了しました。
省6
817: 2009/11/15(日)18:09 ID:Z5q5kesn(2/3) AAS
SetJoypadInputToKeyInputの使い方がよくわからないんだけど

SetJoypadInputToKeyInput( DX_INPUT_PAD1, PAD_INPUT_UP, KEY_INPUT_I, -1, -1, -1 );

って書いた場合、キーボードのIを押すと1Pパッドの上ボタンが反応するってことでいいの?
公式のサンプルをそのまま実行してもキーボードのほうがさっぱり反応しないから困ってるんだけど・・・
818: 2009/11/15(日)18:19 ID:Z5q5kesn(3/3) AAS
すいません自己解決?しました

パッドが刺さってないとキーボードの対応も無効化されるみたいだ
結局パッドがない場合はない場合で独自にキーテーブルを作らないといけないのか・・・
819
(1): 2009/11/15(日)19:06 ID:DGeILl3n(1) AAS
>>816
なんだろうか。
メニューのビルド(B)→ソリューションのクリーン(C)やってみるとか。
820
(1): 2009/11/15(日)19:56 ID:8OuNjlci(1) AAS
書き換え前後のソースは?(DrawBoxだけでも
821: 2009/11/15(日)20:18 ID:T7dfTd78(3/5) AAS
>>820
ありがとうございます

DrawBox(0, 0, 240, 120, 65535, TRUE ); 書き換え前
DrawBox(0, 0, 10, 10, 65535, TRUE ); 書き換え後

ほかにもいろいろ変えてみましたが現れるウィンドウはまったくかわりません
元のままです
それどころか
省8
822: 2009/11/15(日)20:20 ID:T7dfTd78(4/5) AAS
>>819
ありがとうございます
ソリューションのクリーンやってみましたがだめでした
823: 813 2009/11/15(日)20:26 ID:T7dfTd78(5/5) AAS
申し訳ありませんが
誘導されて別スレに同じ質問をしましたのでもしレスをいただけるなら
これからこちらにお願いします
すみません

【初心者】スレを立てる前にココで質問を【Part20】
2chスレ:gamedev
824: 2009/11/16(月)00:54 ID:/TTGxmoU(1) AAS
SetMenuItemMarkの使い方が分からん
*ItemNameって何?メニューはリソースエディタで作ったんだが何をどうすればいいのか。
項目にチェックをつけたいんだが
825: 2009/11/16(月)16:40 ID:3CcEh2OH(1/3) AAS
質問

このライブラリで、「一度だけキーが押されたか」を取得する場合どうしたらいい?
getkeyでやると押されている間ずっと判定しちゃってて、使いづらい。
826
(1): 2009/11/16(月)16:47 ID:xtNS2c6w(1) AAS
答え

ライブラリに頼らなくてもできます
827
(1): 2009/11/16(月)16:50 ID:0lR8bOhJ(1) AAS
前回の状態は保存しておこう
828
(1): 2009/11/16(月)19:11 ID:3CcEh2OH(2/3) AAS
>>826
どんな感じの関数にすればいいの?
すまんが教えてくれ
829: 2009/11/16(月)19:21 ID:9CTmGw4p(1) AAS
827が答えいっとるじゃないか。
830
(1): 2009/11/16(月)20:04 ID:AWzX3IiL(1) AAS
前スレでもこんな話題あったような

>>828
一応コピペで動く(と思う)コード
外部リンク:codepad.org

基本的な考えは>>827だから、
一連の処理を関数化するなりクラス化するなり、自分で工夫してみればいいよ
831
(1): 2009/11/16(月)20:57 ID:3CcEh2OH(3/3) AAS
>>830
あーなるほど、2次元配列で管理かー。

これ参考にクラス化して使わしてもらうね、ありがとう。
832: 2009/11/16(月)21:07 ID:HqHZnSqW(1) AAS
こういう質問よく見かけるけど、
普段ゲームを作らない人には思いつきにくい処理なのかな。
なぜわからないのか不思議だ。
833: 2009/11/16(月)21:42 ID:KIgwECNq(1) AAS
まったく同じ質問しようとしてスレひらいてびっくりした
834: 2009/11/16(月)22:36 ID:G0YK1Asy(1) AAS
変数というものが何のためにあるのかとかもっと考えてほしいな
835: 2009/11/16(月)23:33 ID:lIlaylz+(1) AAS
公式サイトに答えがあるな。
836: 2009/11/17(火)11:21 ID:3pCkE9PE(1) AAS
>>831
2次元配列関係なくね…?
837
(1): 2009/11/17(火)12:30 ID:FXTCZmOd(1/2) AAS
>>811
あと、勝手にフルスクリーンとウィンドウの切り替えが行われるとき
その関数を自動で呼ばれるようにってできる?
って勝手に切り替わりっておきない?
838
(1): 2009/11/17(火)13:35 ID:n6/hEDR6(1) AAS
>>837
フルスクリーン状態からAlt+Tabで一時的にウィンドウ状態に戻り再度フルスクリーン化した際に、サーフェスがロストされるよ
SetRestoreGraphCallbackを指定して、戻った際にReloadFileGraphAllでもすればLoadGraph()で読まれたものだけは復帰可能
(他の方法で生成したサーフェスは内容破棄される)

以前のDXライブラリ2.Xのバージョンの頃はCreateGraphFromMem()もMakeGraph()もMakeScreen()も復元できる裏技が通用したんだけど、
3.Xになってから厳しくなったよなぁ

その辺の検証コード興味があるのなら晒すよ
839: 2009/11/17(火)14:14 ID:FXTCZmOd(2/2) AAS
>>838
おお、レスありがとう
興味ありありです、よろしくお願いします

3Dだとどうなんだろう、モデルデータの使いまわしは
MV1LoadModelで読み込んだあとMV1DuplicateModel使うよね
そうやって取得したハンドルからアニメーション関数使ったりするし
なんとなく大変そうだ
省3
840: 2009/11/17(火)16:00 ID:8OqfWDW8(1/3) AAS
つーかどれが初期化される対象なのかわからん
リファレンスもうちょっと詳しく書いてくれればいいのに
841: 2009/11/17(火)16:09 ID:ZC4o54zE(1) AAS
そういう問題もあったのか
開発中はずっとウインドウモードだから全く気にしてなかったぜ・・・
842: 2009/11/17(火)22:00 ID:8OqfWDW8(2/3) AAS
DrawBoxで半透明の矩形を描きたいんだけどこれは可能?
CPUからグラフィックハンドルを作って描画するしかない?
843
(1): 2009/11/17(火)22:16 ID:NCb+JjAR(1) AAS
もっと柔軟にものを考えようぜ。
SetDrawBlendModeってのがあるだろ。
844: 2009/11/17(火)22:35 ID:8OqfWDW8(3/3) AAS
>>843
ありがとう
リファレンス上から下まで見たはずなんけどあるの気付かなかったぜ
845
(1): 2009/11/18(水)01:23 ID:qgpLjbHP(1) AAS
エントリーポイントをWinMainにしてコンソール出力の関数使うのってなんか問題ある?
WinMainをmainに変えるとGUIとCUIの二画面になってコンソール出力するとちゃんと表示されるからデバッグに便利かな、と思ったんだけど・・・
846: 2009/11/18(水)03:12 ID:QbAZcWPQ(1) AAS
>>845
CUIコンソールに出さずにデバッグウィンドウに出力する、OutputDebugString使いなさいよー

void OutputDebugWindow(LPCTSTR pString, ...)
{
#ifdef DEBUG
va_list arglist;
va_start(arglist,pString);
省7
847: 2009/11/18(水)09:38 ID:xppAWWAs(1/2) AAS
SetAlwaysRunFlag()とGetWindowActiveFlag()組み合わせで
窓が非アクティブの時 BGM再生をとめて
その後に窓をアクティブにすると再生していたBGMを途中から再生させるようなことが可能だけど

しかしプログラムの窓の上の青い部分を左クリックおしっぱなしや右クリックおすと
BGMの再生がとまらなくてプログラムの処理がとまってるという現象になる
つまり 音楽と画面の絵のタイミングがズレるんだよなあ・・・・
848: 2009/11/18(水)09:59 ID:Aw+8Okqp(1/2) AAS
マウスカーソルが画面内にいるかいないかでも
判定しちゃえYO!
849: 2009/11/18(水)10:24 ID:xppAWWAs(2/2) AAS
その手があったか!!thx
850: 2009/11/18(水)10:35 ID:Aw+8Okqp(2/2) AAS
うお・・・マジか・・・
マウスカーソルが邪魔になると思うから
ShowCursor(FALSE);とかで消してやってくださいな
TRUEにすれば復活するよ
851
(1): 2009/11/18(水)20:06 ID:sJmU6d7e(1/6) AAS
毎フレームMakeGraphとDeleteGraphを実行って速度的に大丈夫ですか?
852: 2009/11/18(水)20:09 ID:D8L+6+cM(1/2) AAS
ダメ
なんでいちいち消して作り直す必要がある
853
(1): 2009/11/18(水)20:13 ID:sJmU6d7e(2/6) AAS
じゃー最初に1度だけMakeGraphして
毎フレーム透過色で全体を塗りつぶして初期化ってことできます?
854: 2009/11/18(水)20:54 ID:8lcSmlhL(1/2) AAS
意味がわからん。
何がしたいんだ。
855: 2009/11/18(水)21:01 ID:sJmU6d7e(3/6) AAS
DrawRectGraphとDrawRotaGraph2を一緒にしたい感じです
つまり、グラフィックの指定矩形部分のみを回転描画(回転中心指定あり)
856: 2009/11/18(水)21:12 ID:sJmU6d7e(4/6) AAS
補足です >>851>>853では
DrawRectGraphで空のグラフィックに一旦コピーして
DrawRotaGraph2で回転描画しようとしてました
でも空のグラフィックを毎フレーム空にしないと
前フレームでコピーしたグラフィックの残りカスが残ってしまうと思ったので聞きました
857: 2009/11/18(水)21:32 ID:D8L+6+cM(2/2) AAS
DerivationGraph使えば
858: 2009/11/18(水)21:47 ID:sJmU6d7e(5/6) AAS
DerivationGraphを毎フレーム使っても大丈夫でしょうか?
指定矩形部分の左上座標やサイズが毎フレーム変わるんです
859
(1): 2009/11/18(水)22:26 ID:sJmU6d7e(6/6) AAS
DerivationGraphを使う方法だと
DerivationGraphで作成したグラフィックハンドル(非グラフィックデータ)の
左上座標、サイズの値などが内部で積み重なっていくんじゃないかなと思いました

抜き出し元のグラフィックデータを解放せずに
DerivationGraphで作成したハンドルだけを解放する関数があればいいんですが
860
(2): 2009/11/18(水)23:22 ID:8lcSmlhL(2/2) AAS
何がしたいのかよくわからないなぁ。

元の画像があって、その一部分を矩形として切り出して、
単純にその矩形を回転させるのではなくて、
回転させつつ、元画像から切り出す部分をずらしていきたい、とかそんな感じ?
しかもどこを切り出すかは不定とか。
861
(1): 2009/11/18(水)23:26 ID:O571k7wA(1) AAS
DerivationGraphで作ったハンドルだけDeleteGraphすればおk
862: 2009/11/19(木)00:26 ID:D19Ec+8u(1) AAS
>>860
そんな感じです 切り出す部分を移動させつつサイズも大きくしたり小さくしたり

>>861
DerivationGraphで作ったハンドルだけDeleteGraphしてみたら
そのハンドルは使えなくなって、抜き出し元のハンドル指定すると
描画できたから>>859↓の理想の動作ができたっぽいです

ありがとうございました
863: 2009/11/19(木)01:34 ID:cu4/k47Y(1) AAS
もう解決したぽいけど、>>860のような用途なら
2Dでやるより板ポリゴンにテクスチャ貼って、
その板を移動や回転させながら
MV1SetFrameTextureAddressTransform()でUV値を
変えた方が楽な気がする
864
(1): 2009/11/20(金)08:32 ID:VQsGFVnC(1/2) AAS
DXライブラリでゲーム作品を作ったんですが、
提出する場合、相手がVisualCのコンパイラをもっているとして
最低限どのファイルかフォルダを私のソーステキストと一緒に入れれば
DXライブラリの機能は失われずに済むのでしょうか?
よろしくお願いします。
865: 2009/11/20(金)08:35 ID:dEAugKIR(1) AAS
ライブラリファイル(*.lib)とヘッダファイル(*.h)
つまり、VCの設定でパスを通したフォルダのファイルがあれば、環境が変わってもとりあえずコンパイルは可能
866
(1): 2009/11/20(金)08:57 ID:3aBOadq/(1/4) AAS
「プロジェクトに追加するべきファイル」ってフォルダがある。それの中身丸ごとぶち込めばおk
867
(1): 2009/11/20(金)11:18 ID:VQsGFVnC(2/2) AAS
>>866
それはどのような操作をすればいいんですか?
すいません、あまり詳しくないもので
868
(1): 2009/11/20(金)11:20 ID:D3YjbvgS(1/2) AAS
>>867
公式サイトからDL
869: 2009/11/20(金)12:31 ID:3aBOadq/(2/4) AAS
操作も何もコピペするだけじゃない
870: 2009/11/20(金)13:19 ID:N4OAulRv(1) AAS
だからさ、「DXライブラリでゲーム作品を作った」って自分で言ってるじゃん?
て事はDXライブラリを用意したわけでしょ?
その時に「プロジェクトに追加するべきファイル」ってフォルダにあるファイルを全部ぶちこんだでしょ?
それをまたやれば済むだけの事って話でしょ?
871: 2009/11/20(金)15:04 ID:3aBOadq/(3/4) AAS
つーかよくゲーム作れたな
872
(1): 2009/11/20(金)19:20 ID:GTSLdsHv(1) AAS
>>864
ゲームを遊んでもらうだけなら、相手にVCは必要ありません
実行ファイルと画像と音楽をフォルダ構造そのまま渡せばOK
873: 2009/11/20(金)19:48 ID:IIe6k6yX(1) AAS
おまえら親切だなww
874: 2009/11/20(金)23:25 ID:3aBOadq/(4/4) AAS
linuxでdxlibつかいたい
だれか同じインターフェースで実装してくれ
875
(1): 2009/11/20(金)23:52 ID:QGaaacIt(1) AAS
おれも>>872の回答を期待して聞いたのだと思った。
だからそれ以前の回答は見当違いだと思った。
876: 2009/11/20(金)23:55 ID:fjf3rbks(1) AAS
ゲーム会社に就職するために作品を提出するんじゃね
877: 2009/11/21(土)00:00 ID:D3YjbvgS(2/2) AAS
>>875
さすがにそれはねーよ……と思った俺は>868
878
(1): 2009/11/21(土)00:57 ID:KdK6RM7K(1) AAS
今サウンドをDXライブラリをつかって組み込んでいるんですが、
BGMを流しながら効果音をだすと必ずBGMが消えてしまします。
解決法ってあります?PlayMusicの関数をつかってるんですが・・・・
879: 2009/11/21(土)01:04 ID:e7ozG51Q(1) AAS
提出ってんだから、専門学校かなんかの課題だと思った。
だからソースを提出しなくてはいけないから
それに付属させるDxlib関係を知りたがってるものかと。
880: 2009/11/21(土)01:15 ID:OBq3faU0(1) AAS
>>878
効果音再生にPlaySoundあるいはPlaySoundMemを使う
881
(1): 2009/11/21(土)04:01 ID:t3dSraeG(1/2) AAS
どうしても事故解決しなかったので皆さんにご質問させていただいてもよろしいでしょうか?

int fonthdl = CreateFontToHandle( NULL , 40, 3);
int i = DrawStringToHandle( 0 , 0 , "HELLOW!!" , GetColor( 255 , 255 , 255 ) , fonthdl );

前後省きますが、この二行を含むプログラムを実行させたところ、2行目が表示されません
試しに戻り値を確認したところ、iには-1が入っており、fonthdlには1が入ってました
1行目でフォント作成に成功しているのに、2行目がエラーになる原因がわかりません
書式はDXライブラリのリファレンスページから持ってきたので間違いないと思うのですが・・
省1
882: 2009/11/21(土)04:13 ID:9yGfXcu/(1) AAS
こぴぺしたら表示されたよ
883: 2009/11/21(土)04:26 ID:J6RuDDE9(1) AAS
>>881
その2行をコピペしたら、表示されたよ
前後が分からないけど、WaitKey()とかで止めてなくて
表示前にアプリケーションが終了とかループを抜けている
とかはない?
884
(1): 2009/11/21(土)04:47 ID:t3dSraeG(2/2) AAS
色々試してみたところ自己解決しました
グローバル側でハンドル変数を宣言していたのですが、関数のローカル側に
char fonthdl;
という変数があったことが原因だったようです
メモリ値が入りそうなfonthdlが1と表示された時点で気が付くべきでした
変数名が被ろうが、charにintを代入しようが、お構いなしに実行できてしまうVCに驚きを禁じえない
885: 2009/11/21(土)10:37 ID:0oFiglt2(1) AAS
普通重複して定義言われると文句言われると思うが。何でコンパイルしたんだ?
886: 2009/11/21(土)11:05 ID:GXUC5Gno(1) AAS
>>884
仕様です
887
(1): 2009/11/21(土)18:56 ID:QGK3+ipq(1) AAS
2Dポリゴンを使った横スクロールゲームを作りたいんだけど、さっきテストしたら
ポリゴンを25枚くらいしか表示できない・・・。
ポリゴンの頂点と光源の距離から頂点ごとの明暗(RGB三種類)を計算し、
さらに頂点の平均からポリゴン自体の明暗(RGB三種類)を計算・・・
というふうにやっているのですが、無理がありますでしょうか?
最終的にはこれに簡単な奥行き値を与えたり、
ポリゴンにグラデーション(フォンシェーディング?)を与えたいとも思っています。
省15
888
(2): 2009/11/21(土)19:53 ID:RCdp05um(1) AAS
フルスクリーンにするとディスプレイが横長いせいか
画面まで横長くなっちゃうんだけど
これを防ぐ方法無いかな?
889: 2009/11/21(土)19:59 ID:ooIk2Hg8(1) AAS
>>888

それはグラボの設定でしょ。
プログラムとは関係ないと思う。
890: 2009/11/21(土)20:02 ID:RirLV2Ns(1) AAS
>>888
あとはモニタの設定
891: 2009/11/21(土)20:05 ID:3FMlFN4b(1) AAS
考えられうる方法としては起動時にモニタはどんなんなのか聞いて選択によって
比率が変わるような仕様にするとか
892: 2009/11/21(土)22:11 ID:Ew3OShpr(1) AAS
640x480で初期化して横長に表示してるときってどうなってるんだろう
ドットが横長になって、画面の広さは640x480ドットとか

それとも画面の広さは横長のたとえば1024x480ドットとして
DIRECTXが足りない分を補完して横長に拡大表示してるとか
893: 2009/11/22(日)05:39 ID:fv2HAYp8(1) AAS
何を言ってるのかよくわからんが4:3の画面をワイド液晶でぴっちり埋まるようにフルスクリーンにしたら横に伸びる
何部でどうなっているかは知らんがな
1-
あと 108 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.023s