[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 11/13 16:36 / Filesize : 243 KB / Number-of Response : 900
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

DXライブラリ 総合スレッド



1 名前:名前は開発中のものです。 mailto:sage [2007/12/12(水) 23:06:39 ID:Ns2HwhRB]
Cを習得した程度のスキルでも、
GUIのゲームを比較的容易に作成する事を可能にする、
「DXライブラリ」に関するスレッドです。

DXライブラリの詳細ついては
homepage2.nifty.com/natupaji/DxLib/
を参照して頂きたい。

DXライブラリに関するテクニックなどの情報交換などを行う事で、
多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。

489 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 21:29:56 ID:4zPgFuV4]
だからって使うメリットもあまり無いと思うが

490 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 21:31:24 ID:TlwjY+uU]
move01.eny++;
counter++;

if(counter > 100) move01.eny--;
if(counter > 300) move01.eny-=2;

if(move01.eny > 0)
DrawGraph( move01.enx , move01.eny , enemy_img , TRUE ) ;

アドバイス通りに書いたら安定した。
このスレはプログラム上級者が揃ってて初心者の俺にとってはありがたい

491 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 21:42:01 ID:d7rd6QL5]
いつの間にかプログラミングの館で新しく解説サイトできてるな
しかも結構おもしろそう
読んでくるわ

492 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 21:53:44 ID:d7rd6QL5]
DrawRotaGraphFってなんだよ\(^o^)/

493 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 22:08:06 ID:uAQ9zE97]
この手のプログラミング解説サイトって絵や図が足りないよな
最後に実行結果を動画にしてるのは評価できるけど

494 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 22:37:18 ID:WlLz+UQE]
絵や図を用意しようとすると労力が数倍に跳ね上がるからねぇ……。

495 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 22:44:28 ID:Hb7Xgjfk]
本買えよ


496 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 22:46:11 ID:uAQ9zE97]
サイト作るなら本買って構成とか真似してわかりやすくしろってことだな

497 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 22:48:53 ID:LH8MqGSK]
ってか、そんなに画像が必要か?



498 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 22:53:44 ID:uimy9tns]
只で見ておいてすごいことを言ってのけるなw

499 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 23:11:28 ID:uAQ9zE97]
>とにかく「わかりやすい」をモットーに紹介しています。
ソースとスクリーンショットだけじゃこれ実現できねーよ
文章も校正してないしな

只で見て何も言わずに帰るのが本当に良い客なのだろうか

500 名前:名前は開発中のものです。 mailto:sage [2008/07/18(金) 00:09:07 ID:6rtxrGUf]
うん みてろ

501 名前:名前は開発中のものです。 mailto:sage [2008/07/18(金) 00:27:24 ID:R9DZM3Hc]
そんなに見づらい、わかりづらいなら
もっと図説が一杯載ってるサイトに行けばいいんじゃね?


502 名前:名前は開発中のものです。 mailto:sage [2008/07/18(金) 10:08:40 ID:X7knEZGC]
書籍買って勉強してるんだが、ベクトルの話がちんぷんかんぷんだぜ・・・ライブラリが使えても
物理計算が理解できないと話しにならんな、、、ナイセキとガイセキって何が違うんじゃ!!!!

503 名前:名前は開発中のものです。 mailto:sage [2008/07/18(金) 13:49:37 ID:hGQjyaE4]
画像消してるのにもかかわらずにページファイルが増え続けるんだけど
なんでだろ

504 名前:名前は開発中のものです。 mailto:sage [2008/07/18(金) 13:55:56 ID:H/OXxpxC]
DeleteGraphしてる?

505 名前:名前は開発中のものです。 mailto:sage [2008/07/18(金) 14:07:21 ID:hGQjyaE4]
してなかった・・・。
してみたら超安定した

506 名前:名前は開発中のものです。 mailto:sage [2008/07/20(日) 01:47:16 ID:hsVM+X3h]
2D横スクロールアクションでキャラと地形のあたり判定を考えてます
背景(地形)に32*16もしくは32*32のマップチップ的なものを配置、
地形のチップの上にキャラが立ち、32ドット単位で移動するようにしたいのですが、
その時の判定で能率の良い方法はないでしょうか?

今はマッピングするときに使う地図情報配列と自キャラの位置を配列座標に変換したものを
比較して、自キャラ[X][Y]に対して、地図情報[X][Y+1]がマップチップなら移動できない・・・・・って手法を考えてますが、
これだと空中に浮かぶチップがあった場合の判定が煩雑になってしまい、
ジャンプしたときなど判別を都度追加しなければならず、効率が悪くて難儀してます

507 名前:名前は開発中のものです。 mailto:sage [2008/07/20(日) 08:01:47 ID:Rb93SROm]
>>506 なんか、微妙にDXライブラリと関係ないけど・・・・・
使っているデータ構造とかがどのようなものか?がわからないから
かなり憶測に基づいての回答だと言う事を念頭に置いてね。
自分が想定してるアクションってのが、聖剣伝説みたいな見下ろし型でのものだけど、
マリオなんか見たいのでも、似たような感じで応用すれば使えると思うよ。

まず、地図情報があると言うことだから、それを若干拡張してください。
 例:char DataMap[MAP_MAX_SIZE_X][MAP_MAX_SIZE_Y][MAP_MAX_SIZE_STRUCTURE];
で、一層目に普通のマップ情報、二層目に地上キャラクタの情報、三層目に空中キャラクタの情報
とでもして、check時に、
 普通は一層目が進行可なら二層目を調べる。
 ジャンプなどの場合は、一層目を調べてさらに三層目を調べる。
みたいなのでどう?

あと、効率が悪いと言っても基本的に変な総当たり式みたいな判定出ない限りは
大した効率さは考えなくていいと思うよ。




508 名前:名前は開発中のものです。 mailto:sage [2008/07/20(日) 08:54:56 ID:zgBZw03q]
>>506
空中に浮かぶチップがあった場合の判定が煩雑になる理由は?

509 名前:名前は開発中のものです。 mailto:sage [2008/07/20(日) 10:37:50 ID:d2RmswSs]
四角形と直線の当たり判定がどうもうまくいかない・・・
この前当たり判定のまとめサイトみたいなの見つけた気がしたんだが
どこにいったんだか

直線を(ax+by+c=0)として表現するっていうのができたらできそうなんだが、
2点の座標からa,b,c全部求めるのって無理じゃね

510 名前:名前は開発中のものです。 mailto:sage [2008/07/20(日) 11:14:01 ID:Tcsf7iZJ]
>>509
直線の方程式を y = Ax + B から展開していけば解けるよ。

511 名前:名前は開発中のものです。 mailto:sage [2008/07/22(火) 23:59:25 ID:M/E435KZ]
>>509
もう出来てるかも知れないが中学数学のお話だぞそれは
直感的に考えても点が二つあれば一本直線が引けるだろ
つまりは方程式も点が二つあれば求まるんだよ

512 名前:名前は開発中のものです。 mailto:sage [2008/07/23(水) 01:15:20 ID:GLsAu5Iz]
龍神録プログラミングの館ってできたのな。
こりゃ確かにコピーが作れる

513 名前:名前は開発中のものです。 mailto:sage [2008/07/23(水) 11:52:10 ID:82XNmZh+]
どこかおかしいと思ったら"r"でfreadしてた
今までうまく動いてたけどいきなり不具合が出たから迷ったぜ

514 名前:名前は開発中のものです。 mailto:sage [2008/07/25(金) 10:57:45 ID:YGbibhe6]
ちょっとしたことなんだけどさ

if( ( GetMouseInput() & MOUSE_INPUT_LEFT ) != 0 ){ 以下略

でマウス左クリックを検出してんだけど、
これペンタブを検出してくれないんだな。

515 名前:名前は開発中のものです。 [2008/07/25(金) 15:19:27 ID:1Kbo7I82]
DXライブラリ3D
大学やめたのか


516 名前:名前は開発中のものです。 mailto:sage [2008/07/26(土) 06:28:51 ID:L5kt2X8n]
大学どころか人生やめました

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の状態で条件分岐を通過してくれないといけないわけですが、
そこのところが自分の理解では「通過しないはず」なので困っていました






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<243KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef