- 1 名前:名前は開発中のものです。 [2009/08/09(日) 21:55:50 ID:TrjuCGgx]
- Cを習得した程度のスキルでも、
GUIのゲームを比較的容易に作成する事を可能にする、 「DXライブラリ」に関するスレッドです。 DXライブラリに関するテクニックなどの情報交換などを行う事で、 多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。 【公式】 homepage2.nifty.com/natupaji/DxLib/ 【過去スレ】 DXライブラリ 総合スレッド pc11.2ch.net/test/read.cgi/gamedev/1197468399/ DXライブラリ 総合スレッド 2008 pc11.2ch.net/test/read.cgi/gamedev/1224923873/ DXライブラリ 総合スレッド その3 pc11.2ch.net/test/read.cgi/gamedev/1238429676/
- 193 名前:名前は開発中のものです。 mailto:sage [2009/08/31(月) 20:31:03 ID:0NTvvGjW]
- そうですね
- 194 名前:名前は開発中のものです。 mailto:sage [2009/08/31(月) 20:39:29 ID:j0BBlJ3J]
- >>192
更新処理はアニメーションの時間を挟むように書き直さないといけないと思う 実数の座標を持たせる方法もあるけど、移動前のマスの座標を記憶しておくだけでも大丈夫な気もする あと、アニメーションが何フレーム目かを数えておく変数。 移動に30フレーム掛かるなら、移動アニメーション時のみ描画座標を (float)( [移動後の描画座標] - [移動前の描画座標] ) / 30.0f * [フレーム数] + 移動前の描画座標 みたいにすると比較的楽に実装できるかもしれない カッコつけ呼ばわりしてゴメンね
- 195 名前:名前は開発中のものです。 mailto:sage [2009/08/31(月) 20:39:54 ID:CGTLvA+X]
- 公式サンプルの4を見ればいいんじゃないかな。
ttp://homepage2.nifty.com/natupaji/DxLib/dxprogram.html
- 196 名前:名前は開発中のものです。 mailto:sage [2009/08/31(月) 22:19:58 ID:oBCh4ToJ]
- >>192
普通に座標で扱って、マス目の方をそれに合わせるのが楽だと思う。 1マスの大きさが32×32だとすると、 ┌─┬─┐ │A │B │ ├─┼─┤ │C │D │ └─┴─┘ Aの座標は (0*32.0*32) Bの座標は (1*32.0*32) Cの座標は (0*32.1*32) Dの座標は (1*32.1*32) ってなるからそれに合わせて停止させるなり、なんなりすればいいんじゃない。
- 197 名前:名前は開発中のものです。 mailto:sage [2009/08/31(月) 23:06:45 ID:X2VhMns5]
- まずは途中のアニメのないバージョンを作ってから考えればいいんでないかい。
>>196 ごめん、正直それは無いかなと思った。 確かに描画処理は正直で分かりやすいが、それ以外の部分にしわ寄せが来ると思う。
- 198 名前:名前は開発中のものです。 mailto:sage [2009/09/01(火) 01:37:56 ID:23qSxMZB]
- 別に普通に座標で扱っても枡の座標なんて32で割ればいいだけじゃん
- 199 名前:名前は開発中のものです。 mailto:sage [2009/09/01(火) 02:31:19 ID:8OtNRGcI]
- ゲームの内容が、描画の都合に合わせられるって問題じゃね?
- 200 名前:名前は開発中のものです。 mailto:sage [2009/09/01(火) 02:58:02 ID:oEGjKhW3]
- どんな不都合があるのか全く想像できない。
逆にマス目優先にした方が不都合出る気がするのだが。
- 201 名前:名前は開発中のものです。 mailto:sage [2009/09/01(火) 04:49:18 ID:23qSxMZB]
- まあローグライクやRPGのような非リアルタイプのゲームだと座標優先にする必要ないのかもね
基本マス目で取って移動時の描画の時だけその分ずらすなりすれば
- 202 名前:名前は開発中のものです。 mailto:sage [2009/09/01(火) 05:08:12 ID:8OtNRGcI]
- >>201
そんな感じかな。 もちろんリアルタイムなゲームで、ゲーム的な座標と表示される座標を切り分けても良いと思うよ。 マップの拡大/縮小なんかも出来るようになるし。 格闘ゲームなんかに多いのかな? 2人の距離が近いと画面がズームインして、離れてるとズームアウトするような演出。
- 203 名前:名前は開発中のものです。 mailto:sage [2009/09/01(火) 10:51:04 ID:nKmT4YF9]
- >それ以外の部分にしわ寄せが来ると思う。
>例えば、 ←ここが抜けてる
- 204 名前:192 mailto:sage [2009/09/01(火) 12:17:02 ID:yHdt/VNY]
- レスdです
>>194,195あたりを参考にさせてもらいます
- 205 名前:名前は開発中のものです。 mailto:sage [2009/09/01(火) 13:52:42 ID:8OtNRGcI]
- >>203
>202
- 206 名前:197=205 mailto:sage [2009/09/01(火) 14:35:15 ID:8OtNRGcI]
- アンカーだけ貼るのも大人げないと思った。ごめん。
>>203 ローグあんまり詳しくないので、例えを将棋に変更させてくれ。そんなに変わらんと思うし。 基本となるのは、ゲームの処理部分と描画部分は可能な限り分けるべき、という考え方。 あくまで個人的な考え方なので、参考までに。 まず、今回の話でいうゲーム処理/描画優先というのは、例えば「歩」を一歩前に進める処理をした場合、 ゲーム優先: y -= 1; 描画優先: y -= SQUARE_WIDTH; //SQUARE_WIDTHは1マスの大きさ のようなコードになることを指す。 将棋の場合は、実際には相対座標ではなく棋譜のようなデータをやり取りするような気もするけどね。 当然ながら、SQUARE_WIDTH というのは描画に必要な数字であって、将棋のルーチンには関係がない。 ゆえに、処理と描画の分割の原則に反する。 実際に作るところを想像してみれば分かると思うが、 コマを動かす、コマを取る、コマを使う…などと、あらゆる場面で SQUARE_WIDTH の値が必要になる。 それらを関数に切り分けたとしても、やっぱり SQUARE_WIDTH が要ることには変わりない。 となると、グローバル変数にするか、全ての処理関数に引数として渡すか、処理クラスのメンバ変数にするか… みたいな話になってしまう。これはちょっと面倒くさい。
- 207 名前:名前は開発中のものです。 mailto:sage [2009/09/01(火) 14:52:19 ID:8OtNRGcI]
- >206の続き
メリットはもう1つあって、演出の部分を独立して記述できるというのがある。 パッと思いつくのは、以下の2つ。 (1)コマを動かすアニメーション (2)将棋盤やマスの外見(大きさや向きなど) (1)については、コマを等速で動かす以外にも、 瞬間移動のような演出で移動したり、本当に将棋を打っているような動かし方(一旦コマを取ってから目的の位置に直接打つ) なんて感じにもアレンジできる。 (2)について、将棋盤を拡大/縮小したり、回転させたり…ということ。 DXライブラリだと微妙だが、頑張れば3D表示にすることも出来るんじゃないかな。 将棋からは少し離れるが、>202に挙げた格闘ゲームのような場合だと、 画面のズーム具合によって当たり判定が変わってくるとか、あんまり考えたくないw 「描画優先」だと、これらの演出をやろうとしたら、処理ルーチンまで弄らなきゃならない。 プログラマが複数居る場合や、自分が昔作ったコードを再利用しよう!って時には非常に便利。
- 208 名前:名前は開発中のものです。 mailto:sage [2009/09/01(火) 15:13:02 ID:nKmT4YF9]
- 要するにアニメーション用のデータと関数を別に作れって事だよね?
- 209 名前:名前は開発中のものです。 mailto:sage [2009/09/01(火) 15:34:28 ID:8OtNRGcI]
- うん。
- 210 名前:名前は開発中のものです。 mailto:sage [2009/09/01(火) 15:49:03 ID:cIBqgsTF]
- 結局どんな方法でもできちゃうから、人それぞれの実装になっちゃうんだよなぁ
こういうのは結構性格が出るもんだよね
- 211 名前:名前は開発中のものです。 mailto:sage [2009/09/01(火) 17:02:32 ID:XGg+VYDQ]
- そうだよねえ
俺とかは最近は関数型言語にはまってるからクラス書くの躊躇しちゃうし。 書くけど
- 212 名前:名前は開発中のものです。 mailto:sage [2009/09/01(火) 17:04:37 ID:274s1Rjx]
- 一度C++の勉強するのもありだよ
クラス以外にも使えるものがたくさん増えるから
- 213 名前:名前は開発中のものです。 mailto:sage [2009/09/01(火) 17:07:47 ID:XGg+VYDQ]
- 俺に言ってるのかな?
大丈夫C++系言語で関数型ぽくやってるだけだから
- 214 名前:名前は開発中のものです。 mailto:sage [2009/09/01(火) 17:22:53 ID:+fqDZss/]
- STLとBoostとテンプレートは便利だなぁ
- 215 名前:名前は開発中のものです。 mailto:sage [2009/09/01(火) 17:42:13 ID:R+Ajue9X]
- STLしか使ったことないなー
Boostって実際便利なのかしら ……ってそろそろスレチだね
- 216 名前:名前は開発中のものです。 mailto:sage [2009/09/01(火) 18:10:35 ID:79ZlRDOx]
- 正規表現のために導入したな…
- 217 名前:名前は開発中のものです。 mailto:sage [2009/09/01(火) 22:01:53 ID:p5MLHwg5]
- VS2008のC++でプログラムを書いています
DXライブラリを使って色々書いているのですが、 これは何という環境になるんでしょうか?? SDKやMFCとか色々聞きますが、定義は調べて何となくわかるのですが 実際使ってみてもイマイチピンと来ません。 恥ずかしい質問ですが、よければ教えてください
- 218 名前:名前は開発中のものです。 mailto:sage [2009/09/01(火) 22:08:21 ID:R+Ajue9X]
- >>217
開発環境のことかな? よくわかんないけど VC2008+DXライブラリ……ってことになるんじゃないのじゃないの?
- 219 名前:名前は開発中のものです。 mailto:sage [2009/09/01(火) 22:10:47 ID:p5MLHwg5]
- >>218
C++/CLIとか色々区分けがあるようでよく分からないままでした 特にないのですね、ありがとうございます
- 220 名前:名前は開発中のものです。 mailto:sage [2009/09/02(水) 05:50:56 ID:PDqEN4Be]
- 本家掲示板より一部コピペ
[2371] 現状報告 投稿者:管理人 投稿日:2009/08/26(Wed) 00:28 [返信] ●●さんも仰られていますが現在の機能でも一応3Dゲームを作ることは可能です が、●●さんの仰られているとおり3Dモデルを描画したい場合に3Dモデルを読み込む プログラムも自前で用意しなければならないのでちょっと大変です。 なので現在DXライブラリの側で3Dモデルを読み込んだり描画したりする機能を作っています。 公開までにはまだ時間がかかりそうですが・・・ ってことはもうすぐDXライブラリが3Dもやりやすくなるってこと!?
- 221 名前:名前は開発中のものです。 mailto:sage [2009/09/02(水) 10:08:37 ID:rPa0Irhp]
- 3D機能のことは作者さん自身が結構前から掲示板で言ってるね。
シェーダー書いてるとか、サンプルゲーム作っているようなことも書いてあったと思う。
- 222 名前:名前は開発中のものです。 mailto:sage [2009/09/02(水) 11:10:30 ID:txodknIz]
- dxライブラリ作者さんには本当に頭が上がらないけど
実質作者さん一人で作ってる状態だから 作者さんのやる気が失われたらそれまでだよな。 やはりいつかはdirectxを直接叩けるようにならないとダメかな。
- 223 名前:名前は開発中のものです。 mailto:sage [2009/09/02(水) 12:21:40 ID:Cce9QmIE]
- モデルの読み込み、表示自体はとても簡単だったりする……
でもモデルって意外とメモリ食うんだよなぁ……
- 224 名前:名前は開発中のものです。 mailto:sage [2009/09/02(水) 12:59:12 ID:mmNevjUs]
- 意外っていうか、そりゃ食うだろうなと思うのは素人考えか?
- 225 名前:名前は開発中のものです。 mailto:sage [2009/09/02(水) 13:28:14 ID:Cce9QmIE]
- 数値だけの構造体の配列のサイズなんて誤差の範囲だぜー
とか思ってたら確保失敗するくらいのサイズになったんで、当時の自分が素人だったのです
- 226 名前:名前は開発中のものです。 mailto:sage [2009/09/03(木) 07:04:26 ID:T5vV7TnQ]
- ウインドウのアイコンを変更するにはどうすればよいでしょう?
環境はVC++2008EEです ttp://homepage2.nifty.com/natupaji/DxLib/dxtec.html#M2 のページの「VisualC++ 2005 Express Edition の場合」を実行し、 タスクバーのアイコンは変更できました。その後、 ttp://homepage2.nifty.com/natupaji/DxLib/function/dxfunc_other.html#R11N2 を実行しようと思いましたが、 「VisualC++ はプロジェクトの フォルダに勝手に『resource.h』」 とありますがこれが作成されません 無いので自分でresource.hを作成して「#define IDI_ICON1 101」とコードをいれ、インクルードしてみましたが error C3872: '0x3000': この文字を識別子で使用することはできません エラーが返ってきます。 どうしたら良いでしょうか?
- 227 名前:名前は開発中のものです。 mailto:sage [2009/09/03(木) 10:46:56 ID:1k0ytKa3]
- 全角スペース入ってるんじゃない?
参考 ttp://tmopro.jugem.jp/?eid=57
- 228 名前:名前は開発中のものです。 mailto:sage [2009/09/03(木) 17:48:16 ID:gF4nk6I+]
- >>227
ありがとうございます。おかげさまでそのエラーは出なくなりました が、別のエラーが出るようになりました 1>c:\documents and settings\user1\デスクトップ\te\main.cpp(8) : error C2365: 'SetWindowIconID' : 再定義; 以前の定義は '関数' でした。 1> d:\program files\vc++\dxlib_vc\プロジェクトに追加すべきファイル_vc用\dxlib.h(1288) : 'SetWindowIconID' の宣言を確認してください。 1>normal.cpp
- 229 名前:名前は開発中のものです。 mailto:sage [2009/09/03(木) 17:50:39 ID:gF4nk6I+]
- 以上がエラーです
後、dxlib.h(1288) はこうなっていましたが、触ったことはありません extern int SetWindowIconID( int ID ) ; どこがおかしいんでしょう・・
- 230 名前:名前は開発中のものです。 mailto:sage [2009/09/03(木) 18:05:44 ID:A1uxg92h]
- >>229
う〜ん、VCまともに使ったことないから憶測だけど、 多分「resource.h」はどこかに生成されていて、自動的にインクルードされてるんじゃないかな? だから、ファイル検索かなにかでそのプロジェクトの「resource.h」を探して、 その中から「#define IDI_ICON1」を検索して、値を使えばいいんじゃなかろうか。 あと、SetWindowIconID();はSetWindowIconID(101);みたいに値を入れて使うんだと思う。
- 231 名前:名前は開発中のものです。 mailto:sage [2009/09/03(木) 18:23:32 ID:Sn/ikMPs]
- main.cppをここに書けばわかるんじゃないかな
- 232 名前:名前は開発中のものです。 mailto:sage [2009/09/03(木) 21:37:21 ID:T5vV7TnQ]
- test1とtest2でプロジェクトごとアップロードしました。
上がアイコン云々無し(DXライブラリでループ処理だけのプログラムです)、 2がアイコンアリ(上記にアイコン関係を追加してみたもの)です ウィンドウの左上にアイコンを表示させたいのです。 test1 ttp://www1.axfc.net/uploader/H/so/85780.zip test2 ttp://www1.axfc.net/uploader/H/so/85781.zip もしVS2008EE版ではアイコンは追加できない、ということでしたらそれを教えてください! 検索して探してますが2005の設定は見つかるのですが、2008は見つかりません。 また、>>230三里言うとおり探してみましたが見つかりません。ただ、私の検索方法が悪いために見つからないのかもしれませんが・・ どうやってもうまくいきません・・どなたか助けてください!
- 233 名前:名前は開発中のものです。 mailto:sage [2009/09/03(木) 22:44:01 ID:Fa49oYdi]
- main.cpp
#include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){ SetWindowIconID(1); : Resource.rc 1 ICON "pa.ico" MAINICON ICON "pa.ico" ヘッダなくていけると思う。 Resource.rcの中身が下のだけしか書いてなかったのが原因かな
- 234 名前:名前は開発中のものです。 mailto:sage [2009/09/03(木) 22:51:41 ID:A1uxg92h]
- あら、書き込もうとしたら別の人が。
どうやらVC2005での方法はVC2008ではそのまま使えないみたいね あとエラーの原因は>>233が書いてくれてる通りSetWindowIconID();がMain関数の外だったからみたい main.cppとResource.rcを上の通り書き換えたらちゃんとアイコンが変わるのを確認しました ……こっそり自分も参考にさせてもらうw
- 235 名前:名前は開発中のものです。 mailto:sage [2009/09/03(木) 23:01:20 ID:T5vV7TnQ]
- >>233
うおおおおおおおおおおおおおおおおおおありがとうございます!! ぶっちゃけ何のことかさぱり分かりませんが理解できるように頑張ります!! ありがとうございました!!!!!
- 236 名前:名前は開発中のものです。 mailto:sage [2009/09/03(木) 23:02:10 ID:dJUWTSPd]
- へえ。
VC++2008EEではリソースファイル自体使えないと思ってたが ちゃんと認識してコンパイル自体は通るものなんだな。
- 237 名前:名前は開発中のものです。 mailto:sage [2009/09/04(金) 19:04:06 ID:tN2/1bc/]
- エディタが無いだけじゃなかったかな?
メモ帳なりで直打ちすればいけたはず
- 238 名前:名前は開発中のものです。 [2009/09/04(金) 23:54:55 ID:OeFMQ4dR]
- Visual Studio 2008 Professional Edition を使ってるんだけど、リソースファイルのエディタっていけるの?
いや、あんまし使う気はないけど、生糸効果と思って
- 239 名前:名前は開発中のものです。 mailto:sage [2009/09/05(土) 16:56:12 ID:2qZWX7kG]
- 「生糸効果」って使う気はないけど知識として知っておくと安心するような
心理効果のことをいうのかとと思ってググった俺にあやまれ! で、自分はVisual Studio殆ど使わないから知らないや
- 240 名前:名前は開発中のものです。 mailto:sage [2009/09/05(土) 17:46:17 ID:RPOoFk2m]
- >>239
あんたのせいでぐぐるはめになった、ゆるさない。
- 241 名前:名前は開発中のものです。 mailto:sage [2009/09/05(土) 18:14:33 ID:HL+1Ve6P]
- >>238
あんたのせいでエロティックな想像をしたじゃないか どうしてくれる
- 242 名前:名前は開発中のものです。 mailto:sage [2009/09/05(土) 18:36:42 ID:Rujfzbds]
- 生理効果でもなかったな。 えーーい、あやまれ
- 243 名前:名前は開発中のものです。 mailto:sage [2009/09/05(土) 19:02:17 ID:8x0oNbxr]
- ちくしょう、これは悔しい!
- 244 名前:名前は開発中のものです。 mailto:sage [2009/09/06(日) 00:40:58 ID:mn2N5j+D]
- 聞いとこうか
か 3分考えた。
- 245 名前:名前は開発中のものです。 mailto:sage [2009/09/06(日) 18:03:53 ID:SXc0SYaw]
- 3D機能追加バージョンきたよ〜
- 246 名前:名前は開発中のものです。 mailto:sage [2009/09/06(日) 18:04:31 ID:B+myjfqG]
- うそですよね
- 247 名前:名前は開発中のものです。 mailto:sage [2009/09/06(日) 19:40:14 ID:lHtCBQvH]
- うおおほんとだきてる
- 248 名前:名前は開発中のものです。 mailto:sage [2009/09/06(日) 20:01:26 ID:Yqyzr7Gn]
- 今までのゲームにライブラリ差し替えて
ちゃんと動くか調べるのがいいかなー?
- 249 名前:名前は開発中のものです。 mailto:sage [2009/09/06(日) 20:07:38 ID:c5NNpkKl]
- またまたご冗談を・・・!
- 250 名前:名前は開発中のものです。 mailto:sage [2009/09/06(日) 20:11:26 ID:K0n3Qux8]
- ほんとだすげー
9になったのか
- 251 名前:名前は開発中のものです。 mailto:sage [2009/09/06(日) 20:14:48 ID:jVBhPaFa]
- 本家のとこに書いてログ流すのもアレなんでここで
管理人さんSUGEEEEE 3D分からないけど勉強するよ ありがとう!!
- 252 名前:名前は開発中のものです。 [2009/09/06(日) 20:20:14 ID:0/c4sO+5]
- きた
- 253 名前:名前は開発中のものです。 mailto:sage [2009/09/06(日) 20:24:40 ID:c5NNpkKl]
- 次はかっちょいい3Dモデルを素人でも簡単に作れるライブラリをお願いします
- 254 名前:名前は開発中のものです。 mailto:sage [2009/09/06(日) 20:30:48 ID:vSGZDRNx]
- きたー!
のはいいけど自前で組んだ3D機能はどうしようか……
- 255 名前:名前は開発中のものです。 mailto:sage [2009/09/06(日) 23:14:51 ID:DQQSJ8aQ]
- ほんとだ!
管理人さんおつかれさま!
- 256 名前:名前は開発中のものです。 mailto:sage [2009/09/06(日) 23:16:45 ID:PnnRINsg]
- 3D座標と2D座標の変換コマンドは、ありますか?
- 257 名前:名前は開発中のものです。 mailto:sage [2009/09/07(月) 14:02:36 ID:xkLdHRZU]
- これから2Dベースのゲーム作るんだけど
今までどおりDXライブラリの2D関数で作るか、それとも3Dを2Dのように使いながら 2Dベースにするか、どちらがいいと思う? 3Dの詳しいことは分からないけど、後者の方法が後々よさそうな気がする
- 258 名前:名前は開発中のものです。 mailto:sage [2009/09/07(月) 15:29:35 ID:E0ANBzLg]
- 描画部分をゲームシステム内部に入り込ませなければなんでもおk
DxLibの2Dは3Dの機能を使って動いてるとか聞いたから2Dゲー作るならどっち使っても変わらないと思う
- 259 名前:名前は開発中のものです。 mailto:sage [2009/09/07(月) 19:02:42 ID:58QeR9y8]
- てっきり釣りだと思って無視してたよ、作者さん感謝
- 260 名前:名前は開発中のものです。 mailto:sage [2009/09/07(月) 19:33:23 ID:/xpJiZqh]
- 算術演算関数は2Dでも便利そうだな
- 261 名前:名前は開発中のものです。 mailto:sage [2009/09/07(月) 20:54:19 ID:mtoRAEsk]
- ウインドウからフルスクリーンに切り替えるときは正常に切り替わるんだが
逆すると画面かたまる。 Ver2.25bならそんなことならなかったのに・・・バグ?
- 262 名前:名前は開発中のものです。 mailto:sage [2009/09/07(月) 23:17:03 ID:nFi5wZfB]
- >>257
普通に考えて2D関数でいいと思う。 DX9ベースなんだし結局は3Dを2Dのように使ってるわけだし。
- 263 名前:名前は開発中のものです。 mailto:sage [2009/09/08(火) 00:38:27 ID:z9qhn60X]
- もう言うことなしだな
- 264 名前:名前は開発中のものです。 mailto:sage [2009/09/08(火) 01:09:04 ID:Irgfbbw7]
- ゲームシステム内部に描画部分を入り込ませないって難しくない?
格闘ゲームとかだったら技の描画が終わるまで待たないといけないとかあるから プログラムのほうが技描画につかうフレーム数とか知らないといけないし
- 265 名前:名前は開発中のものです。 mailto:sage [2009/09/08(火) 01:27:25 ID:tR4qipDA]
- アニメーションをコントロールする部分は処理側の動作
コントローラから与えられた指示通りに描画するのは描画側の動作
- 266 名前:名前は開発中のものです。 mailto:sage [2009/09/08(火) 03:03:06 ID:42hcEkNL]
- つーか、システム内部に描画処理を入れるほうが難しい。
- 267 名前:名前は開発中のものです。 mailto:sage [2009/09/08(火) 03:03:18 ID:j3uaJz1Z]
- ゲームシステムと描画部分は別スレッドで動かして同期させるぐらいでもいいレベル
それくらい切り離す
- 268 名前:名前は開発中のものです。 mailto:sage [2009/09/08(火) 06:50:03 ID:raNa9Btb]
- 別スレッドってやってみたいけど難しそうなイメージがある……
- 269 名前:名前は開発中のものです。 mailto:sage [2009/09/08(火) 07:47:30 ID:E/Nmen8G]
- 切り離そうと思ったけど全然できないです・・
・・・ while(ProcessMessage()){ gamesystem(); gamebyouga(); } ScreenFlip(); ・・・ みたいにしろってことですよね? こういう場合マップにnpcや家があるときは、その情報は描画ルーチンに引数で渡すの?
- 270 名前:名前は開発中のものです。 mailto:sage [2009/09/08(火) 21:22:25 ID:bomSovik]
- よく考えたらDXライブラリってそういうのを気にしなくても言いように作られたライブラリなんだよな
自分が気にならないうちはどう組んでも大丈夫なんじゃない?
- 271 名前:名前は開発中のものです。 [2009/09/09(水) 01:48:35 ID:qdGLrtJ/]
- >>269
マップの情報(構造体やリストなど)をstructにして共有してしまう こうするとAIの思考などを増やした時にも活用できる 引数で渡すのはやってもいいけど、概念が難しくなるな
- 272 名前:名前は開発中のものです。 mailto:sage [2009/09/09(水) 02:39:16 ID:7WqXI6aF]
- クラス使えばおk
while(true){ GameMain.update(); GameMain.draw(); } みたいな感じで
- 273 名前:名前は開発中のものです。 mailto:sage [2009/09/09(水) 02:54:33 ID:UaP+j4GV]
- >>272
269じゃないけどスッキリした
- 274 名前:名前は開発中のものです。 mailto:sage [2009/09/09(水) 20:13:09 ID:zvDt5L6z]
- マップの情報なんかグローバル変数でいいよ
整理したかったらクラスにまとめてそのインスタンスをグローバル変数にする どうせマップの仕様なんかゲームによって全然違うんだから再利用性とか考えても仕方ない
- 275 名前:名前は開発中のものです。 mailto:sage [2009/09/09(水) 22:55:25 ID:bs+ujCWy]
- 新しいのを入れたら一部のソリューションでインテリセンスがニート化してしまった
- 276 名前:名前は開発中のものです。 mailto:sage [2009/09/09(水) 23:33:20 ID:JpuijvmK]
- >>274
そのセンスが( マップクラスを流用できるようにすればrpgでもactでもstgでも流用できるというのに もう部品化を突き詰めて考えな なんでもかんでも流用できるんだぞ?
- 277 名前:名前は開発中のものです。 mailto:sage [2009/09/09(水) 23:37:08 ID:qrXrtoKd]
- 繰り返し繰り返しプログラム描いてるうちに自然と部品化の癖が付いてくもんさ
そうじゃないうちに無理にやろうとするとぐちゃぐちゃなソースになったりする…… はい、経験者です
- 278 名前:名前は開発中のものです。 mailto:sage [2009/09/09(水) 23:42:38 ID:I+tziH4w]
- char *name="あいうえお";
char ch[64]="かきくけこ"; name=ch; DrawFormatString(0,0,Color,"%s",name); これを実行すると文字化けするのですが、どこが悪いのでしょうか? printfDxだとちゃんと かきくけこ と表示されるのですが・・・
- 279 名前:名前は開発中のものです。 mailto:sage [2009/09/09(水) 23:46:04 ID:JpuijvmK]
- ある瞬間に慣れるんだよね
それはクラス化とかポインタとか、ある程度人によりけりだけどなんだかん゛でC++独自の機能ってのは多い
- 280 名前:名前は開発中のものです。 mailto:sage [2009/09/10(木) 00:04:13 ID:giF8NyH+]
- >>278
文字化けしなかったよ
- 281 名前:名前は開発中のものです。 mailto:sage [2009/09/10(木) 02:55:29 ID:tiE+Irh9]
- 個人的に言わせて貰えば、
クラス化は勧めるけど、(再利用を考え)モジュールとして流用は考えないのが吉。 正直、モジュール化を考えるぐらいなら、読みやすいコードと 無駄に依存しあわないクラス関係を優先すべき。 今時のOO本なら、大抵が 「再利用」は誇大広告だった。 と言ってるように、その方向でのクラス設計なんて考えない方が良い。 OOが構造化と対比し、流用可能箇所を事前に決めておけば、効率よく「再利用」は可能だが、 なんでもかんでもが、流用できるわけでもないし、下手になんでもかんでも流用しようとすれば、 どんどんと利点のない制約を負う羽目になる。 ついでに言えば、ゲームはコードをガンガン書いてモノ創りまくった方が良いよ。 設計やらなんやらは、とりあえず指負って数えられない程度はモノつくってからで十分。
- 282 名前:名前は開発中のものです。 mailto:sage [2009/09/10(木) 04:20:17 ID:NcRwHXlm]
- 設計気にしだして、実装してる途中に、ちょっといい設計に気づいてやり直して・・・とかいうループに陥って一向に先に進めない俺
- 283 名前:名前は開発中のものです。 mailto:sage [2009/09/10(木) 08:56:36 ID:st2UuMEg]
- >>282
よう、俺。自分もその泥沼にはまって当分先に進めそうにないよ。 ところで自分も一応ヘタレなりにOOでやってるけど、OO設計自体難しいし、 下手にやると無駄にコード量とバグが増えるだけになってしまう。 あくまで私見だが、個人で小規模なプログラムを作るんだったら、 方法論にとらわれるよりはなるべくコード量が少なくて、簡潔に書けるようにした方がいいと思う。 最終的にバグが出なければプレイヤーは文句言わないわけだし。 それから真面目にOOやりたいんだったらC++よりもC#の方がお勧め。 ヘッダファイルを書く必要がないし、プロパティが使えるし、 意味不明なコンパイルエラーも出ないし、インテリセンスが強力なので、格段に楽。 まだ試してないけど、DXライブラリの最新版も使えるみたいだし。
- 284 名前:名前は開発中のものです。 mailto:sage [2009/09/10(木) 09:04:48 ID:wnyirDpF]
- >>282
俺のことかー! 抽象クラスでどうたらとか委譲してどったらとかして変更に強い保守性の高いプログラム云々の 薀蓄を半端に齧っていつまで経ってもゲーム制作が進まない。
- 285 名前:名前は開発中のものです。 mailto:sage [2009/09/10(木) 09:11:47 ID:krQIFNZx]
- >>282
俺もだー! あんまりグダグダやってるとそのうち別のゲームとの出会いがあったりして、 今度はそのジャンルのゲーム作りたくなって…… って感じに投げちゃう場合があるから怖い
- 286 名前:名前は開発中のものです。 mailto:sage [2009/09/10(木) 09:21:27 ID:UPhqsit2]
- C#は標準ライブラリがとても綺麗だから普通にDXライブラリ使うとかなり異質な感じになって気持ち悪い
だからDXを徹底的にラップしたくなって何のためにDXライブラリ使ってるのかよく分からなくなる
- 287 名前:名前は開発中のものです。 [2009/09/10(木) 14:01:45 ID:S3IE2udy]
- DrawGraphとLoadGraph関数について質問です
LoadGraph関数で画像(int hk0)をローカル変数にすると画像を表示できるのですが、 グローバル変数だと表示できません これはこういう仕様ということなのでしょうか? //洞窟グラフィック //int hk0=LoadGraph( "背景0.PNG" ); int normal(){ while(ProcessMessage()==0 && ClearDrawScreen()==0){ //↑メッセージ処理 ↑画面をクリア //ココ↓ DrawGraph( 30,30, hk0 , FALSE ) ;//最奥の背景 //ココ↑ ScreenFlip(); } return 0; }
- 288 名前:名前は開発中のものです。 mailto:sage [2009/09/10(木) 14:14:32 ID:UPhqsit2]
- それだとDXライブラリが初期化される前にLoadGraphが呼ばれてしまうのでエラーになる。
グローバルスコープではhk0は宣言するだけにして,グラフィックの読み込みとhk0への代入は DXライブラリを初期化した後の別の場所に書く。
- 289 名前:名前は開発中のものです。 [2009/09/10(木) 14:15:57 ID:S3IE2udy]
- >>288
なるほど!ありがとうございます
- 290 名前:名前は開発中のものです。 mailto:sage [2009/09/10(木) 14:54:52 ID:NcRwHXlm]
- ところで誰か3Dのほう使ってみた?
- 291 名前:名前は開発中のものです。 mailto:sage [2009/09/10(木) 20:53:01 ID:wnyirDpF]
- 講座が出揃う頃に
- 292 名前:名前は開発中のものです。 mailto:sage [2009/09/10(木) 21:28:32 ID:jjF99z4R]
- 管理人凄過ぎだろ
よくあんなにサンプル作る気になれるな
- 293 名前:名前は開発中のものです。 mailto:sage [2009/09/10(木) 21:45:58 ID:X0AmmjCJ]
- 管理人の作ってるゲームがどういうのか見たい
|

|