- 1 名前:名前は開発中のものです。 mailto:sage [2007/12/12(水) 23:06:39 ID:Ns2HwhRB]
- Cを習得した程度のスキルでも、
GUIのゲームを比較的容易に作成する事を可能にする、 「DXライブラリ」に関するスレッドです。 DXライブラリの詳細ついては homepage2.nifty.com/natupaji/DxLib/ を参照して頂きたい。 DXライブラリに関するテクニックなどの情報交換などを行う事で、 多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。
- 517 名前:名前は開発中のものです。 mailto:sage [2008/07/26(土) 13:23:17 ID:IUb0Oqp3]
- どうせゲ専にでも行くんだろ
業界が大卒以外取らないってのは、決して脅しの言葉じゃないぞ
- 518 名前:名前は開発中のものです。 mailto:sage [2008/07/26(土) 13:28:45 ID:YzymVi7X]
- >>517
JEXさんのこと全然知らないんだな しかもどこのが会社が大卒以外取らないとか言ってんだよ
- 519 名前:名前は開発中のものです。 mailto:sage [2008/07/26(土) 13:43:10 ID:yPJXRj/4]
- 任天堂
- 520 名前:名前は開発中のものです。 [2008/07/26(土) 15:43:58 ID:gmVyP22M]
- 誰か、14歳からはじめるC言語ゲームプログラミングでゲーム作っている人いますか?
- 521 名前:名前は開発中のものです。 mailto:sage [2008/07/26(土) 15:48:40 ID:gx2oBCiZ]
- ノシ
とりあえず熊キャラのところまでたどり着いた・・・・ 三回読み直してようやく何をやってるのか、少しわかるようになった 良書と思うが、ライブラリの使用を作者の作ったヘルパー関数の利用で賄ってる部分が多いので、 初めての俺にはそこが難しい(かった)な
- 522 名前:名前は開発中のものです。 [2008/07/26(土) 15:56:30 ID:gmVyP22M]
- P82のDXLib_VC2_24b.exeがどこにあるか分からないのですが
どこにあるのですか? 教えてください!
- 523 名前:名前は開発中のものです。 mailto:sage [2008/07/26(土) 16:02:26 ID:gx2oBCiZ]
- ちょっと今手元に本が無いから、なんのことやら・・・スマンネ
- 524 名前:名前は開発中のものです。 [2008/07/26(土) 16:09:33 ID:gmVyP22M]
- そうですか
今、DXライブラリがどこにあるか分からなくてとても困っています。 とりあえず、教えてほしいのですが付属のCDでダウンロードできるんですよね?
- 525 名前:名前は開発中のものです。 mailto:sage [2008/07/26(土) 16:12:35 ID:gx2oBCiZ]
- うろ覚えだが、付属のCDはVisualStudioの奴だけで、
あとはサイトからダウンロードするんじゃなかったかい? サンプルとライブラリはネットで落とした記憶が・・・ 他にもゲーム系入門書を数冊買ったので、ごっちゃになってるかもしれないが・・・
- 526 名前:名前は開発中のものです。 mailto:sage [2008/07/26(土) 16:13:53 ID:RMhYO7Z4]
- >>524
調べる事も勉強になるから、それぐらいは自分一人の力で解決しないと先に進めないよ DLと使用環境を整えるぐらいは一人でもいけるはず。 出来ないのならプログラムよりも先にパソコンの使い方とかを勉強したほうがいいかもしれない。
- 527 名前:名前は開発中のものです。 mailto:sage [2008/07/26(土) 16:49:04 ID:T15EAVrC]
- 「CDでダウンロードできる」と言ってるあたり、まだ何も解ってないみたいだね。
2chくるより先に公式サイト見に行くべきだ。
- 528 名前:名前は開発中のものです。 [2008/07/26(土) 18:16:55 ID:gmVyP22M]
- わかりました、公式サイトに行ってみます
- 529 名前:名前は開発中のものです。 mailto:sage [2008/07/26(土) 19:19:12 ID:MaSVBvZq]
- >>518
悪いけど、まともな企業になってきてる大手は原則大卒しか新卒ではとらないよ。 実績とかなにか、自分の力を証明できるようなもんがあれば別だけど・・・・・ まぁ、どうでもいいか。
- 530 名前:名前は開発中のものです。 mailto:sage [2008/07/26(土) 19:28:02 ID:T15EAVrC]
- それに、仮に大卒以外として採用されたとしても、待遇は天地の差がある。
給料はもちろん、回される仕事も大きく違う。 せっかく大学受かったなら、辞めないほうがいい。
- 531 名前:名前は開発中のものです。 mailto:sage [2008/07/26(土) 19:30:34 ID:IJz7tQo6]
- これが学歴厨か・・・
こっちで色々語られてるぞ ゲームクリエイターになってみない? pc11.2ch.net/test/read.cgi/gamedev/1111563948/
- 532 名前:名前は開発中のものです。 mailto:sage [2008/07/26(土) 19:33:01 ID:YzymVi7X]
- 任天堂受けたけど、90人の枠に何万人もエントリーするあの倍率じゃ
大卒ウンヌンとかって話じゃないよw とりあえず勉強してない奴は筆記試験からして最初っからすぐ落ちる。
- 533 名前:名前は開発中のものです。 mailto:sage [2008/07/26(土) 20:35:44 ID:dHaaAq9w]
- 任天堂の技術系は東大か京大か東工大じゃないと話にもならんよ
- 534 名前:名前は開発中のものです。 mailto:sage [2008/07/26(土) 20:38:55 ID:0BMzZt8C]
- 高専は?
- 535 名前:名前は開発中のものです。 mailto:sage [2008/07/26(土) 20:42:20 ID:nbFOjXde]
- >>534
無理ぽ つか大手だーじゃなくて、好きなもの作ってる所受けてみりゃいいと思う 特にマの人。
- 536 名前:名前は開発中のものです。 mailto:sage [2008/07/26(土) 22:08:20 ID:czyUlfmN]
- 任天堂は、面白くないゲームでも面白そうに思わせる宣伝力とか。
企画を工夫して売るとか、 海外相手に日本じゃありえないような言いがかりのような法的トラブルを防ぐ能力とか 凄腕プログラマを育てるのではなく外からスカウトしてきて上手く使いこなす能力とか・・・ そういう感じの人たちが終結してるんじゃないかと想像。
- 537 名前:名前は開発中のものです。 mailto:sage [2008/07/26(土) 22:23:47 ID:yPJXRj/4]
- 学歴厨っていうか入り口での足きりをするときに
似たようなレベルの作品&印象だったら学歴高い方を選ぶだろJKってだけの話だよ。 高卒でも大卒のやつらを上回る技術を示せる作品を作って、 剛体力学、流体力学、行列・ベクトル演算、幾何代数を独学でマスターすれば全く問題無い。
- 538 名前:名前は開発中のものです。 mailto:sage [2008/07/26(土) 22:53:29 ID:iaDbs620]
- 流れを変える意味でも、ちょっと初歩的な質問をさせてくれ
DrawFormatStringなんだけど、これって実際には バックにグラフィックの枠のようなものを表示させて、座標はある程度めぼしをつけて、 ================== <-グラフィック ここに点数とか <-DrawFormatStringで書く ここに名前とか ================== <-グラフィック みたいにして使うものってことでおk? ゲームのステータス表示とかで使いたいと思ってるんだが・・・
- 539 名前:名前は開発中のものです。 mailto:sage [2008/07/26(土) 23:24:49 ID:tnwbSQld]
- まぁ、それで出来ないことはないだろうが。
DxLib.h見てないからなんともいえないが、もしかしたら描画した文字列の高さを返す関数があるかもしれんが。 不安だったら、文字を画像にしちゃうとか。
- 540 名前:名前は開発中のものです。 mailto:sage [2008/07/26(土) 23:29:39 ID:iaDbs620]
- 文字の中でも固定的なもの(ポイントとかHPとか言う呼称)までは画像にしようかと、、、
以前、画像の読み込みで練習用?の呼び出しがあるとか無いとかって話しになってたので、 もしかしたら見落としてる命令があるかと思って聞いた次第です
- 541 名前:名前は開発中のものです。 mailto:sage [2008/07/27(日) 00:03:36 ID:ofRKBqbI]
- すまないが、何を疑問に思ってるのか解らない。
俺はゲーム中のメッセージ表示や、あるいはデバッグ用の変数値表示に使うくらいだな。 点数とかは、自分で文字画像作ってそれを表示させてる。 フォントのサイズは自分で設定できるんだからそれに準ずればいい。 ただフォントいじる命令、やたら遅いので頻繁に変えるようだったら 最初から複数のフォントを用意しないといけないんだったかな。 文字を画像にしたらフォントのライセンスとかでまずい事になるんじゃないかな。
- 542 名前:名前は開発中のものです。 mailto:sage [2008/07/27(日) 00:10:58 ID:6pVtHho2]
- そうとは言い切れないけど、大抵指定したフォントサイズが
文字のドット幅になるよ。
- 543 名前:名前は開発中のものです。 mailto:sage [2008/07/27(日) 10:54:20 ID:tU8sxjgU]
- 幅はDxLib.hのGetDrawStringWidth系関数が使えそうですが、
高さの取得用関数は用意されてないみたいですね。 フォント用の内部構造体FONTMANAGEには高さが含まれているので、 DxLib.hでコメントアウトされているGetFontManageDataToHandle( int FontHandle ) あたりを使えば 文字の高さを取得できそうです。 あるいは文字高さ取得用関数をライブラリに追加するか。 いずれにせよ、要改造になってしまいますが。
- 544 名前:名前は開発中のものです。 mailto:sage [2008/07/28(月) 00:27:53 ID:6zw2nRJ7]
- テキスト表示の件、ありがとうございました、、、何故疑問に?と思う人もいたみたいだけど、
プログラミング始めたばかりなので、「自分がいいと思ってやってることが正解なのかわからん」状態なので 思わず利いてしまいました で、次のは微妙にスレ違いっぽい質問なのだけど、LaadDivGraphで読み込んだ複数のキャラ画像を メインキャラの動きに合わせて追従させるにはどうしたらいいと思いますか? 動きとしてはグラディウスのオプションとか、ソーサリアンのパーティキャラみたいな感じのものです 自分が組んだロジックは、 ・メインキャラの移動状態を保存用配列に古い記録を破棄しながら随時記録 ・配列の情報に基づいてサブキャラの座標を決定して表示 としてるのですが、サブキャラを増やすと記録すべき配列要素の数も増えて どうも動作が緩慢になってる感じがします・・・自分のマシンではそれほどストレスがないですが、 スペックの落ちるマシンだとストレス溜まりそう・・・なのですが、妙手が思いつきません
- 545 名前:名前は開発中のものです。 mailto:sage [2008/07/28(月) 00:35:13 ID:3fAUJGid]
- 横スクロールアクションのサンプルは、結構少ないのな
作ってたら、ごちゃごちゃと長くなったから、先人のを参考にしたかったのに
- 546 名前:545 mailto:sage [2008/07/28(月) 00:58:54 ID:3fAUJGid]
- すまんかった
ただ、俺の検索能力が低かっただけみたい
- 547 名前:名前は開発中のものです。 mailto:sage [2008/07/28(月) 01:05:00 ID:ESVO02ow]
- >>544
俺もそれ、考えた事はあるけどやった事ないから正解はわからんが、 俺なら同じように配列に「座標」を記録していくかなぁ。 にしても100や200追従させたところで そうそう動作が重くなるとは思えないんだけど どれくらいの数動かす事が前提なのかな?
- 548 名前:名前は開発中のものです。 mailto:sage [2008/07/28(月) 01:52:02 ID:dT1uTere]
- オプションの最大個数*n(オプションの間隔)
のサイズのリングバッファを作り 自機の座標を記録していくんだ。 で、現在のポインタから、n個ずつ古い座標を取り出してオプションの座標にしる
- 549 名前:名前は開発中のものです。 mailto:sage [2008/07/30(水) 12:30:53 ID:I1TOnfGu]
- typedef struct{
int enx; //敵 x座標 int eny; //敵 y座標 int flag; //フラグ } ENEMY; ENEMY move01 = {100,1,0}; ENEMY move02 = {300,1,0}; void enemy_move_02(){ double test = atan2(move02.eny . move02.enx)→ここでエラー。 もしかして構造体とatan2関数って一緒に使えない? move02.eny . move02.enxを「move02」 「eny」 「move02」 「enx」 って認識してるっぽいんだけど
- 550 名前:名前は開発中のものです。 mailto:sage [2008/07/30(水) 12:34:52 ID:jxOLhJk/]
- ","じゃなくて"."になってるのと";"忘れ
- 551 名前:名前は開発中のものです。 mailto:sage [2008/07/30(水) 12:38:49 ID:I1TOnfGu]
- しまったw
こんな単純なミスをずっと気がつかなかったのか。 >>550 下らん質問に答えてくれてありがとう。
- 552 名前:名前は開発中のものです。 mailto:sage [2008/07/30(水) 13:27:32 ID:I1TOnfGu]
- >>550
のミスを修正していざデバッグしたら 'atan2' : オーバーロード関数の呼び出しを解決することができません。 ってエラー出るんだけど、何が悪いの?ENEMY move02 = {300,1,0};で整数がatan2のy.xに代入されてるから?
- 553 名前:名前は開発中のものです。 mailto:sage [2008/07/30(水) 13:50:42 ID:BwimhXf8]
- math.hはincludeしてる?
- 554 名前:名前は開発中のものです。 mailto:sage [2008/07/30(水) 13:58:39 ID:I1TOnfGu]
- >>553
ちゃんとしているよ。
- 555 名前:名前は開発中のものです。 mailto:sage [2008/07/30(水) 13:59:38 ID:BwimhXf8]
- float と double で、、てのもC#ならともかくC++じゃなあ。
とりあえずキャストしてみては?
- 556 名前:名前は開発中のものです。 mailto:sage [2008/07/30(水) 14:19:59 ID:I1TOnfGu]
- static_cast(double)でやってみても普通のキャストでもダメだw
atan2関数って結構クセもんだな
- 557 名前:名前は開発中のものです。 mailto:sage [2008/07/30(水) 14:21:08 ID:Lgzy7JPK]
- まだどこか、カンマとピリオドをうち間違えてるのかも。
フォントが小さいと分かりにくいから要注意。
- 558 名前:名前は開発中のものです。 mailto:sage [2008/07/30(水) 14:31:10 ID:5y8IMZn/]
- atan2といえば、ゲーム実行中にドメインエラーがよく出たなー。
- 559 名前:名前は開発中のものです。 mailto:sage [2008/07/30(水) 14:31:57 ID:4++6mc8t]
- atan2( (double)move02.eny , (double)move02.enx);
でどうですか?
- 560 名前:名前は開発中のものです。 mailto:sage [2008/07/30(水) 14:35:07 ID:I1TOnfGu]
- >>>557
エラーがこれだけだから、多分何かが違うんだと思う enemy_move.cpp(63) : error C2668: 'atan2' : オーバーロード関数の呼び出しを解決することができません。(新機能 ; ヘルプを参照) 1> d:\c++\vc\include\math.h(547): 'long double atan2(long double,long double)' の可能性があります。 1> d:\c++\vc\include\math.h(499): または 'float atan2(float,float)' 1> d:\c++\vc\include\math.h(110): または 'double atan2(double,double)' 1> 引数リスト '(int, int)' を一致させようとしているとき 多重定義もクソも一回しか使ってないんだけどw
- 561 名前:名前は開発中のものです。 mailto:sage [2008/07/30(水) 14:37:25 ID:I1TOnfGu]
- >>559
あ、今度はうまくいった。 一つ一つにキャストしないといけないのかー。 不便だな結構。
- 562 名前:名前は開発中のものです。 mailto:sage [2008/07/30(水) 14:39:13 ID:bDlTbbmG]
- ちょ、、、どうやろうとしてたんだ?w
- 563 名前:名前は開発中のものです。 mailto:sage [2008/07/30(水) 14:42:13 ID:I1TOnfGu]
- double test = (double)atan2(move02.eny , move02.enx);
これで一気に出来ると信じてた
- 564 名前:名前は開発中のものです。 mailto:sage [2008/07/30(水) 14:43:55 ID:Fn2JO3tM]
- 敵の座標や速度は小数にして必要なときに整数にキャストするのがよくね
位置が整数だと2フレームで1px動かすときとか苦労する >>563 関数のオーバーロードは引数で区別される
- 565 名前:名前は開発中のものです。 mailto:sage [2008/07/30(水) 14:45:42 ID:Fn2JO3tM]
- ちなみにそれだと関数が返した値をdouble型にキャスト変換するだけで関数の評価には関係ない
- 566 名前:名前は開発中のものです。 mailto:sage [2008/07/30(水) 16:21:00 ID:I1TOnfGu]
- atan2を使ってて思ったんだけど。
敵にsin波の動きをさせるだけだったらatan2使わないでsin使ったほうが楽だよね?
- 567 名前:名前は開発中のものです。 mailto:sage [2008/07/31(木) 05:31:29 ID:OJUOAbtf]
- >>556
え!? static_castとか知ってて普通のキャストの基礎知らなかったりするのはかなり意外なんだけど >>566 そもそもどうしてatan2を使おうと思ったんだい?
- 568 名前:名前は開発中のものです。 mailto:sage [2008/07/31(木) 11:25:29 ID:6cZaCcAX]
- static_cast(double)じゃなくてstatic_cast<double>だけどな
- 569 名前:名前は開発中のものです。 mailto:sage [2008/07/31(木) 18:11:14 ID:r/NTYYBz]
- 返り値をキャストしてもショウガナイですね・・。
math.hの関数はよくint型引数にしようとして失敗したことが昔ありましたねぇ で、atan2は敵と自機の角度求めたりするのによく使いますけど、 波の表現には使いませんねぇ math.hの関数はどれも遅いので、なるべく使わないようにしてはどうでしょう
- 570 名前:名前は開発中のものです。 mailto:sage [2008/07/31(木) 21:35:59 ID:7gZA2bfW]
- >>569
math.hの関数を使わないでのsin波の場合だとどうなるんだろう・・・。 sinもmathだと思うし、何を使うべきなんですかね
- 571 名前:名前は開発中のものです。 mailto:sage [2008/07/31(木) 21:38:43 ID:DHgf9I5V]
- fastmath.h
- 572 名前:名前は開発中のものです。 mailto:sage [2008/07/31(木) 23:26:36 ID:iw2uu9Rv]
- neetmath.h
- 573 名前:名前は開発中のものです。 mailto:sage [2008/07/31(木) 23:38:05 ID:TL4sUMQR]
- >>570
まずはmath.hの三角関数を使うべきだと思う。 今どきのPCで三角関数のコストが無視できない状況なんてあまり無い。 もしVCを使っているなら、 #pragma intrinsic の使用を検討してみるといいよ。 コンパイラのビルトイン関数を使うことで速度向上が期待できる。 gccならデフォルトでビルトイン関数が適用されてる。
- 574 名前:名前は開発中のものです。 mailto:sage [2008/08/01(金) 11:40:12 ID:nuMWOD8l]
- 環境はc++とDXライブラリ
#pragma intrinsicってprintfとかのだよね? c++だとあんまり使ってないや
- 575 名前:名前は開発中のものです。 mailto:sage [2008/08/01(金) 16:30:58 ID:GtdXG6pu]
- 画像の拡大縮小、反転などを併用したい場合は、素材側で対応するのが無難でしょうか?
一度描画したものをGetDrawScreenGraph()で取り込んで、別の方法で描画…というのはできましたが、 良い方法とは思えません。
- 576 名前:名前は開発中のものです。 mailto:sage [2008/08/01(金) 21:20:18 ID:qPjnEgAD]
- 背景含めて全部まとめて動かすってこと?
- 577 名前:名前は開発中のものです。 mailto:sage [2008/08/01(金) 23:31:27 ID:GtdXG6pu]
- >576
int gHnd=LoadGraph("0002.jpeg"); //0002.jpegは50*50pixelの画像ファイル int gHnd2 = MakeGraph(100,100); DrawGraph(300,300,gHnd,true); DrawExtendGraph(0,0,100,100,gHnd,true);//縦横2倍に拡大して描画 GetDrawScreenGraph(0,0,100,100,gHnd2);//描画されたgHndを読み取る DrawTurnGraph(100,0,gHnd2,true);//左右反転して表示 めちゃくちゃなことをしているのは分かっています…
- 578 名前:名前は開発中のものです。 mailto:sage [2008/08/02(土) 00:38:21 ID:AuP8vB/z]
- int gHnd = LoadGraph("0002.jpeg");
DrawRotaGraph(50, 50, 2, 0, gHnd, true, true); // 2倍拡大+透過+反転 こういうことかな
- 579 名前:名前は開発中のものです。 mailto:sage [2008/08/02(土) 00:52:28 ID:LP1XDt9q]
- >578
ありがとうございます! リファレンスの読み込み不足だったようですね…お恥ずかしい限りです。
- 580 名前:名前は開発中のものです。 mailto:sage [2008/08/02(土) 02:49:35 ID:yuB/nvf2]
- 自分も>>575の方と似たような事で詰まってるのでお力添えを…。
ttp://www1.axfc.net/uploader/He/so/125847.png&key=game と、縦横別倍率で拡大、と、画像の回転を両立させたいんです。 これが背景でしたら>>577と同様の方法で、 DrawExtendGraph→GetDrawScreenGraph→DrawRotaGraphといけそうですが、 エフェクトで使いたい処理なので、既に背景などが描画されているメイン画面は使えないという状況です。 こういった場合は何か作業領域などを作るしか方法は無いのでしょうか…?
- 581 名前:名前は開発中のものです。 mailto:sage [2008/08/02(土) 09:44:54 ID:2jU8Dntq]
- DrawModiGraph
- 582 名前:名前は開発中のものです。 mailto:sage [2008/08/02(土) 09:52:10 ID:ejRXzIue]
- 最悪DrawPolygon3Dでどうとでもできるわな
- 583 名前:名前は開発中のものです。 mailto:sage [2008/08/03(日) 02:27:17 ID:iWpnfRGq]
- >>581
あぁ、こんな使い方も出来たんですね…。知識不足ですみません。 これで何とか考えた通りに出来ました。本当にありがとうございます。
- 584 名前:名前は開発中のものです。 mailto:sage [2008/08/03(日) 11:03:48 ID:KmvncGNt]
- DXライブラリ、サンプルプログラムのスクロール基本なんですが
ttp://homepage2.nifty.com/natupaji/DxLib/dxprogram.html#N4 手計算だとどうしても描画用マップチップの配列(座標)が0,0からスタートしてくれません プログラムは当然ちゃんと想定どおり動いてるのですが、 プレイヤーの初期位置Xが2、Yが2状態で計算すると DrawMapChipNumX は 11 DrawMapChipNumY は 8 MapDrawPointX は -3 MapDrawPointY は -2 となり、マップの描画を決めるループを手繰っていくと、i が3以上、j が4以上にならないと条件を満たさず、 その条件で計算すると、MapData[ i + MapDrawPointY ][ j + MapDrawPointX ] は[1][1]が代入されると思うのですが・・・ こちらの計算違いではあるのですが、どこがおかしいのか分からないので間違ってるところを教えてください
- 585 名前:名前は開発中のものです。 mailto:sage [2008/08/03(日) 12:08:48 ID:S+BsW+Rs]
- if( j + MapDrawPointX < 0 || i + MapDrawPointY < 0 ) continue; // 描画しない
if( MapData[ i + MapDrawPointY ][ j + MapDrawPointX ] == 0 ) DrawBox(); ↓ if( a < 0 || b < 0 ) continue; // 描画しない if( MapData[ b ][ a ] == 0 ) DrawBox(); どうみても最初の描画は MapData[ 0 ][ 0 ] ですね
- 586 名前:名前は開発中のものです。 mailto:sage [2008/08/03(日) 13:09:28 ID:KmvncGNt]
- 回答ありがとうございます、しかし、頭がこんがらがってきました
if( a < 0 || b < 0 ) continue; // 描画しない これって人間の言葉にすると「aがゼロより小さい、または、bがゼロより小さいときは描画しない」ですよね? ということは、ループの中で a=0 b=0 が与えられたとする条件を満たしてないと思うのですが・・・ 自分が間違ってそうな箇所はわかりました、、どうやら論理演算子と関係演算子をもう一度勉強しないとだめみたいですね
- 587 名前:名前は開発中のものです。 mailto:sage [2008/08/03(日) 13:22:36 ID:s3YJPvG5]
- >ループの中で a=0 b=0 が与えられたとする条件
意味が良くわからないんだが、 どこで与えられた 何のための条件?
- 588 名前:名前は開発中のものです。 mailto:sage [2008/08/03(日) 13:46:05 ID:rlVyTzUB]
- >>213
ありがとうございます 大体解りました
- 589 名前:名前は開発中のものです。 mailto:sage [2008/08/03(日) 13:48:13 ID:KmvncGNt]
- >>587
× (a=0 b=0)が与えられたとする条件 ○ (a=0 b=0)が与えられたとしても、条件(を満たしていない) ですね、編集してるうちに変な文章になってしまってました、すみません どこで与えられた、というのは多重ループの中で i + MapDrawPointY //*1 j + MapDrawPointX //*2 を計算した結果だと思っていただければ・・・最終的に欲しい答えが MapData[ 0 ][ 0 ] ですから、一行前のエリア外を描画しないための制御文、 if( j + MapDrawPointX < 0 || i + MapDrawPointY < 0 ) continue; // 描画しない のところで、*1も*2もいずれも0の状態で条件分岐を通過してくれないといけないわけですが、 そこのところが自分の理解では「通過しないはず」なので困っていました
- 590 名前:名前は開発中のものです。 mailto:sage [2008/08/03(日) 14:32:28 ID:S+BsW+Rs]
- if (a < 0 || b < 0) continue;
↓ if (0 < 0 || 0 < 0) continue; ↓ if (false || false) continue; ↓ if (false) continue; // continueは実行されますか?されませんか?
- 591 名前:名前は開発中のものです。 mailto:sage [2008/08/03(日) 14:41:23 ID:KmvncGNt]
- >>590
解りやすい解説ありがとうございます、 自分の誤解が招いた疑問が氷解しました・・・
- 592 名前:名前は開発中のものです。 mailto:sage [2008/08/03(日) 15:10:05 ID:Q1RwoYf2]
- 敵を少しでも多く表示しようとするとカクカクになるw
- 593 名前:名前は開発中のものです。 mailto:sage [2008/08/03(日) 15:24:02 ID:0ZCECk8O]
- >>592
解像度(スクリーンの大きさ)を1/4(縦、横ともに半分)にするのです。 それだけで、貴方のアプリケーションの速度は劇的に改善するでしょう。 と言ってみるテスト。 毎回ファイル読み込みとかしてないか注意。
- 594 名前:名前は開発中のものです。 mailto:sage [2008/08/03(日) 15:33:45 ID:s3YJPvG5]
- >>592
このスレの>>478あたりから読み直してみるといい。
- 595 名前:名前は開発中のものです。 mailto:sage [2008/08/03(日) 22:37:42 ID:Q1RwoYf2]
- >>594
悪い、同人物だ。 今度こそはメモリから読み込んでいるのにカクカクだぜ
- 596 名前:名前は開発中のものです。 mailto:sage [2008/08/03(日) 22:45:50 ID:+Yq3eKTl]
- メモリから読み込む、ってのがループ内だと意味ないんだぜ?
つーかソースどころか状況もわからんのに答えられるわけなかろう。 あてずっぽうのアドバイスが欲しいのか? あてずっぽう考えるのだって大変なんだぜ?
- 597 名前:名前は開発中のものです。 mailto:sage [2008/08/03(日) 22:47:35 ID:xylQeBNi]
- 処理ごとの速度を計測すれば、どこに時間食ってるかわかるし、
解決策も自ずと見えてくる
- 598 名前:名前は開発中のものです。 mailto:sage [2008/08/04(月) 00:33:29 ID:0yRulxuI]
- >>596
あーもしかしたらそうなってるかも。 大まかなソース↓ (enemy_move) typedef struct{ int enx; //敵 x座標 int eny; //敵 y座標 int flag; //フラグ int counter; //カウンター } ENEMY; ENEMY move01 = {100,1,0}; (略) void enemy_move_02(){ //x100から左寄りのsin波移動 move02.enx+=sin(PI*move02.eny/80)*5; move02.eny+=1.5f; enemy_img = LoadGraph("date/img/enemy.bmp"); DrawGraph( move02.enx , move02.eny , enemy_img , TRUE ) ; DeleteGraph( enemy_img ) ; } ↑こんな感じのコードをexternでmain.cppの方で動かしてる、main.cppではwhileでこれらをループしてて、エスケープを押すとブレイクするようになってる。 竜神録のサイトを参考にして丸写しじゃツマランから自分で考えて作ってるんだけど、難しいな。
- 599 名前:名前は開発中のものです。 mailto:sage [2008/08/04(月) 00:38:34 ID:7CBzeKTD]
- それだと動かすたびに読み込んで削除してを一々やってる
ゲームループの前に1回だけ読み込んで不要になったら削除
- 600 名前:名前は開発中のものです。 mailto:sage [2008/08/04(月) 00:49:06 ID:0yRulxuI]
- >>599
となると、while文が入る前にexternなりなんなりで読み込みだけを済ませるほうが良いって事? というか全部の使う素材は全部ゲームループする前にメモリに読み込ませた方が良いって事だよね? それだと俺大幅な修正が必要になりそうw
- 601 名前:名前は開発中のものです。 mailto:sage [2008/08/04(月) 01:02:17 ID:SorplbiK]
- >>600
やりたくないんならやらなければ良いよ。学校の授業じゃないんだから。 多分分かってるんだろうけど>>599の言ってる事(内容)は適宜だよ。 修正が必要なら修正するだけだろ 戦わなきゃ現実と
- 602 名前:名前は開発中のものです。 mailto:sage [2008/08/04(月) 01:10:24 ID:Vp8LYTR0]
- >>600
外部ファイルの関数を使うときは、普通はexternを使わないで、プロトタイプ宣言を使うらしいよ。 あと、enemy_imgをNULLで初期化されてるなら、 if ( enemy_img == NULL ) { enemy_img = LoadGraph("date/img/enemy.bmp"; } という怪しげな応急処置で済ますことも可能。
- 603 名前:名前は開発中のものです。 mailto:sage [2008/08/04(月) 03:17:57 ID:2eoeRGcN]
- >>598
龍神録プログラミングの館見て解らない事あるんなら、 そこの掲示板で聞けば ttp://l.huu.cc/board/ 館の質問に限らず何にでも答えてくれるし
- 604 名前:名前は開発中のものです。 mailto:sage [2008/08/05(火) 16:26:30 ID:oHDI2BWt]
- 320x240ドットのゲームの画面出力を640x480のサイズのウィンドウに表示したいのですが、
それをDXライブラリでやる一般的な方法ってありますか? って質問を書いてたらちょうどマニュアルで int SetWindowSizeExtendRate( double ExRate ) ; を見つけられました。 本当にありがとうございました。
- 605 名前:名前は開発中のものです。 mailto:sage [2008/08/05(火) 19:38:02 ID:EpXD5UKo]
- 縦横比をどうにかできる方法があれば凄いんだけどね・・・。
4:3モニタの時代は終わったのかな。 最近ワイドモニタ多すぎ。特にノート。 テストしてもらった知り合いのPCが殆どワイドだったのに驚愕した。
- 606 名前:名前は開発中のものです。 mailto:sage [2008/08/05(火) 20:28:53 ID:CKp+IHYO]
- 歩留まりがいいらしいからね
- 607 名前:名前は開発中のものです。 mailto:sage [2008/08/05(火) 20:57:36 ID:31D+/5a6]
- 横シューを作れという事じゃなかったのか。
- 608 名前:名前は開発中のものです。 mailto:sage [2008/08/05(火) 21:12:24 ID:YYddeISL]
- >>604の方法で拡大すると320*240非対応のディスプレイでフルスクリーン化出来ないし
うちの環境だとアンチエイリアスがかかって見難くなるんで @320*240のサイズで描画 A空のグラフィックハンドルに@を取得 B640*480に拡大して貼り付け ってやってるんだがCPU使用率が跳ね上がる おとなしくSetWindowSizeExtendRateで拡大したほうが良いんだろうか
- 609 名前:名前は開発中のものです。 mailto:sage [2008/08/05(火) 22:32:25 ID:vtCV6T3y]
- 横シューよりドラゴンバスターみたいなアクションがやりたい
- 610 名前:名前は開発中のものです。 mailto:sage [2008/08/06(水) 00:20:08 ID:+mP1DFYH]
- >>608
hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=583
- 611 名前:名前は開発中のものです。 mailto:sage [2008/08/06(水) 20:46:19 ID:e8apu092]
- >>610
かなり改善されたわ dクス
- 612 名前:名前は開発中のものです。 mailto:sage [2008/08/07(木) 21:27:43 ID:BMBqvRRu]
- マップチップ画像を分割で読み込んだ後、それを複数枚横に並べた画像を“描画せず”に1枚の画像としてメモリに格納するにはどうすればいいのでしょうか?
具体的には、たとえばこんな5×3のマップがあるとします(0=山、1=川とする) 0,1,1,1,0 1,1,1,1,1 0,0,0,0,0 この1列目の0,1,1,1,0を描画した結果の絵、つまり「山川川川山」という画像をGHandle[1]に格納(描画せずに)させたいんです。 もしマップチップ1枚の画像サイズが縦横32*32だとすれば、160*32の画像を1枚作ることになります。
- 613 名前:名前は開発中のものです。 mailto:sage [2008/08/07(木) 21:49:24 ID:qrl05lIa]
- >>612
MakeGraph使うんじゃないの?
- 614 名前:名前は開発中のものです。 mailto:sage [2008/08/07(木) 21:51:26 ID:IbgkXEDA]
- 裏画面に描画して、ってやり方じゃダメかな。
何の意味があるのか知らないけど。
- 615 名前:名前は開発中のものです。 [2008/08/07(木) 21:52:01 ID:O800tzRD]
- 普通にLoadGraphでいいじゃん
- 616 名前:名前は開発中のものです。 mailto:sage [2008/08/07(木) 22:09:30 ID:BMBqvRRu]
- やりたいことは・・・ロードランナーでいうと、完全なサイドビューではなく、レンガの上面(キャラクターが乗って触れてる面)も見えるようなビューにして奥行きを出したいんです。
上面を描くのに、まず完全サイドビュー視点のマップ画像を一列分つくって、それを台形のように変形させて(高さも潰して)対応させようかと思いました。
- 617 名前:名前は開発中のものです。 mailto:sage [2008/08/07(木) 22:16:01 ID:BMBqvRRu]
- 普通はレンガの上面はみえないけど・・・
www7.ocn.ne.jp/~bacube/oldgame01/load2_3.gif レンガの上面も見えるようなビューにして奥行きを出したい www7.ocn.ne.jp/~bacube/oldgame01/load2_2.gif 斜め画像を用意しておくのも手ですが、それをせずに済ませたいんです。
|

|