DXライブラリ 総合スレッド その7
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2010/10/04(月) 17:24:47ID:zBoueRHuGUIのゲームを比較的容易に作成する事を可能にする、
「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/
DXライブラリ 総合スレッド その6
http://hibari.2ch.net/test/read.cgi/gamedev/1267108154/
0690名前は開発中のものです。
2011/02/06(日) 01:40:42ID:edmoP5Ocいままで気付かなかったわー
0691名前は開発中のものです。
2011/02/06(日) 01:46:35ID:Wfa4vAEK0692名前は開発中のものです。
2011/02/06(日) 01:46:56ID:k3JuiCGXいや、根本的に違うだろjk・・・
newはポリモーフィズム使うなら必須っていうかC++使っておいてポリモ使わないとかなにその苦行
0693名前は開発中のものです。
2011/02/06(日) 01:48:40ID:edmoP5Oc0694名前は開発中のものです。
2011/02/06(日) 01:54:34ID:k3JuiCGXは? 多態とRAIIに何の関連性あるんだアホか
マジでガチ初心者だらけじゃねえか
0695名前は開発中のものです。
2011/02/06(日) 01:57:17ID:fHNV/tRC敵キャラが最大で100体でるのか、それとも10000体以上でるのかわからない、ってのだと
PCの動作環境はどうやって決めるんだろう。
最初に「最大1000体、これ以上は出さない」と決めておけば
1000体動くかどうか確認して、「ちゃんと動くな。ではこのPCの性能を最低環境としよう」ってできると思うけど。
0696名前は開発中のものです。
2011/02/06(日) 02:01:52ID:edmoP5Ocちょっと間違って理解してるような気がするので聞いてみるけど
newがポリモーフィズムに必須というのはどういうこと?
0697名前は開発中のものです。
2011/02/06(日) 02:11:58ID:KY5hMpMn動的に何かを生成するときは普通使うよね。
ないとできないわけじゃないけど・・・
0698名前は開発中のものです。
2011/02/06(日) 02:22:41ID:bBxVkAP5基本的には一番重いシーンで快適に動く環境を推奨スペックとして表記するのが普通
その敵が10000体出るっていうのが滅多にないことなら、それとは別に、普通に遊べるスペックを動作スペックということにしとけばいいと思う
newだけど、使い方で一番イメージしやすいのはシーンの管理だと思う
タイトル画面でプレイ開始を選択した時点で、外部からタイトル画面クラスをdeleteしてゲームクラスをnewする
外部では常にNULL以外のクラスをアップデート、的な
あとは、糞大きいクラスを実体化するとき、newやmallocを使わないと失敗して落ちる場合があるってくらいかな
ポリモーフィズムはシラネ
0699名前は開発中のものです。
2011/02/06(日) 02:43:28ID:FYHHz7EYそれ以外のやり方あるなら教えてもらいたい
0700名前は開発中のものです。
2011/02/06(日) 02:45:17ID:k3JuiCGXこういうことだよ
http://ideone.com/Bcd5F
っていうかまず、RAIIが何か行ってみろよマジ・・・
0701名前は開発中のものです。
2011/02/06(日) 02:52:22ID:k3JuiCGXhttp://ideone.com/48UwA
0702名前は開発中のものです。
2011/02/06(日) 03:32:24ID:3eWOv2dl自分はポインタにしちゃうことが多いかなあ。
>>698
Stateパターンだっけ?
0703名前は開発中のものです。
2011/02/06(日) 03:40:14ID:k3JuiCGXシーンクラスを継承したタイトル画面・ゲーム画面クラスをメインループで常にupdateするっていうのはポリモーフィズムだべさ・・・
Scene* p;
p = new Title(); or new Game();
while(...){
p->update();
}
的な。
0704名前は開発中のものです。
2011/02/06(日) 03:42:45ID:KavCN3Ib何か管理が面倒そうでポインタにしてない
0705名前は開発中のものです。
2011/02/06(日) 03:46:23ID:KY5hMpMn別にオッケーだべ
というかほとんどの言語ではデフォルトが参照だべ
0706名前は開発中のものです。
2011/02/06(日) 03:49:17ID:KavCN3Ibあ、やっぱ一般的にはそんな風にシーン管理するのね。
なんかかえって難しそうに感じて、ベタにswitchで回してしまう。
書き方としてはギリギリ読めるんだけど、実感としてポリモの便利さがピンと来ない。
0707名前は開発中のものです。
2011/02/06(日) 03:55:02ID:LAhGvLpb0708名前は開発中のものです。
2011/02/06(日) 04:01:41ID:bBxVkAP5アドリブプログラマだから設計パターンとか用語の定義とかは知らないんだよ……
こうやったら管理しやすくないかなー、ってテキトーに書いてるだけだし
これがポリモーフィズムなら、規模の大きなゲーム作ろうとすれば自然に身につくものなんだと思う
0709名前は開発中のものです。
2011/02/06(日) 04:16:03ID:FRrxkwCp0710702
2011/02/06(日) 04:49:13ID:3eWOv2dl自分も最初はクラスの実体を持ってたけど、必要に迫られてポインタに移行した。
やり方は他にもあるんだろうけどねー。
0711名前は開発中のものです。
2011/02/06(日) 05:49:43ID:Bcoc3jNp0712名前は開発中のものです。
2011/02/06(日) 07:03:48ID:wzAw0A/n0713名前は開発中のものです。
2011/02/06(日) 07:50:12ID:vYbU4BgGvoid f(Obj* o)
{
0714名前は開発中のものです。
2011/02/06(日) 07:51:36ID:vYbU4BgGvoid f(Obj* o) {
o->update();
}
ObjA a;
ObjB b;
f(&a);
f(&b);
こういうこともできるわけだし
0715名前は開発中のものです。
2011/02/06(日) 08:17:22ID:DfvbrRc2とりあえずCで書き始めて、できる範囲でC++化することにしているよ
現段階では、クラスが変数と関数のセットであることくらいしか使えてねーけどなw
0716名前は開発中のものです。
2011/02/06(日) 09:29:09ID:vYbU4BgGそりゃC++を完璧にマスターしてから作ったほうが圧倒的に効率いいだろうけど
C++は十年勉強して先輩のコーディング盗んでようやく半人前の世界だからねw
0717名前は開発中のものです。
2011/02/06(日) 09:36:50ID:hi6mskVF使ってるうちに理解が深まる
0718名前は開発中のものです。
2011/02/06(日) 10:00:06ID:stjfxyZ6ゲームは普通に作れるからな。初心者にとって無関係といえば無関係だろ。
0719名前は開発中のものです。
2011/02/06(日) 12:17:01ID:+QgrF6fpC++ではノイズが多すぎて本質がわかりにくい
いちいちクラス作るのも使うのもめんどくさすぎ
0720名前は開発中のものです。
2011/02/06(日) 12:27:24ID:Bp6r7tC90721名前は開発中のものです。
2011/02/06(日) 12:34:00ID:+QgrF6fp別にC++のオブジェクト指向が使えないと言ってるんじゃなくて、
勉強の妨げになる余計なものが多すぎると言ってるだけ
0722名前は開発中のものです。
2011/02/06(日) 13:08:48ID:stjfxyZ6C++はCとのしがらみのせいで無駄に複雑になってる。
純粋にオブジェクト指向を学びたかったら、
しがらみを完全に断ち切ったC#、Javaのほうが分かりやすい
0723名前は開発中のものです。
2011/02/06(日) 13:14:20ID:KY5hMpMn.NET FrameworkとVisual Studio Expressは非常に強力
Javaもいいんだけど、標準クラスライブラリだけだとWindowsアプリケーションをさくっと作るみたいな使い方が難しい
俺がJavaに詳しくないだけかもしれないけど、GUIの作成周りがどうも・・・
0724名前は開発中のものです。
2011/02/06(日) 14:10:59ID:k3JuiCGX実質的に必須だろ・・・
引数の参照使って多態もできるけど、それはあくまでも関数レベルの話なんだし
そりゃ部分的には参照使うほうがスタック領域のオブジェクト使うから早いけど、
例えば敵が格納されてるリストの中に複数種類の敵入れたりするときどうすんだよ
古典タスクでも使うのか?
0725名前は開発中のものです。
2011/02/06(日) 17:08:03ID:FRrxkwCpオブジェクト指向を使うにしても結構訓練を必要とすると思うよ
0726名前は開発中のものです。
2011/02/06(日) 22:24:40ID:gmKYG7Noどうしよう
0727名前は開発中のものです。
2011/02/06(日) 22:30:00ID:Eb0WRl870728名前は開発中のものです。
2011/02/06(日) 22:48:27ID:Bcoc3jNpenum STAGE
{
FIRST,
SECOND,
THIRD,
STAGE_NUM,
};
for(STAGE idx=FIRST; idx<STAGE_NUM; idx++){
}
こういうことができない。
enumは型名がない方がよくね
0729名前は開発中のものです。
2011/02/06(日) 23:56:26ID:o0IXDaRU0730名前は開発中のものです。
2011/02/07(月) 00:06:53ID:o+ZRLSEj}
は出来ないの?
0731名前は開発中のものです。
2011/02/07(月) 00:13:22ID:o7zGWqwC低レベルな作業が勉強になるというなら
クラスもnewもdeleteもテンプレートも使うべきじゃないよ
せっせとHSPみたいなコード書いてればいい
0732名前は開発中のものです。
2011/02/07(月) 00:29:30ID:d7Cek6eoHSPは勉強にもってこいなのか?
0733名前は開発中のものです。
2011/02/07(月) 00:36:10ID:o7zGWqwCもちろんハード寄りの低レベルな知識は大事だけど
プログラミングには抽象化も重要だ
アセンブラには関数がないからC言語より勉強になるの?
0734名前は開発中のものです。
2011/02/07(月) 00:46:04ID:5kwAP+20なんでforで回せられないん?
0735名前は開発中のものです。
2011/02/07(月) 01:07:36ID:ln0Hp/Vm0736名前は開発中のものです。
2011/02/07(月) 05:11:14ID:WyOjR7J50737名前は開発中のものです。
2011/02/07(月) 05:20:57ID:z2dDXVbAHSPでdxlib使ってる人っている?
0738名前は開発中のものです。
2011/02/07(月) 05:32:21ID:2KMBKGJ10739名前は開発中のものです。
2011/02/07(月) 11:25:04ID:b8F3RAga0740名前は開発中のものです。
2011/02/07(月) 12:56:25ID:InNumn8p初心者の勉強に向いてるの?
0741名前は開発中のものです。
2011/02/07(月) 13:20:20ID:tg7ZaRxP0742名前は開発中のものです。
2011/02/07(月) 13:29:51ID:InNumn8p有難う。
0743名前は開発中のものです。
2011/02/07(月) 15:19:07ID:PS0gfCYa手軽に弄って手軽なものを作る分には最適だが本格的なものを作ろうとした時に
どうしても仕様上の不便さが目立ってしまう
元々のコンセプトがそういう方向性なんだから本来の目的は達成している筈なんだが
簡便さゆえに万能を求められてしまうなんたらかんたら〜はスレ違いの話だな
まあ勉強が目的なら応用性の高い言語を選択した方が回り道は少ないだろうな
逆に見ればそれ程大規模でもなく複雑な表現も処理速度も必要としないようなソフト製作であれば
HSPでも十分だとも言える
多少の知識があればDXlibの2D機能ぐらいなら一応使えるしな
0744名前は開発中のものです。
2011/02/07(月) 17:36:43ID:orHlWPg70745名前は開発中のものです。
2011/02/07(月) 19:07:46ID:4Bjtftyn0746名前は開発中のものです。
2011/02/07(月) 19:11:19ID:z2dDXVbA0747名前は開発中のものです。
2011/02/07(月) 19:15:19ID:4Bjtftyn0748名前は開発中のものです。
2011/02/07(月) 20:57:52ID:cLL/ycl20749名前は開発中のものです。
2011/02/07(月) 21:06:03ID:WyOjR7J50750名前は開発中のものです。
2011/02/07(月) 22:03:36ID:ao/YIlT90751名前は開発中のものです。
2011/02/07(月) 23:04:20ID:wF/kiWoY0752名前は開発中のものです。
2011/02/07(月) 23:15:47ID:OcsNs/sY0753名前は開発中のものです。
2011/02/07(月) 23:30:15ID:OcsNs/sY0754名前は開発中のものです。
2011/02/08(火) 01:11:11ID:zz8oJ9kr0755名前は開発中のものです。
2011/02/08(火) 16:05:17ID:6L0TPnqD0756名前は開発中のものです。
2011/02/08(火) 17:54:15ID:+ML1FjeC0757名前は開発中のものです。
2011/02/08(火) 20:35:13ID:SsLD3XMz0758名前は開発中のものです。
2011/02/09(水) 02:00:42ID:5lfRH9sH全くイメージが出来ない
0759名前は開発中のものです。
2011/02/09(水) 02:47:15ID:ieGKHoAe0760名前は開発中のものです。
2011/02/09(水) 09:32:08ID:56rbMTpRhttp://www.oreilly.co.jp/books/9784873113395/
0761名前は開発中のものです。
2011/02/09(水) 20:36:21ID:v7oSuKhP0762名前は開発中のものです。
2011/02/09(水) 20:57:36ID:7Rex9UNl0763名前は開発中のものです。
2011/02/09(水) 21:04:48ID:bxVvIYXuドラクエであれやってみたら結構楽しそう
0764名前は開発中のものです。
2011/02/09(水) 21:52:06ID:MQeJ0Td3「HP50%以下でホイミ」と指定されていれば、その通り行動しないとマズいけど、
「いのちだいじに」なら、殺られる前に殺れというのも選択肢に入る懐の広さはあるだろうし。
一応、キャラごとの性格設定や、プレイヤーが勝手に想像する余地というメリットもあるからなあ。
0765名前は開発中のものです。
2011/02/09(水) 23:34:22ID:gbbiuBkv目的とゲーム条件と製作者の好みで決めちゃうところが大きいかと
0766名前は開発中のものです。
2011/02/12(土) 13:12:29ID:nJI+bwQDリフレッシュレートに依存せず、指定したfpsで処理を行う場合のサンプルがあれば、
その場所を教えてほしいです。
dxlib wiki かなにかがないか探したのですが、見つかりませんでした。
同梱のhelpだと、リフレッシュレートにあわせて処理を変えてしまえというものはあったのですが、
fps60固定でやりたいので、使えませんでした。
普通の2DアクションゲームならどのゲームでもやってるFAQ・TIPSだと思いますし、
wikiにも真っ先に掲載されるようなネタですので、
自分の拙いコーディングと調査で時間食うより、サンプルコピペで一瞬で済ませたいです。
実現方法としては、
・flip時に待たない
・自前で待つ:msec単位の現在時刻取得APIを利用し、sleepする(?)
あたりでいけるとは思ってます。
ご存じの方、よろしくお願いします。
0767名前は開発中のものです。
2011/02/12(土) 13:16:58ID:hgni81jL>自分の拙いコーディングと調査で時間食うより、サンプルコピペで一瞬で済ませたいです。
それを自前でやればスキルアップでほかの部分もより良いコーディングができるようになるかと。
最近はPCも液晶ばっかりで大抵リフレッシュレートが60Hzだから垂直同期依存のソフトも多いんじゃないかな。
まぁ、無精せずにじっくりやれって事ですw
0768名前は開発中のものです。
2011/02/12(土) 13:30:22ID:qAUrfDwp時前でレートを作ると、がたつき(ティアリング)がおきるぞ、わかってるのか?
0769名前は開発中のものです。
2011/02/12(土) 16:16:10ID:mJ46d9vv可変FPSの話かと思ったが、どうやら違ったようだ。
0770名前は開発中のものです。
2011/02/12(土) 16:34:22ID:WPIK0NoaSetWaitVSyncFlag()で垂直同期を切れば思い通りになるはず
0771766
2011/02/13(日) 09:42:41ID:KpZXeEQj教えていただいたとおりに実装したところ、思い通りになりました。ありがとうございます!
一番時間かかった問題(sleepでやると2回に1回くらい描画結果がwindowに反映されない)は、
PC再起動でなおりました。
>>767-768
アドバイスありがとうございます。ティアリングは覚悟済みです。
余談ですが、もちろん普通に垂直同期を待つモードもついています。
今回は1関数コピペで済むレベルなので不精しましたが、
そうでない場合はいただいたアドバイスどおりじっくりやりたいと思います。
0772名前は開発中のものです。
2011/02/16(水) 10:32:36ID:kx3d0uWeそのイテレータを使い終わった時に初期化したいです
しかし一体何を入れればいいのかわかりません
別に初期化しないでもバグにならないように設計すればよいのですが
何か気持ち悪くて・・・
0773名前は開発中のものです。
2011/02/16(水) 10:45:00ID:hu/634nmどうしてもってのならNULLを入れとけばいいです
NULL(=0)は絶対にポインタとしてあり得ない数値なんで、it==NULLなら参照しない、って使い方が出来ますにゃ
(当然、NULLが代入されてるイテレータで要素を参照してしまうとアプリは落ちる)
0774名前は開発中のものです。
2011/02/16(水) 20:49:33ID:RSQiCP9S0775名前は開発中のものです。
2011/02/17(木) 12:10:06ID:POOkR4PO3Dモデルのデータにはテクスチャファイルは埋め込めないんでしょうか?
ごちゃごちゃするのでまとめたいんですが…。
それとも最終的にDXアーカイブにすれば(mv1のみ?)でまとめろって話ですかね。
0776名前は開発中のものです。
2011/02/17(木) 18:48:14ID:L+DlSeIR擬似3Dゲームを作ろうと思ってマップや敵を回転させてたらめっちゃ重い
0777名前は開発中のものです。
2011/02/17(木) 18:54:18ID:s7Rh9Whn0778名前は開発中のものです。
2011/02/17(木) 19:06:21ID:L+DlSeIRでもさ、フィールド関数の領域???でロードしたら、次から画像ハンドルが空っぽになってんだよ
0779名前は開発中のものです。
2011/02/17(木) 19:11:41ID:NFDiEQjC0780名前は開発中のものです。
2011/02/17(木) 19:18:03ID:L+DlSeIR0781名前は開発中のものです。
2011/02/17(木) 19:19:56ID:+LcL54Sl0782名前は開発中のものです。
2011/02/17(木) 19:21:09ID:8eHPFNop関数によって、座標指定が左上だったり中央だったりするのが面倒だったので。
>>780
せめて24時間は待てよw
0783名前は開発中のものです。
2011/02/17(木) 19:53:11ID:JfE8kAGm>画像のロードをループのたびにやってる
そんな事やってたら重いのは当たり前だ
>画像ハンドルが空っぽ
明らかなバグ臭、ちゃんととレースしてデバッグしろ
0784名前は開発中のものです。
2011/02/17(木) 19:55:24ID:/kIHAK9a0785名前は開発中のものです。
2011/02/17(木) 20:07:30ID:2T4y7T5P783も言ってるけどまんま原因はそれだよw
ロードは描画の度やるようなもんじゃない
変数の有効範囲をちゃんと管理できるコードか書けない初心者のうちは、
画像ハンドルはグローバルで置いとくべき
そしてゲーム起動時に全部読み込むくらいでいいにゃん
0786名前は開発中のものです。
2011/02/17(木) 20:22:19ID:NFDiEQjC0787名前は開発中のものです。
2011/02/17(木) 21:57:53ID:L+DlSeIRまたできる環境になったら試して見ます
またお世話になるかと思いますがよろしくお願いします
0788名前は開発中のものです。
2011/02/18(金) 01:46:16ID:GOKTeo9s0789名前は開発中のものです。
2011/02/18(金) 14:19:13ID:R8VH2Snc時間をログファイル名につけて保存する設定にしたのはいいんですが実行するたびにファイルが増えるのでひとまとめにできたらいいなと思うんですが
■ このスレッドは過去ログ倉庫に格納されています