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/
0647名前は開発中のものです。
2011/02/04(金) 15:45:42ID:nHohQiTeでいいだろ
0648名前は開発中のものです。
2011/02/04(金) 16:19:24ID:cCo0ykp30649名前は開発中のものです。
2011/02/04(金) 16:25:18ID:v+xsDxji別に「もれなく」ではないだろ
0650名前は開発中のものです。
2011/02/04(金) 16:39:47ID:B/8/xRi6所詮言葉遊びのパズル
0651名前は開発中のものです。
2011/02/04(金) 17:13:25ID:FTwi59ne詳しくどうぞ
0652名前は開発中のものです。
2011/02/04(金) 17:16:28ID:bvXT0uLK別にBoostはそんなに敷居高くないぞ・・・
0653名前は開発中のものです。
2011/02/04(金) 17:21:27ID:FTwi59ne0654名前は開発中のものです。
2011/02/04(金) 17:50:00ID:bf3eC1dGCは簡単、>>640が良い例、でもメモリ管理は必須だぞ
C++全開で書かれたソースは難しいが
ほとんどの場合Cから初めても進むにつれC++寄りになるから続ければ勝手に読めるようになる
webで勉強するならC/C++が一番資料多い
DXライブラリ+Cは初心者におすすめできると思うぜ
んで、さらに時がたつとC#でツール作成してるはず
0655名前は開発中のものです。
2011/02/04(金) 18:08:50ID:nHohQiTeDXライブラリのサンプルコードもC++だし、
ほとんど大多数がC++で開発してると思うぞ。
まあ、ほとんどの、C++の入門サイトも入門書も、
Cから受け継いだ構文・機能の説明を省いてるから、
必然的にCを学ばなきゃいけないのが現実かもしれんが。
0656名前は開発中のものです。
2011/02/04(金) 18:54:22ID:MVi9WYrfクラスもオブジェクト指向もSTLもBoostも使わなくてもあれくらいのモノは作れるってののいい見本だと思う
別にゲーム作るのにオブジェクト指向もBoostも必須なわけではないし、
そんなのが必須になってくるくらいの規模の大きい作品を作ろうとするのは初心者には無茶
使えれば便利だけどね
C++はCに機能が追加されたものなんだから、無理に追加されたものを使おうとしなければ、
C++がCより難しいってことはないと思う
0657名前は開発中のものです。
2011/02/04(金) 19:14:23ID:gYkXmix/0658名前は開発中のものです。
2011/02/04(金) 19:22:22ID:lLkvF9Gsそりゃ使ってるのはC++だろw
0659名前は開発中のものです。
2011/02/04(金) 20:05:12ID:CU+f2z6I>でもメモリ管理は必須だぞ
メモリ管理って言うけど、具体的に何をするのかピンとこない。
大事なのはわかるんだけどさ。
俺はオブジェクト指向わからんし、クラスの使い方すらも理解していない。
主に使う変数はほとんどグローバルで配列の数も全て固定。
ポインタもどうしても必要な部分以外使ってない。
エラーが起こるとしたら配列範囲オーバーか0除算くらいで、その程度ならなんとでもなる。
あとはDXライブラリで読み込んだ画像データ等を必要に応じてDeleteしていく、くらいしか気をつけてない。
0660名前は開発中のものです。
2011/02/04(金) 21:12:04ID:6/uiWO3/win98ぐらいの時には
メモリークリーナーが便利だったな
0661名前は開発中のものです。
2011/02/04(金) 22:25:14ID:N2iHbnIF文字列を表示するXとYの位置を直にソースコードに書き込むと
頻繁に位置を変更する時ビルドに時間がかかったり
後でわかりにくくなるので、テキストにずらっと位置情報をまとめて
それを読み込んで使っています
しかし位置情報というのは細かいものまで含めてたくさんあるので
「こんなものまでいちいち読み込んでやるべきなのか?」
と疑問に思うことがあります
皆さんはどうしてますか? 私のやりかたはおかしいでしょうか
0662名前は開発中のものです。
2011/02/04(金) 22:47:43ID:bHk+Uq52着眼点はよいです
ソースコードに埋め込まないほうがよいのは確かです(最低限マクロか定数として分離させるべき)
複雑になってくると自分でも混乱しますけど、それをうまくやる方法ってのは正解はないです
一定の開発スタイルを決めるとそれなりに整理はできるんですが・・・
0663名前は開発中のものです。
2011/02/05(土) 01:16:00ID:a1DliHej0664名前は開発中のものです。
2011/02/05(土) 03:59:26ID:0SOpPPRWメモリ管理とは違うけど、とりあえずグローバル変数を極力使わないところから始めてはどうか。
これくらいなら、Cの入門書にも書いてあるレベルだし、慣れれば手間ですらなくなるし。
>>661
小規模開発なら、細かい数字は外部に置かなくても、そこまで問題にはならないと思うよ。
ただし、>662の言う通り、#defineなりconstなりで分離させておくべきだと思う。
>>663
休憩中とか散歩中とか仕事中に考えればいいのよ。
0665名前は開発中のものです。
2011/02/05(土) 10:11:08ID:LqlwHybZ0666名前は開発中のものです。
2011/02/05(土) 10:18:58ID:0SOpPPRWワードやメモ帳に、文字列を食わせる方法ってあるのかな。
一旦テキストファイルに出力するのが簡単なんじゃない?
0667名前は開発中のものです。
2011/02/05(土) 10:29:33ID:97+pwl5Oメモ帳ならキー送るしかない
0668名前は開発中のものです。
2011/02/05(土) 10:31:13ID:LqlwHybZDrawString を使うと、画面に文字が描画されますが、
それをコピーペーストしてワードに貼り付けることが出来るならそれでもかまわないんです。
実際はできません。
私はまったくの初心者なので、質問がおかしいところもあるかもしれませんが、
>>666の テキストファイルに出力する っていうやり方を教えてもらえないでしょうか。
どういう関数を使えば出来ることなんでしょうか?
0669名前は開発中のものです。
2011/02/05(土) 10:38:37ID:97+pwl5Oファイルへの出力は、DXライブラリの関数を使ってもいいけど普通はC++の標準ライブラリの
入出力機能を使う
どちらにしてもスレ違い
0670名前は開発中のものです。
2011/02/05(土) 10:54:09ID:fuYn973Kファイルへ書き出すなら fopen, fprintf, fclose
クリップボードへ入れたければ
GlobalAlloc,GlobalFree, GlobalLock,GlobalUnlock,
OpenClipboard,EmptyClipboard,SetClipboardData,CloseClipboard
を使うといいよ
0671名前は開発中のものです。
2011/02/05(土) 10:57:01ID:LqlwHybZ利用できる関数がそんなにあったんですね。
0672名前は開発中のものです。
2011/02/05(土) 21:47:08ID:zsx+Wg5Gタスク用のワークエリアを確保したり開放したりしないんだろうね
最初にがばっと確保して、タスクごとに使いまわす
0673名前は開発中のものです。
2011/02/05(土) 22:05:24ID:GZLq5iGw0674名前は開発中のものです。
2011/02/05(土) 22:07:15ID:n/4Fp6g/0675名前は開発中のものです。
2011/02/05(土) 22:19:11ID:op8JGqIpPSPのソフトでも開発してんのか
0676名前は開発中のものです。
2011/02/05(土) 23:11:04ID:7xJ6Lxp50677名前は開発中のものです。
2011/02/05(土) 23:41:09ID:LazTXNwj0678名前は開発中のものです。
2011/02/05(土) 23:56:58ID:5PjJbGzB0679名前は開発中のものです。
2011/02/05(土) 23:58:41ID:5PjJbGzB>ちなみにメモリ管理ってメモリを節約するためじゃないからな
ちなみにメモリ管理ってメモリを節約するためだけじゃないからな
0680名前は開発中のものです。
2011/02/05(土) 23:59:53ID:LazTXNwj具体的にどういった事をメモリ管理というのか実例を説明してほしいですね
0681名前は開発中のものです。
2011/02/06(日) 00:42:48ID:hi6mskVF0682名前は開発中のものです。
2011/02/06(日) 00:44:00ID:edmoP5Oc0683名前は開発中のものです。
2011/02/06(日) 00:47:12ID:Bcoc3jNp0684名前は開発中のものです。
2011/02/06(日) 00:50:45ID:Bp6r7tC90685名前は開発中のものです。
2011/02/06(日) 00:51:42ID:bBxVkAP5って主張だったのに、初心者はnew・deleteは使わないと思うんだけどな……
だから話がループするのかな
0686名前は開発中のものです。
2011/02/06(日) 00:55:29ID:hjXl231Y0687名前は開発中のものです。
2011/02/06(日) 01:21:28ID:KavCN3Ib0688名前は開発中のものです。
2011/02/06(日) 01:24:03ID:Bp6r7tC9他に使い道あるの?
0689名前は開発中のものです。
2011/02/06(日) 01:27:00ID:KavCN3Ibよく知らないけど、そういう場合ってvectorとか使うんじゃないの?
まぁ自分は決め打ちでドカッと多目に配列を確保。
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:z2dDXVbA■ このスレッドは過去ログ倉庫に格納されています