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


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

DXライブラリ 総合スレッド その3



1 名前:名前は開発中のものです。 [2009/03/31(火) 01:14:36 ID:IgyJcgap]
Cを習得した程度のスキルでも、
GUIのゲームを比較的容易に作成する事を可能にする、
「DXライブラリ」に関するスレッドです。

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

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

過去スレ:DXライブラリ 総合スレッド
      pc11.2ch.net/test/read.cgi/gamedev/1197468399/
     DXライブラリ 総合スレッド 2008
      pc11.2ch.net/test/read.cgi/gamedev/1224923873/

647 名前:名前は開発中のものです。 mailto:sage [2009/07/01(水) 00:31:13 ID:9VzVKeVm]
俺も最初WinMainではウインドウ作成とメッセージループしかしちゃいけないと思ってた
知人がタイマーイベント仕掛けてWM_TIMERがきたときにループ処理してたからそういうもんだと思って疑わなかった

648 名前:名前は開発中のものです。 mailto:sage [2009/07/01(水) 05:08:47 ID:aia3X3LP]
BorlandC++BuilderやDelphiのソースを読むともっとビックリするよん。

649 名前:名前は開発中のものです。 mailto:sage [2009/07/01(水) 09:35:30 ID:LrL8gFoC]
落ち目会社だしどうでもいい

650 名前:名前は開発中のものです。 mailto:sage [2009/07/01(水) 19:59:44 ID:eeCacGXj]
>>646
きちんと関数化、ライブラリ化すれば難しいゲームでも綺麗に書けるってこと
DXlibの機能には制限があるし、余計な機能もついているので、
最終的に自分で最適なライブラリを書くようになれるのがいいよ


651 名前:名前は開発中のものです。 mailto:sage [2009/07/03(金) 20:54:33 ID:BsjXjKQw]
SetMainWindowTextが未定義関数扱いされるんだがどういうことなの・・・
他の関数は普通に使える

652 名前:名前は開発中のものです。 mailto:sage [2009/07/04(土) 18:08:40 ID:p2ue3IYD]
>>651
うちでは正常に動くが。ヘッダから消してしまったとか。


653 名前:名前は開発中のものです。 mailto:sage [2009/07/06(月) 22:42:09 ID:AVbDbUwf]
ステータスバーってどうやって付けれるのよ?
おせーて

654 名前:名前は開発中のものです。 mailto:sage [2009/07/08(水) 01:56:14 ID:OgMSMAZ5]
ファイルから再生する音楽のループ位置を設定することはできますか?

655 名前:名前は開発中のものです。 mailto:sage [2009/07/08(水) 02:25:32 ID:94Ripojr]
>>654
SetLoopPosSoundMemではだめなの?




656 名前:名前は開発中のものです。 mailto:sage [2009/07/08(水) 02:58:22 ID:OgMSMAZ5]
>>655
ありがとうございます。すみません、説明不足でした。
PlayMusicでストリーム再生し、ループ位置を設定したいのです。

657 名前:名前は開発中のものです。 mailto:sage [2009/07/08(水) 11:53:36 ID:Qn1Es1Py]
>>655
SetLoopPosSoundMemとSetCreateSoundDataTypeを使って解決しました。
ありがとうございました。

658 名前:名前は開発中のものです。 [2009/07/08(水) 22:05:37 ID:qTICtjjx]
CPU Core 2 Duo 2.66GHz
RAM 4GB

GPU GeForce 9600M GT
VRAM 2GB

OS Windows Vista 64Bit

DxLibで作られたソフトをこいつで動かすと、始めは60fpsでなめらかにも関わらず、
しばらくすると30fpsになるのはなぜなんだ?
ガクガクするならまだしも、ぴったり30fpsなんだ。
またしばらくすると治ったりもするし、なにかひとつの関数が原因になってたりするのかな?

659 名前:名前は開発中のものです。 mailto:sage [2009/07/08(水) 22:17:02 ID:i+ja7A8H]
ScreenFlip()を2回呼んでいるとか

660 名前:名前は開発中のものです。 mailto:sage [2009/07/08(水) 22:40:16 ID:uhEtjIe1]
Vistaのいたずらじゃないかな?
うちも24か30で安定、フルスクリーンだと60fpsありがとうございます状態。

661 名前:名前は開発中のものです。 mailto:sage [2009/07/08(水) 23:16:39 ID:tUPC3dXe]
なんか最近どっかで見たような質問だな……。

662 名前:名前は開発中のものです。 mailto:sage [2009/07/08(水) 23:26:07 ID:Sk8AIN2R]
ビデオカードとそのドライバと設定だな
60、30、24ってよく見る数字だし

663 名前:名前は開発中のものです。 mailto:sage [2009/07/09(木) 01:06:35 ID:h1wYunUV]
60hzに同期して描画したとする
(1) 1フレームの処理が1/60秒未満なら1秒間に60回描画できる
(2) 1/60秒以上2/60秒未満なら30回描画できる

つまり瞬間的には30か60のどちらかになる
1のケースと2のケースが混ざったとすると長期的には平均することで30と60の間の値になりうる
しかし大抵の場合は1フレームの処理が1/60秒で収まるか、あるいは超えるかで30と60に分かれる

と予想

664 名前:名前は開発中のものです。 mailto:sage [2009/07/09(木) 02:46:07 ID:IPUdantx]
ていうか垂直同期信号待ちをしてるのかしてないのかを先に明記してくれないと。

665 名前:名前は開発中のものです。 mailto:sage [2009/07/09(木) 22:24:55 ID:9TUAw73M]
GPUの垂直同期をオフにしてもオンにしても結果が変わらず。
というか、GPUの設定をどう変えてもまったく同じ・・・



666 名前:名前は開発中のものです。 mailto:sage [2009/07/09(木) 23:12:54 ID:PnCCkvgD]
もともとDXライブラリ側でOFFにしてるんじゃないの?

667 名前:名前は開発中のものです。 mailto:sage [2009/07/10(金) 06:17:28 ID:On7fn4n8]
画像を半透明で描写する方法ってDXライブラリにありますか?

668 名前:名前は開発中のものです。 mailto:sage [2009/07/10(金) 06:55:03 ID:aqVpLVfM]
リファレンスも読めんのか…

669 名前:名前は開発中のものです。 mailto:sage [2009/07/10(金) 09:02:40 ID:G7FiBYYu]
あるよ。リファレンスにある。
全部読んでそれでもわからなかったらまたおいで。

670 名前:名前は開発中のものです。 mailto:sage [2009/07/10(金) 12:51:04 ID:xhZ5jDJO]
座標ってxyで行うから構造体でセットにして扱うのってなんか不都合ある?

671 名前:名前は開発中のものです。 mailto:sage [2009/07/10(金) 13:23:29 ID:Pbfo1cNY]
無いよ。
bullet[i].locate.x = 320; とか多重に扱うと見た目が重く感じるぐらい。

672 名前:名前は開発中のものです。 mailto:sage [2009/07/10(金) 13:23:43 ID:GMEf2Yqs]
全然ないから、POINT を使うと良いよ。

673 名前:名前は開発中のものです。 mailto:sage [2009/07/10(金) 15:09:18 ID:xhZ5jDJO]
>>671-672
thx

多重に気をつけて、メンバ変数は極力そのクラス内で処理するようにしますわ

674 名前:名前は開発中のものです。 mailto:sage [2009/07/10(金) 23:17:50 ID:kvfVpi7w]
EnemyManager.Small.Flying.Bullet[i].Location.x = GameCanvas.TopLayer.ViewObject.Set(320);
とかなら、ちょっとは考えろよwwとか思うけど。
普通に組んでる限りじゃ、そんな気にする必要はないかと。

どうしても気になるなら、POINTなりをpublicで継承すりゃ、
bullet[i].x=320にできるし、どうせゲームだからこれで問題無いでしょ。

675 名前:名前は開発中のものです。 mailto:sage [2009/07/11(土) 01:55:20 ID:UeAE0WWV]
アクセス権が気になるなら参照を返すアクセサ作ればいいしな
bullet[i].x()=320;
これくらいなら見た目もタイプ量も許容範囲だろ



676 名前:名前は開発中のものです。 mailto:sage [2009/07/11(土) 01:56:20 ID:UeAE0WWV]
あ、もちろんインライン展開される書き方前提でな

677 名前:名前は開発中のものです。 mailto:sage [2009/07/11(土) 07:49:08 ID:wBBMdddU]
そういったセットになり易いものって他にどんなのがあるかな?

678 名前:名前は開発中のものです。 mailto:sage [2009/07/11(土) 18:21:58 ID:SvZlB+M+]
セットって?

679 名前:名前は開発中のものです。 mailto:sage [2009/07/14(火) 04:20:59 ID:wRlAP6qv]
たまにタスクが応答なしになるという原因不明のバグに悩まされ
再起動してみると普通に実行されるのは何だろう

680 名前:名前は開発中のものです。 mailto:sage [2009/07/14(火) 04:40:19 ID:mFQZCpWd]
>>679
何を言いたいのか分らんが・・・
(エスパー希望の相談なのか、只の雑談なのか、愚痴なのか?)

とりあえず、タスク がタスクマネージャーとかのタスク(application)の事なら、
単純にどっかが無限ループに嵌ったか、画面書き換えの部分を通らなくなったか(orキー入力の部分を・・・)
だろう。

とりあえず、printfを色んな所に仕込んでおいて、デバックを掛けるとかするのが基本。
怪しい所がどうみてもライブラリ側だったら、公式に書き込めばいいし、
そうでないなら、再現性を高めて、その変な挙動をここででも、公式ででも聞いてみればいい。


大概は、配列でindexが超えて・・・・とか、switchでbreak;が抜けてて・・・とか
if文の後に変なモノがあって、ifでの抜けだしが効かなくなってたりとか、
{}の対応が微妙にずれてて・・・とか、初期化してないのを使っていて、タイミング次第で・・・とか
(後は、WindowsUpdateしてなさ過ぎて、リターンが遅れてるのを応答なしに解釈されてるとかもあるか、)


681 名前:名前は開発中のものです。 mailto:sage [2009/07/14(火) 04:49:20 ID:wRlAP6qv]
>とりあえず、タスク がタスクマネージャーとかのタスク(application)の事なら、
その通り

>単純にどっかが無限ループに嵌ったか、画面書き換えの部分を通らなくなったか(orキー入力の部分を・・・)
>だろう。
そういった部分は見当たらなかった

何せOSを再起動させてそのプログラムを再び実行させたら何の問題もなく動いたのですからプログラムに原因があるとは思えないのですが

682 名前:名前は開発中のものです。 mailto:sage [2009/07/14(火) 05:07:49 ID:pOq3rm7P]
そういう現象が出てるのが君だけなんだから君のプログラムに問題があるか、
あるいは君だけが体験できるくらいレアな現象って事になるだろう?

調べる事ができるのは君だけなんだから
素直に>>680の忠告に従って、きちんと調べていけばいい。

「これで合ってるはず」なんて余計な「思い込み」はデバッグ作業の邪魔にしかならないぞ。

683 名前:名前は開発中のものです。 mailto:sage [2009/07/14(火) 05:36:27 ID:mFQZCpWd]
>>681
それだけの事で、プログラムに問題があるとは思えないって・・・・

とりあえず、
初期化なしでつかってる場合にはOS再起動とかで簡単に変わるし、
時間取得なんかをちゃんと処理してないと、
日にち跨ぎや時間跨ぎで、発生したりしなかったりする。

>>682も言うとおり、思い込みよりも手を動かしてデバックしなぁ。
プログラムは書いた通りに動いても、思った通りには動くとは限らないんだからさぁ。

684 名前:名前は開発中のものです。 mailto:sage [2009/07/14(火) 06:46:29 ID:wRlAP6qv]
だってデバッグしたけど分んないんだもん
まあ動くようになった訳だからそのまま何事もなかったかのように過ぎていくのだろう

685 名前:名前は開発中のものです。 mailto:sage [2009/07/14(火) 07:14:55 ID:MgrfsfEm]
forやwhileで使ってる変数の初期化忘れあたりが怪しいけどどうなんだろうな



686 名前:名前は開発中のものです。 mailto:sage [2009/07/14(火) 07:53:46 ID:wRlAP6qv]
それはないと思うがなあ
その可能性のあるコードって、(実行時に処理を通ってるコードの中で)
while( (!ProcessMessage()) && (!keybuf[KEY_INPUT_ESCAPE]) )
しかなかったんだが(変な書き方でスマソ)
確かに keybuf はグローバル変数にしてしまってるし
char keybuf[256] = {0};
で初期化したつもりになってるけどどうなんか分らん
まあ動くようになったし確認しようにももうできないからな、動くから
まあ良しとして続けるしかないな

687 名前:名前は開発中のものです。 mailto:sage [2009/07/14(火) 08:07:50 ID:1FTDe9TM]
こうしてバグが量産され、ついにはうんともすんとも動かなくなりねあげる姿が


688 名前:名前は開発中のものです。 mailto:sage [2009/07/14(火) 09:43:25 ID:MgrfsfEm]
裏画面の内容をテクスチャにコピーする関数ってあったっけ?

689 名前:名前は開発中のものです。 mailto:sage [2009/07/14(火) 20:58:42 ID:2Fk/wASW]
「無いと思う」とかじゃなくて確かめないと。
プログラムに思い込みは絶対あかん。

690 名前:名前は開発中のものです。 mailto:sage [2009/07/14(火) 23:37:46 ID:wRlAP6qv]
だって動くようになったから確かめようがないじゃん
この先動かなくなる可能性ないわけではないが
そうなったところでこれ以上バグは見つからんだろうな、俺の力では

691 名前:名前は開発中のものです。 mailto:sage [2009/07/15(水) 00:00:28 ID:MHxGaYOY]
だからprintfとかで一つ一つ処理の中身を吐き出して見るんじゃん。
外見上動いてても、バグがあれば意図してないデータが含まれてる。

692 名前:名前は開発中のものです。 mailto:sage [2009/07/15(水) 01:08:24 ID:ouOmT7td]
うーん、やっぱりバグがあるとはどうしても思えないし
多分printfとかで一つ一つ処理の中身を吐き出して見てもどの道今の俺の能力では
バグを発見できるとは思えないから忠告はありがたいがこのままいくことにするわ
以前も同じようなこと何回かあったしそんときもちゃんと完成まで漕ぎ付けているし

693 名前:名前は開発中のものです。 [2009/07/15(水) 01:17:22 ID:Pli3pE87]
ID:wRlAP6qv
ID:ouOmT7td
お前さ、そんなスタンスなら、なんでわざわざここに書き込んだわけ?はじめから書き込むなよ。
なに、構って欲しかった?わざわざお前の書き込みに一生懸命考えてレスしてくれた
人達に失礼だと思わないの?

694 名前:名前は開発中のものです。 mailto:sage [2009/07/15(水) 01:49:11 ID:9zT2ADv7]
実際問題、再現性のないバグを修正するのは難しいよ。
プログラムを書いた本人に見当がつかないなら、他人の経験に頼るのも良いと思うよ。
自分がそんなバグにぶち当たったとしても根気だけで調べようとは思わないな。
時間が余ってるなら別だけど。

で、他人の立場から言うと、あれだけの情報で問題のありそうな点を指摘するのは無理だ。
アドバイスとしてはバグ発見を諦めるのではなく自分用バグリストを作ってそこに追加しろ。

695 名前:名前は開発中のものです。 mailto:sage [2009/07/15(水) 02:09:56 ID:ouOmT7td]
何かヒント得られると思って…
でアドバイス通りに考えてみたけど駄目だった



696 名前:名前は開発中のものです。 mailto:sage [2009/07/15(水) 02:15:50 ID:oAaV9htY]
>>695
そうか、お疲れ。
コード晒す勇気があれば、案外デバックしてくれる人が居るとおもうけど…
(自分一人だと考えがなかなか間違いに気付きにくいからコードレビューは有効だと思う)

 「アドバイス通りに考えてみた」ってのは、
もちろん、printfとかでデバック情報をポコポコ吐き出させたけど、バグらしき場所が見あたらなかった
って意味だよね。念のため。

697 名前:名前は開発中のものです。 mailto:sage [2009/07/15(水) 02:28:23 ID:HAQqwNAf]
ソースうpしろ
無理なら帰れ

698 名前:名前は開発中のものです。 mailto:sage [2009/07/15(水) 06:33:25 ID:jzF+qqts]
最小のコードを切り出してる最中に問題が解決することって結構あるよね?
俺だけ?

699 名前:名前は開発中のものです。 mailto:sage [2009/07/15(水) 07:55:06 ID:OJRObvUW]
あるある
意外とバグって見当つけてたとこ以外にあったりするもんなんだよなぁ

700 名前:名前は開発中のものです。 mailto:sage [2009/07/15(水) 08:38:43 ID:MHxGaYOY]
>>696
>>692でデバッグしてないと言ってるじゃん。


701 名前:名前は開発中のものです。 mailto:sage [2009/07/15(水) 10:08:04 ID:kzUIqF8J]
バグを直接見つけようとしないで、確実にそのバグを再現できるようにするのが第一歩

702 名前:名前は開発中のものです。 mailto:sage [2009/07/15(水) 10:45:30 ID:jzF+qqts]
>>701
分かる分かるw
そしてバグを再現させるのは非プログラマに丸投げする俺

703 名前:名前は開発中のものです。 mailto:sage [2009/07/15(水) 11:25:55 ID:aCtz8rQi]
で少しずつ条件を変えてあたりをつけていく。

704 名前:名前は開発中のものです。 mailto:sage [2009/07/15(水) 20:48:39 ID:vgHuQMIa]
おまえら仕様書切らないから
テストも作れないし
そもそもバグなのか想定なのかも混乱するんだろ?

705 名前:名前は開発中のものです。 mailto:sage [2009/07/15(水) 21:06:50 ID:SOTm+sdF]
分け入っても分け入ってもバグの山



706 名前:名前は開発中のものです。 mailto:sage [2009/07/15(水) 21:09:53 ID:MHxGaYOY]
仕様書、製造終了してから書いた記憶しかないなぁ…

707 名前:名前は開発中のものです。 mailto:sage [2009/07/15(水) 23:03:43 ID:MZkEPg1i]
>>704
最終的にうまく動作するものが仕様です。
どだい、仕様書でバグが防げると思ってる法が異常。
仕様書の想定だろうが、結果駄目ならバグだろ!

708 名前:名前は開発中のものです。 mailto:sage [2009/07/15(水) 23:17:51 ID:OJRObvUW]
個人製作だし仕様書なんて全部脳内の香港式です
仕様の段階でバグ出すレベルの人はちょっとヤバイ。

709 名前:名前は開発中のものです。 mailto:sage [2009/07/16(木) 00:10:27 ID:ZK0MxNzH]
脳内でまとめようとして、てこずるものを
紙に書いてみたらあっさり解決ってのはよくあることだけどな。

710 名前:名前は開発中のものです。 mailto:sage [2009/07/16(木) 03:15:22 ID:1/ar+JW7]
そういえば話はずれるけど、「仕様を全てきっちり書いて、それを紙に印刷しておく
のが重要なんです!」と力説する新人が入った時を思い出した

711 名前:名前は開発中のものです。 [2009/07/16(木) 10:03:06 ID:qgWixxR7]
人それぞれで、
仕様書がなければダメになる人とそうでない人がいる。
始めた時は正しい方向に向かっていたが、
出来上がった時には違った方向を向いている、
世の中にはそんな人も多くいる。
チームで進めるとき、意思の統一が重要で
依頼しても、出来上がりが違うものになるのは困り者。
人それぞれなので、きちんとできるひともいるので、そのような人は不要と言われる


712 名前:名前は開発中のものです。 mailto:sage [2009/07/16(木) 10:53:13 ID:glHWB671]
もし、違うものが出来上がってきたら、
「言った、言わない」の問題になってしまうから
あらかじめ、ちゃんと紙にして保存しておくって事だろう。

できるできないの問題じゃないよ。
自分のため、相手のための保険みたいなもんだ。

713 名前:名前は開発中のものです。 [2009/07/16(木) 11:11:34 ID:qgWixxR7]
掛け捨て保険ではない。
チームで行う時の基盤になる、開発ドキュメントとして
取り扱い説明書として、保守業務の基準として必須のものである。

714 名前:名前は開発中のものです。 mailto:sage [2009/07/16(木) 11:30:46 ID:Frg8+T60]
チームでやるなら仕様書必須
作り方が違うだろ
ttp://marupeke296.com/DXCLS_BottumUpStructingOfClass.html

715 名前:名前は開発中のものです。 mailto:sage [2009/07/16(木) 13:48:32 ID:JxCE3uCo]
コメント見ただけで仕様が把握できるようなソースが書けるようになりたい
いつかは。



716 名前:名前は開発中のものです。 mailto:sage [2009/07/16(木) 16:20:01 ID:MA5d2Bm1]
コメント書かなくても把握できるソースが理想かな。

717 名前:名前は開発中のものです。 mailto:sage [2009/07/16(木) 16:29:44 ID:K0RdyJ0x]
どうも英語のコメントは読むのも書くのも苦手で……

718 名前:名前は開発中のものです。 mailto:sage [2009/07/16(木) 17:36:09 ID:sfuED1R6]
悪ノリではっちゃけたコメント書いてるのは俺だけではないはず

719 名前:名前は開発中のものです。 mailto:sage [2009/07/16(木) 21:20:58 ID:0qzmxnba]
>>715
ダウト
仕様はソースと答え合わせする為のもの
ソースみて内容がわかるのと、本来どうあるべきなのかは別問題

720 名前:名前は開発中のものです。 mailto:sage [2009/07/16(木) 22:04:34 ID:sfuED1R6]
そうか個人製作の場合ととチーム製作の場合と仕様書と仕様と仕様バグとバグを
はっきり切り分けないで話してるからこんなにカオスなのか

721 名前:名前は開発中のものです。 mailto:sage [2009/07/17(金) 09:45:51 ID:iPNwCeP8]
みんな自分の話してるだけだからな

722 名前:名前は開発中のものです。 mailto:sage [2009/07/17(金) 09:47:37 ID:ZC/cxW1d]
メンバ関数でモジュール化するだけだよ、基本的には
それにコメントは確かに大事だが
関数名をgetScreenFrameParSecondみたいにきちんと書けば、仕様が明らかにわかる

クラス・変数名も同じ
例えばiteratorをitとか省略して書くのはダメ
タイプ速度は速くなるが、後のコーディングで詰まるから、作業は全く速くなってない。むしろ遅くなる
省略しなければiteratorという言葉を知らない他人が見ても、ググれば意味がわかる

あとは、日本語で名前つける人がいるけど
ネットに和英辞書あるんだから使ってほしい
英語の勉強になるし国際化にも対応できる


723 名前:名前は開発中のものです。 mailto:sage [2009/07/17(金) 10:08:40 ID:fic4arti]
そこまで欧米コンプレックス持ってないし…。
国外にソース晒すほど立派なもん作れるなんてうぬぼれてない。

724 名前:名前は開発中のものです。 mailto:sage [2009/07/17(金) 10:48:52 ID:XzHK2st6]
自分で分かりやすいのが一番

725 名前:名前は開発中のものです。 mailto:sage [2009/07/17(金) 11:36:53 ID:71PbqEZA]
趣味の範囲内だし態々・・・



726 名前:名前は開発中のものです。 mailto:sage [2009/07/17(金) 14:37:53 ID:AtGtaSaV]
熊々翻訳しなきゃわからないレベルの英単語は使わないかな

727 名前:名前は開発中のものです。 mailto:sage [2009/07/17(金) 14:42:09 ID:vX9OmGXP]
FileHandle ofh ( FileName, ">" );
とかは問題ないと思うけどな。宣言のクラス名で大体分かるし。
宣言が遠すぎて分からんような関数ならその時点で問題だし。

728 名前:名前は開発中のものです。 mailto:sage [2009/07/17(金) 15:20:17 ID:vX9OmGXP]
というか、「ローカルスコープの」識別名は短いのが主流な気がするんだけど。
定番の良書とかでも普通みんなそうだし、Linuxカーネルみたいな大物ソースでも
そうだし。
結局、識別名だけで理解できる情報は限られるのも現実。そうでなければ、それこそ
アプリケーションハンガリアンなんかを全識別名に徹底すれば最高なのかもしれない
けど、実際は関数エントリにはしっかりした出入り仕様のコメントが欲しい訳で。

まぁ、スレ違いなんだけどね。
正直、D3DXのせいで、「扱いやすくする」という使命のラッパーライブラリの系統
は居場所を失ってるから、このスレの居場所も同様によく分からないんだよなぁ。

729 名前:名前は開発中のものです。 mailto:sage [2009/07/17(金) 15:37:38 ID:/TZL4Vnl]
   ∩___∩
   | ノ      ヽ
  /  ●   ● |     クマ知ってるか。
  |    ( _●_)  ミ    出雲地方では、木と岩と水の在る場所を「熊々しい谷」と呼ぶ。
 彡、   |∪|  、`\    「熊々しい」とは、神々しいの意味だ。
/ __  ヽノ /´>  )
(___)   / (_/
 |       /
 |  /\ \
 | /    )  )
 ∪    (  \
       \_)


730 名前:名前は開発中のものです。 mailto:sage [2009/07/17(金) 22:02:14 ID:Z3s3jxcY]
>>722レベルの長文関数名を記述すると
引数がある場合とかに
複数行にわたってしまって
なんだか見づらくならない?

今まで見たソースだとgetScrFPS程度には略してるけど
おまえらどうなの?

731 名前:名前は開発中のものです。 mailto:sage [2009/07/17(金) 22:12:33 ID:3aIuRMAB]
略すと判んなくなる時以外は略してる。

732 名前:名前は開発中のものです。 mailto:sage [2009/07/17(金) 22:12:54 ID:a1yK0hIN]
目的や用途によって使い分けてる。

733 名前:名前は開発中のものです。 [2009/07/17(金) 22:29:41 ID:PpX+kDe1]
クラスの中に座標XとYをまとめてクラスか構造体にしておいて、他の関数などに渡すときに
ひとつのGetPos()って関数で渡すにはどうしたらいいかな?
考えてみたんだけど、どうしても一つでいろいろなところで使える方法がみつからないんだよ。
まだプログラム経験が短いもんで。

734 名前:名前は開発中のものです。 mailto:sage [2009/07/17(金) 22:47:07 ID:a1yK0hIN]
構造体を返せばいいと思うけど、そういうことではない?

735 名前:名前は開発中のものです。 mailto:sage [2009/07/17(金) 23:03:35 ID:TRJ/ynqn]
まあ状況によるけど。
基本Getは単一変数を返す方がいい。
内部の構造体のデータを返すのは間違っている。
その場合はとるのではなく、チェックしてもらう。
bool chk_XXXX (pos *dat);  が正しい。
で、この関数はインラインであれば、スピード的には何の問題も無い。

考え方が逆。



736 名前:名前は開発中のものです。 mailto:sage [2009/07/17(金) 23:06:22 ID:TRJ/ynqn]
補足、クラス内のデータの処理はそのクラスの関数で行う!
これ基本中の基本

737 名前:名前は開発中のものです。 mailto:sage [2009/07/17(金) 23:31:36 ID:cB4HhxMP]
皆が何言ってるかさっぱりわかんないぜ!

でもゲームは作れてるぜ!

738 名前:名前は開発中のものです。 mailto:sage [2009/07/17(金) 23:36:29 ID:iPNwCeP8]
FPSはそれ自体で意味がわかるから使うけどScrは無いわ

739 名前:名前は開発中のものです。 mailto:sage [2009/07/18(土) 00:03:32 ID:pCmtYAM2]
class A があって xが public なメンバの場合 A.xでアクセスするのと
private の場合 getx(){return x;} でアクセスするのと速度変わらんのか

740 名前:名前は開発中のものです。 mailto:sage [2009/07/18(土) 08:04:35 ID:QevxnE5g]
>>739
詳しい事はしらんが、常識的な範囲でコンパイルを考えれば、
最適化が普通だったら遅くなる理由は無いと思う。

最適化をしないなら、クラスから関数のアドレスに飛んで、
そこで値:xを取得して、それをどっかに格納な分
遅くなるんだろうけど・・・。

741 名前:名前は開発中のものです。 mailto:sage [2009/07/18(土) 08:54:43 ID:UXbVEGUE]
>>740
ちょっと違う
getx(){return x;} がクラスの中に書かれ、そのクラスがヘッダーファイルなら。
インライン展開されるので
aa = getx(){return x;}
 ||
aa = A.x と同じ
最適化は関係ない

742 名前:名前は開発中のものです。 mailto:sage [2009/07/18(土) 08:56:36 ID:UXbVEGUE]
あ、ちょっとまて、C++のみの話な、他の言語は知らん

743 名前:名前は開発中のものです。 mailto:sage [2009/07/18(土) 10:41:55 ID:PwgwIsF1]
それはヘッダに直接定義書いてるからinline付いてるだけじゃね
ソース側で定義でもinlineつけて展開できるなら同じじゃないっけか
後、クラス内での処理はインラインしてくれるのが普通だったきがする
メンバ関数内で別のメンバ関数呼び出して処理とか
まー、>>736

744 名前:名前は開発中のものです。 mailto:sage [2009/07/18(土) 14:09:33 ID:xlxZEQtn]
インスタンスが確保されてる状態なら、参照を返せばいい。
class Foo {
 Pos pos_;
public:
 Pos& GetPos() { return pos_; }
 const Pos& GetPos() const { return pos_; }
};

スコープの外側にインスタンスを返すなら、参照渡しじゃ無理なので、コンパイラの
NRVOに期待して、例えば以下のように書くことになる。
inline Pos GetPos() {
 Pos result;
/* code */
 return result;
}

NRVO非対応でRVOだけ対応のコンパイラだと、
inline Pos GetPos() {
/* code */
 return Pos( /* code */ );
}
こういうコードじゃないと>>741の言うような最適化は掛からない。
コンパイラーメーカーもC++標準化委員会もNRVOが掛かるように頑張ってるはずだが、
実装状況はコンパイラによってまちまちなんで調べてくれ。多分検索すればすぐ分かる。
VC++なら2005からNRVO行けるっぽい。/O1くらいでもNRVOは掛かる模様。
プロファイラで後から最適化ってのも常道だけど、I/F設計段階の話はそうもいかないし
なぁ。
まぁ、俺なら基本的には参照渡し、リターンで解体される自動変数なら値渡しで返して、
後者がボトルネックになるならインライン化でたぶんNRVO発動でおk、って書く。で、
「この設計だと遅そうだしポインタ渡そう」って言われたら、実際どうなるか興味ある
んでベンチでも書いたり、ついでに↓みたいなのも一緒に見たりしながら相談する。
msdn.microsoft.com/en-us/library/ms364057(VS.80).aspx

745 名前:名前は開発中のものです。 mailto:sage [2009/07/18(土) 14:20:17 ID:xlxZEQtn]
>>744補足
スコープの外に「自動」インスタンスを返すなら、だな。

つーか、二つめと三つめは最初の質問のシチュエーションから逸脱してるな。すまん。
まぁでも、メンバ関数でもNRVOは重要なんで、仕組みは知っておいた方が。



746 名前:名前は開発中のものです。 [2009/07/19(日) 05:29:35 ID:TXlg+NUw]
//●ジャンぷ

if(key & PAD_INPUT_B){
for(double t=0; t<10; t=t+0.1){
int vo = -60;
int ay=10;
jikidata.y = vo * t + 1/2 * ay * t*t + jikidata.y;
WaitTimer( 1000 );
jikidata.ghandle = LoadGraph("media\\imgbb4792ea7ec6f3d_frame_0009.bmp");
}
}


DXライブラリを使ってアクションゲームのジャンプをプログラムしたいんですが
これで実行すると、キャラが止まったり、動かなくなってしまうんですが、どこを改変すればいいんでしょうか?

747 名前:名前は開発中のものです。 mailto:sage [2009/07/19(日) 05:51:18 ID:EpiDWLJN]
>>746
正直どこにつっこめばいいかわからないので
公式のサンプルを参考にすればいいとだけ言っておく
homepage2.nifty.com/natupaji/DxLib/dxprogram.html#N2






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

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

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