- 1 名前:デフォルトの名無しさん [05/02/25 05:10:53 ]
- ※回答する人も、質問する人も必ず読んでください
【 回答してくださる方 】 ・ できるだけ優しく質問に答えてあげてください。 ・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。 「ググれ」以外の回答でおながいします。 ・ 神ですら理解不能な質問は無視して下さい。 【 質問する香具師 】 ・ どんな事で躓いているのか明確にしる。 ・ 長くならないなら躓いている部分のコードを晒してみれ。 ・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書け。
- 811 名前:名前は開発中のものです。 mailto:sage [2008/02/29(金) 17:26:18 ID:GHm3FFF+]
- ここで聞いちゃう?
- 812 名前:名前は開発中のものです。 mailto:sage [2008/02/29(金) 18:07:59 ID:lllhF3T4]
- C/C++でなく,NETを使うとか
- 813 名前:名前は開発中のものです。 mailto:sage [2008/02/29(金) 18:34:31 ID:G8Sp5cnc]
- >>811
すいません WinAPIでゲーム作ってたもので、スレ間違えてたかもしれないです >>812 .NETって便利なんですか? でもとりあえず今回は、WinAPIでやり遂げます
- 814 名前:名前は開発中のものです。 mailto:sage [2008/02/29(金) 22:53:31 ID:wcRsgxJ1]
- >>810
その2つの型が違えば問題ないはずなんだけど。 C++ ならクラスを使って意図的に違う型にしてしまえばいい。
- 815 名前:名前は開発中のものです。 mailto:sage [2008/02/29(金) 23:28:26 ID:G8Sp5cnc]
- >>814
if( t->x[ i ] == ○○ ) ○ if( t->x == ○○ ) × 敵の移動の分岐をかいてて、 こういう記述ミスがあって 気づきやすい所だったから良かったものの、わかりにくい所だったらヤバいなぁとおもったのです 違う型にするっていうのは良くわからないです けど、 == 判定だから、t->x 自身を使えないようにしないとかなぁっておもったり。 そもそもこんなところミスするようじゃダメなのかな・・・
- 816 名前:名前は開発中のものです。 mailto:sage [2008/02/29(金) 23:32:54 ID:scJliyMv]
- 関数一個書いたらステップ実行でテストする。
関数内部のパス(通り道)を全部通るように条件を変えてきちんとテストする。
- 817 名前:名前は開発中のものです。 mailto:sage [2008/02/29(金) 23:33:08 ID:wcRsgxJ1]
- >>815
いやミスするのが悪いんじゃなくて、その2つのうち後者が明らかに間違いなのに エラーにならないようにしてるのが悪い。 t->x[ i ] と t->x の型は何だ? たとえば x が int [5] なら t->x[i] は int で t->x は int* になる。 int とも int* とも比較できてコンパイルエラーにならないものといえば 定数 0 ぐらいしか思い当たらないけど。
- 818 名前:名前は開発中のものです。 mailto:sage [2008/03/01(土) 05:42:59 ID:PjSoEStG]
- class cmp
{ public: operator int*() { return &a; } operator int() { return a; } int a; }; こんなクラスじゃない?
- 819 名前:名前は開発中のものです。 mailto:sage [2008/03/01(土) 11:19:40 ID:UIc4fn4M]
- >>817
Boolean型でした すいません。なんでxにして書き込んじゃったんだろう・・・ ループ(){ if( t->I[ i ] == FALSE )continue; //処理 } t->I[ i ]がTRUEだったら 処理をさせるというところで、添え字を忘れていました。
- 820 名前:名前は開発中のものです。 mailto:sage [2008/03/01(土) 21:15:47 ID:/NUBYqIN]
- >>819
FALSE が 0 なんだろうな。 C++ なら、配列を std::vector とか operator [] を持ったクラスに置き換えることで 添え字忘れをコンパイルエラーにできるよ。
- 821 名前:名前は開発中のものです。 mailto:sage [2008/03/01(土) 21:43:43 ID:UIc4fn4M]
- >>820
検索してみたら凄い複雑でした。 が、 がんばってみます
- 822 名前:名前は開発中のものです。 mailto:sage [2008/03/01(土) 22:10:22 ID:ESvEWD62]
- 今時、生の配列なんてつかわねーよ JK
- 823 名前:名前は開発中のものです。 mailto:sage [2008/03/02(日) 11:02:54 ID:xmvf+jZ6]
- >>822
そうなんですか〜 でも、Vectorみたいな機能のある ゲームによく使われる言語ってC++だけじゃないですか?
- 824 名前:名前は開発中のものです。 mailto:sage [2008/03/02(日) 15:52:37 ID:GhRRsOcA]
- でも、の意味がわからない
- 825 名前:名前は開発中のものです。 mailto:sage [2008/03/02(日) 19:14:09 ID:lVPKkR1+]
- 作者も言われたんだろうか?
www.kent-web.com/pubc/book/test/uploader/uploader.cgi?mode=downld&no=690
- 826 名前:名前は開発中のものです。 mailto:sage [2008/03/02(日) 19:15:07 ID:lVPKkR1+]
- 誤爆
- 827 名前:名前は開発中のものです。 mailto:sage [2008/03/05(水) 15:45:57 ID:bPKCPzKB]
- >>824
今時と申されたので、C++やってない人はどうなのかなと思って「でも」と付けたのですが
- 828 名前:名前は開発中のものです。 mailto:sage [2008/03/09(日) 02:08:27 ID:OuSoXFED]
- 普通の配列はダメですかorz
- 829 名前:名前は開発中のものです。 mailto:sage [2008/03/09(日) 09:29:45 ID:EAhmszDh]
- ダメというか・・・生の配列は、面倒くさくない?
スクリプト言語みたいに整備されてるわけじゃないし
- 830 名前:名前は開発中のものです。 mailto:sage [2008/03/09(日) 10:16:44 ID:aQ0SDMkZ]
- 生の配列って言うのが、静的確保した配列のことなのか、
vectorやlistでない単なる配列のことなのか
- 831 名前:名前は開発中のものです。 mailto:sage [2008/03/13(木) 15:09:01 ID:d99ZfhW7]
- 低レイヤーな言語での言語仕様に含まれる配列機能のこと
- 832 名前:名前は開発中のものです。 mailto:sage [2008/03/13(木) 22:56:00 ID:Bu/r75Um]
- >>830
後者だろ
- 833 名前:名前は開発中のものです。 mailto:sage [2008/03/15(土) 15:13:57 ID:Ih29OWzv]
- そんなに配列使わないかな。
俺はコンテナも使うけど配列も使う。 間に挿入したり要素数が状況によって全く異なる場合など コスト面からコンテナを使うしかない場合も多いけど。
- 834 名前:名前は開発中のものです。 mailto:sage [2008/03/20(木) 10:03:34 ID:EXQJqkak]
- 配列というか配列演算子は使うでしょ。
HeapAllocで適当にメモリ確保して、配列演算子でアクセス。 後はほっとけばアプリ終了時に勝手にガーベッジコレクションされる。
- 835 名前:名前は開発中のものです。 mailto:sage [2008/03/20(木) 19:42:02 ID:3UvZiAFC]
- Javaやってるとnewしたまんまほったらかしにするのは
道具をしまったりゴミをゴミ箱にまとめるのをサボってるようで あまりいい気がしない。
- 836 名前:名前は開発中のものです。 mailto:sage [2008/03/21(金) 18:18:37 ID:cEumy9Hm]
- >>835
アセンブラからCに入ったときはnew・deleteすら気持ち悪かったよ メモリマップが書けなくなるから Javaは純粋なメモリ以外のリソースはdisposeが用意されてることが多いし あまり気にならなかったな、そういうもんだと思った
- 837 名前:名前は開発中のものです。 mailto:sage [2008/03/21(金) 20:21:50 ID:ZTMinpqE]
- 自前でガベコレ作れるのがC++。
まあ、STL使えれば十分なんだけどな、大概のケースでは。
- 838 名前:名前は開発中のものです。 mailto:sage [2008/03/22(土) 23:20:05 ID:4IZtFb4c]
- 確かに最初はmallocもどこから確保してくるのか不思議に思った。
- 839 名前:名前は開発中のものです。 mailto:sage [2008/03/26(水) 02:06:12 ID:ldqMhhG3]
- なんという歴史スレ
- 840 名前:名前は開発中のものです。 mailto:sage [2008/03/26(水) 11:22:54 ID:F88bQWhP]
- >>839
つまり、mallocやnewがメモリーをどんなアドレスで取得してるか、 といった事を調べる話題になるわけだな?
- 841 名前:名前は開発中のものです。 mailto:sage [2008/03/26(水) 12:06:51 ID:EIOlO8Pg]
- >>838
それ言い出すと、ファイルハンドルが何処から発生するか気にするか? といった話にすらなりかねん。
- 842 名前:名前は開発中のものです。 mailto:sage [2008/04/28(月) 17:01:51 ID:RhBkZtBI]
- Basicから入ったから、Cで明示的にメモリ確保するのが気持ち悪かった
その後、Delphiやってたから、C++でメモリ確保しないクラスが気持ち悪かった
- 843 名前:名前は開発中のものです。 mailto:sage [2008/05/08(木) 23:18:51 ID:SrRQ+rts]
- 今作っているゲームはWM_CREATEでけっこうな量のファイルを読み込んでいるので、
Windowが表示されるまでにそれなりに時間がかかってしまいます。 誤って何度も起動してしまわないように、Nowloadingと表示させてから読み込みたいのですが、どのように書けばいいのでしょうか?
- 844 名前:名前は開発中のものです。 mailto:sage [2008/05/09(金) 00:49:24 ID:haEAxt1Y]
- WM_CREATEじゃなくてゲームループで嫁
- 845 名前:名前は開発中のものです。 mailto:sage [2008/05/09(金) 01:00:00 ID:PjWlUEdO]
- >>843
WM_CREATE PostMessageで適当なメッセージ(WM_USERとか)を投げる WM_PAINT 初期化フラグが立っていなかったらNowloadingとだけ表示する WM_USERとか 読み込み処理をする、適度にInvalidateRectとUpdateWindowを何度も実行する ただ、必須スペックに想定してるマシンで5秒以上かかるようなら ちゃんとイベント処理をこなせるようにしといたほうがいいよ メイン処理が別スレッドならそれを先に開始するとか、タイマー系イベントでちょっとづつ読み込むとか
- 846 名前:843 mailto:sage [2008/05/09(金) 11:55:14 ID:hS3O5d5Q]
- 参考にして作ろうと思います。
ありがとうございました。
- 847 名前:名前は開発中のものです。 mailto:sage [2008/05/10(土) 23:33:42 ID:3aq7UNCV]
- WM_USERよりもWM_APPがおすすめされている。
いずれにせよ、#define WM_INIT (WM_APP + 0)のように名前つけろよ。
- 848 名前:名前は開発中のものです。 mailto:sage [2008/05/15(木) 22:42:04 ID:YwFUHQF5]
- というか、初期には簡単な画像読み込んでLoading画面表示して
フラグ管理して処理すれば別に問題なくね?
- 849 名前:名前は開発中のものです。 mailto:sage [2008/05/16(金) 03:17:36 ID:LjZKGE9Y]
- WindowsXPのPC(メモリ256)で製作中のゲームをVista(メモリ1G)で動作テストしてみたのですが、
なぜかアニメーションの処理速度が半分ぐらいにまで落ちてしまいました。 WindowsAPIのタイマーを使ってアニメーションさせているのですが、これが原因なのか否かも良くわかりません。 なにか思い当たる点が有りましたら、ぜひ教えてください。お願いします。
- 850 名前:名前は開発中のものです。 mailto:sage [2008/05/23(金) 22:33:50 ID:jPx0XBwI]
- VistaだとGDIが完全にソフトウェア処理になるから
描画速度自体は確実に落ちるよ
- 851 名前:名前は開発中のものです。 mailto:sage [2008/05/23(金) 22:56:52 ID:7QUeOTrk]
- DDB使ってなけりゃ関係ねぇよ
- 852 名前:名前は開発中のものです。 mailto:sage [2008/05/24(土) 09:35:06 ID:WyL1Uf6E]
- >>851
- 853 名前:名前は開発中のものです。 [2008/08/03(日) 23:47:04 ID:eUp/hKRM]
- C++とDirectXでゲームを作っています。
音楽と効果音の再生をDirectSoundでやろうと思ったんですが、 調べているとVistaはDirectSoundに対応していないと書いてたんですが、 XPとVista両方に対応させたいとしたら、音は何で鳴らせばいいでしょうか。
- 854 名前:名前は開発中のものです。 mailto:sage [2008/08/04(月) 03:26:18 ID:Zbdzki70]
- ハードウェア固有のサウンドエフェクトとか考えなけりゃ普通にDirectSoundでおk
もしくは最近のSDKに追加されたXAudio2とか検討してみ。 ゲーム用途ならこっちの方が使いやすいと思う。
- 855 名前:853 mailto:sage [2008/08/04(月) 22:34:14 ID:ro4/+LzM]
- どうもありがとうございます。
全く音が鳴らないというわけではないんですね。 使う機能はパンとボリュームと再生位置の通知だけなので、 このままDirectSoundを使うことにします。 XAudio2も時間があるときに見てみます。
- 856 名前:名前は開発中のものです。 mailto:sage [2008/08/07(木) 18:45:06 ID:6PyoA3BU]
- C++でゲームを作っています。
爆弾をセット、一定時間後に爆発 という動作をさせたいんですがどのように表現すればいいのでしょうか? 一定時間後に、という部分がいまいちうまくいかなくて・・・よろしくお願いします
- 857 名前:名前は開発中のものです。 mailto:sage [2008/08/07(木) 19:20:43 ID:jIGgrvQE]
- メインループの中で一定時間をカウントして、イベントを起こす。
- 858 名前:名前は開発中のものです。 mailto:sage [2008/08/07(木) 21:31:09 ID:afI3YDNl]
- GetTickCount( )というPC起動から何ミリ秒経過したかを返すAPIがある。
爆弾をセットした時に時間を取得し、爆発時間を加える。 GetTickCount( )で取得した時間が爆破時間を過ぎたら爆発。
- 859 名前:856 mailto:sage [2008/08/08(金) 15:38:46 ID:czGsvGYo]
- お早いアドバイス、ありがとうございます。
やはりタイマー関数のようなものを使わないといけませんか・・・ いまいち使い方がわからないのでifやforを駆使していました。 タイマー関数のようなものを使わないというのはやはり勧められないものでしょうか。
- 860 名前:名前は開発中のものです。 mailto:sage [2008/08/08(金) 16:32:11 ID:w2HHE1WB]
- 俺ならキャラごとにカウンターもたせて、1フレームごとにカウントさせるなぁ。
タイマー使ったら、例えば処理落ちしたときとかに爆発タイミング変わったりして困るんじゃない?
- 861 名前:名前は開発中のものです。 mailto:sage [2008/08/08(金) 17:31:57 ID:79kn61a7]
- 作るゲームにもよる
例えば等速処理したいときとかどうする
- 862 名前:名前は開発中のものです。 mailto:sage [2008/08/08(金) 21:56:47 ID:w2HHE1WB]
- ああなるほど。
処理落ちしても、ゲーム速度は変わらない設計なら当然タイマー使用のほうになるのか。
- 863 名前:名前は開発中のものです。 mailto:sage [2008/08/10(日) 14:19:34 ID:u1XmHl+X]
- 俺もやりたいんだけど1フレームごとにカウントってどうやるの?
- 864 名前:名前は開発中のものです。 mailto:sage [2008/08/10(日) 18:37:29 ID:EcZynTEp]
- while (1) {
ゲームループ実行(); VSYNCを待つ(); カウント変数++; } 基本的にはこれだけ
- 865 名前:名前は開発中のものです。 mailto:sage [2008/08/10(日) 23:22:09 ID:u1XmHl+X]
- >VSYNCを待つ();
ってなんですか?
- 866 名前:名前は開発中のものです。 mailto:sage [2008/08/11(月) 18:10:04 ID:g7MMOmCL]
- もうwindowsプログラミング以前の低次元のことだから他のスレいきなよ
|

|