HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
0422
kerupani (投稿者削除)10未解決


kerupani

リンク

2010/4/22(Thu) 17:18:13|NO.32162

この記事は投稿者により削除されました。
2010/6/12(Sat) 20:46:15



この記事に返信する


晩御飯

リンク

2010/4/22(Thu) 18:27:59|NO.32167

1000(ミリ秒)をループにかかった時間(ミリ秒)で割る。



GENKI

リンク

2010/4/22(Thu) 20:52:56|NO.32172

詳しくはヘルプ見てください。
d3getfps



f3d

リンク

2010/5/6(Thu) 19:10:30|NO.32490

>>できればモジュールはあまり使いたくありません。
せっかく回答者さんがだしてくれた案を、
たいした説明も無い理由で一蹴するのは、失礼だと思います。
あと作者さんにも。



>>しかも数字が0からだんだん大きくなり実際のfpsになると安定する(いくらか変わるけど)と
いう感じになります。
最初にFPSを求める瞬間、のFPSは求めれるはずが無いのでその様な結果になります。
もしその使用が嫌ならモジュールを改良するか、
自分で一からコードを組んでください。

そもそもFPSの意味を分かっていますか?
一秒間に何回画面書くか、程度ではなく、
算出方法の具体例なども理解しておいたほうがいいです。

1描画にかかった時間から、求めるか
時間内に何回描画できたかなど・・・・


>>↑やっぱりHTMLの書式使えない。
<pre style="font-size:20px;">

何度も過ちを繰り返すのは、学習能力が劣っているか、
それとも故意に行っているかのどちらかですか?

もし後者なら、

int main(void){ return 0; }
やべwwこの掲示板C使えねぇんだwwwwwww

と同じレベルですよ。



f3d

リンク

2010/5/6(Thu) 19:29:35|NO.32495

・使わないd3moduleの描画系の命令をソースコードに含めるのがいや。
・できる限り自分で実装したいから。
・プライド(F8EC)

等、理由を挙げたほうが回答が気安くなります。



GENKI

リンク

2010/5/6(Thu) 19:34:55|NO.32496

>> kerupaniさん

先ずは落ち着いてください。
昔と違い、最近の掲示板はHTMLタグを使えないのが当たり前となっているようです。
あらしやスパム対策でしょうね。

この掲示板の上の方に「使い方」というのがあります。
「投稿時の注意」の11を参照ください。
記載されているとおり、preタグ意外の使用はできません。またpreタグも引数を持たせることは出来ません。


また、記事投稿時に削除用パスワードを設定していれば、下の「記事削除」から任意の記事を削除できます。
投稿直後にミスに気づいたら活用ください。


> しかも数字が0からだんだん大きくなり実際のfpsになると安定する(いくらか変わるけど)と
> いう感じになります。

あるフレーム数だけ繰り返すのにかかった時間から算出しているんだと思います。
瞬時に結果がほしいのであれば、1フレームにかかった時間を計測して、「1/経過時間」としてやればいいわけですが当然精度は落ちます。


> ↑d3getfpsってモジュール使うのでしょう?
> できればモジュール使いたくありません。

モジュールを使わなくても出来ますが、これがもっとも手軽に行える方法です。特別な知識も考える必要もありません。
モジュールやプラグインを活用すると開発スピードが飛躍的に短縮できるので特別な理由がない限り、私としては活用することをお勧めします。

それでもどうしてもモジュールを使うのがいやなら、commonフォルダ内のd3m.hspを調べてみるといいでしょう。



あり

リンク

2010/5/7(Fri) 16:36:54|NO.32511

モジュールを使いたくない人にモジュールで
サンプルを渡すという意地悪さ(汗)ですが
特別難解でも無いので理解は出来ると思います。

#module #uselib "winmm.dll" #cfunc timeGettime "timeGetTime" #deffunc GetFps var fps t_cnt = timeGettime() - t_old if t_cnt >= 1000 { fps = fcnt fcnt = 0 t_old =timeGettime() } fcnt ++ return #global *main GetFps fps title "" + fps await 10 goto *main
簡単に言えば一秒間にメインループが回った回数がfpsなので
(正確には画面を更新した回数らしいですが)
一秒単位でリセットされるカウンターを作った後
リセットされる直前のカウントがfpsという事になります。

なぜモジュールを使いたくないのかはわかりませんが
HSPのモジュールがどのような物かを理解すれば
モジュールを活用する価値が見出せると思います。



f3d

リンク

2010/5/8(Sat) 19:21:51|NO.32545

FPSを求めるのが難しいのではなく、
あなたがウィンドウズプログラミングの用に受動的だからです。

自分で努力して、みなさんのスクリプトを解析したりする気がないのなら、
そういってください。

あなたが言う計算だけでFPSをもとめるスクリプト

repeat frame++ if gettime(7)>=miri&&gettime(6)>sec:fps = frame:frame = 0 title "FPS"+fps if frame==0{ miri = gettime(7) sec = gettime(6) } await 10 loop

>>↑こんどはDLLか…。
自分のスクリプトでもFPSを求めれるのに
何故ありさんはDLLwo
使っているんですか????



その答えは精度です。(5mだっけ?)
私のスクリプトよりも精度が高いです。
ありさんはあなたの為に努力しました。
しかし、肝心の貴方からはなんのがんばりも感じません。
あなたは
#uselib "winmm.dll"
#cfunc timeGettime "timeGetTime"
を見ただけで文句のレスをつけたんでしょうね?
お礼を言わず、回答を自分で求める努力もせず、
文句を言うあなたにはわたしのスクリプト程度で十分ですよ。



u

リンク

2010/5/8(Sat) 19:22:24|NO.32546

>本当は他にファイルを使いたくないって意味で投稿したつもりだったんだけど…。
モジュールとDLL等外部ファイルは全く違いますよ。
大半の方は「モジュールを使いたくない」という理由を「仕組みを自分で理解しておきたい」という風に受け取っていることでしょう。

ちなみにwin32APIに必要なdllは既にインストールされているので外部ファイルを用意する必要はありません。

たとえ当てが外れたとしても回答者さんにお礼くらい言うのが筋ですよ…。



kerupani

リンク

2010/5/8(Sat) 19:46:17|NO.32548

そうでしたか、すみません。



あり

リンク

2010/5/9(Sun) 11:38:20|NO.32575

>↑こんどはDLLか…。
>本当は他にファイルを使いたくないって意味で投稿したつもりだったんだけど…。
自分の中では決定事項でも他の人がそれを理解できているとは限りませんよ。
uさんも説明してくれましたがwinmm.dllはWindowsを構成しているパーツの1つなので
【外部】のDLLではありませんしHSP自体でも既に使われています。
(主にWindowsが音や映像等の再生をするのに必要なDLLです)
まぁ、HSP(Windows)プログラムに疎かったkerupaniさんに
不親切なサンプルを提供して誤解させたのも事実ですので
HSPの基本命令のみでほぼ最小の手間でfpsを求めるサンプルを置いておきます。

*main t1 = gettime(7) if t1 < t2 { fps = count count = 0 } t2 = t1 count + 1 title "" + fps await 10 goto *main
最低限の仕様なので精度は低いですし
1ループに1秒以上かかるようなプログラムだと
正しい数値が出せません(汗)が普通に使う分には
上で私が提示したサンプルとほぼ同じ数値が出ると思います。

あとはkerupaniさんのやる気次第という事でお節介を終わります。



ONION software Copyright 1997-2018(c) All rights reserved.