[過去ログ]
DXライブラリ 総合スレッド その5 (1001レス)
DXライブラリ 総合スレッド その5 http://echo.5ch.net/test/read.cgi/gamedev/1259912953/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
1: 名前は開発中のものです。 [sage] 2009/12/04(金) 16:49:13 ID:7SKA4I5z Cを習得した程度のスキルでも、 GUIのゲームを比較的容易に作成する事を可能にする、 「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/t
est/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/ http://echo.5ch.net/test/read.cgi/gamedev/1259912953/1
2: 名前は開発中のものです。 [sage] 2009/12/04(金) 17:07:40 ID:2O781c7T 乙 http://echo.5ch.net/test/read.cgi/gamedev/1259912953/2
3: 名前は開発中のものです。 [] 2009/12/04(金) 17:19:26 ID:vm4DXNCA Ver3からPlayMovieToGraphで透明色が適用されないのとちょっとフレーム落ちと音ズレが激しいなあ もちろん確認のために2.25bでも試したが透明色やフレームレート落ちや音ズレなしで問題なし http://echo.5ch.net/test/read.cgi/gamedev/1259912953/3
4: 名前は開発中のものです。 [sage] 2009/12/04(金) 18:16:40 ID:6AQLzT+8 DxLibの暗号化ファイル読み込みに対応した暗号化書き込みってなんでライブラリに入れないんだろう セーブとか実行時に暗号化して書きたい時って割とあるとおもうんだが・・・ http://echo.5ch.net/test/read.cgi/gamedev/1259912953/4
5: 名前は開発中のものです。 [] 2009/12/04(金) 23:18:48 ID:XUOEwrjE 前スレ>>916 弾幕シューティングではないのだが・・・参考になったさ。ありがとう。 http://echo.5ch.net/test/read.cgi/gamedev/1259912953/5
6: 名前は開発中のものです。 [sage] 2009/12/05(土) 00:35:03 ID:FfRkZmBc >>4 確かに使いたいときはよくある。でもそれってDirectXの機能じゃないからじゃ? http://echo.5ch.net/test/read.cgi/gamedev/1259912953/6
7: 名前は開発中のものです。 [sage] 2009/12/05(土) 01:27:00 ID:yZDYDRsN >>4 セーブデータなんて自分で暗号化すれば済むからでしょ。 http://echo.5ch.net/test/read.cgi/gamedev/1259912953/7
8: 名前は開発中のものです。 [] 2009/12/05(土) 12:30:22 ID:CQOWfBMw ToyStudioでアニメーション作って、MQOで出力したんだけど、 ものすごい膨大な量のMQOデータが出てきたんだけど・・・ アニメーションを作るたびに毎回こんなのが出てくるの? そもそもこういう出力結果をゲーム内でアニメとして使えるの? http://echo.5ch.net/test/read.cgi/gamedev/1259912953/8
9: 名前は開発中のものです。 [sage] 2009/12/05(土) 14:14:45 ID:Sya3hEP4 裏画面全体を拡大縮小したり回転させることとか出来ないかな? ゲームのエフェクトで画面全体をくるくる回したりしたいんだけど http://echo.5ch.net/test/read.cgi/gamedev/1259912953/9
10: 名前は開発中のものです。 [sage] 2009/12/05(土) 14:22:43 ID:UtZjONga 動かないんだったら、描画したヤツを取り込んで一枚の画像にしちゃってまわせばいいんじゃない? 動くんだったら計算させて自前で回転描画すればいいだけだし。 http://echo.5ch.net/test/read.cgi/gamedev/1259912953/10
11: 名前は開発中のものです。 [sage] 2009/12/05(土) 15:12:47 ID:GsjhaCrH ゲームってグローバル変数使ったほうが普通に綺麗に書ける気がしてきた http://echo.5ch.net/test/read.cgi/gamedev/1259912953/11
12: 名前は開発中のものです。 [sage] 2009/12/05(土) 15:15:49 ID:UZumt6OG >>8 アニメーションxファイルで出せよww MQOはモーションつかないから連番で出すしかない http://echo.5ch.net/test/read.cgi/gamedev/1259912953/12
13: 名前は開発中のものです。 [sage] 2009/12/05(土) 16:02:55 ID:gqFDk2ay シングルトンはついつい使っちゃうよなあ・・ http://echo.5ch.net/test/read.cgi/gamedev/1259912953/13
14: 名前は開発中のものです。 [sage] 2009/12/05(土) 16:14:43 ID:IYliNqS4 使っちゃえよ http://echo.5ch.net/test/read.cgi/gamedev/1259912953/14
15: 名前は開発中のものです。 [sage] 2009/12/05(土) 16:24:59 ID:rsncbGmt ttp://homepage2.nifty.com/natupaji/DxLib/function/dxfunc_graph.html#R4N2 これのデスクトップの広さ 1024x768 の方を取得する方法について教えて下さい http://echo.5ch.net/test/read.cgi/gamedev/1259912953/15
16: 名前は開発中のものです。 [sage] 2009/12/05(土) 16:51:52 ID:z1L4m3Am DXライブラリに関係なく GetSystemMetrics(SM_CXSCREEN); とかで http://echo.5ch.net/test/read.cgi/gamedev/1259912953/16
17: 名前は開発中のものです。 [sage] 2009/12/05(土) 17:17:35 ID:rsncbGmt できました ありがとうございました http://echo.5ch.net/test/read.cgi/gamedev/1259912953/17
18: 名前は開発中のものです。 [sage] 2009/12/05(土) 19:31:08 ID:GsjhaCrH だめだ俺にはローグライクは早かったようだ・・・テトリスからやり直すぜ http://echo.5ch.net/test/read.cgi/gamedev/1259912953/18
19: 名前は開発中のものです。 [sage] 2009/12/06(日) 00:09:46 ID:AxjxjhaV 俺もグローバル使う位ならスタティック使ってたけど 結局普通にグローバル使った方が楽なことに気付いた (全てスタティックが駄目というわけではないが) グローバルでも名前空間とか使えば局所性もある程度保てるんじゃないかなあ http://echo.5ch.net/test/read.cgi/gamedev/1259912953/19
20: 名前は開発中のものです。 [sage] 2009/12/06(日) 00:10:45 ID:wryxppBn 環境変数や外部ファイルはグローバル変数なので使用禁止 http://echo.5ch.net/test/read.cgi/gamedev/1259912953/20
21: 名前は開発中のものです。 [sage] 2009/12/06(日) 10:11:40 ID:+RNAMjqx ゲームに関してはあらゆる関数で共用するものが多いし、 クラスで雁字搦めにして書かない限りグローバル変数使ったほうが分かりやすい http://echo.5ch.net/test/read.cgi/gamedev/1259912953/21
22: 名前は開発中のものです。 [sage] 2009/12/06(日) 10:20:30 ID:AO9SCSiS いざ対戦機能とか、似たような機能を二つ以上配置することを考えると、 「やっぱグローバルやめときゃよかった」ってなる。 http://echo.5ch.net/test/read.cgi/gamedev/1259912953/22
23: 名前は開発中のものです。 [sage] 2009/12/06(日) 10:33:36 ID:+HYK3UFu グローバルしか使ってないヘタレPGとしては、どういう恩恵があるのか自体想像がつかん。 http://echo.5ch.net/test/read.cgi/gamedev/1259912953/23
24: 名前は開発中のものです。 [sage] 2009/12/06(日) 10:48:26 ID:goldsq2u 最悪なのがグローバル変数代わりのシングルトン >>22のようなことを考えるとグローバルの方がマシ http://echo.5ch.net/test/read.cgi/gamedev/1259912953/24
25: 名前は開発中のものです。 [sage] 2009/12/06(日) 11:12:16 ID:Vlb8mlu0 >>24 なんで? http://echo.5ch.net/test/read.cgi/gamedev/1259912953/25
26: 名前は開発中のものです。 [sage] 2009/12/06(日) 12:19:26 ID:jMxq/kh5 画像復元の処理を追加してたんだが SetRestoreGraphCallbackに登録する関数で使う変数のために とりあえず読み込み用クラスのポインタをグローバルなポインタ作ってそこに渡して動作させてる 他に良い方法ない? http://echo.5ch.net/test/read.cgi/gamedev/1259912953/26
27: 名前は開発中のものです。 [] 2009/12/06(日) 14:27:31 ID:vkleFuhi 文字がだんだん表示させる演出すると、 文字の後ろに・が一緒に表示されるという怪現象が……。 なんだこれ? まあ、たぶん俺のコードのどっか悪いんだろうが。 http://echo.5ch.net/test/read.cgi/gamedev/1259912953/27
28: 名前は開発中のものです。 [sage] 2009/12/06(日) 14:53:59 ID:P3Xq2+aM いけないことなんだろうなと思いつつ グローバルばかりでやってたがそうでもないのかな http://echo.5ch.net/test/read.cgi/gamedev/1259912953/28
29: 名前は開発中のものです。 [sage] 2009/12/06(日) 15:10:27 ID:AxjxjhaV それ文字1文字1文字ずつ表示させるって言う意味かな 全角だと1バイト分読み込んだ時に正しく認識されないから 全角の場合は2バイト分読み込ませればいいんじゃないかな http://echo.5ch.net/test/read.cgi/gamedev/1259912953/29
30: 名前は開発中のものです。 [sage] 2009/12/06(日) 15:34:50 ID:L7OXdhxz DXライブラリを使ってVC++2008EEでプログラムを作ったんだけれど、 配布するときにDXライブラリをインストールしていないPCでも 起動できるような配布の方法はあるのだろうか よくわかんないけどDXライブラリランタイムみたいなのがあれば、 それを一緒に配布するみたいな方法とかある? それとも配布するプログラムとは別にDXライブラリをインストールしてもらうしかないのだろうか。 http://echo.5ch.net/test/read.cgi/gamedev/1259912953/30
31: 名前は開発中のものです。 [sage] 2009/12/06(日) 15:39:03 ID:bw4St35R >>30 よくわかんないけどたぶん上の[Debug]を[Release]に変えて 出てきたReleaseフォルダを配布すればいいと思う http://echo.5ch.net/test/read.cgi/gamedev/1259912953/31
32: 名前は開発中のものです。 [sage] 2009/12/06(日) 15:43:00 ID:ez8iS4so DxLibはスタティックライブラリだから使うほうはべつになにもいらない ダイナミックなDxLibがあるのかわからんけど自作とかしたならその場合はDLLも配布しないといけない http://echo.5ch.net/test/read.cgi/gamedev/1259912953/32
33: 名前は開発中のものです。 [] 2009/12/06(日) 15:43:02 ID:CJZjyivE >>30 DXライブラリは関数の集合だから、ランタイムパッケージは必要ないんじゃないの? プログラムが実行ファイルにされるときにすべてC言語からアセンブリ言語にされるはず。 相手に準備が必要なものがあるとすればDIRECTXなんじゃないかな。 http://echo.5ch.net/test/read.cgi/gamedev/1259912953/33
34: 名前は開発中のものです。 [] 2009/12/06(日) 15:43:31 ID:vkleFuhi >>29 お、直った! ありがとー。 STLのstring使ってるんだけど、itretorひとつ進めても、 2バイト文字だとふたつ進めたとこからやらないとだめなんだな……勉強になった。 http://echo.5ch.net/test/read.cgi/gamedev/1259912953/34
35: 名前は開発中のものです。 [sage] 2009/12/06(日) 15:44:56 ID:vkleFuhi iteratorだった。 IDEのサポートに頼りっきりはこれだから……。 http://echo.5ch.net/test/read.cgi/gamedev/1259912953/35
36: 名前は開発中のものです。 [sage] 2009/12/06(日) 16:16:24 ID:L7OXdhxz >>31 Releaseの使い方もわかってなかったから、 配布ファイル自体の作り方もわかった。ありがと。(早速、フォルダを作成したら、画像ファイルだけは、出来上がったフォルダに手動で追加することになるみたい。) >>32 ダイナミックなDxLibというのはよくわかんないけど、多分そこまで複雑な機能を使いこなしてないから、 DLLの心配はしなくていいととりあえず思う。 >>33 DIRECTXの準備が必要ということか。 これは、さすがにインストールしてもら
うしかないということだね。 これでとりあえずプログラムの配布ができそう。ありがと。 http://echo.5ch.net/test/read.cgi/gamedev/1259912953/36
37: 名前は開発中のものです。 [sage] 2009/12/06(日) 16:18:32 ID:RsTxI8Hk >>30 Releaseフォルダの中身だけでおk http://echo.5ch.net/test/read.cgi/gamedev/1259912953/37
38: 名前は開発中のものです。 [sage] 2009/12/06(日) 16:29:03 ID:AxjxjhaV 別に[Debug]でもよくね? まあ普通は[Release]だろうが http://echo.5ch.net/test/read.cgi/gamedev/1259912953/38
39: 30 [sage] 2009/12/06(日) 16:48:28 ID:L7OXdhxz >>31、32,33 ありがとう!! http://echo.5ch.net/test/read.cgi/gamedev/1259912953/39
40: 名前は開発中のものです。 [sage] 2009/12/06(日) 17:10:59 ID:bw4St35R >>38 そういえばアレ何が違うの? あとDXライブラリ使ったらReadmeに使ったって書かなきゃダメ? http://echo.5ch.net/test/read.cgi/gamedev/1259912953/40
41: 名前は開発中のものです。 [sage] 2009/12/06(日) 17:29:11 ID:+RNAMjqx >>40 そのままデバッグが入るか否か 少し重くなる readmeは要らん ただしソースを配布するなら必須 http://echo.5ch.net/test/read.cgi/gamedev/1259912953/41
42: 名前は開発中のものです。 [sage] 2009/12/06(日) 17:50:49 ID:bw4St35R >>41 ありがとー http://echo.5ch.net/test/read.cgi/gamedev/1259912953/42
43: 名前は開発中のものです。 [sage] 2009/12/06(日) 18:03:42 ID:vkleFuhi DXライブラリって音のフェードインとかには対応してないっぽい? http://echo.5ch.net/test/read.cgi/gamedev/1259912953/43
44: 名前は開発中のものです。 [sage] 2009/12/06(日) 18:15:43 ID:+RNAMjqx 自分で作れよ http://echo.5ch.net/test/read.cgi/gamedev/1259912953/44
45: 名前は開発中のものです。 [sage] 2009/12/06(日) 19:38:55 ID:EqSux42R ChangeVolumeSoundMem関数使えば簡単に実装出来ますよ。例えば /****** Zキーを押すとフェードアウトを始める *******/ /****** test.wavはサンプルプログラム実行用フォルダ参照 *******/ #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){ ChangeWindowMode(TRUE); if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1; int Flag=0, Vol=255, SoundHandle = LoadSoundMem
("test.wav"); PlaySoundMem( SoundHandle, DX_PLAYTYPE_LOOP ); while( !ProcessMessage() && !ClearDrawScreen() && !CheckHitKey(KEY_INPUT_ESCAPE) ){ if( CheckHitKey(KEY_INPUT_Z) ){ Flag = 1; } if( Flag ){ Vol -= 2; ChangeVolumeSoundMem( Vol, SoundHandle ) ; if( Vol < 0 ){ Flag = 0; Vol=0; } } clsDx(); printfDx("Vol = %d\n",Vol); ScreenFlip(); } DxLib_End(); return 0; } http://echo.5ch.net/test/read.cgi/gamedev/1259912953/45
46: 名前は開発中のものです。 [sage] 2009/12/06(日) 23:30:09 ID:vkleFuhi >>45 どうもありがとうございますー。 色々考えてみた結果、マルチタスクに手を出さないとダメっぽいということがわかったので、 なんとか実装するか。 http://echo.5ch.net/test/read.cgi/gamedev/1259912953/46
47: 名前は開発中のものです。 [sage] 2009/12/06(日) 23:59:28 ID:jMxq/kh5 DxLibはマルチスレッド非対応じゃないっけか http://echo.5ch.net/test/read.cgi/gamedev/1259912953/47
48: 名前は開発中のものです。 [sage] 2009/12/07(月) 00:00:23 ID:QTWxMRN0 普通に出来るしマルチタスクとマルチスレッドは違う http://echo.5ch.net/test/read.cgi/gamedev/1259912953/48
49: 名前は開発中のものです。 [sage] 2009/12/07(月) 00:44:06 ID:yr1Q4g2a すまんかった http://echo.5ch.net/test/read.cgi/gamedev/1259912953/49
50: 名前は開発中のものです。 [sage] 2009/12/07(月) 12:52:27 ID:qjhIwQdC なぁに気にすろな http://echo.5ch.net/test/read.cgi/gamedev/1259912953/50
51: 名前は開発中のものです。 [] 2009/12/07(月) 13:02:56 ID:5mIc7NoF 本家で質問するわけにもいかないので、こっちで。 試験的に、ゲームのプレイ動画を撮ろうと思ったんだが、DXライブラリ3.xで作ったゲームを録画しようとしても全く録画できない。 画面が映らないというより、プロセスを正しく取得できていないような感じ。 ちなみに手元の2.25cだと、ゲームプログラムは弄らずにキャプチャー出来た。(3D機能は未使用) に多様な状況になったひとっている? 自分の環境が悪いのか、キャプチャーソフトが悪いのか、ライブラリ側の都合なのか調
べたい。 OS:WindowsXP SP3 キャプチャーソフト:アマレコ・ライト、Dxtory、DxRec 参考ページ: ttp://www18.atwiki.jp/live2ch/pages/153.html#id_439db353 http://echo.5ch.net/test/read.cgi/gamedev/1259912953/51
52: 名前は開発中のものです。 [sage] 2009/12/07(月) 13:45:13 ID:SKodZ2cg キーボードでAの処理からBの処理へと連続で 同じボタンでやるとします。 この場合あるボタンを押すと勝手にAだけでいいのにBまで処理されて しまいます。Aで止めて、もう一度同じボタンでBの処理をさせる にはどうすればいいの? お願いします。 http://echo.5ch.net/test/read.cgi/gamedev/1259912953/52
53: 名前は開発中のものです。 [sage] 2009/12/07(月) 13:52:55 ID:QTWxMRN0 >>51 WMEでやったらどうなる 範囲指定でやったらどうなる というか仕様的なことならむしろ本家に行った方がいいと思うが >>52 連続ってどういうこと? 押しっぱなしじゃなくて連打させたいという意味なら ・キーを押すとONになるフラグを作る ・キーを離すとそのフラグはOFFになる ・キーがOFFの場合しかキーを押したときに処理が行われない というようにする http://echo.5ch.net/test/read.cgi/gamedev/1259912953/53
54: 名前は開発中のものです。 [sage] 2009/12/07(月) 14:15:07 ID:SKodZ2cg >>53 CheckHitKey関数しか知らないんで key=0; if(CheckHitKey(KEY_INPUT_TAB)==1 && key==0) 処理A,key=1; if(CheckHitKey(KEY_INPUT_TAB)==0 && key==1) key=2; if(CheckHitKey(KEY_INPUT_TAB)==1 && key==2) 処理B, key=0; こんな感じですか? 非効率なような気がします。いい案があればおしえてください。 ちなみにシューティングじゃないんで連打はないです。 http://echo.5ch.net/test/read.cgi/gamedev/1259912953/54
55: 名前は開発中のものです。 [sage] 2009/12/07(月) 14:30:14 ID:QTWxMRN0 >>54 なんでそうなるんだよ bool key=FALSE; int hoge=0; if(CheckHitKey(KEY_INPUT_TAB)==1) { if (!key) { key=TRUE; if (hoge==0) 処理A else 処理B hoge++; } else key=FALSE; あとCheckHitKeyは効率悪いからやめておけ http://echo.5ch.net/test/read.cgi/gamedev/1259912953/55
56: 名前は開発中のものです。 [sage] 2009/12/07(月) 14:43:37 ID:GvCDZJ6F ↑より効率いいやり方ってそうないと思うが あと、例だからかもしれないが、↑だと処理B→Aが続けて処理されると思うので int state = 0; int tab_push = 1; 〜〜〜〜〜〜〜〜〜〜〜〜〜〜 if(CheckHitKey(KEY_INPUT_TAB)==1 && tab_push = 0;) { tab_push = 1; if(state = 0) { 処理A; state = 1; } else { 処理B; state = 0; } // ↑この辺はswitchなりなんなり(処理が2つだけじゃなくたくさんある場合とか) } if(CheckHitKey(KEY_
INPUT_TAB)==0) tab_push = 0; // ↑if(CheckHitKey(KEY_INPUT_TAB)==0 && tab_push = 1) としても変わらない とここまで書いてすでに>>55でレスされてるのに気付いたが ほぼ同じだが投稿しちゃう http://echo.5ch.net/test/read.cgi/gamedev/1259912953/56
57: 名前は開発中のものです。 [sage] 2009/12/07(月) 14:44:31 ID:GvCDZJ6F あ、「↑より効率いいやり方ってそうないと思うが」 の↑は>>54を指すので http://echo.5ch.net/test/read.cgi/gamedev/1259912953/57
58: 名前は開発中のものです。 [sage] 2009/12/07(月) 14:44:45 ID:qjhIwQdC >>54 if (( btn ) && ( ! isPush )) { switch ( step ) { case 1 : doA ( ); step ++; break; case 2 : doB ( ); step ++; break; ・ ・ ・ } } isPush = btn ; http://echo.5ch.net/test/read.cgi/gamedev/1259912953/58
59: 名前は開発中のものです。 [sage] 2009/12/07(月) 15:00:21 ID:SKodZ2cg みなさんありがとうございます。 制御する変数を使わないとやはり難しいみたいですね。 参考にします。 http://echo.5ch.net/test/read.cgi/gamedev/1259912953/59
60: 名前は開発中のものです。 [sage] 2009/12/07(月) 16:30:58 ID:eqdM01iG 状況がよくわからんが一回の入力で連続して押したと判定されるのがいやということかな?だったら↓が汎用的だと思う unsigned count[256] = {0}; while(true) { //メインループ char buf[256]; CheckHitKeyAll(buf); for(int i = 0; i < 256; ++i) if(buf[i] == 1) ++count[i]; else count[i] = 0; //押しっぱなしならカウント数をインクリメントして保存、押されてないとゼロにもどる if(count[KEY_INPUT_XXX] == 1) DoSometing(); //カウントが1のとき、つまりボ
タンが押された最初のフレームのみ反応! // if(count[KEY_INPUT_YYY] % 10 == 0) DoSometing(); //応用して押しっぱなし中なら10フレームごとにイベント、とかできる(シューティングの等間隔のショット処理とかで使える) } http://echo.5ch.net/test/read.cgi/gamedev/1259912953/60
61: 名前は開発中のものです。 [sage] 2009/12/07(月) 17:30:41 ID:03D0QZSj DXライブラリ 総合スレッド その3 http://pc11.2ch.net/test/read.cgi/gamedev/1238429676/315 315 名前:名前は開発中のものです。[sage] 投稿日:2009/06/02(火) 21:23:19 ID:CgQN485t >キー入力 自分が使ってるルーチンのコードを記事にまとめました http://d.hatena.ne.jp/kokarage/20090602/p2 http://echo.5ch.net/test/read.cgi/gamedev/1259912953/61
62: 名前は開発中のものです。 [sage] 2009/12/07(月) 20:24:23 ID:5mIc7NoF >>52 さすがにDXライブラリのサイトで 「○○というソフトを使っても動きません!」という質問はできないだろうw DXライブラリ側に原因があるなら別だが。 WMEはMSのやつかな。 動画作成に関しては今日初めてやったので詳しくないんだ、すまん。 http://echo.5ch.net/test/read.cgi/gamedev/1259912953/62
63: 名前は開発中のものです。 [sage] 2009/12/07(月) 20:49:26 ID:QTWxMRN0 >>62 2.25で出来て3.xで出来ないならライブラリ側の原因である可能性が多いだろ とりあえず色んな方法でキャプチャして、上手くいかなかったら本家行き まあ、WME+SCFH_DSFでは問題なくキャプチャ出来たが。 http://echo.5ch.net/test/read.cgi/gamedev/1259912953/63
64: 名前は開発中のものです。 [sage] 2009/12/08(火) 02:54:12 ID:CEeKe2FB 一々全部のキーに対して押し続けたかどうか判断する必要あるのか 余程多くのキー使うのならともかく普通は押し続けの判断したいキーだけでいいんじゃないのか まあ今のマシンなら全部やっても負荷的には問題ないのかも知れんが http://echo.5ch.net/test/read.cgi/gamedev/1259912953/64
65: 名前は開発中のものです。 [sage] 2009/12/08(火) 08:20:15 ID:bmgyrVLx キー入力関連はゲームだとよく使うし、関数化しておくと便利ですよ。 「何フレーム入力されているか」が解るようにしておけば、ボタン関連の操作は「1フレーム目」または、「キーを離したフレーム」で処理すれば 連続で不必要な処理まで進んでしまう事がありません。 例えば本家のGetHitKeyStateAllを自分で使いやすいようにしたのが GetHitKeyStateAll_2関数です。こんな感じで使えます。 (→コードは次へ) この例ではエンターの入力時間によって処理を分岐しています。
キーの入力状態を格納する変数がint型なので _2関数をさらに「離された時マイナスのカウントをする」ようにすれば 離されてからのフレーム数も解ると思います。 ・・ところでコードを見やすいように字下げする方法無いんでしょうか; http://echo.5ch.net/test/read.cgi/gamedev/1259912953/65
66: 名前は開発中のものです。 [sage] 2009/12/08(火) 08:21:20 ID:bmgyrVLx /****** エンターキーをおした瞬間だけ四角形を描画する *******/ #include "DxLib.h" int GetHitKeyStateAll_2(int KeyStateBuf[]){ char GetHitKeyStateAll_Key[256]; GetHitKeyStateAll( GetHitKeyStateAll_Key ); for(int i=0;i<256;i++){ if(GetHitKeyStateAll_Key[i]==1) KeyStateBuf[i]++; else KeyStateBuf[i]=0; } return 0; } int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow
){ int Key[256]; ChangeWindowMode(TRUE);//ウィンドウモード if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;//初期化と裏画面化 while(ProcessMessage()==0 && ClearDrawScreen()==0 && GetHitKeyStateAll_2(Key)==0 && Key[KEY_INPUT_ESCAPE]==0){ DrawFormatString(0,0,GetColor(255,255,255),"%d",Key[KEY_INPUT_RETURN]);//エンター入力カウント if(Key[KEY_INPUT_RETURN]==1)//今の瞬間押されたら DrawBox(0,0,640,480,GetColor(255,255,255),TRUE);//画面全体を白い四角で表示 ScreenFlip(); } DxLib_End(); retur
n 0; } http://echo.5ch.net/test/read.cgi/gamedev/1259912953/66
67: 名前は開発中のものです。 [sage] 2009/12/08(火) 10:08:46 ID:ziZ5aZky 実際の入力と、返ってくる値は切り分けた方が便利かもね http://echo.5ch.net/test/read.cgi/gamedev/1259912953/67
68: 名前は開発中のものです。 [sage] 2009/12/08(火) 11:20:05 ID:U9efz6mV >>65 ttp://fatalita.sakura.ne.jp/CGI/OKCode/index.html http://echo.5ch.net/test/read.cgi/gamedev/1259912953/68
69: 名前は開発中のものです。 [sage] 2009/12/08(火) 15:24:53 ID:oCon0Lhk MakeGraphでウィンドウサイズより大きい空のグラフィックを作成して、そこにマップチップを敷き詰める処理をしたいのですが グラフィックハンドルを直接指定して描画処理をする方法がわからなくて困っています。 GetDrawScreenGraphを使っていったんウラ画面に描画したものを、空のグラフィックにコピーしようとしたのですが ウィンドウサイズより大きいところに描画されたものはコピーされないみたいでダメでした。 どなたかこの問題を解決できる方はいませんでしょうか?
http://echo.5ch.net/test/read.cgi/gamedev/1259912953/69
70: 名前は開発中のものです。 [sage] 2009/12/08(火) 18:10:50 ID:EpEGhfoB 描画先にグラフィックハンドルを指定したらそこへ描画できるって話をうろ覚え。 ウィンドウサイズ以上にできるかどうかは知らん。 しかしマップチップ敷き詰めたとしても、どうせ表示サイズ以上には表示できないんだし、 普通に毎フレーム描画でいいと思うが。 まぁ全マップを拡大縮小回転とかガンガンやるならちとずれそうで怖いが。 http://echo.5ch.net/test/read.cgi/gamedev/1259912953/70
71: 名前は開発中のものです。 [sage] 2009/12/08(火) 19:18:27 ID:oCon0Lhk >>70 ありがとうございます、いろいろ調べてきます! 2Dアクションゲームを作ってましてとりあえずマップ全体をメモリに描画しといて スムーズなスクロールをしようと思ってました。 http://echo.5ch.net/test/read.cgi/gamedev/1259912953/71
72: 名前は開発中のものです。 [sage] 2009/12/08(火) 19:27:56 ID:EpEGhfoB その目的なら止めた方が良いと思う。 普通に毎フレーム描画でいくべきだと。 よほどヘボなPC使うか、プログラムがヘボでないかぎり スムースさに変わりはない。 http://echo.5ch.net/test/read.cgi/gamedev/1259912953/72
73: 名前は開発中のものです。 [sage] 2009/12/08(火) 19:37:02 ID:oCon0Lhk >>72 そうですか。 しかし自分の知識不足でどうやって毎フレーム描画でドット単位のスクロールをすればいいのかわからなくて ttp://www.harukitchen.com/rpg_programming/06/06.htm ここのサイトを参考にしてるんですけど、この方法だと結局ウィンドウサイズ以上の大きさの描画が必要になるし どなたか知恵を貸していただけないでしょうか? http://echo.5ch.net/test/read.cgi/gamedev/1259912953/73
74: 名前は開発中のものです。 [sage] 2009/12/08(火) 19:45:37 ID:B6+BeJXV 別にその方法で間違ってない ウィンドウサイズ以外の描画がしたくないならカメラ座標に映らない座標のオブジェクトは描画しなくていいだけだし、 確かdirectXの仕様で画面外は省略されてた気がする DXライブラリならオリジナルの描画関数作ってDrawRotaGraphなりに飛ばしてやるのがお勧め http://echo.5ch.net/test/read.cgi/gamedev/1259912953/74
75: 名前は開発中のものです。 [sage] 2009/12/08(火) 19:46:26 ID:EpEGhfoB えーとね。 キャラクターの表示はできる? それをドット単位で動かせる? それができるならマップもできよ。 マップったって、結局マップチップというキャラクターを並べて表示してるだけだからね。 ドット単位で表示ずらせばいいだけ。 んでもって、画面表示されない位置のマップチップは描画しなければいい。 http://echo.5ch.net/test/read.cgi/gamedev/1259912953/75
76: 名前は開発中のものです。 [sage] 2009/12/08(火) 20:11:36 ID:oCon0Lhk >>74,>>75 キャラクタの表示もドット単位の移動もできています。 自分の頭の中では 1,ウィンドウサイズより一回り大きいグラフィックハンドルにマップチップを敷き詰める ↓ 2,そこから必要な場所だけを切り取って表示する という流れしか考えられません(´・ω・`) しかしこれだと1のステップがクリアできなくてダメだし 簡単にアルゴリズムをアドバイスしていただけないでしょうか? http://echo.5ch.net/test/read.cgi/gamedev/1259912953/76
77: 名前は開発中のものです。 [sage] 2009/12/08(火) 20:19:13 ID:oCon0Lhk 書き込んだ瞬間に何故かひらめいた マップチップを敷き詰めるはじめる座標を(-32-[主人公の座標.x]%32,-32-[主人公の座標.y]%32) にしてあげて、主人公の座標から必要なマップチップの情報をウィンドウサイズより一回り大きく取り出してあげて それを描画すればいいんですよね!! http://echo.5ch.net/test/read.cgi/gamedev/1259912953/77
78: 名前は開発中のものです。 [sage] 2009/12/08(火) 20:32:31 ID:DQdomlYR その通り http://echo.5ch.net/test/read.cgi/gamedev/1259912953/78
79: 名前は開発中のものです。 [sage] 2009/12/08(火) 20:35:04 ID:EpEGhfoB おめでとう。それが解れば大丈夫だ。 http://echo.5ch.net/test/read.cgi/gamedev/1259912953/79
80: 名前は開発中のものです。 [sage] 2009/12/08(火) 20:39:47 ID:oCon0Lhk 皆さん大変おさがわせしました。 今プログラム組んでみたら上手くいきました:) ありがとうございました、これからもよろしくお願いします。 http://echo.5ch.net/test/read.cgi/gamedev/1259912953/80
81: 名前は開発中のものです。 [sage] 2009/12/08(火) 20:40:20 ID:EpEGhfoB あ、そうそう、君が>>73で示したサイトにもあるけど 「主人公の位置」じゃなくて「カメラの位置」で考えてね。 基本的に主人公の位置とカメラの位置は同じだけど、 マップ端に行った時は違ってくるから。 http://echo.5ch.net/test/read.cgi/gamedev/1259912953/81
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 920 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.016s