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


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
0829
M.O.O.ちらつきが・・・6解決


M.O.O.

リンク

2010/8/29(Sun) 16:12:39|NO.34700

ウィンドウ内を左クリックしている間は「a_1.bmp」→「a_2.bmp」を繰り返し表示して、
押してない間は「a.bmp」を表示するようにしたのですがちらつきがひどいです・・・;
このせいで一瞬止まったりします。ちらつきをなくすにはどうすれば良いですか??

スクリプトです↓


picload "a.bmp" repeat wait 1 stick a,256 if a==256:picload "a_1.bmp":picload "a_2.bmp" if a==0:picload "a.bmp" loop



この記事に返信する


いかろ

リンク

2010/8/29(Sun) 16:24:53|NO.34701

まず、過去ログで検索することをお勧めします。
検索すると
http://hsp.tv/play/pforum.php?mode=pastwch&num=13288
http://hsp.tv/play/pforum.php?mode=all&num=34295
などとでてきますよ。



M.O.O.

リンク

2010/8/29(Sun) 16:37:41|NO.34702

ヘルプや過去ログを見ても判らなかったです(T^T)
redrawを使ってみたのですが出来ませんでした。


picload "a.bmp" repeat wait 1 stick a,256 redraw 0 if a==256:picload "a_1.bmp":picload "a_2.bmp" if a==0:picload "a.bmp" redraw 1 loop



f3d

リンク

2010/8/29(Sun) 16:52:36|NO.34703


chdir dirinfo(1)+"/sample/demo/" repeat redraw 0 color 255,255,255:boxf//画面を白く塗りつぶし wait 1 stick a,256 if a&256{//左クリックが押されているときの処理 timer++ if timer > 60:timer = 0 if timer < 30{ pos 0,0:picload "logop.bmp",1 }else{ pos 0,0:picload "bgpeas.bmp",1 } }else{//押されていないとき pos 0,0:picload "jp6girl.bmp",1 } redraw 1 loop

redraw 0 は 画面に描画せずに仮想メモリに描画して
redraw 1 は 仮想メモリにあるやつを実際の画面に移します。
そうしたほうが速度が出ます。



SYAM

リンク

2010/8/29(Sun) 17:19:52|NO.34704

質問者さんが間違えているのは redraw の使い方ではなく、
>「a_1.bmp」→「a_2.bmp」を繰り返し表示
…のやり方ですね。

a_1を読み込み&表示した直後に即座にa_2を読み出してしまっています。
しかもa_1のpicloadの後redraw 1(画面の書き換え)をしないでa_2のpicloadが実行されていますから、a_1は画面に出てこないことになってしまいます。(実際にはpicloadが遅いために変なチラつきが見えてしまっています。)
そこで、f3dさんがやっているとおり、a_1かa_2のどちらかを表示したあとしばらくは同じ画像を出しておく必要があります。

また、毎回ファイルから読み出すのも効率がよろしくないので、buffer命令で用意した仮想の画面にpicloadで1度だけ読み出しておき、実際に見えるウインドウに画像を出すときはbufferで用意した画像からgcopyでコピーするのがいいでしょう。



M.O.O.

リンク

2010/8/29(Sun) 17:39:21|NO.34705

解決しました〜^^
皆さんスクリプトで説明してくださってわかりやすかったです!
感謝です!



M.O.O.

リンク

2010/8/29(Sun) 17:40:08|NO.34706

チェックするの忘れてた・・・

ホントにありがとです!



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