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


HSPTV!掲示板


未解決 解決 停止 削除要請

2011
0321
godman動きがカクカク18未解決


godman

リンク

2011/3/21(Mon) 23:23:49|NO.37770

動きがカクカクしてしまいます。
なめらかに動くようにしたいんですが、どうしたら良いですか?

PCは
corei5
GeForceGTS250 を搭載です。

一応スプリクトを載せておきます。

screen 0,1500,800,4,300,100,1300,800 me_maxhp=100 com_maxhp=100 me_hp=100 com_hp=100 //bufferに書きこみ buffer 1,1500,800 picload"stage1.bmp" buffer 2,400,50 picload"メーター.bmp" buffer 3,30,30 picload"HP メーター.bmp" buffer 4,140,137 picload"キャラ1.bmp" //黒を透明色にする gsel 0,1 gmode 2,,,0 *start redraw 0 pos 0,0 boxf //ステージコピー pos 0,0 gsel 0,1 gcopy 1,0,0,1500,800 //HPのメーターのコピー pos 50,50 gsel 0,1 gzoom me_hp/me_maxhp*400,50,3,0,0,30,30 //上と同じ pos 800,50 gsel 0,1 gzoom com_hp/com_maxhp*400,50,3,0,0,30,30 //HPのメーターのパーのコピー pos 50,50 gsel 0,1 gcopy 2,0,0,400,50 //上と同じ pos 800,50 gsel 0,1 gcopy 2,0,0,400,50 //キャラの描画 pos chara_x,chara_y gsel 0,1 if leftkey=1:muki=0 if rightkey=1:muki=1 if muki=0:gcopy 4,70,0,70,137 if muki=1:gcopy 4,0,0,70,137 redraw 1 //*****************************************キャラの移動*****************************************************// //キーの取得 stick key,0 getkey leftkey,37 getkey rightkey,39 //キャラの移動 if leftkey=1:chara_x-=4 if rightkey=1:chara_x+=4 await 2 goto,*start



この記事に返信する


check

リンク

2011/3/22(Tue) 00:03:34|NO.37772

なぜゆえこんなに大きなウィンドウを表示させているのかは知らんが、
どうやらgcopyで大きなサイズのバッファをスクリーンにコピーすると
相当な負荷がかかるようだな。

1行目に#include "d3m.hsp"と書いて、
redraw 1の前にtitle "fps = " + d3getfps()と書いて、FPSを計ってみるといい。
ステージコピーの処理があるのとないのとではうちの環境ではFPSが20ほども違った。

対処法としては、こんなに大きなウィンドウにせずに、
もっと小さいウィンドウにする…などだろうか。
フルスクリーンにしたいのなら他の方法でやればいい。



godman

リンク

2011/3/22(Tue) 08:58:15|NO.37774

repeat
color 255,255,255 boxf color 0,0,0 pos x, y mes "●" x += 3 await 1 redraw 1 redraw 0 loop

このスプリクトでも、かくかくしてしまいます。
パソコンに問題があるんでしょうか?



あり

リンク

2011/3/22(Tue) 11:55:00|NO.37777

先月あった質問と同じ内容なのかな?

それはさておき、何となくですがモニタのリフレッシュレートと
HSPの画像更新タイミングのずれみたいな感じがします(ティアリング問題に近い?)
試しにawaitの値を16以上(リフレッシュレートより表示間隔を遅くする)
にしてみた所、15以下の時よりはカクカクしないような気がします。

なんにしろ、この現象はHSP(というかPC)の仕様だと思うので
そういうものと割り切って使うかDirextXを試してみるのも手かと思います。



godman

リンク

2011/3/22(Tue) 14:10:35|NO.37782

await 20にしてもダメです;;



godman

リンク

2011/3/22(Tue) 14:12:41|NO.37783

あとですけど、カクカクっていうのはキャラクタを動かしたときにぼやける感じがすることを
いっています。



SYAM

リンク

2011/3/22(Tue) 14:41:01|NO.37785

もしかして描画1回あたりでの●の移動量が大きい、っていうだけの話でしょうか…?
3倍の頻度で移動量を1/3にするとか。



godman

リンク

2011/3/22(Tue) 14:51:49|NO.37786

んー・・・
SYAMさんのいったとおりにやってみましたけど、ダメでした;;
なんかボヤケるんですよね・・・。
はっきりと写したいんですがね。



晩御飯

リンク

2011/3/22(Tue) 14:55:32|NO.37788

ビデオカード無いとぼやけたりしますよね。



godman

リンク

2011/3/22(Tue) 14:57:17|NO.37789

GeForceが入ってます。
グラフィックボードとビデオカードは同じですよね?



SYAM

リンク

2011/3/22(Tue) 15:06:00|NO.37791

>グラフィックボードとビデオカードは同じですよね?
今の話題だと同じと考えていいでしょう。

・・・液晶モニターの性能の問題だったりしませんか?
液晶モニターは原理上、画面の書き換え自体に時間がかかります。書き換え途中は当然、書き換え前の映像が残像となって重なってくるわけで、ボヤけが生じます。。。
近年のモニターはその時間が非常に短くなってはいますが、0ではないので残像は出ます。



godman

リンク

2011/3/22(Tue) 15:11:21|NO.37793

ディスプレイは2msって書いてありました。



あり

リンク

2011/3/22(Tue) 15:37:16|NO.37795

>ディスプレイは2msって書いてありました。
液晶の応答速度が速くても残像が見える事はあるそうです。
http://ja.wikipedia.org/wiki/%E5%80%8D%E9%80%9F%E6%B6%B2%E6%99%B6

そもそも静止画像でもぼやけるのでしょうか?
そうであればディスプレイやビデオドライバの設定等で画像を滑らかにする機能が
働いているというような事も考えられますが・・・



Ve

リンク

2011/3/22(Tue) 16:15:27|NO.37798

カクカク→ぼやける ていう表現の食い違いがあるから心配なんだけど・・・

その、ぼやけると言うのは、
残像なのか、アンチエイリアスが掛かっているのか
表現を詳細にしてほしい。

残像なら、ありさんの言うようなボードやモニタの機能かもしれないし、
アンチエイリアスなら解像度の問題になるし・・・。



godman

リンク

2011/3/22(Tue) 16:30:58|NO.37801

残像が残る感じです。
やっぱり、対処法は難しいですかねf^_^;)



abcdefg

リンク

2011/3/22(Tue) 16:58:27|NO.37802

液晶画面の応答速度はとても遅いです。
液晶はCRTの100倍以上遅いです。
ぼやけたりカクカクしたりするのは画面とHSPが原因だと思われます。



晩御飯

リンク

2011/3/22(Tue) 21:13:51|NO.37812

GeForceって書いてましたね、失礼。
スクリーンショット撮ってみれば残像なのかぼやけなのか分かると思いますが
分かったところでだから何だって話ですね。



あり

リンク

2011/3/23(Wed) 00:08:31|NO.37818

確認の為にDirectX使用のスクリプトを作ってみました。
HSPDX版、HGIMG3版共にほぼ同じ動作をするはずです。
(私のPC環境では特別気になるほどの残像は出ませんでした)

; HSPDXサンプル(DirectX7) #include "hspdx.as" screen 0, 640, 480 es_ini es_screen 640, 480, 16, , 0 buffer 1 circle 0,0,16,16 es_buffer 0, 0, $ffffff gsel 0 *main es_cls 255, 255, 255 gmode 1, 16, 16 pos x, 0 es_copy 0, 0, 0, 16, 16 x + 3 : x \ 630 es_sync 1 await 0 stick key ; ESCで終了 if key & 128 : es_bye : end goto *main
ここから別プログラム

; HGIMG3サンプル(DirectX8) #include "hgimg3.as" bgscr 0, 640, 480 hgsetreq SYSREQ_DXMODE, 1 hgsetreq SYSREQ_DXWIDTH, 640 hgsetreq SYSREQ_DXHEIGHT, 480 hgini buffer 1, 64, 64 circle 0, 0, 16, 16 hgsetreq SYSREQ_COLORKEY, $ffffff settex 16, 16, 0, -1 texid = stat gsel 0 *main clscolor $ffffff hgdraw gmode 2, 18, 18 pos x, 9 hgrotate texid, 0, 0, 0.0, 16, 16 x + 3 : x \ 630 hgsync 1 await 0 stick key ; ESCで終了 if key & 128 : hgbye : end goto *main
これらでも同じ症状になるのであればハード依存の問題の可能性が高いので
ソフト的な対処は難しいと思われます。



mamo

リンク

2011/3/23(Wed) 06:16:44|NO.37827

白地に黒ってのを別の色を使うことで緩和されるんじゃないの?
液晶モニターで残像を残さないってのは、使ってるモニターが変わるしかないと思う。



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