プレイ日記
ネタバレ
だにえる haru2016nen
【ヘルプ!!!】 現在、タイトル画面を作っているのですが、 困った事になりました。 コメントへ…
6そうだね
プレイ済み
返信[1]
親投稿
だにえる haru2016nen
色々と処理を複雑にした為かもしれませんが、 処理速度が異常なのです。 WHILE 1 VSYNC MIL=MILLISEC (色々な処理) ?MILLISEC-MIL WEND のようにした時に、 だいたい、16~17もしくは33~34 が表示されます。
0そうだね
プレイ済み
返信[2]
親投稿
だにえる haru2016nen
でも、 VSYNC 1+RND(2) とかをしている訳ではありません。 ちなみに、複雑な処理というのは分岐や 条件式ではなく、三角関数とかを多く 使っているということです。 前に誰かがやっていたように 自作VSYNCを作った方がいいのか?
0そうだね
プレイ済み
返信[3]
親投稿
だにえる haru2016nen
恐らく、 原因はSPの数のようです。 SPが多いときに16~17、 少ないときに33~34が 出るカンジだったので。 でもVSYNCおかしくないです?
0そうだね
プレイ済み
返信[4]
親投稿
色々な処理がどうなってるのかにもよりますが、僕もVSYNCはあまり関係なさそうな気がしますね…。しいて言うなら、16〜17msecが約1/60なのに対して、33〜34msecは約2/60なので、どこかでVSYNC分のウエイトが1つ挟まってるとか、そんな感じを受けますが。 あともう一つはタイトル画面での処理速度が実際どの程度影響があるのかどうかというのもありますね。多少処理が遅く感じても実用上問題ない速度で動いていれば気にする必要はないと思いますし…。
2そうだね
プレイ済み
返信[5]
親投稿
だにえる haru2016nen
VSYNCって(画像)のような処理なのでは?? つまり、 VSYNC 1 で軽い処理ならば16~17が出て、 重い処理になってくると18~が出てくる。 と思ってます。 フレームで判定してるので 重い処理にすると、いきなり33とかが 出てくる、っていう事でしょうか?
0そうだね
プレイ済み
返信[6]
親投稿
だにえる haru2016nen
»でんぺんs ループ内にFORとかWAITは入ってないんです
0そうだね
プレイ済み
返信[7]
親投稿
だにえる haru2016nen
VSYNCを外した時は 1~2MILLISECが出たので 毎ループ毎の処理は重くないと思うんですが…
0そうだね
プレイ済み
返信[8]
親投稿
ちょっと思ったのは、 VSYNC 1 で軽い処理ならば16~17が出て、 重い処理になってくると18~が出てくる。 という動作の場合は、 WHILE 1 MIL=MILLISEC (色々な処理) VSYNC ?MILLISEC-MIL WEND って感じの流れにならないですかね? まあVSYNCが垂直同期の為のウエイトだとしたら、1/60で収まらないときに次のタイミングは2/60になるので、そういう意味では合ってるのかも?
2そうだね
プレイ済み
返信[9]
親投稿
だにえる haru2016nen
VSYNCの部分を(画像:上)に変えても 変わりませんでした。 (画像:下)にしてみると安定しました。
0そうだね
プレイ済み
返信[10]
親投稿
ん? VSYNCを使ってないプログラムなのでちょっと意味がわかってません…。 すいません。
0そうだね
プレイ済み
返信[11]
親投稿
だにえる haru2016nen
0そうだね
プレイ済み
返信[12]
親投稿
REPEATで行っている処理とVSYNCは完全に等価じゃないと思いますし、なんとなく勘違いをしているような気がします。 VSYNCは垂直同期をとる命令で、それがたまたま?1/60秒周期なわけで1/60秒のウエイトをする命令ではないですしね。
1そうだね
プレイ済み