|
|
2013/6/17(Mon) 20:41:47|NO.54987
題名のような事って可能ですか?
;***** 雛型となるテキスト時計の例 (texttokei.hsp) *****
#uselib "user32.dll"
#func SetTimer "SetTimer" int, int, int, int
#func KillTimer "KillTimer" int, int
#define WM_TIMER 0x0113
#define ID_TIMER 1
screen 0,144,90,0
title "テキスト時計" : font "MS 明朝",28,1
oncmd gosub *OnTimer, WM_TIMER
onexit gosub *Onowari
SetTimer hwnd, ID_TIMER, 500, 0
stop
*OnTimer
color 255,255,255 : boxf 9,8,132,38
sec =strf("%02d",gettime(6)) ;秒
redraw 0
color 0,0,0
pos 10,10 : mes ""+sec
hour=0 : min=0 : sec=0
redraw 1,9,8,132,38
await 50
redraw 0,9,8,132,38 ;画面ちらつき防止対策
return
*Onowari
KillTimer hwnd, ID_TIMER
end
例をあげるとメイ(ンscreen,0)ではこれが働いており、
サブ(screen,1)では画像1と画像2が一定間隔で入れ替わるようなスクリプトがほしいです
|
|
2013/6/17(Mon) 20:57:05|NO.54988
まず、双方のスクリプトを考えてください。
合体はそれから考えましょう。
|
|
2013/6/17(Mon) 21:02:07|NO.54990
SetTimerが使えるならすぐに実現できることです。
#uselib "user32"
#func SetTimer "SetTimer" int, int, int, int
#func KillTimer "KillTimer" int, int
#define WM_TIMER 0x0113
onexit *on_exit
screen 0, 200, 100
oncmd gosub *on_timer_wnd1, WM_TIMER
hwnd_1 = hwnd
SetTimer hwnd_1, 0, 300, 0
screen 1, 200, 100
oncmd gosub *on_timer_wnd2, WM_TIMER
hwnd_2 = hwnd
SetTimer hwnd_2, 0, 500, 0
stop
*on_timer_wnd1
gsel 0
redraw 0
color 255, 255, 255 : boxf : color
pos 10, 10 : mes wnd1_cnt
redraw 1
wnd1_cnt++
return
*on_timer_wnd2
gsel 1
redraw 0
color 255, 255, 255 : boxf : color
pos 10, 10 : mes wnd2_cnt
redraw 1
wnd2_cnt++
return
*on_exit
KillTimer hwnd_1, 0
KillTimer hwnd_2, 0
end
|
|
2013/6/17(Mon) 21:02:50|NO.54991
repeat
picload "画像1.jpg"
wait 100
picload "画像2.jpg"
wait 100
loop
これを同時に行いたいです
|
|
2013/6/17(Mon) 21:16:38|NO.54994
いえ、それは僕もできます
bgscr 0,500,110,,0,0 : cls 4
bgscr 1,140,510,,0,0 : cls 4
picload "画像1.jpg",0
picload "画像2.jpg",1
このスクリプトはウィンドウID0とウィンドウID1を作ります。
picloadで0には画像1.jpg、1には画像2.jpgを貼り付けようとしますが
片方にしか貼り付けることができません。
|
|
2013/6/17(Mon) 21:25:05|NO.54995
それは単にgsel命令を忘れているだけではないですか?
もしかしてpicloadの第二引数(画像ロードモード)をそれと勘違いしているのでしょうか。
|
|
2013/6/17(Mon) 21:29:32|NO.54996
ht.さん、それはどういうことですか?
|
|
2013/6/17(Mon) 21:35:18|NO.54998
gselやpicloadのヘルプを見てください。
gsel命令が描画先を変更すると書いてあるでしょう。
|
|
2013/6/17(Mon) 21:41:18|NO.55002
>>サブ(screen,1)では画像1と画像2が一定間隔で入れ替わるような
・・・と・・・
>>picloadで0には画像1.jpg、1には画像2.jpgを貼り付けようとします
・・・で、何か違和感を感じます。・・・
|
|
2013/6/17(Mon) 22:13:38|NO.55007
buffer 2
picload "画像2.jpg"
bgscr 0,500,110,,0,0 : cls 4 ;スクリーンひとつめ
bgscr 1,140,510,,0,0 : cls 4 ;スクリーンふたつめ
picload "画像2.jpg",0 ;ウィンドウID0番に画像1.jpgを描画
gsel 1,2 ;ウィンドウID1に画像2.jpgを描画
ぼくの見解はこんな感じですが
やっぱりできないですね。。。へるぷもみました
|
|
2013/6/17(Mon) 22:42:01|NO.55014
せめて
bgscr 0,500,110,,0,0 : cls 4
picload "画像1.jpg"
bgscr 1,140,510,,0,0 : cls 4
picload "画像2.jpg"
とでも書けばまだ救われたかも
|
|
2013/6/17(Mon) 22:56:43|NO.55019
>picload "画像2.jpg",0
の0は、描画先のウインドウIDではない。
もう一度picloadのヘルプを見るんだ。
|
|
2013/6/17(Mon) 22:58:28|NO.55020
ついでに言うと、
gselは「描画先」を変更するだけで、描画はされない。
gselのヘルプを見るんだ。
|
|
2013/6/17(Mon) 23:04:02|NO.55022
picload "filename",p1
"filename" : ロードするファイル名
p1=0〜1(0) : 画像ロードモード
gsel p1,p2
p1=0〜(0) : ウィンドウID
p2=0〜2(0) : ウィンドウアクティブスイッチ
htさんの
>>gselやpicloadのヘルプを見てください。
>>gsel命令が描画先を変更すると書いてあるでしょう。
と書かれたので
bufferなどで保存して・・・
ってやるといけるものかと思ってました><
|
|
2013/6/18(Tue) 08:41:14|NO.55033
gsel screen bgscr buffer は 描画先ウィンドウを変更します。
picload を含め
gcopy
mes
boxf
line
等
hspのすべての描画系命令は gsel で最後に指定されたウィンドウID に対して動作します。
|
|