トップページgamedev
1001コメント397KB

DXライブラリ 総合スレッド 2008

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2008/10/25(土) 17:37:53ID:BCFbbKco
Cを習得した程度のスキルでも、
GUIのゲームを比較的容易に作成する事を可能にする、
「DXライブラリ」に関するスレッドです。

DXライブラリの詳細ついては
http://homepage2.nifty.com/natupaji/DxLib/
を参照して頂きたい。

DXライブラリに関するテクニックなどの情報交換などを行う事で、
多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。

過去スレ:DXライブラリ 総合スレッド
      http://pc11.2ch.net/test/read.cgi/gamedev/1197468399/
0391名前は開発中のものです。2009/01/11(日) 14:03:14ID:fWlpK7Co
>>390
わかり難くてすいません……
DirectXを直に使いたい所があるので以下のコードを追加し呼び出した所強制終了が発生したので、
やはりDXライブラリを使用しながら直接DirectXを使う事は難しいのでしょうか?

#include <d3d8.h>

void aaa(){
LPDIRECT3DDEVICE8 FogDev;
D3DCOLOR FogCol;
float FogStart;
float FogEnd;
FogCol=0xffffff;
FogStart=100;
FogEnd=300;
//この中をコメントアウトすればエラー無し
//逆に一つでもあるとエラーで落ちてしまう……
//================================================
FogDev->SetRenderState(D3DRS_FOGCOLOR,FogCol);
FogDev->SetRenderState(D3DRS_FOGSTART,*((DWORD*)&FogStart));
FogDev->SetRenderState(D3DRS_FOGEND,*((DWORD*)&FogEnd));
FogDev->SetRenderState(D3DRS_FOGVERTEXMODE,D3DFOG_LINEAR);
FogDev -> SetRenderState(D3DRS_FOGENABLE,true);
//================================================

}

0392名前は開発中のものです。2009/01/11(日) 14:50:36ID:2fY4/RNq
質問ですが、ウィンドウモードにした時の左上のウィンドウアイコンは変更出来ますか?
0393名前は開発中のものです。2009/01/11(日) 16:25:19ID:rRSsOCCS
>>391
参照エラーかな?
DXライブラリ側でLPDIRECT3DDEVICE8って持ってなかったっけ?
と無責任な事言ってみる。
DXライブラリのソース確認してみて。

>>392
出来るよん
0394名前は開発中のものです。2009/01/11(日) 18:28:35ID:fWlpK7Co
>>393
ヘッダファイルを確認した所、LPDIRECT3DDEVICE7に関しての記述はみられましたが、
LPDIRECT3DDEVICE8についての記述はありませんでした。
ライブラリ初期化の前に読んだ所起動すらしなかったので、やっぱりDXライブラリとの競合ですかね……
0395名前は開発中のものです。2009/01/11(日) 20:07:47ID:fWlpK7Co
どうやら単純にコードが悪かった様です。
スレ汚し失礼しました……
0396名前は開発中のものです。2009/01/16(金) 16:45:35ID:EID2Tgc4
前うpして感想頂いて、とてもやる気が出たので、
こんな感じの体験版となりました。

ttp://tikuwa.net/file/up7821.zip.html
DLKey:dx
0397名前は開発中のものです。2009/01/16(金) 23:45:16ID:c/8VRMs/
頑張ってるじゃん

BGMやSEも自作?
引用があれば著作権等の明記はしっかりしておいた方が良いよ
0398名前は開発中のものです。2009/01/16(金) 23:47:43ID:iRSkofRl
DXライブラリ3Dのサイトが消えてるな
0399名前は開発中のものです。2009/01/17(土) 00:09:20ID:zPKek+/O
ほんとだ、今見てみたら消えてるな
0400名前は開発中のものです。2009/01/17(土) 00:17:49ID:h2yGMjkV
DXライブラリでタイトルバー消すことって出来る?
イメージ的にはこういうものを作りたいんだけど

http://www.geocities.jp/tjschallenger/TJS0320.html

http://www.geocities.jp/tjschallenger/img/TJS031701.png

http://www.geocities.jp/tjschallenger/img/TJS000301.png
0401名前は開発中のものです。2009/01/17(土) 00:30:31ID:r/BmSdjn
>>400
ttp://studiokingyo.fc2web.com/dxlib/kaibou/k_shiyou.html
で紹介されてる方法で駄目なら、ちょっと工夫が要る気がする
0402名前は開発中のものです。2009/01/17(土) 01:42:14ID:A53qKgs6
>>397
自作なので大丈夫かとは思います。
0403名前は開発中のものです。2009/01/17(土) 01:46:05ID:hNEzfB40
自作なのか……すげぇ。
0404名前は開発中のものです。2009/01/17(土) 01:57:18ID:A53qKgs6
あ、DXライブラリとPNG読み込み機能の著作権表記してない…これはマズったかも…。
0405名前は開発中のものです。2009/01/17(土) 09:58:07ID:OLTrE10N
>396
すげえ

どんどん敵が固くなるw
敵がワイドショット撃ってくるあたりから先にいけん
0406名前は開発中のものです。2009/01/17(土) 10:33:37ID:POC77fOB
>396
相変わらず難し過ぎる……w
ところでなんかボスのライフが下がり切らない内に倒せたんだけど。制限時間?
あとグレイズタイプって何かと思ったらサイヴァリアなのね。
0407名前は開発中のものです。2009/01/17(土) 11:55:31ID:A53qKgs6
>>403
どれも芋臭い曲ばかりですけどね…。
>>405
殆ど自機狙いなので直前に避けるとやりやすいと思います。
>>406
サイヴァリアの快感を再現してみたかったんです。
ボスはかすりで永遠に稼げるのと、ショット弱体化の対策として、
ワインダーを放ち終えた2分で自滅するようにしてみました。
0408名前は開発中のものです。2009/01/17(土) 13:56:30ID:f9VOjqEO
ループ前にメニューバー作ってループの命令に解像度変更機能を書いてみたんだが、
どうもフルスクリーンだけ正常動作しない

一応、ソース書いておく

if(CheckMenuItemSelect_ID( 14)){
//起動時、フルスクリーン化
ChangeWindowMode( FALSE ) ; //フルスクリーンモードで起動
MAP_W = 640-SPAN_LR*2 ;
SPAN_LR =128;
SetGraphMode( 1024 , 768 , 32 ) ;
SetMenuItemMark_ID(11, MENUITEM_MARK_NONE);
SetMenuItemMark_ID(12, MENUITEM_MARK_NONE);
SetMenuItemMark_ID(13, MENUITEM_MARK_NONE);
SetMenuItemMark_ID(14, MENUITEM_MARK_CHECK);
//SetAlwaysRunFlag(TRUE) ;//ウインドウがアクティブではない状態でも処理を続行するか
SetDrawScreen( DX_SCREEN_BACK ) ; // 描画先画面を裏画面にセット
}

文字は表示されてもグラフィックは読み込まれない
左上隅に表示されるんだが、自分は中央拡大描画を求めている
0409名前は開発中のものです。2009/01/17(土) 14:27:27ID:CHF9ChFj
>>404
お前何か勘違いしてないか?知識なんて使って減るもんじゃないから只だと思ってんだろ?
人に物を訊くってのがどういう事だか、自覚してる?
知識ってのはな、社会人に取って金と同じく貴重な財産なんだよ。使っても減らないけど、教えたら広まった分だけ価値が下がる。それを分けてくれって言ってんの自分でわかってる?
社会で必要とされる知識ってのはな、本になんか載ってない事ばかりなんだよ。全部人から人へ、直接のコミュニケーションを介して伝わって来たモンなんだ。
そういうノウハウを分けてもらう申し訳無さみたいな物が、伝わって来ないんだよ。お前の態度からは。
猿だって仲間から餌を分けてもらう時は申し訳無さそうな顔するんだよ。ヘラヘラ笑いながら近づいてったら殴り殺されんぞ。
猿だったら今頃とっくに死んでんだよお前。そんな態度で今まで。何回も言ったよな。謝る時は申し訳無さそうな顔をしろって。
そういう学校じゃ受けられない教育を受けておきながら、社会人を経験しなきゃ得られない知識を貰っておきながら、
何にも生かせてないんだよ今のお前は。学生のサークルごっこじゃないんだから。もっと四六時中危機感を持って生きてなきゃ駄目だよ。いい加減いつまで学生気分じゃ。
0410名前は開発中のものです。2009/01/17(土) 14:35:00ID:r/BmSdjn
誤爆なのかそうでないのか……w
0411名前は開発中のものです。2009/01/17(土) 15:00:14ID:A53qKgs6
>いい加減いつまでも学生気分じゃ。
耳が痛い話です。
0412名前は開発中のものです。2009/01/17(土) 15:06:33ID:B1CiFUTT
人生一勝勉強です。
0413名前は開発中のものです。2009/01/17(土) 16:00:07ID:IVDG90gp
アンカミスだろw
0414名前は開発中のものです。2009/01/17(土) 16:46:40ID:UCl/dEbD
ボクは社会人になってから学生時代以上に学生気分です。
0415名前は開発中のものです。2009/01/17(土) 23:46:21ID:h2yGMjkV
ウインドウモードで起動して
マウスの左クリックを監視するようにしました

その際、ウインドウの範囲外をクリックしてもマウスの左クリックを認識してしまいます

その解決策として
ウインドウの左上の座標(x,y)からWindowの大きさ(X+width,Y+height)までの間でクリックされた時のみクリックを監視するという方法をとろうと思っています

そこで質問なのですが
ウインドウの左上の座標を取得する関数は存在するのでしょうか?
また、無い場合は何か他に代用できる関数は標準ライブラリなんかに入っているでしょうか?


あと、ウインドウがアクティブかどうか判断する関数ももしあったら教えてください

一応調べたのですがヒットしなかったためよろしくお願いします

0416名前は開発中のものです。2009/01/17(土) 23:53:38ID:m/2DoB9T
全部Win32APIにある
0417名前は開発中のものです。2009/01/17(土) 23:57:48ID:h2yGMjkV
>>416
ありがとうございます見つかりました

下のは
GetActiveWindow()
でいけそうですね
上も調べてみます。ありがとうございました
0418名前は開発中のものです。2009/01/18(日) 01:29:33ID:W8VFm9RV
度々すいません
>>415はアドバイスのお陰で全て解決しました

ところで、作成したexeを起動するとLog.txtというものができるのですがこれは仕様なのでしょうか?
logファイルを作成しないように設定することは出来ないのでしょうか?
よろしくお願いします
0419名前は開発中のものです。2009/01/18(日) 01:46:03ID:bv5ORrRe
リファレンスを log で検索してみた?
0420名前は開発中のものです。2009/01/18(日) 19:14:35ID:d7+8UZEG
Dx_Lib()
より前でSetOutApplicationLogValidFlagを呼びださなければなら無かったのですね
解決しましたありがとうございました
0421名前は開発中のものです。2009/01/18(日) 19:22:47ID:Dn7rF8in
dxlibって英語の使い方が変だよね
LogValidとか
0422名前は開発中のものです。2009/01/18(日) 20:26:55ID:d7+8UZEG
もしかしてめちゃくちゃ初歩なのかもしれないけど
他のツールで作ったソフトの内部でDXライブラリを呼び出すことって出来るんですか?

例えば、ノベルゲーム作成ツールでゲームを作って、ところどころでDXライブラリで作ったゲームを組み込む
みたいな感じで
ノベルのほうで普通にDXライブラリ製のソフトを呼ぶと窓が起動してしまいますよね?
ノベルのほうと同じ窓でゲームを実行することってできないのでしょうか?

意味がよく分からなかったらすいません
0423名前は開発中のものです。2009/01/18(日) 20:58:55ID:N4guzxX8
たぶん無理だと思うが
0424名前は開発中のものです。2009/01/18(日) 21:03:33ID:BZ0GBkU2
>>422
何が言いたいのかはわかるけど、残念ながら恐らく不可能。
両方でしっかりデータの受け渡しができれば、携帯アプリの前編後編みたいにすることは出来るかも知れないけど、
現存のツールではそこまでの機能は無いと思うし……。
0425名前は開発中のものです。2009/01/18(日) 21:11:32ID:Dn7rF8in
プロセス二つ作ってパイプで通信すればいいじゃない
0426名前は開発中のものです。2009/01/18(日) 21:29:03ID:d7+8UZEG
>>423,424
そうですか・・・

あまり知識無いんですけど、描画先のウィンドウハンドル(ここではノベゲー)を取得して、内部でDXライブラリ製のソフトを呼び出した時
ウインドウを新規で作らず、いまあるウインドウを描画先に指定(取得したハンドルを用い)みたいなことができれば可能なのかな?

よくわからないorz

>>425
具体的にはどういうことでしょうか?
ぐぐったら分かるかな


アドバイスありがとうございます
0427名前は開発中のものです。2009/01/18(日) 21:39:59ID:GlhQpd6d
プラグイン形式的なDLLを作成すれば可能
0428名前は開発中のものです。2009/01/18(日) 22:57:46ID:d7+8UZEG
>>427
ありがとうございます
やることとしては>>426に書いたとおり
>描画先のウィンドウハンドル(ここではノベゲー)を取得して、内部でDXライブラリ製のソフトを呼び出した時
>ウインドウを新規で作らず、いまあるウインドウを描画先に指定(取得したハンドルを用い)みたいなことができれば可能なのかな?

描画先を既存のウィンドウにすればいいんですよね

これってどうやるんだろう・・・・
0429名前は開発中のものです。2009/01/18(日) 23:10:15ID:3xnYsDJW
>>422
できるぞ、(ただし、元のプログラムが自作かせめて、DLLを使えるのが前提だが。)

>>426
>ウインドウを新規で作らず、いまあるウインドウを描画先に指定(取得したハンドルを用い)みたいなこと・・・・
は、難しいと思う。
見た目的には、同等の事も可能だと思うが、実際にそのウィンドウに・…はややこしいと思う。
(内部的にその元アプリがどんな事してるか次第だけど、DXlib使うとDX内処理もあるから
 フック掛けて完璧に使えるとは思えないから。)

>>425じゃないけど、参考になりそうな。
 ttp://funini.com/kei/vs/named_pipes.shtml
 ttp://www.fides.dti.ne.jp/~tokai/vc/vcpipe.html
 ttp://msdn.microsoft.com/ja-jp/library/cc430103.aspx
 ttp://msdn.microsoft.com/ja-jp/library/cc429587.aspx
 ttp://msdn.microsoft.com/ja-jp/library/cc429021.aspx

 ttp://www.02.246.ne.jp/~torutk/cxx/sharedmemory/win32_shmem.html
 ttp://www.alpha-net.ne.jp/users2/uk413/vc/VCT_FileMapping.html
0430名前は開発中のものです。2009/01/18(日) 23:14:26ID:d7+8UZEG
>>429
ベースプログラムは吉里吉里かSystem4.0を考えてるので多分dllの読み込みは可能かとも居ます
実際色々プラグイン公開されてるし

色々ありがとうございます
調べてみます
0431名前は開発中のものです。2009/01/19(月) 10:34:52ID:X5SZs/u2
>>396
亀だがやってみた

とりあえず途中から敵固すぎワロタ
ボンバーなしじゃ無理な気がww



俺のシューティングは随分昔にシューティングスレに投下してから弾幕に凝っててあんまり見た目の進歩がないぜ
0432名前は開発中のものです。2009/01/19(月) 17:31:41ID:yZM1xSvo
>>431
固さは面とレベルの兼ね合いにしたいと思います。
最近見かけばかりに力を入れてて肝心のゲーム内容は…。
0433名前は開発中のものです。2009/01/19(月) 17:42:09ID:IkXU3fd8
星のパーティクルがすてき。
0434名前は開発中のものです。2009/01/19(月) 20:32:05ID:j6ExWMod
シューティングってこんなに作るの難しかったんだな

ゼビウスみたいのなら楽勝だろとか思ってました、ごめんなさい
0435名前は開発中のものです。2009/01/20(火) 11:58:06ID:dMyWKq6o
初心者です
質問なのですが、ゲームのBGMで
最初に戻って繰り返すときBGMをとぎれてしまわないようにする方法はありますでしょうか
例えばRPGの戦闘音楽のようにずっと放置していてもきれいにループするような方法です
0436名前は開発中のものです。2009/01/20(火) 12:40:01ID:/e+EiVUH
曲の途中で違和感のない位置に飛ばせばいいと思う。

俺はやったことないけど
http://homepage2.nifty.com/natupaji/DxLib/function/dxfunc_sound.html#R8N13
これできれいにループするんじゃない?
0437名前は開発中のものです。2009/01/20(火) 12:51:49ID:dMyWKq6o
>>436
ありがとうございます!勉強してチャレンジしてみます!
0438名前は開発中のものです。2009/01/20(火) 15:22:07ID:A5DSi9Sd
>435
あと、姑息な手段で申し訳ないが
MIDIのようにサイズを気にしなくて済むようなものなら、最初から10分続くファイルにしてしまうという手もある。
0439名前は開発中のものです。2009/01/21(水) 22:18:20ID:2s5lyHkK
PlaySoundMem()でループ再生フラグを指定すればいいよ。
>>435がファイル形式を言ってないのでわからないけどwavなら綺麗にループする。
0440名前は開発中のものです。2009/01/22(木) 15:31:01ID:Xr8Aa3cY
>>439
たぶん>>435が使っているファイルは曲の最初と最後が繋がってないやつなんだろう。
だから、普通にループ指定すると音が途切れずにループしない。

けど、市販ゲームでもこういうBGMあるし、俺は気にしないけどな
0441名前は開発中のものです。2009/01/22(木) 17:11:41ID:q+tQcJ7A
>>435
無音時間の全くない完全なシームレスループにしたい場合、下のページが参考になると思います。
ttp://www13.plala.or.jp/kymats/study/MULTIMEDIA/waveOut_multibuf.html

API使わないといけないのとWAV限定ですが。
0442名前は開発中のものです。2009/01/22(木) 17:15:00ID:9/RQfEqV
>>441
FF10のジェクト戦みたいにボーカルいれた音楽をBGMとして使えそうだな
すげえ
0443名前は開発中のものです。2009/01/22(木) 17:34:21ID:Bh2KGHfp
>>440
「最初に戻って」って書いてあるからなぁ。
でも途切れる方法が書いてないところが色んな憶測を呼ぶよね。
まぁここまでで解決方法出たと思うからいいんだけどさ…。
0444名前は開発中のものです。2009/01/26(月) 16:05:31ID:2mzhNCi2
DXライブラリ(2.25)のプロジェクトがコンパイルできない。
'/O2' と '/RTC1' は同時に指定できません ってコンパイルエラーが出る。
プロジェクトの設定でO2→Odにしてるんだけれども。
RTC1の方を切ればコンパイルできるんだけど、なんでだー!
0445名前は開発中のものです。2009/01/30(金) 19:51:30ID:Wy6ip41+
フルスクリーン化ではなく、ウィンドウモードでの最大化って
どうやったらできるんでしょうか?
0446名前は開発中のものです。2009/01/31(土) 06:27:02ID:mi0nZoft
起動時に設定ファイルなり引数なり読み込んで解像度変更させちゃえば?
0447名前は開発中のものです。2009/01/31(土) 08:53:12ID:dFEgAXD4
>>445は画面サイズを可変にしたいということ?
どこかにそれっぽいサンプルがあったような……。気のせいかな。
0448名前は開発中のものです。2009/01/31(土) 09:07:06ID:KRmQ80Gs
SetWindowSizeChangeEnableFlagで可変設定、
SetGraphModeで直接指定ができるね
なんとかして使ってるモニタの解像度を取得して当て込めば出来るかも
だけど処理速度は厳しいだろうな
0449名前は開発中のものです。2009/01/31(土) 10:47:56ID:rbcO49fB
ウィンドウのサイズを変えたいのじゃなくて
右上の最大化のボタンを押せば、標準的なアプリと同じような
動作にしたいです、
画面全体にきっちり広がって間違ってマウスでドラッグしても動かないような感じです
0450名前は開発中のものです。2009/02/01(日) 00:40:50ID:XJc1/NhO
えーと、それで、何がしたいの・・・?
0451名前は開発中のものです。2009/02/01(日) 10:34:54ID:lmI58fq8
>>449
普通にフルスクリーンモードじゃなくてウインドゥモードにすれば
いいだけじゃないの?
そういう関数あったと思うけど。
0452名前は開発中のものです。2009/02/01(日) 12:40:27ID:8EnnwsB0
デフォルトでは画面の端っこにマウスポインタを当ててもサイズは変えられないし
最大化ボタンも押すことができない
これを変えたいってことなら
サイズの手動変更の場合は>>448
あとはSetUseASyncChangeWindowModeFunction()で最大化ボタン有効化だと思うんだが
ちょっとこっちの使い方が分からないorz
0453名前は開発中のものです。2009/02/01(日) 22:16:17ID:2n+Oqc2F
縦シューを作ろうと思ってるんですが、
480x640で起動することってできますか?
0454名前は開発中のものです。2009/02/01(日) 22:20:08ID:90n+ELwG
>>453
http://homepage2.nifty.com/natupaji/DxLib/function/dxfunc_graph.html#R4N1
0455名前は開発中のものです。2009/02/01(日) 22:30:43ID:2n+Oqc2F
>>454
できた!
ありがと^^
起動時に640x480になってるのが気になるけど、まいっか
0456名前は開発中のものです。2009/02/01(日) 22:34:51ID:90n+ELwG
>>455
もっと早い段階で呼び出せば良いよ
DxLib_lint()より上で呼べば最初からそのサイズになる
0457名前は開発中のものです。2009/02/04(水) 01:44:28ID:igrRGuw3
DXライブラリで同人ゲームを作ろうと思っています。

C++でプログラミングするにあたって、横スクロールアクション(マリオとかロックマンみたいな)
の作り方のサンプルを紹介してるサイトってないですかね?

↓シューティングゲームについては四聖龍神録さんのページが非常に役に立ちました!
http://dixq.net/rp/
0458名前は開発中のものです。2009/02/04(水) 09:38:48ID:2Cf0XhT+
>>457
公式HPのサンプル
0459名前は開発中のものです。2009/02/04(水) 14:27:42ID:CO3XfILg
応用力の無いやつや
0460名前は開発中のものです。2009/02/04(水) 16:43:08ID:KduT8vdn
>>457

C++でのサンプルはどこにもない。と言い切っていい。

JAVAだが、考え方としてはいいかもしれないのでこれを見て、自分で考えてはどうか。
http://javagame.skr.jp/index.php?FrontPage

これもC++ではないが、考え方としては(以下同文
http://itpro.nikkeibp.co.jp/article/COLUMN/20060228/231306/?ST=swd-tech

やはり、自分で考えて試行錯誤するしかないのではと思う今日この頃
0461名前は開発中のものです。2009/02/04(水) 21:32:21ID:6meQrl/q
最初はグローバル変数使いまくって
次に構造体をグローバルにして使いまくって
次に構造体をポインタで書き換えるようにして
引数に構造体のポインタがどんどん増えていき
次に各構造体の先頭のポインタをまとめた構造体をつくってそれを引数にしたんだけど
だいたいみんなこんな感じ?
04624572009/02/04(水) 22:20:44ID:igrRGuw3
>>458-460
レスサンクスです!

>>460
まさにこういうページ探してました!
横スクロールと敵の制御とか参考になりまくりです。
言語は問わないんですが、STGの情報は多いのにACTはなかなか無かったので。

↓自分でも探してたんですが専門学校(?)のゲームの作り方ページもよかったです。
http://rina.jpn.ph/~rance/directx8/

Web上だとなかなか情報が無いから、専門学校の
教科書が欲しいなんて思っちゃいました。笑
0463名前は開発中のものです。2009/02/05(木) 03:42:29ID:GjXLMUdb
>>461
前から気になってはいたんだけど、構造体とかグローバルで使うのって何かまずいことでもあるの?
ポインタにする利点をずぶの素人の俺にも分かり易く教えて欲しい。
引数で構造体を直に渡してなければ余り関係ない気がしてるんだけど。
0464名前は開発中のものです。2009/02/05(木) 07:27:08ID:rTUW0rFP
グローバルな変数は、他で書き換えられるかもしれないことを
いちいち考えないといけないんだよな
プログラムの複雑さが増すので乱用は慎しめと言われてる
0465名前は開発中のものです。2009/02/05(木) 08:09:33ID:ojur6QxZ
はっきり言ってしまえば、そのプログラムを自分しかさわらなくて、
注意して組む自身があるならグローバルでも問題ないと思う。
0466名前は開発中のものです。2009/02/05(木) 08:48:42ID:9t4FKbe4
>>465
俺は、あえて 「昨日の自分は他人」だと思って、
可能な限り、必要性のない限り グローバル変数は使わない方がいいと思うけどね。
(特に、携帯機器とかメモリ節約とか求められてない時は余計に。)

>>463
“普通の”ポインタの利点は、微妙だな。ただ、まだまだある所じゃ、速度的に値のコピーよりも
参照して行った方が効率が良かったり、処理の記述がしやすくなったり。

ただ、あるClassのポインタ(関数ポインタ含む)は処理の委譲に頻繁に利用される。
利点として、全体像が綺麗にできるし、コードの混雑が大きく減る。
cf.Strategy パターン Decorator パターン  双方向リスト 動的確保
0467名前は開発中のものです。2009/02/05(木) 09:31:40ID:Qc5+f5Cj
>>463
グローバル構造体自体は普通に使うよ。
グローバルクラスが普通に使われるように。
C++においては構造体=クラスだからね。
問題は、構造体に使われるpublic変数なんだと思う。
GetXX(),SetXX()にすればいいって問題でもないとは思うけど、もしクラスならメンバ変数は基本的にみんなprivateでしょ?
0468名前は開発中のものです。2009/02/05(木) 10:35:01ID:4io8tQ0w
何言ってるかさっぱりわからん俺のソースは絶対他人には見せられんな。
0469名前は開発中のものです。2009/02/05(木) 17:44:21ID:B8Cz6uqn
>>463
461です
俺は今年からプログラミング初めた素人
まだグローバル変数使って困ったことはないけど
勉強しつつゲーム製作やってるから今はポインタ使って試してる
次はクラスってのを使ってみる予定
0470名前は開発中のものです。2009/02/06(金) 00:33:01ID:O6HFVvT0
DxLibでaviを再生させる関数ってありますか???
0471名前は開発中のものです。2009/02/06(金) 00:35:30ID:O6HFVvT0
>>470
すいません
DXライブラリで検索したら即効見つかりました
お騒がせしました
0472名前は開発中のものです。2009/02/06(金) 00:57:03ID:O6HFVvT0
すいません
下のようなコードで何か問題ってありますでしょうか
動画が真っ黒の画像で再生されてしまいます
test.aviはexeファイルと同じディレクトリにあります

#include "DxLib.h"

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
{
return -1; // エラーが起きたら直ちに終了
}

PlayMovie( "test.avi" , 1 , DX_MOVIEPLAYTYPE_BCANCEL ) ;

DxLib_End() ; // DXライブラリ使用の終了処理

return 0 ; // ソフトの終了
}
0473名前は開発中のものです。2009/02/06(金) 08:46:48ID:7KSAHxxq
>>472
原因を調べるにはまずどこがおかしいか調べようぜ
PlayMovieの戻り値は調べた?
まあおそらくtest.aviが開けないんだと思うけど。
exeと同じディレクトリでもカレントがそことは限らないよ、どうやって実行した?
フルパスで指定してみるのがいいかもね
0474名前は開発中のものです。2009/02/06(金) 10:04:24ID:T3lftGPa
>>472

#include "DxLib.h"

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
{
return -1; // エラーが起きたら直ちに終了
}

if(PlayMovie( "test.avi" , 1 , DX_MOVIEPLAYTYPE_BCANCEL ) ==-1)
{MessageBox(NILL,"ファイルが開けません","読み込みエラー",MB_OK);}

WaitKey();
DxLib_End() ; // DXライブラリ使用の終了処理

return 0 ; // ソフトの終了
}

こう変えて確認してみたら?
PlayMovieは、ファイルの読み込みに失敗すると-1を返す(成功は0)
もし、これでMessageBox表示されたら上手くファイル指定ができてないってこと

もしかしたらコーデックなんかの問題もあるかもしれないけどそこは分からない
あと、PlayMovieはそこでムービー停止するまで処理とまるんだっけ?
そうじゃないならムービーの再生が終わるまで処理終わらないようにする工夫が必要

どれもこれもリファレンスにあるから一度目を通してね
0475名前は開発中のものです。2009/02/06(金) 10:36:49ID:7KSAHxxq
つーかこれ公式のヘルプのサンプルそのまま貼り付けただけじゃないか。
これで問題ありますか?って、、、、
今後もサンプルがうごかないたびにコメントごとそのまま貼り付けるつもりか。
0476名前は開発中のものです。2009/02/06(金) 10:44:57ID:RXpavouu
公式ページにカレントディレクトリの説明がないからだろ
フルパス指定を推奨しろよ
0477名前は開発中のものです。2009/02/06(金) 22:13:54ID:bune21hQ
実行させてないけども、472のプログラムって一瞬で終わったりはしないのか・・
0478名前は開発中のものです。2009/02/07(土) 00:40:47ID:9/tOLDQP
一応、ムービーは最後まで流れたよ。
ファイルが無いときも黒画面のフルスクリーンまでいって帰ってくる
0479名前は開発中のものです。2009/02/07(土) 00:50:47ID:XZUozGI6
>>472
音は鳴ってるの?
04804722009/02/07(土) 12:23:31ID:m2CcO09N
すいません
解決しました
原因は動画のサイズが大きかったことでした
試しに400*300の小さい動画を再生したところ画面左端にきちんと表示されました
0481名前は開発中のものです。2009/02/07(土) 16:43:56ID:5JGvk0Ld
ほー大きいと駄目なのか
0482名前は開発中のものです。2009/02/07(土) 18:57:56ID:fLtGYl8p
大きいってどれくらいだろう。
0483名前は開発中のものです。2009/02/07(土) 21:03:54ID:lpCM/pFJ
謎がふかまるばかりだ
0484名前は開発中のものです。2009/02/07(土) 23:54:45ID:winQ4pAR
画面から一部はみ出てるから表示されないじゃね
0485名前は開発中のものです。2009/02/09(月) 20:19:32ID:1pnOXqGt
背景の画像と前景の人物画の輪郭をアンチエイリアスで
合成するにはどうしたらいいですか?
0486名前は開発中のものです。2009/02/09(月) 21:02:42ID:r4CYwpcr
アルファブレンドの出番かな?
ファイル名_a.拡張子で指定。プログラムは変更不要で元ファイルといっしょに読み込む。
グレースケール(白黒)で256階調。
0(黒)が完全透過で255(白)がマスク、中間値で半透明処理できる。
0487名前は開発中のものです。2009/02/09(月) 21:16:29ID:hQLvxnkO
前景に普通にアルファチャンネル付き24bit-PNG使うだけじゃなくて?
0488名前は開発中のものです。2009/02/09(月) 21:39:39ID:kpyVvUs4
png扱えるならそれが一番楽だな
0489名前は開発中のものです。2009/02/09(月) 22:04:30ID:1pnOXqGt
ありがとうございます

アルファブレンド試してみました
ファイル一つ用意するだけで出来たんですね
美しい描画に感動しました

アルファチャンネル付きpngは今から作ってみます
作ったことないからグーグルから始めますが
今日中にがんばってみます

0490名前は開発中のものです。2009/02/09(月) 22:37:00ID:1pnOXqGt
アルファチャンネル付きpngすぐ出来た
ありがとうございました
■ このスレッドは過去ログ倉庫に格納されています