08/03/26 11:22:54 F88bQWhP
>>839
つまり、mallocやnewがメモリーをどんなアドレスで取得してるか、
といった事を調べる話題になるわけだな?
841:名前は開発中のものです。
08/03/26 12:06:51 EIOlO8Pg
>>838
それ言い出すと、ファイルハンドルが何処から発生するか気にするか?
といった話にすらなりかねん。
842:名前は開発中のものです。
08/04/28 17:01:51 RhBkZtBI
Basicから入ったから、Cで明示的にメモリ確保するのが気持ち悪かった
その後、Delphiやってたから、C++でメモリ確保しないクラスが気持ち悪かった
843:名前は開発中のものです。
08/05/08 23:18:51 SrRQ+rts
今作っているゲームはWM_CREATEでけっこうな量のファイルを読み込んでいるので、
Windowが表示されるまでにそれなりに時間がかかってしまいます。
誤って何度も起動してしまわないように、Nowloadingと表示させてから読み込みたいのですが、どのように書けばいいのでしょうか?
844:名前は開発中のものです。
08/05/09 00:49:24 haEAxt1Y
WM_CREATEじゃなくてゲームループで嫁
845:名前は開発中のものです。
08/05/09 01:00:00 PjWlUEdO
>>843
WM_CREATE PostMessageで適当なメッセージ(WM_USERとか)を投げる
WM_PAINT 初期化フラグが立っていなかったらNowloadingとだけ表示する
WM_USERとか 読み込み処理をする、適度にInvalidateRectとUpdateWindowを何度も実行する
ただ、必須スペックに想定してるマシンで5秒以上かかるようなら
ちゃんとイベント処理をこなせるようにしといたほうがいいよ
メイン処理が別スレッドならそれを先に開始するとか、タイマー系イベントでちょっとづつ読み込むとか
846:843
08/05/09 11:55:14 hS3O5d5Q
参考にして作ろうと思います。
ありがとうございました。
847:名前は開発中のものです。
08/05/10 23:33:42 3aq7UNCV
WM_USERよりもWM_APPがおすすめされている。
いずれにせよ、#define WM_INIT (WM_APP + 0)のように名前つけろよ。
848:名前は開発中のものです。
08/05/15 22:42:04 YwFUHQF5
というか、初期には簡単な画像読み込んでLoading画面表示して
フラグ管理して処理すれば別に問題なくね?
849:名前は開発中のものです。
08/05/16 03:17:36 LjZKGE9Y
WindowsXPのPC(メモリ256)で製作中のゲームをVista(メモリ1G)で動作テストしてみたのですが、
なぜかアニメーションの処理速度が半分ぐらいにまで落ちてしまいました。
WindowsAPIのタイマーを使ってアニメーションさせているのですが、これが原因なのか否かも良くわかりません。
なにか思い当たる点が有りましたら、ぜひ教えてください。お願いします。
850:名前は開発中のものです。
08/05/23 22:33:50 jPx0XBwI
VistaだとGDIが完全にソフトウェア処理になるから
描画速度自体は確実に落ちるよ
851:名前は開発中のものです。
08/05/23 22:56:52 7QUeOTrk
DDB使ってなけりゃ関係ねぇよ
852:名前は開発中のものです。
08/05/24 09:35:06 WyL1Uf6E
>>851
853:名前は開発中のものです。
08/08/03 23:47:04 eUp/hKRM
C++とDirectXでゲームを作っています。
音楽と効果音の再生をDirectSoundでやろうと思ったんですが、
調べているとVistaはDirectSoundに対応していないと書いてたんですが、
XPとVista両方に対応させたいとしたら、音は何で鳴らせばいいでしょうか。
854:名前は開発中のものです。
08/08/04 03:26:18 Zbdzki70
ハードウェア固有のサウンドエフェクトとか考えなけりゃ普通にDirectSoundでおk
もしくは最近のSDKに追加されたXAudio2とか検討してみ。
ゲーム用途ならこっちの方が使いやすいと思う。
855:853
08/08/04 22:34:14 ro4/+LzM
どうもありがとうございます。
全く音が鳴らないというわけではないんですね。
使う機能はパンとボリュームと再生位置の通知だけなので、
このままDirectSoundを使うことにします。
XAudio2も時間があるときに見てみます。
856:名前は開発中のものです。
08/08/07 18:45:06 6PyoA3BU
C++でゲームを作っています。
爆弾をセット、一定時間後に爆発 という動作をさせたいんですがどのように表現すればいいのでしょうか?
一定時間後に、という部分がいまいちうまくいかなくて・・・よろしくお願いします
857:名前は開発中のものです。
08/08/07 19:20:43 jIGgrvQE
メインループの中で一定時間をカウントして、イベントを起こす。
858:名前は開発中のものです。
08/08/07 21:31:09 afI3YDNl
GetTickCount( )というPC起動から何ミリ秒経過したかを返すAPIがある。
爆弾をセットした時に時間を取得し、爆発時間を加える。
GetTickCount( )で取得した時間が爆破時間を過ぎたら爆発。
859:856
08/08/08 15:38:46 czGsvGYo
お早いアドバイス、ありがとうございます。
やはりタイマー関数のようなものを使わないといけませんか・・・
いまいち使い方がわからないのでifやforを駆使していました。
タイマー関数のようなものを使わないというのはやはり勧められないものでしょうか。
860:名前は開発中のものです。
08/08/08 16:32:11 w2HHE1WB
俺ならキャラごとにカウンターもたせて、1フレームごとにカウントさせるなぁ。
タイマー使ったら、例えば処理落ちしたときとかに爆発タイミング変わったりして困るんじゃない?
861:名前は開発中のものです。
08/08/08 17:31:57 79kn61a7
作るゲームにもよる
例えば等速処理したいときとかどうする
862:名前は開発中のものです。
08/08/08 21:56:47 w2HHE1WB
ああなるほど。
処理落ちしても、ゲーム速度は変わらない設計なら当然タイマー使用のほうになるのか。
863:名前は開発中のものです。
08/08/10 14:19:34 u1XmHl+X
俺もやりたいんだけど1フレームごとにカウントってどうやるの?
864:名前は開発中のものです。
08/08/10 18:37:29 EcZynTEp
while (1) {
ゲームループ実行();
VSYNCを待つ();
カウント変数++;
}
基本的にはこれだけ
865:名前は開発中のものです。
08/08/10 23:22:09 u1XmHl+X
>VSYNCを待つ();
ってなんですか?
866:名前は開発中のものです。
08/08/11 18:10:04 g7MMOmCL
もうwindowsプログラミング以前の低次元のことだから他のスレいきなよ