2017年 12月31日
エフェクトの素材は極力借りる事にして、まずどういうエフェクトかチェックする「エフェクトチェッカー」を作った。
別にサイトのサンプルで決めてもいいし、RPGツクール用なんだろうから普通はそちらでチェックできるんだろうけど、こちらは HSPだからねえ。
こんな感じ
← →でエフェクト切り替え
↑で表示開始
↓でアニメの切り替え時間変更
fpcって書いてある数字だけど、自分の場合 fpsは 20で固定している(1秒に
20回表示)ので、これは何回カウントしたら次の表示にするかになってる。
つまり 2だったら fps10相当のスピードになる。
spaceキーで反転表示切り替え
tabと Enterで表示濃度を +-する
ctrlキーで透明と加算を切り替える
透明は gmde3、加算は gmode5、透明の 255濃度で 100%上書き表示になる。
加算は光ったような表示になるが、背景が明るいと見えづらい。
数字キーの 1、2、3で表示の仕方を変える
1は一回だけ、2は繰り返し、3は表示が終わったら次のエフェクトに順次移る。
数字キーの 4、5で回転表示を +-する
赤い数字がそれ
緑表示の x、yは画像の大きさ、aはアニメの数だ。
右下の窓は、そのエフェクトの背景が透明かそれ以外か見るためのもの。
なぜかと言うと、透明だと加算でなくても背景色を抜いてくれるのだが、例えば背景が黒だと抜いてくれないらしい。
こんな感じ
(「表示」の所に透明と加算と切り替えて書いてあるのに注意)
この場合、加算表示で使う事になる
妖精の上にも表示しているが、背景が明るいと分かりづらいと思う。
ではソースを公開する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 |
/////// エフェクトチェッカー //////////////////////////// ;Effects Checker ; 操作説明 ; ↑ : 表示開始 ; ← or → : グラNo.切り替え ; ↓ ; コマ送りウエイト数増減 ; Tab or Enter ; ブレンド率増減 ; Ctrl ; 透明、加算、切り替え ; space ; 反転表示切り替え ; 1 ; 連続表示切替、1回 ; 2 ; 固定連続 ; 3 ; 送り連続 ; 4 ; 回転+ ; 5 ; 回転- #include "hsp3dish.as" gosub *main : end #deffunc put ; 表示 ------------------------------------ redraw 0 color 0,0,0 : boxf : color 255,255,255 pos 30,12 : mes ps(pn) gmode 2 pos x1 ,y1 : celput 1001,gr(0) pos x1+96 ,y1 : celput 1001,gr(1) pos x1+192,y1 : celput 1001,gr(2) gmode pm,,,br ; グラのブレンド率 if f=1 : pos x1-20+pcx(pn),y1+5+pcy(pn) : celput pn,c,hx(hn),hy(hn),kai pos x2-20+pcx(pn),y2+5+pcy(pn) : celput pn,c,hx(hn),hy(hn),kai pos x3,y3 : mes "No, "+pn ; グラNo. pos x3,y3+40 : mes hxys(hn) ; 反転表示 pos x3,y3+80 : mes "表示 "+hp(pm); 半透明、加算、フラグ pos x3,y3+120 : mes "濃さ "+br ; ブレンド率 pos x3,y3+160 : mes "fpc "+fpc ; コマ送りウエイト pos x3,y3+200 : mes "cnt "+c ; 表示フレーム color 255,96,96 pos x4,y3+120 : mes kai ; 回転率表示 ; 連続表示モード if rhm=1 : color 160,160,255 : else : color 192,192,192 pos x4,y4 : mes "1 1回" if rhm=2 : color 160,160,255 : else : color 192,192,192 pos x4,y4+30 : mes "2 固定" if rhm=3 : color 160,160,255 : else : color 192,192,192 pos x4,y4+60 : mes "3 送り" ; 抜き色チェック color 128,128,128 : boxf 410,260,640,360 gmode 2 pos 430+pcx(pn),270+pcy(pn) : celput pn,c ; データ color 96,255,96 pos 560,12 : mes "x "+px(pn) pos 560,12+30 : mes "y "+py(pn) pos 560,12+60 : mes "a "+pa(pn) redraw 1 if f=1 : c2+ : if c2=fpc : c2=0 : c+ : if c>=pa(pn) { c=0 if rhm=1 : f=0 ; 1回 if rhm=2 : ; 固定連続 if rhm=3 : pn+ : if pn>gb : pn=1 ; 送り } return *main ; メイン -------------------------------------------- randomize ; 乱数発生 gosub *gr_data ; グラ読み込み celload "../chara.bmp",1001 ; 枠 celdiv 1001,80,130 font "",28 ; 文字の大きさ x1=80 : y1=200 ; 表示座標 x2=80 : y2=55 x3=420: y3=12 x4=545: y4=164 hp="","","","透明","","加算" hx=1.0,-1.0,1.0,-1.0 ; 表示反転データ hy=1.0,1.0,-1.0,-1.0 hxys="正表示","左右反転","上下反転","全反転" kai=0.0 ; 回転 f=0 ; 表示中フラグ pn=1 ; グラNo, pm=3 ; 半透明、加算、フラグ br=255 ; ブレンド率 rhm=1 ; 連続表示モード(1=無、2=pn固定、3=pn順送り) c=0 ; アニメカウンター c2=0 ; コマ送り数カウンター fpc=1 ; 何フレームで1コマ送るか repeat 3 ; 使用mobグラ gr(cnt)=rnd(200) loop repeat ; メインルーチン k=0 : stick k,1+4+32+1024 if k=4 : pn+ : c=0 : c2=0 : if pn>gb : pn=1 ; グラNo.切り替え+ if k=1 : pn- : c=0 : c2=0 : if pn<1 : pn=gb ; グラNo.切り替え- if k=2 : f=1 ; 表示開始 if k=8 : fpc+ : c2=0 : if fpc>4 : fpc=1 ; コマ送りウエイト数 if k=64 : if pm=3 : pm=5 : else : pm=3 ; 透明、加算、切り替え if k=32 : br+ : if br>255 : br=0 ; ブレンド率+ if k=1024 : br- : if br<0 : br=255 ; ブレンド率- if k=16 : hn+ : if hn>3 : hn=0 ; 反転表示切替 getkey k2,49 : if k2 : rhm=1 ; 連続表示モード切り替え getkey k2,50 : if k2 : rhm=2 getkey k2,51 : if k2 : rhm=3 getkey k2,52 : if k2 : kai+=0.1 ; 回転+ getkey k2,53 : if k2 : kai-=0.1 ; 回転- getkey k2,27 : if k2 : return put await 1000/20 loop return #deffunc pds ; データセット pcx(gn)=px(gn)/2 ; 中央x pcy(gn)=py(gn)/2 ; 中央y celload "../pic/"+ps(gn),gn ; 画像読み込み celdiv gn,px(gn),py(gn),pcx(gn),pcy(gn) gn+ return *gr_data ; グラフィックデータ ---------------------------- pb=300 ; エフェクト数 dim px,pb ; 大きさx dim py,pb ; 大きさy dim pcx,pb ; 表示座標x dim pcy,pb ; 表示座標y dim pa,pb ; コマ数 sdim ps,30,pb ; グラ、ファイル名 gn=1 ; グラNo. ps(gn)="pipo-btleffect001.png" px(gn)=120 : py(gn)=120 : pa(gn)=5 pds ps(gn)="pipo-btleffect002.png" px(gn)=120 : py(gn)=120 : pa(gn)=9 pds ps(gn)="pipo-btleffect003.png" px(gn)=120 : py(gn)=120 : pa(gn)=5 pds gb=gn-1 ; 最大 return |
HSPヘコピペすればそのまま使えると思う。
もしバグがあっても各自で対処してください、ハハ。
画像は 2次配布に当たるので、それぞれで用意してください。
これの欠点と言うか、データを全部手入力しなければいけない事。
延々と書かなければいけない(もちろんコピペして修正していくんだけど)
後はデータセットの部分のファイル名
celload “../pic/”+ps(gn),gn ; 画像読み込み
これは一つ上のフォルダに戻って、別の picフォルダに移るという意味だから、ソースと同じフォルダに画像フォルダを置くなら
”pic/”
フォルダを使わずにソースと同じ場所に画像を置くなら、単に
””
となる。
あ、そうそう、それと画面下の方のカード画像は人によって違うだろうから、各自で用意して、ソースもランダム表示になってるけど、その部分は改造してね。
という訳で、自分はこれを見ながらどのエフェクトを使うか選ぶ事にする。
次回の課題は戦闘プログラム中に、どうエフェクト表示を差し込んで、エフェクトのウエイト時間を取るかだねえ、う~ん頭いたい。