[過去ログ] SDLスレ (987レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
848: 名前は開発中のものです。 [sage] 2005/08/03(水) 23:14:18 ID:8Vtt/S6U(1) AAS
VisualC++.netでSDL使ってる者ですが。
stdio.hをインクルードするだけでアプリケーション終了時に
メモリエラーが出てしまいます。
デバッグで見る_file.cの_lock_file関数で何らかのエラーが起きているようです。
どのようにすればうまくエラーがでないようにできるのか、ご教授お願いします。
849
(1): 名前は開発中のものです。 [sage] 2005/08/04(木) 19:18:29 ID:m7E66Gbv(1/2) AAS
VisualC++.netは開発環境の名前なので、
それだけだと使っている言語仕様がわからない。

Microsoft Visual Studio .NET 2003 に含まれる VisualC++ を使っているなら
新しいプロジェクトを作成する時に .NETではなく Win32を選んで。
850: 名前は開発中のものです。 [sage] 2005/08/04(木) 19:25:18 ID:qa5JGYab(1) AAS
VS.NETならそうかもしれんがVC.NETならCだろ
851: 849 [sage] 2005/08/04(木) 20:42:21 ID:m7E66Gbv(2/2) AAS
VisualC++.NETで.NETアプリケーション作成を選べば、
それはManagedC++という名のC言語とは似て非なる言語。
852: 名前は開発中のものです。 [sage] 2005/08/04(木) 23:34:09 ID:uV5RXPg8(1) AAS
なんだか知らんが必死だな
853: 名前は開発中のものです。 [sage] 2005/08/05(金) 02:15:02 ID:t5VdqNSD(1) AAS
拡張C言語程度で必死だな
854: 名前は開発中のものです。 [sage] 2005/08/05(金) 10:31:53 ID:XgtXEN47(1) AAS
で、848は解決したのか?
855
(2): 名前は開発中のものです。 [sage] 2005/08/10(水) 16:07:15 ID:f3HjLb+x(1/2) AAS
微妙にFPSが60に固定できないんですけど
みんなはどう書いてますか

// ここで描画やらなにやら

int nowTime = SDL_GetTicks();
if( nowTime - preTime < 16 )
{
 SDL_Delay( 16 - (nowTime - preTime) );
}
preTime = SDL_GetTicks();

やっぱ浮動小数で管理しないと駄目かな
綺麗に60に固定したいんだけど
856
(1): 名前は開発中のものです。 [sage] 2005/08/10(水) 18:43:43 ID:PLKvBSGz(1) AAS
固定少数で管理すればOK
857: 名前は開発中のものです。 [sage] 2005/08/10(水) 19:50:28 ID:f3HjLb+x(2/2) AAS
>>856
詳しく
858: 名前は開発中のものです。 [sage] 2005/08/10(水) 20:59:46 ID:zuYoOj0m(1) AAS
ティアリングしてるんだし浮動小数点でも固定小数点でもどっちでもいいよな
俺はもう癖で固定小数点つかっちまうが

高精度タイマ使えばそれなりに精度は出るがかなり環境依存しやすい模様
この辺の話はSDLとはもはや関係ないな
859
(4): 名前は開発中のものです。 [sage] 2005/08/10(水) 21:58:53 ID:sHNa10sC(1) AAS
とりあえず、

while ( nowTime - preTime < 16 )
{
SDL_Delay( 0 );
}

のほうがいいよ
タイマの精度に期待出来ないことも多々あるんで、待ちすぎが起こりやすいから
860: 名前は開発中のものです。 [sage] 2005/08/10(水) 23:12:02 ID:EzSJcbzY(1) AAS
あー、なるほど、俺もフレームレートも固定少数使ってみよう
少しぐらい改善すっかな
861: 855 [sage] 2005/08/11(木) 11:06:48 ID:s0SfDH7M(1/2) AAS
>>859
それnowTimeもpreTimeも更新されないんじゃ?

具体的なコードが見たいんですけど駄目ですか?>>ALL
862
(2): 名前は開発中のものです。 [sage] 2005/08/11(木) 13:55:51 ID:7JeDKIu2(1) AAS
// ここで描画やらなにやら

while ( SDL_GetTicks() - preTime < 16 )
{
SDL_Delay( 0 );
}
preTime = SDL_GetTicks();

>>859じゃないけど、普通に考えればこうでしょう。
1から100まで全部与えられるのを待ってないで考えましょう。
863: 名前は開発中のものです。 [sage] 2005/08/11(木) 16:16:47 ID:u3UR2EZN(1/4) AAS
SDL_GetTicks() - preTime < 1000/60

これ、整数の除算のところで誤差が出るよね。
固定小数点で計算する方法って、32bitのうち小数側に16bit使うと決めたら

(60*(SDL_GetTicks() - preTime) << 16) < (1000 << 16)

みたいにすればいいのかな?
864: 名前は開発中のものです。 [sage] 2005/08/11(木) 16:21:33 ID:u3UR2EZN(2/4) AAS
あれ、これじゃシフトする意味ないじゃん。出直してこよう、、
865: 名前は開発中のものです。 [sage] 2005/08/11(木) 16:29:32 ID:u3UR2EZN(3/4) AAS
((SDL_GetTicks() - preTime) << 16) < (1000 << 16) / (60 << 16)

60が右辺にないと意味なかったね。Delphiで試してみたらFPSが59.9〜60.0くらいになったんで、
合っているのかな。
866: 名前は開発中のものです。 [sage] 2005/08/11(木) 16:37:51 ID:u3UR2EZN(4/4) AAS
いや合ってないや。ごめんもうやめるわ。
867
(1): 859 [sage] 2005/08/11(木) 19:06:56 ID:W/ukyUzH(1) AAS
うわ、適当に書いたんで思いっきりミスしてるな orz
>>862フォローthx!
868: 名前は開発中のものです。 [sage] 2005/08/11(木) 19:21:03 ID:Gg/tPqOJ(1) AAS
固定小数点でこんな感じでどう。

#define FRAMETIME 4271/* (1000ms/59.94frame)*256 */

ループ{
描画etc.

while ( SDL_GetTicks() < nextTime/256 )
{
SDL_Delay( 0 );
}
nextTime += FRAMETIME;
}
869: 名前は開発中のものです。 [sage] 2005/08/11(木) 22:03:19 ID:IbwMjIl9(1) AAS
一応オーバーフローも考えて欲しい。
870: 855 [sage] 2005/08/11(木) 23:36:45 ID:s0SfDH7M(2/2) AAS
>>862
そりゃ考えましたよ。
それで適当に書いた>>867とか言われても困るんですけどね。

というか、みんなはどうやってるの?って聞いてるのに何でかなぁ。FPS固定やってないの?
そんなにコード晒すの嫌?別段他のモジュール参照してるわけじゃなし、部分的に抜粋してもらえればいいのに。
って偉そうですね。すみません。

出し惜しみ?自分の技術不足を指摘されるのが恥ずかしい?
あ、面倒なの。

オープンソース糞喰らえですね!みんなはなんでSDL使ってるの?
871: 名前は開発中のものです。 [sage] 2005/08/12(金) 00:38:27 ID:oL+JILND(1) AAS
気持ちは分かるけど、書き込む前に深呼吸しろな。
872: 859 [sage] 2005/08/12(金) 04:23:14 ID:DYAIzoXI(1) AAS
あー、いい加減な書き方したのはスマンかったね
お詫びの意味も込めて、前作ったゲームのを調べてみた

const float FRAME_TIME = 1000.0f / 60.0f;
float timer_diff = 0.0f;

while (...) { // ループ
float old_timer = SDL_GetTicks() - timer_diff;
// 描画等
while ((SDL_GetTicks() - old_timer) < FRAME_TIME) {
SDL_Delay(0);
}
timer_diff = SDL_GetTicks() - old_timer - FRAME_TIME;
}

途中を色々はしょった時にミスが入ってる可能性はあるが、こんな感じだった
1-
あと 115 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.014s