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


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
1118
music画像の上でタイマーを実行するには13解決


music

リンク

2007/11/18(Sun) 01:14:29|NO.12476

こんばんわ。musicです。教えていただきたいことが...。

1.画像Aを表示(picload"a.gif")
2.背景を画像にして、タイマーを実行する

単純なことだと思いますが、
画面が書き換わる際、画像も消えてしまいます。
背景を残したまま時間を計るには、どのような命令を使えばいいでしょうか?
ググってみても出てこないし、検討もつがず困っています。
よろしくお願いします。



この記事に返信する


ANTARES

リンク

2007/11/18(Sun) 01:27:42|NO.12477

 どんな風にやっているかわからないので
なせ消えるのかがわからず(clsかboxfで消している?)
消える理由がわからなければ残す方法もわかりませんが、
一般的にはというか、最も普通のやり方は以下のようなものです。

 bufferにpicloadしてgcopyで表示。
消えたらまたgcopy。



music

リンク

2007/11/18(Sun) 05:33:20|NO.12480

ありがとうございます。
boxfで消えていました。
boxfをなくしたところ、画面ちらつきました。
たしか、前にもこんなことあったような気がするのですが、
redrawだったかな...???よく覚えてないのですが、
以前にもここで同じ質問をしたと思うので、
その時のやつが残っていると思うのですが、
検索しても出てきませんでした。
いったいどのように検索したらいいのでしょうか?
よろしくお願いします。



D.K

リンク

2007/11/18(Sun) 11:02:04|NO.12483

エディタにredrawと打ってF1キー押して
redrawのヘルプを読めばいいかと思われます。
因みに「過去ログから検索」で「ちらつき」といれて検索しても出てきます。
サイト内検索でも出てきますよ。
以前質問したなら以前のご自身のスクリプトを見直せばあるのでは?



リンク

2007/11/18(Sun) 17:50:47|NO.12485

repeat
redraw 0
;実行するプログラム
redraw 1
wait 1
loop
でいいと思われるが、これでどうなろうが保証せん
解決したらチェックしら



music

リンク

2007/11/23(Fri) 16:51:07|NO.12560

やっぱりちらつきました...。
redrawでは出来ませんでした。
以下のスクリプトに、cls 2 で灰色にしたいだけなんですけれど。
よろしくお願いします。

#include "mod_counttimer.hsp" // タイマーの準備。 make_timer t pause_count t reset_count t pos 0, 24 button gosub "start/stop", *start button gosub "lap/reset", *lap font msgothic, 16 px = 0 py = 72 repeat // タイマーのカウント中か一時停止中かで待ち時間を変える。 if ( f == 0 ) { wait 3 } else { await 1 } // 現在の経過時間の取得、表示。 gosub *drawtime loop stop *start // タイマーのカウント/一時停止の切り替え。 if ( f != 0 ) { pause_count t f = 0 } else { resume_count t f = 1 } return *lap if ( f != 0 ) { // カウント中は現在の経過時間をラップタイムとして取得、表示。 get_count t pos px, py mes strf( "%8.3f", refdval / 1000 ) py += 16 } else { // 一時停止中は経過時間をリセット。 reset_count t px += 64 py = 72 } return *drawtime // 現在の経過時間の取得、表示。 get_count t redraw 0 font "",140 color 255, 255, 255 boxf 0, 0, 600, 800 color 100, 0, 0 pos 100, 200 mes strf( "%8.3f", refdval / 1000 ) redraw 1, 0, 0, 600, 800 return



GENKI

リンク

2007/11/23(Fri) 18:50:07|NO.12562

> 以下のスクリプトに、cls 2 で灰色にしたいだけなんですけれど。

clsでウィンドウ内消去を行うとちらつきの原因となります。
boxfで灰色にすればいいのではないのですか?

cls命令はredraw命令もリセットし、命令を実行した時点で画面の書き換えを行います。
そのためループ内に置いて繰り返し使用すると画面のちらつきを起こす原因となります。

サイト内検索結果
http://www.google.com/search?hl=ja&inlang=ja&ie=EUC-JP&oe=EUC-JP&q=%A4%C1%A4%E9%A4%C4%A4%AD+cls+site%3Ahsp.tv&btnG=%B8%A1%BA%F7&lr=



music

リンク

2007/11/28(Wed) 22:40:32|NO.12629

musicです。ありがとうございました。
clsの代わりにboxfやcolorを使えばいいんですね。
これをjpgとかの画像にしたい場合は、
boxfやcolorは使えませんよね?
picloadではない、また別の命令を使うのですよね?
まったく見当も付かないのですがどのような命令を使えばいいですか?
よろしくお願いします。m(_ _)m



KENTA

リンク

2007/11/29(Thu) 16:01:44|NO.12633

colorやboxfのところをgcopyにすればいいと思います。
下は、読み込んで表示した画像の上に文字とループ回数を表示します。

name=dirinfo(1)+"\\sample\\demo\\sky_bg.jpg" exist name if strsize=-1 :end buffer 1,,,0 picload name screen 0,640,480 repeat redraw 0 pos 0,0 gcopy 1,0,0,640,480 mes "画像の上に文字が表示されます" mes "ループ回数 "+cnt redraw 1 wait 1 loop



GENKI

リンク

2007/11/29(Thu) 21:56:39|NO.12641

過去ログ探せばこのアドレス出てきたはずなんですが…。
http://hspwiki.tm.land.to/?HSP%B9%D6%BA%C2%2F%B4%F0%CB%DC%C5%AA%A4%CA%A5%B9%A5%AF%A5%EA%A5%D7%A5%C8%A4%CE%A5%D1%A5%BF%A1%BC%A5%F3#a0482d43
解説がわかりにくかったんでしょうか。



music

リンク

2007/12/30(Sun) 05:44:59|NO.12940

musicです。回答ありがとうございますm(_ _)m
KENTAさんのスクリプトを試してみました。
>>name=dirinfo(1)+"\\sample\\demo\\sky_bg.jpg"
で、画像ファイルを変えたところ、
>>if strsize=-1 :end
の影響で終了してしまいました。
strsizeは読み出しバイト数のことですが、
strsize=-1というのはどのような意味でしょうか?


#include "mod_counttimer.hsp" // タイマーの準備。 make_timer t pause_count t reset_count t pos 0, 24 button gosub "start/stop", *start button gosub "lap/reset", *lap font msgothic, 16 px = 0 py = 72 repeat // タイマーのカウント中か一時停止中かで待ち時間を変える。 if ( f == 0 ) { wait 3 } else { await 1 } // 現在の経過時間の取得、表示。 gosub *drawtime loop stop *start // タイマーのカウント/一時停止の切り替え。 if ( f != 0 ) { pause_count t f = 0 } else { resume_count t f = 1 } return *lap if ( f != 0 ) { // カウント中は現在の経過時間をラップタイムとして取得、表示。 get_count t pos px, py mes strf( "%8.3f", refdval / 1000 ) py += 16 } else { // 一時停止中は経過時間をリセット。 reset_count t px += 64 py = 72 } return *drawtime // 現在の経過時間の取得、表示。 get_count t redraw 0 font "",140 color 255, 255, 255 boxf 0, 0, 600, 800 color 100, 0, 0 pos 100, 200 mes strf( "%8.3f", refdval / 1000 ) redraw 1, 0, 0, 600, 800 return
の背景に画像を入れたいだけなんですけど...
いろいろ試しているのですが...
redraw間のスクリプトの書き方がどうしても分かりません><
一応、自分なりにヘルプやグーグルで調べてみましたが、全然分かりません。
すいませんがよろしくお願いします><



Kpan

リンク

2007/12/30(Sun) 09:49:59|NO.12942

>strsize=-1というのはどのような意味でしょうか?
ヘルプブラウザでexist命令の説明をちゃんとチェックしてください。



KENTA

リンク

2007/12/31(Mon) 15:14:08|NO.12958

>strsize=-1というのはどのような意味でしょうか?
Kpanさんが言っているようにヘルプブラウザの説明を見てください。

>背景に画像を入れたいだけなんですけど...

#include "mod_counttimer.hsp"
のあとに

buffer 1,,,0 picload "画像ファイル名" screen 0,640,480,0
を追加して、

redraw 0 font "",140 color 255, 255, 255 boxf 0, 0, 600, 800 color 100, 0, 0 pos 100, 200 mes strf( "%8.3f", refdval / 1000 ) redraw 1, 0, 0, 600, 800
のところを

redraw 0 font "",140 pos 0,0 gcopy 1,0,0,640,480 color 100, 0, 0 pos 100, 200 mes strf( "%8.3f", refdval / 1000 ) redraw 1
に変更してみてください。



music

リンク

2008/1/7(Mon) 19:22:47|NO.13027

出来ました。
何か少し勘違いしていたようです。
ヘルプはちゃんと見たつもりだったんですがね。
ありがとうございました。



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