DXライブラリ 総合スレッド その3
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2009/03/31(火) 01:14:36ID:IgyJcgapGUIのゲームを比較的容易に作成する事を可能にする、
「DXライブラリ」に関するスレッドです。
DXライブラリの詳細ついては
http://homepage2.nifty.com/natupaji/DxLib/
を参照して頂きたい。
DXライブラリに関するテクニックなどの情報交換などを行う事で、
多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。
過去スレ:DXライブラリ 総合スレッド
http://pc11.2ch.net/test/read.cgi/gamedev/1197468399/
DXライブラリ 総合スレッド 2008
http://pc11.2ch.net/test/read.cgi/gamedev/1224923873/
0375名前は開発中のものです。
2009/06/06(土) 18:59:26ID:9zaJ0Qz/それともXY座標だけのでもいい?
0376名前は開発中のものです。
2009/06/06(土) 19:42:33ID:94tz/m1F>int SetWaitVSyncFlag( int Flag ) ;
>ScreenFlip関数 実行時にCRTの垂直同期信号待ちをするかのフラグセット
ってあるんだけど、
これって液晶モニタだと関係ない(常にtrue扱いになる?)んだろうか。
手元に液晶しか無いんで、プログラムが間違ってるのか仕様なのか判断できないんだ。
>375
なんの当たり判定だよと。
x,yだけで処理できるなら三角関数使わなくてもいいんじゃないの?
0377名前は開発中のものです。
2009/06/06(土) 21:33:11ID:gMk4d0exとりあえずうちの液晶モニタじゃ普通に動いてるし。
グラボ(RADEON)で垂直同期信号のON/OFF設定ができてるから
問題となるのはグラボの設定って気がする。
0378名前は開発中のものです。
2009/06/06(土) 21:49:45ID:94tz/m1Fなんかすまん。
色々と試してみた結果、
グラボの設定を変更&フルスクリーンでFPSが60Hzの上限を突破することが出来た。
まあ、実際に使うことはないだろうけれど。
0379名前は開発中のものです。
2009/06/06(土) 21:52:06ID:9zaJ0Qz/横スクロールの当たり判定
0380名前は開発中のものです。
2009/06/06(土) 22:08:08ID:gMk4d0ex君はもう少し自分の考えてる事を他人にわかって貰う努力をしろw
スクロールと当たり判定と三角関数がどう関わってくるのか、の説明とか
どうして「三角関数が必要かも」と思ったか、とか。
0381名前は開発中のものです。
2009/06/06(土) 22:46:25ID:sFhdVHFw0382名前は開発中のものです。
2009/06/06(土) 23:14:29ID:vskJtjA7おまえ、偉そうジャン?
0383名前は開発中のものです。
2009/06/06(土) 23:46:26ID:+AmloxXp0384名前は開発中のものです。
2009/06/07(日) 00:27:15ID:jsaQKHFo努力しろとか、おまえ、何様ジャン?
0385名前は開発中のものです。
2009/06/07(日) 00:43:22ID:7g+XVYWNこれのメッセージの中身って、%dで変数表示したりできるんですか?
できるならどうやってやるんでしょうか、教えてください。
0386名前は開発中のものです。
2009/06/07(日) 00:47:04ID:jsaQKHFoリファレンス読む努力しろ
こんな簡単な事ができなきゃやめちまえ
0387名前は開発中のものです。
2009/06/07(日) 00:57:18ID:WlXcjgXY返答ありがとうございます。
どうも、うまく伝わってなかったみたいですね。
そうか、1つの建物なり乗り物を描画する時に縮小描画してるというわけですね。
それが普通ということですね。
>>386
あんたも努力しろって言ってるジャン
0388名前は開発中のものです。
2009/06/07(日) 00:57:54ID:fLd/zS9/俺も379読んで380と同じ意見だ
384は379だけでわかるのか?
>>385
できない、sprintfを調べてみるといい
0389名前は開発中のものです。
2009/06/07(日) 02:35:15ID:3sx78L/gまあ俺は2次元しか知らんから分からんが
0390名前は開発中のものです。
2009/06/07(日) 10:52:33ID:OFYyutYg0391名前は開発中のものです。
2009/06/07(日) 11:57:27ID:caHBoLjZある問題について出題者が回答者の質問にYes/No形式でヒントを与えつつ
解答を推理していくゲームか。
なるほど確かに、質問者がちゃんと状況を説明できず、情報も小出しにしかできないで
質問に答えようとする人間が、なんとか回答するに足るだけの情報を
引き出そうと四苦八苦するところが似ているな。
0392名前は開発中のものです。
2009/06/07(日) 12:07:51ID:OFYyutYgゲーム化したぜ(原作がスレって意味じゃないが)
スローンとマクヘールの体験版をプレイする作業に戻るんだ
0393名前は開発中のものです。
2009/06/08(月) 08:25:05ID:LOgaJ0S5敵を出すときって、マップ座標の一定値までプレイヤーが来たら敵を出現させるって感じでいいのかな?
今敵の出現関数の引数にマップ座標渡してやってるんだけど、それだと思った所に出すのがめんどくさい。
もっといい方法ない?
0394名前は開発中のものです。
2009/06/08(月) 08:29:40ID:sCESisPc他にもっと適切なスレがあると思うんだが。
>>393
それで特に間違いはないと思うが、
マップデータに敵の存在情報を埋め込むという手もあると思うな。
自由スクロールかどうか等で、いろいろ工夫がいるようになるだろうけど。
0395名前は開発中のものです。
2009/06/08(月) 09:03:31ID:5KFTi9VQ2Dスクロールゲームと言ってもいろいろあるからそれにもよる
0396名前は開発中のものです。
2009/06/08(月) 10:40:15ID:tSfMBcni確かにDXライブラリ以外の話題はスレ的によくないと思うし。
0397名前は開発中のものです。
2009/06/08(月) 11:12:30ID:WLx6NXXxそれらで別れるからなあ。
0398名前は開発中のものです。
2009/06/08(月) 11:33:19ID:cazy22G6【初心者】スレを立てる前にココで質問を【Part19】
http://pc11.2ch.net/test/read.cgi/gamedev/1236761855/
0399名前は開発中のものです。
2009/06/08(月) 13:24:46ID:5KFTi9VQ0400名前は開発中のものです。
2009/06/08(月) 13:44:11ID:1Ns/D0F70401名前は開発中のものです。
2009/06/08(月) 17:09:17ID:Q/bmJU+V0402名前は開発中のものです。
2009/06/08(月) 20:15:15ID:fnZML6Vnその中で、わくわくゲームプログラミングを買ってきました
ゆくゆくはRPG作れたらいいなぁ、なんて
しかし最近の14歳は凄いな、ざっと見たけどこの本理解できんだろうか・・
0403名前は開発中のものです。
2009/06/08(月) 20:22:53ID:kVsTXpwy0404名前は開発中のものです。
2009/06/08(月) 21:19:56ID:ScR8iayc0405名前は開発中のものです。
2009/06/08(月) 23:13:08ID:4xXNhiJa年齢で知識の量は違っても論理力はたいして変わらないと思う
0406名前は開発中のものです。
2009/06/08(月) 23:22:34ID:gmTgYuK1昔は小中でハンドアセンブルとかふつうだったし
テキストエディタ無かったし
アセンブラやコンパイラ無かったし
それでもゲーム作ってたからね
資料がネット無い時代だけど毎月大量の雑誌があったおかげで
今の10倍は情報量があると思う
14歳からはじめる〜の内容が毎月5冊くらい雑誌としてあったと思いねぇ
0407名前は開発中のものです。
2009/06/08(月) 23:31:36ID:VwdPN9TR0408名前は開発中のものです。
2009/06/08(月) 23:35:38ID:1Ns/D0F7モノがあふれてない方がかえって集中できてよいことの典型的な例ですな
0409名前は開発中のものです。
2009/06/08(月) 23:38:00ID:rJGFypi7情報も今のほうが圧倒的に多いし楽に手に入る。
逆に、情報や手段が多いせいで入りにくくなってる。
0410名前は開発中のものです。
2009/06/08(月) 23:58:56ID:gmTgYuK1方眼用紙もってドット絵かいたりハンドアセンブルばっかりしてた
変換表の半分くらいは暗記してたけど今じゃもう何も覚えて無い
c9がretだっけとかそんな感じ
ミスすれば暴走>リセットだったから実行するにも緊張した
結果机上デバッグにみんな慣れてソースやバイナリ見るだけですぐわかるようになってくる
バイナリ見たときのビッグエンディアンのわかりやすさはあこがれた
なんせ俺の暴走原因の90%は上位と下位のスワップし忘れがほとんどだったから
あと当時はPCの楽しさは俺達しかしらないんだぜ的なものもあったかな
というか全然普及して無いから虐げられてた
マイコン触れる=ネクラの変人で運動も何も出来ないんだろ的な
だからDXライブラリのように敷居を下げるライブラリにはがんばってもらいたい
今のほうが情報が入手しやすいというのはどうだろうね
CPUそのものとかOSとかデザパタとかそういうオカタイ情報は入手しやすいけど
ゲームを作りたい場合の情報の敷居の高さは半端じゃないよね?
徳間のM-FANみたいなのが必要かなと
0411名前は開発中のものです。
2009/06/09(火) 00:57:34ID:S/a6iR+n最初は出来る限りシンプルなゲームから作った方がいい…と、僕は思うんだ。
80年代前半より前の生まれなら、ゲーム&ウォッチが通じるんだが
最近の子(20歳以下)だと、どのへんが分かりやすい例え何だろうか。
0412名前は開発中のものです。
2009/06/09(火) 01:10:43ID:oifuXaCW>>410
俺も方眼紙にドット絵描いたり、
ノートにニーモニックでプログラム書いてから、ニーモニック→マシン語変換表見ながらマシン語に書き換えて、
それをバイナリエディタで入力とかやってたなぁw
ところで当時バイナリエディタって読んでたっけ? なんか別の呼び方だったような気がするが……。
0413名前は開発中のものです。
2009/06/09(火) 01:17:12ID:gC7kpoXP0414名前は開発中のものです。
2009/06/09(火) 01:46:37ID:PMo4RsPh0415名前は開発中のものです。
2009/06/09(火) 02:52:08ID:3VeuGuyA0416名前は開発中のものです。
2009/06/09(火) 03:20:38ID:C8Rc41AVなんであんなに創作意欲があったんだろうと思う
年取るとアイデアうかばない症候群になった
ただの鬱なのかもしれんが
0417名前は開発中のものです。
2009/06/09(火) 04:40:20ID:ur7it59gVCもあることだしファミコンでいいんじゃね?
0418名前は開発中のものです。
2009/06/09(火) 05:12:36ID:6uG82dMD教師に「そんなおもちゃが一体何の役に立つんだ」と
即却下されたのもなつかしい
0419名前は開発中のものです。
2009/06/09(火) 09:36:31ID:S/a6iR+nファミコンだと、スーパーマリオ3やドラクエ3も含まれるんだぜ?
ケータイアプリとかなら行けるのかな? やったことないから分からんのだが。
0420名前は開発中のものです。
2009/06/09(火) 09:50:17ID:ur7it59g0421名前は開発中のものです。
2009/06/09(火) 11:52:23ID:S/a6iR+n0422名前は開発中のものです。
2009/06/09(火) 13:07:47ID:IuPr0Cmy俺もツクールに数百時間費やしたくちだが、今思うと凄いな。
アイデアは今でも思い浮かぶんだが、頭の中だけで終わってそれを表に出そうっていう気にならない。
誰かが作ってくれるならアイデアとかは言うんだけど自分でやるってなるとめんどくさくて。
ちなみにその数百時間かけたのはセーブデータぶっ飛んで電子の藻屑に\(^o^)/
数百時間かけてすら、まだ1/5程度な完成度だったけど・・・
0423名前は開発中のものです。
2009/06/09(火) 14:14:05ID:+TNFSrzk0424名前は開発中のものです。
2009/06/09(火) 14:29:51ID:/uwI++Tj0425名前は開発中のものです。
2009/06/09(火) 14:45:39ID:/EtnpSFu0426名前は開発中のものです。
2009/06/09(火) 23:50:55ID:ggNV6tYDプログラムとしては、選択肢を選んだ順番に配列に格納して、正しい解答と比較することで正誤判定をしています。
一応、選択肢を選んで決定するところまではできたのですが、正誤判定の部分?がうまくいかないんです。
正しい順に選択肢を選んでも、間違っているということになっているみたいです。
なぜでしょうか?
あと4回目に選択肢を選ぶと、変な文字が表示されるのはなぜでしょうか?
自分の作ったプログラムです。
ヘッダファイルとメイン部分、会話(選択肢並び替え)部分に分かれています。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9402.cpp
C言語をはじめて1年、DXライブラリをはじめて2か月くらいなので、やさしく教えてください。
お願いします。
0427名前は開発中のものです。
2009/06/10(水) 01:02:39ID:EOc9oIq+char input[5][1];
をグローバルにすればとりあえず動くと思う
ところで、要素数1だったら配列の意味なくね?
アドバイスとして、
↓の関数あたりを使えばもう少しスマートに書けると思う
sprintf、strcmp (C言語)
DrawFormatString (DXライブラリ)
0428名前は開発中のものです。
2009/06/10(水) 15:37:12ID:UXlA/6A3inputをグローバル変数にしたら、うまくいきました。
アドバイスしていただいたことも参考にして、もう少しスマートなプログラムが書けるように努力します。
本当にありがとうございました。
0429名前は開発中のものです。
2009/06/10(水) 22:45:00ID:kJPqJciVかえって乱暴に扱われるってばっちゃが言ってた
0430名前は開発中のものです。
2009/06/10(水) 23:47:48ID:yn44iXp90431名前は開発中のものです。
2009/06/11(木) 23:55:55ID:GA3GCHk+if(keiken==0)printf("童貞乙");
0432名前は開発中のものです。
2009/06/12(金) 00:00:02ID:ADvlYAyg初期化しとけ
0433名前は開発中のものです。
2009/06/12(金) 00:04:48ID:M4d3vxIHこうですか?分かりません><
#define KEIKEN 0
if(KEIKEN==0)printf("童貞乙");
0434名前は開発中のものです。
2009/06/12(金) 04:04:32ID:Yy7W6LDGint keiken=0;
if(keiken==0)printf("童貞乙");
0435名前は開発中のものです。
2009/06/12(金) 07:22:27ID:9cqRM4P7if(keiken==0)printf("童貞乙");
0436名前は開発中のものです。
2009/06/12(金) 08:37:17ID:yeEoVlcI0437名前は開発中のものです。
2009/06/12(金) 11:39:23ID:jHstWptskeiken ++ ;
keiken ++ ;
keiken ++ ;
keiken ++ ;
if ( 1 ) printf ( "童貞乙" ) ;
これで。
0438名前は開発中のものです。
2009/06/12(金) 12:18:42ID:xPu8mGZk0439名前は開発中のものです。
2009/06/12(金) 12:22:38ID:Upl7Se9Gインクリメントってスペースがあってもいいの?
0440名前は開発中のものです。
2009/06/12(金) 12:33:12ID:5rESS90A0441名前は開発中のものです。
2009/06/12(金) 12:48:39ID:l4TbPUJWとか
if(!keiken)
ってみんなあんま使わない?
視認性重視で「==1」「==0」なのかな?
某神録のサイトでも今見たらそんな表記だった。
0442名前は開発中のものです。
2009/06/12(金) 13:02:13ID:jHstWptsよく使うと思うが、今回は単に>431に合わせただけじゃない?
あとは掲示板で見やすい書き方というのはあるかもしれんね。
0443名前は開発中のものです。
2009/06/12(金) 13:08:28ID:AJoYy9jzあえて==0使ったんでしょ。
実際のコードでもそういうことはやる。
0444名前は開発中のものです。
2009/06/12(金) 13:48:30ID:6cWATceQ0であることを強調するため。
あと文化圏の違いもある。
0が偽じゃない言語も多数存在するから、そういう言語出身の人は
if(keiken)というコードは気持ち悪く感じる。
逆に生粋のC/C++の人はif(keiken==0)というのは冗長に感じる。
俺は簡潔性よりもわかりやすさを重要と考えてるから、==で比較する。
使う言語がC++だけじゃないってのもあるけど。
0445名前は開発中のものです。
2009/06/12(金) 13:57:03ID:+pEtBUBPこういうのDXライブラリで作ってるのかな
0446名前は開発中のものです。
2009/06/12(金) 13:58:09ID:+pEtBUBPwhile(!CheckHitKey(KEY_INPUT_ESCAPE)){
}
おおこういう表記もできるのか
0447名前は開発中のものです。
2009/06/12(金) 14:39:12ID:Nk+ds+Ow関数の戻り値なら>>446みたいな感じで書くかな。
0448名前は開発中のものです。
2009/06/12(金) 15:36:56ID:CIdl30UY3値以上なら(不)等号あるいはswitchを使うかな
if (!strcmp(str, "hoge")) // 一致したら
とかは気持ち悪い
0449名前は開発中のものです。
2009/06/12(金) 16:05:58ID:wLR5hiQv0450名前は開発中のものです。
2009/06/12(金) 18:56:18ID:g9ISpJC5やっぱこれは見づらいのかな
0452名前は開発中のものです。
2009/06/13(土) 10:14:12ID:yreqn12m世の中には条件式を省略しようとする輩がいるから
0453名前は開発中のものです。
2009/06/13(土) 10:24:26ID:yreqn12mif(hoge()){
…
}
じゃ返値をひとつだけ判定することができないじゃないの
あとでhoge()の返値を増やしたら予期せぬ動作をする可能性が高い
hoge()の返値を絶対に増やさない!なんて自信満々に言える奴は少ないでしょ
==で結べば必ず1つの返値で動作するから安全
0454名前は開発中のものです。
2009/06/13(土) 13:01:19ID:khmiiTOMC++は多値返せないよ
戻り値のとり得る値が増減する、とエスパーすると、
関数の戻り値っていうのは、関数本来の意味を参照すると、
関数の作用そのもの、すなわち関数が実装する機能そのもの。
(わからないならSchemeやHaskellとか関数型プログラミング言語を一度触ってくれ)
これが変更されるということは、すなわち関数の機能が変わったか、設計の錬度が全く足りてない
(どんな機能を実装するかすらあやふやだった)かどちらか。
どちらにせよその変更は、その関数を使用するコード全体に波及する。
だから
>あとでhoge()の返値を増やしたら予期せぬ動作をする可能性が高い
この指摘はずれてる。
繰り返しになるけど、戻り値の変更はそれを使用するコード全体に波及するから、
予期せぬ動作をする可能性が高い、じゃなくて、予期せぬ動作をしないようにコード
を変更しないといけない。
0455名前は開発中のものです。
2009/06/13(土) 15:58:30ID:MRDz7JnU実装の修正は何度もやるとして
インターフェースや振る舞いはなかなか変えないもんだ
というか、戻り値の意味が2通りを超える時は
関数名も変えざるを得ない気がするが
0456名前は開発中のものです。
2009/06/15(月) 23:58:33ID:FuxW1Dfe透明色指定しても透明にならない
bmp2pngが必要
0457名前は開発中のものです。
2009/06/16(火) 01:46:16ID:H4jkoMGr何かいい方法あるかな?
x座標を調整するの面倒だ
0458名前は開発中のものです。
2009/06/16(火) 02:10:16ID:1CAlzcIC自分は使ったことないんで分からないけど、
GetDrawStringWidth
GetDrawFormatStringWidth
というのはどう?
で、長さを調べてxを調整して、文字列を出力するところまでを1つの関数にしちゃうの。
0459名前は開発中のものです。
2009/06/16(火) 02:19:38ID:qN6akUYZcountを0と1でオンオフしてSleep(300)とかで歩行と同じように調整はできたんだけど、
歩き出しが時々ぎこちないので悩んでます。sleepじゃなくていい方法が思いつかない
0460名前は開発中のものです。
2009/06/16(火) 02:28:14ID:H4jkoMGrフォントを変えないならいける
CreateFontToHandleで作ったフォントデータだと駄目っぽい
>>459
countを範囲でオンオフ切り替えてみては
if(count%40<20)//ドロー
else //ドロー2
count++;
0461名前は開発中のものです。
2009/06/16(火) 02:34:01ID:wxVXqeT5GetDrawStringWidthToHandleがあるじゃん
0462名前は開発中のものです。
2009/06/16(火) 02:36:09ID:H4jkoMGrうわ・・・恥ずかしい・・ごめんなさい
ありがとねん
0463名前は開発中のものです。
2009/06/16(火) 03:45:39ID:1CAlzcICそもそもSleep使ったら何も出来なくなるんじゃ?
0464名前は開発中のものです。
2009/06/16(火) 08:51:37ID:mvp6g5dM0465名前は開発中のものです。
2009/06/16(火) 09:09:09ID:q6YxOHAdClearDrawScreen();
if(count<20) 右足が前に出てるキャラ表示
if(count>=20&&count<40)左足が前に出てるキャラ表示
ScreenFlip();
WaitTimer(10);
count++;
if(count==40)count=0;
}
うーんよくわからん
0466名前は開発中のものです。
2009/06/16(火) 09:54:16ID:1CAlzcIC基本的な考え方はそれでいいと思うよ。
あとせっかく答えてくれた>460の答えも読んどいた方がいいんじゃね?
0467名前は開発中のものです。
2009/06/16(火) 10:06:16ID:yTy6SiIo基準FPS値決めて、フレーム数と秒が変換できるようにしてみるといい
あとWaitTimer(10)とかいうのはジョークだよね?w
0468466
2009/06/16(火) 10:16:47ID:1CAlzcIC>>467
おや、見逃してたw
もしかして>463(俺)の発言を勘違いしちゃったのかな……? だとしたらちょっと責任感が。
0469名前は開発中のものです。
2009/06/16(火) 12:57:31ID:zt3TsheyたぶんWaitTimer等の関数を使わないと高速足踏みに見えると感じて、
こういう手段で自然に見えるようにしたんじゃないかな。
一秒でひとつの動作をループさせる必要はないからこれはあまり良くないと思うけど。
0470名前は開発中のものです。
2009/06/16(火) 13:19:46ID:1CAlzcICcount値20ごとに表示を変えてるみたいだし、それは大丈夫なんじゃないかしら?
0471名前は開発中のものです。
2009/06/16(火) 14:04:12ID:KbLsp5Ay0472名前は開発中のものです。
2009/06/16(火) 14:17:30ID:MjcTUWQv0473名前は開発中のものです。
2009/06/16(火) 16:03:45ID:rewLOGjyと上級者ぶってみるわ
0474459
2009/06/16(火) 18:26:00ID:qN6akUYZWaitやSleepは使わずにFPSとかFrameやらを使って試行錯誤してみます。
countを0と1でオンオフにしてたけど>>465のようにフレームカウントにしてやってみます。
■ このスレッドは過去ログ倉庫に格納されています