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


HSPTV!掲示板


未解決 解決 停止 削除要請

2019
0303
TCCフェードアウトのアニメーション2解決


TCC

リンク

2019/3/3(Sun) 14:26:49|NO.86790

カーソルキーで動く■があります。
スペースキーが押されたら、3秒間(後で変えられるようにしたい)でフェードアウトしたいです。
フェードアウト中もカーソルキーは効くようにしたいです。
フェードアウト完了後、再びスペースキーが押されたら、
3秒間でフェードインしたいです。

やり方を教えていただけたら幸いです...


xsize = 50 ysize = 50 speed = 3 // boxの左上の座標 posx = (ginfo_winx - xsize) / 2 posy = (ginfo_winy - ysize) / 2 *main_loop repeat stick key, 15 if key & 128 : break // [ESC]パルス if (key & 05) == 1 : posx -= speed // ← if (key & 05) == 4 : posx += speed // → if (key & 10) == 2 : posy -= speed // ↑ if (key & 10) == 8 : posy += speed // ↓ posx = limit(posx, 0, ginfo_winx - xsize) posy = limit(posy, 0, ginfo_winy - ysize) if key & 16 { // [SPACE]パルス //??? } redraw 0 color 255, 255, 255 boxf color ,,255 boxf posx, posy, posx+xsize, posy+ysize redraw 1 await 1000/60 loop wait 10 end



この記事に返信する


ham

リンク

2019/3/3(Sun) 17:02:59|NO.86791

boxfだと透明が使えないのでgrectで代用しましたが
こういう感じでしょうか。

xsize = 50 ysize = 50 speed = 3 alpha = 256.0 // 不透明度(0〜256) fadespeed = 1.422222 // フェード速度 256÷180(3秒なら60×3で180)=1.422222 // boxの左上の座標 posx = (ginfo_winx - xsize) / 2 posy = (ginfo_winy - ysize) / 2 *main_loop repeat stick key, 15 if key & 128 : break // [ESC]パルス if (key & 05) == 1 : posx -= speed // ← if (key & 05) == 4 : posx += speed // → if (key & 10) == 2 : posy -= speed // ↑ if (key & 10) == 8 : posy += speed // ↓ posx = limit(posx, 0, ginfo_winx - xsize) posy = limit(posy, 0, ginfo_winy - ysize) if key & 16 { // [SPACE]パルス if alpha>=256|alpha<=0 : fade ^= 1 // フェードが終わっている場合、フェード イン/オフを切り替え } if fade=0&alpha<256 : alpha+fadespeed :else: if fade=1&alpha>0 : alpha-fadespeed // フェード redraw 0 color 255, 255, 255 boxf color ,,255 gmode 3,xsize,ysize,alpha grect posx+xsize/2, posy+ysize/2 redraw 1 await 1000/60 loop wait 10 end



TCC

リンク

2019/3/4(Mon) 21:00:29|NO.86819

すみません、返信が遅れました。
gmodeを使えば良かったんですね!
ありがとうございました。



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