#include "hspext.as" #uselib "Hspspi.dll" #func SpiInit SpiInit $26 #func ImageLoad ImageLoad $36 #func GetImageInfo GetImageInfo $36 DirPath=curdir+"\\susiepl":SpiInit DirPath str a:a="表示したい文を\n入力してください":x=600:y=300:c2="MS ゴシック":b2=50:b=20:c=0:d=0:e=0:i=0:x0=0:y0=0:str g2:str u:rv=255:gv=255:bv=255:rva=1:num=0 dim z,22:z.20=400:z.21=100:sdim w,5000,2:sdim o,100,6:o.0=curdir:fil="hspext.dll" flag=0:exist "logo.ini" if strsize>0 {str g3:bload "logo.ini",g3,1,0:int g3} else {flag=1:bcopy fil,"logo.ini"} if (g3!0)&(g3!1):flag=1 if flag=1 {dialog "logo.iniを再構築します",1,"設定ファイルがおかしいですね":g3=0:w.0="0\n\nダイアログボックスの説明が必要なら0、不要なら1にして下さい":bsave "logo.ini",w.0,63} o.2="C:\\Windows\\Fonts":chdir o.2:dirlist w.0,"*.ttf",3:dirlist w.1,"*.ttc",3:chdir o.0 buffer 5,dispx,dispy:cls 4 buffer 7,dispx,dispy:cls 4 dim q,10000,2 buffer 8,dispx,dispy buffer 9,dispx,dispy buffer 10,dispx,dispy:cls 4 font c2,b2,d2:pos x0,y0:color rva,gva,bva:mes a x1=x:y1=y buffer 11,dispx,dispy:cls 4 buffer 12,dispx,dispy:cls 4 buffer 13,dispx,dispy:cls 4 buffer 15,dispx,dispy *st2 screen 3,x,y:title "看板スイスイ":cls redraw 2:gmode 2 pos 0,0:gcopy 9,0,0,x,y pos 0,0:gcopy 5,0,0,x3,y3 pos 0,0:gcopy 11,0,0,x,y pos 0,0:gcopy 12,0,0,x,y if z.13=1 {pos 0,0:gcopy 13,0,0,x,y} pos x0,y0:gcopy 10,0,0,x1,y1 pos 0,0:gcopy 7,0,0,x,y redraw 1 *main gsel 0,1:cls:width 400,320:color 200,200,250:boxf 0,0,400,320 title "看板スイスイ/コントローラー" font "MS ゴシック",12 objmode 2:pos 5,10:mesbox a,200,36,1,50 objsize 45,40:pos 215,5 combox b,155,"10\n12\n14\n16\n18\n20\n22\n24\n26\n28\n30\n32\n34\n36\n38\n40\n42\n44\n46\n48\n50\n54\n58\n62\n66\n70\n80\n90\n100\n120\n140\n160\n200\n250\n300" objsize 132,30:pos 265,5 combox c,150,"MS ゴシック\nMS Pゴシック\nMS 明朝\nMS P明朝\nDFPOP体\nDFPPOP体\nDF特太ゴシック体\nHGゴシックE\nHGPゴシックE\nHGSゴシックE\nHGゴシックM\nHGPゴシックM\nHGSゴシックM\nHG丸ゴシックM-PRO\nHG正楷書体-PRO\nHG行書体\nHGP行書体\nHGS行書体\nHG創英角ゴシックUB\nHGP創英角ゴシックUB\nHGS創英角ゴシックUB\nHG創英角ポップ体\nHGP創英角ポップ体\nHGS創英角ポップ体\nLucida Handwriting\nMatisse ITC\nWestminster\nComic Sans MS\nCopperplate Gothic Light\nCopperplate Gothic Bold\nImpact\nArial Black\nOCR A Extended\nArial Unicode MS\nCentury\nModern\nGungsuh\nMap Symbols\nMT Extra\nSymbol\nWingdings\nWebdings\nMarlett\nMS Outlook" objsize 45,20:pos 220,30:chkbox "太字",d objsize 45,20:pos 280,30:chkbox "斜体",e color 150,150,255:boxf 10,55,390,255 objsize 170,30 pos 25,70:button "画面の縦横サイズ変更",*sizing pos 205,70:button "画像を読み込む",*bmpload pos 25,105:button "文字の色を変える",*coloring pos 205,105:button "背景色変更",*backg pos 25,140:button "文字の位置を変える",*posi pos 205,140:button "背景に枠をつける",*waku pos 25,175:button "字の背後に影をつける",*shadw pos 205,175:button "字の背後に残像をつける",*shad2 pos 25,210 : button "字に縁取りをつける",*around pos 205,210:button "手書きで描き加える",*freehand objsize 60,30:pos 5,270:button "反映",*realize if num>9 {pos 71,270:button "一つ戻す",*undo} else {color 150,150,150:boxf 71,270,131,299:pos 78,278:color 50,50,50:mes "一つ戻す"} pos 137,270:button "全部消す",*again if z.0>0 {pos 203,270:button "上書保存",*resave} else {color 150,150,150:boxf 203,270,263,299:pos 210,278:color 50,50,50:mes "上書保存"} pos 269,270:button "新規保存",*bmpout pos 335,270:button "終わり",*ending objmode 0 gsel 3,1:wait 100:gsel 0,1:stop *realize gsel 0,1:cls:color 200,200,250:boxf 0,0,400,320:color 150,150,255:boxf 10,55,390,255:wait 1 q.9000.1=b2:q.9001.1=d2:o.3=c2:d2=e*2+d if b<21:b2=b*2+10 if (b>20)&(b<26):b2=(b-21)*4+54 if (b>25)&(b<29):b2=(b-26)*10+80 if (b>28)&(b<32):b2=(b-29)*20+120 if b=32:b2=200 if b=33:b2=250 if b=34:b2=300 i=c/10 if i=0 { if c=0 {o.4="MSGOTHIC.TTC":x2=1:c2="MS ゴシック"} if c=1 {o.4="MSGOTHIC.TTC":x2=1:c2="MS Pゴシック"} if c=2 {o.4="MSMINCHO.TTC":x2=1:c2="MS 明朝"} if c=3 {o.4="MSMINCHO.TTC":x2=1:c2="MS P明朝"} if c=4 {o.4="dfpop.TTC":x2=1:c2="DFPOP体"} if c=5 {o.4="dfpop.TTC":x2=1:c2="DFPPOP体"} if c=6 {o.4="dfgoteb.TTC":x2=1:c2="DF特太ゴシック体"} if c=7 {o.4="HGRGE.TTC":x2=1:c2="HGゴシックE"} if c=8 {o.4="HGRGE.TTC":x2=1:c2="HGPゴシックE"} if c=9 {o.4="HGRGE.TTC":x2=1:c2="HGSゴシックE"} } if i=1 { if c=10 {o.4="HGRGM.TTC":x2=1:c2="HGゴシックM"} if c=11 {o.4="HGRGM.TTC":x2=1:c2="HGPゴシックM"} if c=12 {o.4="HGRGM.TTC":x2=1:c2="HGSゴシックM"} if c=13 {o.4="HGRSMP.TTF":x2=0:c2="HG丸ゴシックM-PRO"} if c=14 {o.4="HGRSKP.TTF":x2=0:c2="HG正楷書体-PRO"} if c=15 {o.4="HGRGY.TTC":x2=1:c2="HG行書体"} if c=16 {o.4="HGRGY.TTC":x2=1:c2="HGP行書体"} if c=17 {o.4="HGRGY.TTC":x2=1:c2="HGS行書体"} if c=18 {o.4="HGRSGU.TTC":x2=1:c2="HG創英角ゴシックUB"} if c=19 {o.4="HGRSGU.TTC":x2=1:c2="HGP創英角ゴシックUB"} } if i=2 { if c=20 {o.4="HGRSGU.TTC":x2=1:c2="HGS創英角ゴシックUB"} if c=21 {o.4="HGRPP1.TTC":x2=1:c2="HG創英角ポップ体"} if c=22 {o.4="HGRPP1.TTC":x2=1:c2="HGP創英角ポップ体"} if c=23 {o.4="HGRPP1.TTC":x2=1:c2="HGS創英角ポップ体"} if c=24 {o.4="LHANDW.TTF":x2=0:c2="Lucida Handwriting"} if c=25 {o.4="MATISSE_.TTF":x2=0:c2="Matisse ITC"} if c=26 {o.4="WESTM.TTF":x2=0:c2="Westminster"} if c=27 {o.4="COMIC.TTF":x2=0:c2="Comic Sans MS"} if c=28 {o.4="COPRGTL.TTF":x2=0:c2="Copperplate Gothic Light"} if c=29 {o.4="COPRGTB.TTF":x2=0:c2="Copperplate Gothic Bold"} } if i=3 { if c=30 {o.4="IMPACT.TTF":x2=0:c2="Impact"} if c=31 {o.4="ARIBLK.TTF":x2=0:c2="Arial Black"} if c=32 {o.4="OCRAEXT.TTF":x2=0:c2="OCR A Extended"} if c=33 {o.4="ARIALUNI.TTF":x2=0:c2="Arial Unicode MS"} if c=34 {o.4="CENTURY.TTF":x2=0:c2="Century"} if c=35 {x2=2:c2="Modern"} if c=36 {o.4="BATANG.TTC":x2=1:c2="Gungsuh"} if c=37 {x2=2:c2="Map Symbols"} if c=38 {x2=2:c2="MT Extra"} if c=39 {o.4="SYMBOL.TTF":x2=0:c2="Symbol"} } if i=4 { if c=40 {o.4="WINGDING.TTF":x2=0:c2="Wingdings"} if c=41 {o.4="WEBDINGS.TTF":x2=0:c2="Webdings"} if c=42 {x2=2:c2="Marlett"} if c=43 {o.4="OUTLOOK.TTF":x2=0:c2="MS Outlook"} } if x2=0 {instr i,w.0,o.4,0:flag=-1} if x2=1 {instr flag,w.1,o.4,0:i=-1} if x2=2:i=0 if (i=-1)&(flag=-1):dialog "指定されたフォントを\n発見できませんでした",1 gsel 10,1:cls 4:font c2,b2,d2:pos 0,0:color rva,gva,bva:mes a:x1=x:y1=y:wait 1 strlen i,a if i!0 {q.9002.1=z.20:q.9003.1=z.21 x2=x:y2=0:repeat x*y:pget x2,y2 if (rval=rva)&(gval=gva)&(bval=bva) : break y2++ if y2>y {y2=0:x2--} loop z.20=x2 x2=0:y2=y:repeat x*y:pget x2,y2 if (rval=rva)&(gval=gva)&(bval=bva) : break x2++ if x2>z.20 {x2=0:y2--} loop z.21=y2 if (z.20\10!0):z.20=10-(z.20\10)+z.20 if (z.21\10!0):z.21=10-(z.21\10)+z.21 } if num!23:num=22 goto *st2 *undo if (num=10)|(num=13) {gsel 10,1:cls 4:pos 0,0:gcopy 15,0,0,x,y} if num=11 {x=q.9002.1:y=q.9003.1:buffer 5,dispx,dispy:cls 4:gmode 0:pos 0,0:gcopy 15,0,0,x,y} if (num=12)|(num=20)|(num=23) {gsel 9,1:cls 4:pos 0,0:gcopy 15,0,0,x,y} if num=14 {x=q.9002.1:y=q.9003.1} if num=15 {x0=q.9004.1:y0=q.9005.1:y2=q.9006.1:y2=q.9007.1 if z.11!0 {gsel 15,1:cls 4:pos 0,0:gcopy 11,x2,y2,dispx,dispy:gsel 11,1:cls 4:pos 0,0:gcopy 15,0,0,dispx,dispy} if z.12=1 {gsel 15,1:cls 4:pos 0,0:gcopy 12,x2,y2,dispx,dispy:gsel 12,1:cls 4:pos 0,0:gcopy 15,0,0,dispx,dispy} if z.13=1 {gsel 15,1:cls 4:pos 0,0:gcopy 13,x2,y2,dispx,dispy:gsel 13,1:cls 4:pos 0,0:gcopy 15,0,0,dispx,dispy} wait 10 } if (num>16)&(num<20) {i=num-6:gsel i,1:cls 4:pos 0,0:gcopy 15,0,0,x,y} if num=21 {gsel 7,1:cls 4:pos 0,0:gcopy 15,0,0,x,y} if num=22 {b2=q.9000.1:d2=q.9001.1:c2=o.3:z.20=q.9002.1:z.21=q.9003.1 if b2=300:b=34 if b2=250:b=33 if b2=200:b=32 if (b2>119)&(b2<161):b=b2-120/20+29 if (b2>79)&(b2<101):b=b2-80/10+26 if (b2>53)&(b2<71):b=b2-54/4+21 if b2<51:b=b2-10/2 if c2="MS ゴシック":c=0 if c2="MS Pゴシック":c=1 if c2="MS 明朝":c=2 if c2="MS P明朝":c=3 if c2="DFPOP体":c=4 if c2="DFPPOP体":c=5 if c2="DF特太ゴシック体":c=6 if c2="HGゴシックE":c=7 if c2="HGPゴシックE":c=8 if c2="HGSゴシックE":c=9 if c2="HGゴシックM":c=10 if c2="HGPゴシックM":c=11 if c2="HGSゴシックM":c=12 if c2="HG丸ゴシックM-PRO":c=13 if c2="HG正楷書体-PRO":c=14 if c2="HG行書体":c=15 if c2="HGP行書体":c=16 if c2="HGS行書体":c=17 if c2="HG創英角ゴシックUB":c=18 if c2="HGP創英角ゴシックUB":c=19 if c2="HGS創英角ゴシックUB":c=20 if c2="HG創英角ポップ体":c=21 if c2="HGP創英角ポップ体":c=22 if c2="HGS創英角ポップ体":c=23 if c2="Lucida Handwriting":c=24 if c2="Matisse ITC":c=25 if c2="Westminster":c=26 if c2="Comic Sans MS":c=27 if c2="Copperplate Gothic Light":c=28 if c2="Copperplate Gothic Bold":c=29 if c2="Impact":c=30 if c2="Arial Black":c=31 if c2="OCR A Extended":c=32 if c2="Arial Unicode MS":c=33 if c2="Century":c=34 if c2="Modern":c=35 if c2="Gungsuh":c=36 if c2="Map Symbols":c=37 if c2="MT Extra":c=38 if c2="Symbol":c=39 if c2="Wingdings":c=40 if c2="Webdings":c=41 if c2="Marlett":c=42 if c2="MS Outlook":c=43 d=d2\2:e=d2/2 goto *realize } num=0 goto *st2 *again gsel 15,1:cls:pos 0,0:gcopy 3,0,0,x,y:a="" x=600:y=300:b=20:c=0:d=0:e=0:x0=0:y0=0 gsel 5,1:cls 4 repeat 7,7:gsel cnt,1:cls 4:loop gsel 9,1:cls 0 repeat 13,1:z.cnt=0:loop z.20=0:z.21=0:num=23 goto *realize *bmpload gsel 0,1:cls 4:width 135,125 flag=0 font "",14:color 255,140,140:pos 15,5:mes "[画像を読み込む]" font "",12:color 255,255,0:objmode 2:pos 5,27:mes "どこに読み込みますか?" objsize 92,20:pos 10,45:button "背景に",*bmphk pos 10,70:button "文字に",*bmpmj pos 50,100:objsize 70,20:button "キャンセル",*main objmode 0 stop *bmpmj flag=1 *bmphk dialog "bmp;jpg;png;mag",16,"画像ファイル" if stat=0:goto *bmpload gsel 8,1:cls 4 gmode 2:pos 0,0:gcopy 5,0,0,x,y gsel 5,1:u=refstr:instr z.17,u,"bmp" if z.17<0 {instr z.17,u,"jpg"} if z.17<0 {instr z.17,u,"mag"} if z.17<0 {GetImageInfo refstr,0:x2=stat:GetImageInfo refstr,1:y2=stat:ImageLoad refstr} else {picload u:x2=winx:y2=winy} if flag=1:goto *picmj chdir o.0:dialog "画像の濃さを変えますか?\n(変えると画像が256色になります)",2 if stat=6 { gsel 0,1:cls 4:width 170,100:objmode 2 color 255,255,0:pos 25,4:mes "【画像の濃さの変更】" pos 2,27:mes "元の文字より" rv=0:gv=0 pos 75,24:input rv,22,20,2 pos 100,27:mes "%" objsize 50,30:pos 114,24:combox gv,50,"薄く\n濃く" objsize 70,20:pos 13,62:button "OK",*fade pos 89,62:button "キャンセル",*ldnext objmode 0 stop } *ldnext dialog "このままだと黒い部分が透明になりますが、直しますか?\n(処理には少し時間がかかります)",2 if stat=7:goto *bmpld2 gsel 0,1:cls 4:width 155,70 color 255,0,0:font "HG正楷書体-PRO",22:pos 2,25:mes "しばしお待ちを" font "MS ゴシック",12:wait 10 gsel 5,1 rv=0:gv=0 repeat pget rv,gv if (rval=0)&(gval=0)&(bval=0) {color 1,0,0:pset rv,gv} rv++ if rv>x2 {rv=0:gv++} if gv>y2:break loop wait 10 *bmpld2 gsel 3,1 if (xx2)|(y>y2) {dialog "画像が画面より小さいですね",1:flag=2:goto *pichan} q.9002.1=x:q.9003.1=y gsel 15,1:cls 4:gmode 0:pos 0,0:gcopy 8,0,0,x,y num=11 gsel 8,1:cls 4:gmode 0:pos 0,0:gcopy 5,0,0,x2,y2 buffer 5,dispx,dispy:cls 4:gmode 2:pos 0,0:gcopy 8,0,0,x,y if z.0!1 {z.0=2:o.5=refstr} y3=y2:x3=x2:goto *st2 *fade if rv=0:goto *ldnext if (x2\4)!0:rv2=4-(x2\4)+x2:else:rv2=x2 buffer 5,rv2,y2,1 if z.17<0:ImageLoad refstr:else:picload u chdir o.0 if gv=1:rv=rv*256/100*-1:else:rv=rv*256/100 palfade rv,0,255:redraw 1 gsel 15,1:cls 4:gcopy 5,0,0,rv2,y2 buffer 5,rv2,y2,0:gcopy 15,0,0,rv2,y2 screen 0,600,400,0:cls 4:width 200,100:font "",12 if rv>0:goto *bmpld2:else:goto *ldnext *pichan gsel 0,1:cls 4:width 200,140 objmode 2:objsize 150,25 if flag=1:title "画像が画面より大きいから":else:title "画像が画面より小さいから" pos 25,10:button "画面を画像に合わせる",*gamen pos 25,40:button "画像を画面に合わせる",*gazou pos 25,70:button "そのまま読み込む",*just objsize 100,30:pos 50,105:button "キャンセル",*main objmode 0 stop *gamen cls 4:width 130,150 objmode 2:objsize 80,25 title "画面サイズ変更" color 255,255,0:pos 20,1:mes "画像に合わせて\n変更するのは" if x2<104 {dialog "ヨコは104以上にしなきゃならないんだけど\nこれじゃあ小さすぎるね",0} pos 25,30:button "タテだけ",*onlytate if x2>103 {pos 25,60:button "ヨコだけ",*onlyyoko} else {color 150,150,150:boxf 25,60,103,84 pos 41,66:color 50,50,50:mes "ヨコだけ"} if x2>103 {pos 25,90:button "縦横ともに",*tateyoko} else {color 150,150,150:boxf 25,90,103,114 pos 35,96:color 50,50,50:mes "縦横ともに"} objsize 100,25:pos 15,120:button "キャンセル",*pichan objmode 0 stop *onlytate if (x2\4)!0:x2=4-(x2\4)+x2 q.9002.1=x:q.9003.1=y:y3=y2:x3=x2:y=y2:x2=x goto *shime0 *onlyyoko if (x2\4)!0 {dialog "ヨコは4の倍数じゃないとバグるんで\n調整するよ?",2 if stat=7:goto *gamen x2=4-(x2\4)+x2 } q.9002.1=x:q.9003.1=y:y3=y:x3=x2:x=x2:y2=y goto *shime0 *tateyoko if (x2\4)!0 {dialog "ヨコは4の倍数じゃないとバグるんで\n調整するよ?",2 if stat=7:goto *gamen x2=4-(x2\4)+x2} q.9002.1=x:q.9003.1=y:y3=y2:x3=x2:x=x2:y=y2 goto *shime0 *shime0 gsel 15,1:cls 4:pos 0,0:gmode 0:gcopy 5,0,0,x3,y3 buffer 5,dispx,dispy:cls 4:pos 0,0:gmode 2:gcopy 15,0,0,x,y gsel 15,1:cls 4:pos 0,0:gcopy 8,0,0,q.9002.1,q.9003.1 num=11 if z.0!1 {z.0=2:o.5=refstr} goto *st2 *gazou cls 4:width 130,140 objmode 2:objsize 90,25 title "画像の調整" color 255,255,0:pos 18,1 if flag=1:mes "画像を縮小します":else:mes "画像を拡大します" pos 8,17:mes "縦横どちらを\n画面と合わせますか?" pos 20,45:button "タテをそろえる",*onlytt pos 20,75:button "ヨコをそろえる",*onlyyk objsize 100,25:pos 15,110:button "キャンセル",*pichan objmode 0 stop *onlytt if y2>y:flag=0:else:flag=1 rv=y*10000/y2 *shime2 gsel 15,1:cls 4:gmode 2:pos 0,0:gcopy 8,0,0,x,y gsel 8,1:cls 0 if flag=0 {gv=x2*rv/10000:bv=y2*rv/10000} else {gv=x2*rv/10000:bv=y2*rv/10000} pos 0,0:gzoom gv,bv,5,0,0,x2,y2 q.9002.1=x:q.9003.1=y:x2=gv:y2=bv num=11 buffer 5,dispx,dispy:cls 4:gmode 2:pos 0,0:gcopy 8,0,0,x2,y2 if z.0!1 {z.0=2:o.5=refstr} y3=y2:x3=x2 goto *st2 *onlyyk if x2>x:flag=0:else:flag=1 rv=x*10000/x2 goto *shime2 *just gsel 0,1:cls 4:width 250,250 objmode 2:objsize 70,25 title "画像表示位置の調整" color 255,255,0:pos 18,3:mes "どこを基準にして画像を表示しますか?" color 0,0,100:boxf 0,30,250,154 pos 0,30:button "左上に表示",*leftup pos 0,80:button "左中に表示",*leftmid pos 0,130:button "左下に表示",*leftdown pos 90,30:button "中上に表示",*centerup pos 90,80:button "中央に表示",*cente pos 90,130:button "中下に表示",*centedown pos 180,30:button "右上に表示",*rightup pos 180,80:button "右中に表示",*rightmid pos 180,130:button "右下に表示",*rightdown if (x2y2 {flag=0:rv=y/2-(y2/2)} else {flag=1:rv=y2/2-(y/2)} gsel 15,1:cls 4:gmode 2:pos 0,0:gcopy 8,0,0,x,y gsel 8,1:cls 4:gmode 0 if flag=0 {pos 0,rv:gcopy 5,0,0,x2,y2} else {pos 0,0:gcopy 5,0,rv,x2,y2} x2=x:y2=y goto *shime3 *leftdown if y>y2 {flag=0:rv=y-y2} else {flag=1:rv=y2-y} gsel 15,1:cls 4:gmode 2:pos 0,0:gcopy 8,0,0,x,y gsel 8,1:cls 4:gmode 0 if flag=0 {pos 0,rv:gcopy 5,0,0,x2,y2} else {pos 0,0:gcopy 5,0,rv,x2,y2} x2=x:y2=y goto *shime3 *centerup if x>x2 {flag=0:rv=x/2-(x2/2)} else {flag=1:rv=x2/2-(x/2)} gsel 15,1:cls 4:gmode 2:pos 0,0:gcopy 8,0,0,x,y gsel 8,1:cls 4:gmode 0 if flag=0 {pos rv,0:gcopy 5,0,0,x2,y2} else {pos 0,0:gcopy 5,rv,0,x2,y2} x2=x:y2=y goto *shime3 *cente if y>y2 {flag=0:gv=y/2-(y2/2)} else {flag=1:gv=y2/2-(y/2)} if x>x2 {rv=x/2-(x2/2)} else {flag+=2:rv=x2/2-(x/2)} gsel 15,1:cls 4:gmode 2:pos 0,0:gcopy 8,0,0,x,y gsel 8,1:cls 4:gmode 0 if flag=0 {pos rv,gv:gcopy 5,0,0,x2,y2} if flag=1 {gmode 0:pos rv,0:gcopy 5,0,gv,x2,y2} if flag=2 {pos 0,gv:gcopy 5,rv,0,x2,y2} if flag=3 {pos 0,0:gcopy 5,rv,gv,x2,y2} x2=x:y2=y goto *shime3 *centedown if y>y2 {flag=0:gv=y-y2} else {flag=1:gv=y2-y} if x>x2 {rv=x/2-(x2/2)} else {flag+=2:rv=x2/2-(x/2)} gsel 15,1:cls 4:gmode 2:pos 0,0:gcopy 8,0,0,x,y gsel 8,1:cls 4:gmode 0 if flag=0 {pos rv,gv:gcopy 5,0,0,x2,y2} if flag=1 {gmode 0:pos rv,0:gcopy 5,0,gv,x2,y2} if flag=2 {pos 0,gv:gcopy 5,rv,0,x2,y2} if flag=3 {pos 0,0:gcopy 5,rv,gv,x2,y2} x2=x:y2=y goto *shime3 *rightup if x>x2 {flag=0:rv=x-x2} else {flag=1:rv=x2-x} gsel 15,1:cls 4:gmode 2:pos 0,0:gcopy 8,0,0,x,y gsel 8,1:cls 4:gmode 0 if flag=0 {pos rv,0:gcopy 5,0,0,x2,y2} else {pos 0,0:gcopy 5,rv,0,x2,y2} x2=x:y2=y goto *shime3 *rightmid if y>y2 {flag=0:gv=y/2-(y2/2)} else {flag=1:gv=y2/2-(y/2)} if x>x2 {rv=x-x2} else {flag+=2:rv=x2-x} gsel 15,1:cls 4:gmode 2:pos 0,0:gcopy 8,0,0,x,y gsel 8,1:cls 4:gmode 0 if flag=0 {pos rv,gv:gcopy 5,0,0,x2,y2} if flag=1 {gmode 0:pos rv,0:gcopy 5,0,gv,x2,y2} if flag=2 {pos 0,gv:gcopy 5,rv,0,x2,y2} if flag=3 {pos 0,0:gcopy 5,rv,gv,x2,y2} x2=x:y2=y goto *shime3 *rightdown if y>y2 {flag=0:gv=y-y2} else {flag=1:gv=y2-y} if x>x2 {rv=x-x2} else {flag+=2:rv=x2-x} gsel 15,1:cls 4:gmode 2:pos 0,0:gcopy 8,0,0,x,y gsel 8,1:cls 4:gmode 0 if flag=0 {pos rv,gv:gcopy 5,0,0,x2,y2} if flag=1 {pos rv,0:gcopy 5,0,gv,x2,y2} if flag=2 {pos 0,gv:gcopy 5,rv,0,x2,y2} if flag=3 {pos 0,0:gcopy 5,rv,gv,x2,y2} x2=x:y2=y goto *shime3 *narabe gsel 0,1:cls 4:width 250,205 objmode 2:objsize 70,25 title "画像並べ始め位置の選択" color 255,255,0:pos 25,3:mes "どこを基準にして画像を並べますか?" color 0,0,100:boxf 0,30,250,154 if x>x2 {flag=0:rv=x/x2 if (x\x2)!0 {rv++} } else {flag=1:rv=1} if y>y2 {gv=y/y2 if (y\y2)!0 {gv++} } else {flag+=2:gv=1} rv3=x/2-(x2/2):gv3=y/2-(y2/2) pos 0,30:button "左上から",*leftup2 pos 0,80:button "左中から",*leftmid2 pos 0,130:button "左下から",*leftdown2 pos 90,30:button "中上から",*centerup2 pos 90,80:button "中央から",*cente2 pos 90,130:button "中下から",*centedown2 pos 180,30:button "右上から",*rightup2 pos 180,80:button "右中から",*rightmid2 pos 180,130:button "右下から",*rightdown2 objsize 80,25:pos 85,170:button "キャンセル",*just objmode 0 stop *leftup2 gsel 15,1:cls 4:gmode 2:pos 0,0:gcopy 8,0,0,x,y gsel 8,1:cls 4:gmode 0 if flag=0 {rv2=0:gv2=0:repeat gv:repeat rv:pos x2*rv2,y2*gv2:gcopy 5,0,0,x2,y2:rv2++:loop:rv2=0:gv2++:loop} if flag=1 {repeat gv:pos 0,y2*cnt:gcopy 5,0,0,x2,y2:loop} if flag=2 {repeat rv:pos x2*cnt,0:gcopy 5,0,0,x2,y2:loop} goto *shime3 *leftmid2 gsel 15,1:cls 4:gmode 2:pos 0,0:gcopy 8,0,0,x,y gsel 8,1:cls 4:gmode 0 if flag=0 { rv2=0:repeat rv gv2=0:repeat gv/2+1 bv=y2*gv2+gv3:pos x2*rv2,bv:gcopy 5,0,0,x2,y2 gv2++ loop gv2=1:repeat gv/2 bv=gv3-(y2*gv2):pos x2*rv2,bv:gcopy 5,0,0,x2,y2 gv2++ loop rv2++ loop } if flag=1 {repeat gv/2+1:pos 0,y2*cnt+gv3:gcopy 5,0,0,x2,y2:loop:repeat gv/2,1:gv2=gv3-(y2*cnt):pos 0,gv2:gcopy 5,0,0,x2,y2:loop} if flag=2 {repeat rv:pos x2*cnt,gv3:gcopy 5,0,0,x2,y2:loop} goto *shime3 *leftdown2 gsel 15,1:cls 4:gmode 2:pos 0,0:gcopy 8,0,0,x,y gsel 8,1:cls 4:gmode 0 if flag=0 {rv2=0:gv2=1:repeat gv:bv=y-(y2*gv2):repeat rv:pos x2*rv2,bv:gcopy 5,0,0,x2,y2:rv2++:loop:rv2=0:gv2++:loop} if flag=1 {repeat gv,1:bv=y-(y2*cnt):pos 0,bv:gcopy 5,0,0,x2,y2:loop} if flag=2 {repeat rv:pos x2*cnt,y-y2:gcopy 5,0,0,x2,y2:loop} goto *shime3 *centerup2 gsel 15,1:cls 4:gmode 2:pos 0,0:gcopy 8,0,0,x,y gsel 8,1:cls 4:gmode 0 if flag=0 { gv2=0:repeat gv bv2=y2*gv2:rv2=0 repeat rv/2+1 bv=x2*rv2+rv3:pos bv,bv2:gcopy 5,0,0,x2,y2 rv2++ loop rv2=1:repeat rv/2 bv=rv3-(x2*rv2):pos bv,bv2:gcopy 5,0,0,x2,y2 rv2++ loop gv2++ loop } if flag=1 {repeat gv:pos rv3,y2*cnt:gcopy 5,0,0,x2,y2:loop} if flag=2 {repeat rv/2+1:bv=x2*cnt+rv3:pos bv,0:gcopy 5,0,0,x2,y2:loop:repeat rv/2,1:bv=rv3-(x2*cnt):pos bv,0:gcopy 5,0,0,x2,y2:loop} goto *shime3 *cente2 gsel 15,1:cls 4:gmode 2:pos 0,0:gcopy 8,0,0,x,y gsel 8,1:cls 4:gmode 0 if flag=0 { gv2=0:repeat gv/2+1 bv2=y2*gv2+gv3:rv2=0 repeat rv/2+1 bv=x2*rv2+rv3:pos bv,bv2:gcopy 5,0,0,x2,y2 rv2++ loop rv2=1:repeat rv/2 bv=rv3-(x2*rv2):pos bv,bv2:gcopy 5,0,0,x2,y2 rv2++ loop gv2++ loop gv2=0:repeat gv/2+1 bv2=gv3-(y2*gv2) rv2=0:repeat rv/2+1 bv=x2*rv2+rv3:pos bv,bv2:gcopy 5,0,0,x2,y2 rv2++ loop rv2=1:repeat rv/2 bv=rv3-(x2*rv2):pos bv,bv2:gcopy 5,0,0,x2,y2 rv2++ loop gv2++ loop } if flag=1 {repeat gv/2+1:pos rv3,y2*cnt+gv3:gcopy 5,0,0,x2,y2:loop:repeat gv/2,1:gv2=gv3-(y2*cnt):pos rv3,gv2:gcopy 5,0,0,x2,y2:loop} if flag=2 { repeat rv/2+1 bv=x2*cnt+rv3:pos bv,gv3:gcopy 5,0,0,x2,y2 loop repeat rv/2,1 bv=rv3-(x2*cnt):pos bv,gv3:gcopy 5,0,0,x2,y2 loop } goto *shime3 *centedown2 gsel 15,1:cls 4:gmode 2:pos 0,0:gcopy 8,0,0,x,y:gsel 8,1:cls 4:gmode 0 if flag=0 { gv2=1:repeat gv bv2=y-(y2*gv2) rv2=0:repeat rv/2+1 bv=x2*rv2+rv3:pos bv,bv2:gcopy 5,0,0,x2,y2 rv2++ loop rv2=1:repeat rv/2 bv=rv3-(x2*rv2):pos bv,bv2:gcopy 5,0,0,x2,y2 rv2++ loop gv2++ loop } if flag=1 {repeat gv,1:bv2=y-(y2*cnt):pos rv3,bv2:gcopy 5,0,0,x2,y2:loop} if flag=2 {repeat rv/2+1:bv=x2*cnt+rv3:pos bv,y-y2:gcopy 5,0,0,x2,y2:loop:repeat rv/2,1:bv=rv3-(x2*cnt):pos bv,y-y2:gcopy 5,0,0,x2,y2:loop} goto *shime3 *rightup2 gsel 15,1:cls 4:gmode 2:pos 0,0:gcopy 8,0,0,x,y gsel 8,1:cls 4:gmode 0 if flag=0 {rv2=1:gv2=0:repeat gv:repeat rv:bv=x-(x2*rv2):pos bv,y2*gv2:gcopy 5,0,0,x2,y2:rv2++:loop:rv2=1:gv2++:loop} if flag=1 {repeat gv:pos x-x2,y2*cnt:gcopy 5,0,0,x2,y2:loop} if flag=2 {repeat rv,1:bv=x-(x2*cnt):pos bv,0:gcopy 5,0,0,x2,y2:loop} goto *shime3 *rightmid2 gsel 15,1:cls 4:gmode 2:pos 0,0:gcopy 8,0,0,x,y gsel 8,1:cls 4:gmode 0 if flag=0 { rv2=1:repeat rv bv2=x-(x2*rv2) gv2=0:repeat gv/2+1:bv=y2*gv2+gv3:pos bv2,bv:gcopy 5,0,0,x2,y2:gv2++:loop gv2=1:repeat gv/2:bv=gv3-(y2*gv2):pos bv2,bv:gcopy 5,0,0,x2,y2:gv2++:loop rv2++ loop } if flag=1 {repeat gv/2+1:pos x-x2,y2*cnt+gv3:gcopy 5,0,0,x2,y2:loop:repeat gv/2,1:gv2=gv3-(y2*cnt):pos x-x2,gv2:gcopy 5,0,0,x2,y2:loop} if flag=2 {repeat rv,1:bv=x-(x2*cnt):pos bv,gv3:gcopy 5,0,0,x2,y2:loop} goto *shime3 *rightdown2 gsel 15,1:cls 4:gmode 2:pos 0,0:gcopy 8,0,0,x,y:gsel 8,1:cls 4:gmode 0 if flag=0 {rv2=1:gv2=1:repeat gv:bv=y-(y2*gv2):repeat rv:bv2=x-(x2*rv2):pos bv2,bv:gcopy 5,0,0,x2,y2:rv2++:loop:rv2=1:gv2++:loop} if flag=1 {repeat gv,1:bv=y-(y2*cnt):pos 0,bv:gcopy 5,0,0,x2,y2:loop} if flag=2 {repeat rv:pos x2*cnt,y-y2:gcopy 5,0,0,x2,y2:loop} goto *shime3 *picmj flag=0 if x2x2:rv4=x2:else:rv4=z.20 if z.21>y2:gv4=y2:else:gv4=z.21 repeat:pget rv,gv if (rval=255)&(gval=255)&(bval=255) {color 254,255,255:pset rv,gv} if (rval=0)&(gval=0)&(bval=0) {color 1,0,0:pset rv,gv} rv++ if rv>rv4 {rv=0:gv++} if gv>gv4:break loop gsel 15,1:cls 4:gcopy 10,0,0,x,y gsel 10,1:cls 0 if flag=0 {color rva,gva,bva:boxf 0,0,x,y:pos 0,0:gcopy 5,0,0,x2,y2} if flag=1 {i=z.20/x2:num=z.20\x2 if num!0 {i++} repeat i:num=x2*cnt:pos num,0:gcopy 5,0,0,x2,y2:loop:wait 1 } if flag=2 {i=z.21/y2:num=z.21\y2 if num!0 {i++} repeat i:num=y2*cnt:pos 0,num:gcopy 5,0,0,x2,y2:loop:wait 1 } if flag=3 {rv=z.20/x2:num=z.20\x2 if num!0 {rv++} gv=z.21/y2:num=z.21\y2 if num!0 {gv++} i=0:num=0:repeat rv*gv:rv4=x2*i:gv4=y2*num:pos rv4,gv4:gcopy 5,0,0,x2,y2:i++ if i=rv {i=0:num++} loop:wait 5 } buffer 5,dispx,dispy:cls 4:gmode 0:pos 0,0:gcopy 8,0,0,x,y gsel 8,1:cls 0:color 0,0,0:font c2,b2,d2:mes a gsel 10,1:pos 0,0:gmode 2:gcopy 8,0,0,x,y:wait 5 color 0,0,0:boxf 0,z.21,x,y:boxf z.20,0,x,y:wait 1 rv=0:gv=0:repeat pget rv,gv if (rval=255)&(gval=255)&(bval=255) {color 0,0,0:pset rv,gv} rv++ if rv>z.20 {rv=0:gv++} if gv>z.21:break loop wait 10 chdir o.0:z.17=1:num=10 goto *st2 *backg if (z.14!0)&(g3=0) {dialog "このまま実行すると、枠が消えてしまいますが\n      よろしいですか?",2 if stat=7 {goto *main} } gsel 0,1:cls 4:width 210,120 font "",14:color 255,140,140:pos 55,5:mes "[背景色の変更]" font "",12:color 255,255,0:pos 5,32:mes "背景は一色に塗りつぶしますか?":mes "それともグラデーションさせますか?" objmode 2:objsize 92,20:pos 10,65:button "単色",*tanbg pos 110,65:button "グラデーション",*grabg pos 70,92:objsize 70,20:button "キャンセル",*main objmode 0 stop *tanbg if g3=0 {dialog "背景の色を選んでください",0 } else { gsel 0,1:cls 4:width 250,100 font "",30:color 255,255,0:pos 5,20:mes "背景の色を":pos 35,50:mes "選んでください":wait 60 } dialog "",33 if stat=0:goto *main gsel 15,1:pos 0,0:gcopy 9,0,0,x,y:rv=rval:gv=gval:bv=bval if rval=0:rv++ gsel 9,1:color rv,gv,bv:boxf 0,0,x,y num=12 goto *st2 *grabg cls 4:width 160,150 font "",14:color 255,140,140:pos 32,5:mes "[背景色の変更]" font "",12:color 255,255,0:pos 2,30:mes "どの方向に\nグラデーションさせますか?" pos 33,65:mes "左から右へ":pos 33,95:mes "上から下へ" objsize 25,25:pos 100,60:button "→",*yokobg pos 100,90:button "↓",*tatebg objmode 2:objsize 80,20:pos 40,123:button "キャンセル",*backg objmode 0 stop *yokobg flag=0 if g3=0 {dialog "まず左端の色を選んでください",0 } else { gsel 0,1:cls 4:width 250,100 font "",30:color 255,255,0:pos 5,20:mes "まず左端の色を":pos 35,50:mes "選んでください":wait 60 } dialog "",33 if stat=0:goto *grabg rv2=rval:gv2=gval:bv2=bval if rval=0:rv2++ if g3=0 {dialog "次に右端の色を選んでください",0 } else {color 0,0,0:boxf 5,20,95,50:font "",30:color 255,0,0:pos 5,20:mes "次に右":wait 60} dialog "",33 if stat=0:goto *grabg goto *grabg2 *tatebg flag=1 if g3=0 {dialog "まず上端の色を選んでください",0 } else {gsel 0,1:cls 4:width 250,100:font "",30:color 255,255,0:pos 5,20:mes "まず上端の色を":pos 35,50:mes "選んでください":wait 60} dialog "",33 if stat=0:goto *grabg rv2=rval:gv2=gval:bv2=bval if rval=0:rv2++ if g3=0 {dialog "次に下端の色を選んでください",0 } else {color 0,0,0:boxf 5,20,95,50:font "",30:color 255,0,0:pos 5,20:mes "次に下":wait 60} dialog "",33 if stat=0:goto *grabg goto *grabg2 *grabg2 rv3=rval:gv3=gval:bv3=bval if rval=0:rv3++ if (rv2=rv3)&(gv2=gv3)&(bv2=bv3) {dialog "二色とも同じ色だよ?",1:goto *backg} cls 4:width 100,90 pos 5,2:font "",12:color 255,255,0:mes "グラデーションは\n何段階にする?" pos 33,31:mes "(3〜255)" pos 10,52:i=100:input i,35,28,3 objsize 35,30:pos 60,52:button "OK",*ykbg2 stop *ykbg2 q.0.1=rv2*100:q.1.1=gv2*100:q.2.1=bv2*100 if (i<3)|(i>255) {dialog "ちょっとそれは無理かなぁ",1:goto *grabg} if i>2 {i--:rv4=(rv3-rv2)*100/i:gv4=(gv3-gv2)*100/i:bv4=(bv3-bv2)*100/i} gsel 15,1:pos 0,0:gcopy 9,0,0,x,y:gsel 8,1:cls 4 if flag=1:goto *ttbg2 x2=x*100/(i+1) redraw 2 repeat i rv2=rv4*cnt+q.0.1/100:gv2=gv4*cnt+q.1.1/100:bv2=bv4*cnt+q.2.1/100:color rv2,gv2,bv2:y2=x2*cnt/100:flag=x2/100+y2:boxf y2,0,x2+y2,y loop color rv3,gv3,bv3:boxf x-(x2/100),0,x,y gsel 9,1:gmode 2:pos 0,0:gcopy 8,0,0,x,y gsel 8,1 redraw 1 num=12 goto *st2 *ttbg2 y2=y*100/(i+1) redraw 2 repeat i rv2=rv4*cnt+q.0.1/100:gv2=gv4*cnt+q.1.1/100:bv2=bv4*cnt+q.2.1/100:color rv2,gv2,bv2:x2=y2*cnt/100:flag=y2/100+x2:boxf 0,x2,x,flag loop color rv3,gv3,bv3:boxf 0,y-(y/i),x,y gsel 9,1:gmode 2:pos 0,0:gcopy 8,0,0,x,y gsel 8,1 redraw 1 num=12 goto *st2 *coloring gsel 0,1:cls 4:width 210,125 font "",14:color 255,140,140:pos 48,5:mes "[文字の色の変更]" font "",12:color 255,255,0:pos 5,32:mes "字を一色に塗りつぶしますか?":mes "それともグラデーションさせますか?" objmode 2:objsize 92,20:pos 10,65:button "単色",*tantxt pos 110,65:button "グラデーション",*gratxt pos 70,97:objsize 70,20:button "キャンセル",*main:objmode 0 stop *tantxt if g3=0 {dialog "字の色を選んでください",0 } else {gsel 0,1:cls 4:width 250,100:font "",30:color 255,255,0:pos 5,20:mes "字の色を":pos 35,50:mes "選んでください":wait 60} dialog "",33 if stat=0:goto *coloring rva=rval:gva=gval:bva=bval if (rval=0)&(gval=0)&(bval=0):rva++ if (rval=128)&(gval=128)&(bval=128):rva++ gsel 15,1:cls 4:pos 0,0:gcopy 10,0,0,x,y gsel 10,1:cls 4:font c2,b2,d2:pos 0,0:color rva,gva,bva:mes a x1=x:y1=y num=13 z.7=1 goto *st2 *sizing gsel 0,1:cls 4:width 200,135 font "",14:color 255,140,140:pos 39,5:mes "[画面サイズの変更]" x2=x:y2=y pos 6,35:color 255,255,0:font "",12:mes "画面のサイズをいくつにしますか?" pos 10,65:mes "タテ":pos 40,60:input y2,35,25,3 pos 120,65:mes "ヨコ":pos 150,60:input x2,35,25,3 objsize 70,23:pos 25,100:button "OK",*size2 objmode 2:pos 105,100:button "キャンセル",*main objmode 0 q.9002.1=x:q.9003.1=y stop *size2 if (x2>dispx)|(y2>dispy) {dialog "それは大きすぎるよ",1:goto *sizing} if x2<104 {dialog "ヨコは104以上にしてね",1:goto *sizing} if y2<1 {dialog "それは小さすぎるよ",1:goto *sizing} if (x2\4)!0 {dialog "ヨコは4の倍数じゃないとバグるんで\n調整するよ?",2 if stat=7 {goto *sizing} x2=4-(x2\4)+x2 } x=x2:y=y2 num=14 goto *st2 *posi gsel 0,-1:gsel 3,1:x2=x0-(b2/2):y2=y0:flag=0:i=0:title "左クリックで移動、右クリックで一つ戻す。Enterで終了":q.9004.1=x0:q.9005.1=y0 repeat if i=0 {color 0,0,0:i=1} else {color 255,255,255:i=0} pos x2,y2:font "MS ゴシック",b2,d2:mes "|" repeat 10 stick flag,,1 if flag=256 {q.9008.1=x2:q.9009.1=y2:x2=mousex-(b2/2):y2=mousey:gosub *redra} if flag=512 {x2=q.9008.1:y2=q.9009.1:gosub *redra} if flag=32:break wait 5:loop if flag=32:break loop if (x0!q.9004.1)|(y0!q.9005.1) {x2=x0-q.9004.1:y2=y0-q.9005.1 repeat 3,11 if z.cnt!0 {gsel 15,1:cls 4:pos 0,0:gcopy cnt,0,0,dispx,dispy:gsel cnt,1:cls 4:pos x2,y2:gcopy 15,0,0,dispx,dispy} loop wait 10 q.9006.1=x2:q.9007.1=y2 num=15 } goto *st2 *redra x0=x2+(b2/2):y0=y2:q.9006.1=x0-q.9004.1:q.9007.1=y0-q.9005.1 cls:redraw 2:gmode 2:pos 0,0:gcopy 9,0,0,x,y:pos 0,0:gcopy 5,0,0,x3,y3:pos x0,y0:font c2,b2,d2:color rva,gva,bva:mes a:redraw 1 repeat 3,11 if z.cnt!0 {gsel 3,1:pos q.9006.1,q.9007.1:gcopy cnt,0,0,x,y} loop pos x0,y0:gcopy 10,0,0,x1,y1:pos 0,0:gcopy 7,0,0,x,y:wait 1 return *freehand rv2=1:gv2=0:bv2=0 gsel 15,1:cls 4:pos 0,0:gcopy 7,0,0,x,y num=21 *zen gsel 0,1:cls:width 130,100 objmode 2 color 250,200,0:boxf 0,0,200,100:color 255,120,120:boxf 0,30,200,60 color 0,0,0 pos 5,5:mes "筆の種類" objsize 35,30:pos 90,4 combox g,100,"・\n●\n■\n◆\n★\n▲\n▼\n|\n―\n/\n\\n┏\n┓\n┗\n┛\n(\n)\n⌒\nノ\n〜\n∧\n∨\n<\n>\n∪\n∩\n⊂\n⊃\n∈\n∋\n⇒\n⇔\n♪\n♭\n貼n∫\n§" pos 5,35:mes "筆先の大きさ" objsize 40,30:pos 87,34 combox h,150,"10\n12\n14\n16\n18\n20\n22\n24\n26\n28\n30\n32\n34\n36\n38\n40\n42\n44\n46\n48\n50\n54\n58\n62\n66\n70\n80\n90\n100\n120\n140\n160\n200\n250\n300" pos 5,70:mes "筆の色" pos 50,68:color rv2,gv2,bv2:font "MS ゴシック",20:mes "■" font "",12:objsize 45,20:pos 82,68:button "変更",*cursorcolor gsel 3,1:title "左クリックで筆がONになります。右クリックで直前の描画を取り消します。Enterキーでメニュー画面に戻ります" repeat stick flag,,1 if flag=32:break if flag=256:gosub *drawing if flag=512:gosub *bk2 if i!0 {gsel 7,1:color rv2,gv2,bv2:font "MS ゴシック",h2:i++:repeat i,0:pos q.cnt.0,q.cnt.1:mes g2:loop:i=0:gsel 3,1:flag=0} wait 1:loop objmode 0 goto *st2 *cursorcolor dialog "",33 if stat=0:goto *zen rv2=rval:gv2=gval:bv2=bval if (rval=0)&(gval=0)&(bval=0):rv2++ color rv2,gv2,bv2 goto *zen *drawing ginfo 1 if prmx!3:return ginfo 0:x2=prmx:y2=prmy ginfo 2 if (x2prmx)|(y2>prmy):return flag=g/10 if flag=0 { if g=0:g2="・" if g=1:g2="●" if g=2:g2="■" if g=3:g2="◆" if g=4:g2="★" if g=5:g2="▲" if g=6:g2="▼" if g=7:g2="|" if g=8:g2="―" if g=9:g2="/" } if flag=1 { if g=10:g2="\" if g=11:g2="┏" if g=12:g2="┓" if g=13:g2="┗" if g=14:g2="┛" if g=15:g2="(" if g=16:g2=")" if g=17:g2="⌒" if g=18:g2="ノ" if g=19:g2="〜" } if flag=2 { if g=20:g2="∧" if g=21:g2="∨" if g=22:g2="<" if g=23:g2=">" if g=24:g2="∪" if g=25:g2="∩" if g=26:g2="⊂" if g=27:g2="⊃" if g=28:g2="∈" if g=29:g2="∋" } if flag=3 { if g=30:g2="⇒" if g=31:g2="⇔" if g=32:g2="♪" if g=33:g2="♭" if g=34:g2="" if g=35:g2="∫" if g=36:g2="§" } if h<21:h2=h*2+10 if (h>20)&(h<26):h2=(h-21)*4+54 if (h>25)&(h<29):h2=(h-26)*10+80 if (h>28)&(h<32):h2=(h-29)*20+120 if h=32:h2=200 if h=33:h2=250 if h=34:h2=300 gsel 8,1:cls 4:gcopy 7,0,0,x,y gsel 0,-1:gsel 3,1:wait 1 color rv2,gv2,bv2:font "MS ゴシック",h2 q.0.0=mousex-(h2/2):q.0.1=mousey-(h2/2) title "[ON] 左クリックでOFFになります。右クリックで直前の描画を取り消します。" i=1:x2=mousex-(h2/2):y2=mousey-(h2/2):q.i.0=x2:q.i.1=y2:repeat:x2=mousex-(h2/2):y2=mousey-(h2/2):pos x2,y2:mes g2 if (x2!q.i.0)|(y2!q.i.1) {i++:q.i.0=x2:q.i.1=y2} if i>9999 { dialog "処理します\n少々お待ちください",0:gsel 7,1:color rv2,gv2,bv2:font "MS ゴシック",h2 i++:repeat i,0:pos q.cnt.0,q.cnt.1:mes g2:loop i=0:gsel 3,1:dialog "処理終了。手書きを再開してください",0 break } stick flag,,1 if flag=256:break if flag=512 {gosub *oneback:break} await 5:loop title "[OFF] 左クリックで筆がONになります。右クリックで直前の描画を取り消します。Enterキーでメニュー画面に戻ります" gsel 0,1:wait 5:gsel 3,1 return *bk2 gsel 7,1:cls 4:gcopy 8,0,0,x,y gsel 3,1 gosub *oneback return *oneback i=0:cls:redraw 2:gmode 2:pos 0,0:gcopy 9,0,0,x,y:pos 0,0:gcopy 5,0,0,x3,y3:pos 0,0:gcopy 11,0,0,x,y:pos 0,0:gcopy 12,0,0,x,y if z.13=1 {pos 0,0:gcopy 13,0,0,x,y} pos x0,y0:gcopy 10,0,0,x1,y1 pos 0,0:gcopy 7,0,0,x,y redraw 1:wait 5 color rv2,gv2,bv2 return *gratxt gsel 0,1:cls 4:width 160,150 font "",14:color 255,140,140:pos 25,5:mes "[文字の色の変更]" font "",12:color 255,255,0:pos 4,30:mes "どの方向に\nグラデーションさせますか?" pos 33,65:mes "左から右へ":pos 33,95:mes "上から下へ" objsize 25,25:pos 100,60:button "→",*yoko:pos 100,90:button "↓",*tate objmode 2:objsize 80,20:pos 40,123:button "キャンセル",*coloring objmode 0 stop *yoko flag=0 if g3=0 {dialog "まず左端の色を選んでください",0 } else {gsel 0,1:cls 4:width 250,100:font "",30:color 255,255,0:pos 5,20:mes "まず左端の色を":pos 35,50:mes "選んでください":wait 60} dialog "",33 if stat=0:goto *gratxt rv2=rval:gv2=gval:bv2=bval if rval=0:rv2++ if g3=0 {dialog "次に右端の色を選んでください",0} else {color 0,0,0:boxf 5,20,95,50:font "",30:color 255,0,0:pos 5,20:mes "次に右":wait 60} dialog "",33 if stat=0:goto *gratxt goto *gra2 *tate flag=1 if g3=0 {dialog "まず上端の色を選んでください",0 } else {gsel 0,1:cls 4:width 250,100:font "",30:color 255,255,0:pos 5,20:mes "まず上端の色を":pos 35,50:mes "選んでください":wait 60} dialog "",33 if stat=0:goto *gratxt rv2=rval:gv2=gval:bv2=bval if rval=0:rv2++ if g3=0 {dialog "次に下端の色を選んでください",0} else {color 0,0,0:boxf 5,20,95,50:font "",30:color 255,0,0:pos 5,20:mes "次に下":wait 60} dialog "",33 if stat=0:goto *gratxt goto *gra2 *gra2 rv3=rval:gv3=gval:bv3=bval if rval=0:rv3++ if (rv2=rv3)&(gv2=gv3)&(bv2=bv3) {dialog "二色とも同じ色だよ?",1:goto *gratxt} cls 4:width 100,90 pos 5,2:font "",12:color 255,255,0:mes "グラデーションは\n何段階にする?" if z.20<255 {q.0.1=z.20:i=10} else {q.0.1=255:i=240} pos 33,31:mes "(3〜"+q.0.1+")" pos 10,52:input i,35,28,3 objsize 35,30:pos 60,52:button "OK",*yk2 stop *yk2 q.0.1=rv2*100:q.1.1=gv2*100:q.2.1=bv2*100:bv=0 if i<3 {i=3:bv=1} if i>255 {i=255:bv=1} if i>200:bv=1 if (bv=0)&(i>11)&(i\16!0) {bv=i\16 if bv>7 {i=16-bv+i} else {i-=bv} } if i>2 {i--:rv4=(rv3-rv2)*100/i:gv4=(gv3-gv2)*100/i:bv4=(bv3-bv2)*100/i} gsel 15,1:cls 4:pos 0,0:gcopy 10,0,0,x,y x1=z.20:y1=z.21 gsel 10,1:cls 4:gmode 2 gsel 8,1:cls 4:font c2,b2,d2 if flag=1:goto *tt2 bv=i+1 if (x\bv)=0:flag=0:else:flag=1 x2=x1*100/(i+1):gv=x2/100 if flag=1:gv+=5 repeat i pos 0,0:rv2=rv4*cnt+q.0.1/100:gv2=gv4*cnt+q.1.1/100:bv2=bv4*cnt+q.2.1/100:color rv2,gv2,bv2:mes a:y2=x2*cnt/100 gsel 10,1:pos y2,0:gcopy 8,y2,0,gv,y1:gsel 8,1 loop pos 0,0:color rv3,gv3,bv3:mes a:y2=x2*i/100 gsel 10,1:pos y2,0:gv=x1-y2:gcopy 8,y2,0,gv,y1 num=13 z.7=1 goto *st2 *tt2 bv=i+1 if (y\bv)=0:flag=0:else:flag=1 y2=y1*100/(i+1):gv=y2/100 if flag=1:gv+=5 repeat i pos 0,0:rv2=rv4*cnt+q.0.1/100:gv2=gv4*cnt+q.1.1/100:bv2=bv4*cnt+q.2.1/100:color rv2,gv2,bv2:mes a:x2=y2*cnt/100 gsel 10,1:pos 0,x2:gcopy 8,0,x2,x1,gv:gsel 8,1 loop pos 0,0:color rv3,gv3,bv3:mes a:x2=y2*i/100 gsel 10,1:pos 0,x2:gv=y1-x2:gcopy 8,0,x2,x1,gv num=13 z.7=1 goto *st2 *shadw if (z.11!0)&(g3=0) {dialog "影は一つしか作れないので、このまま実行すると今の影は消えます。\n\n            よろしいですか?",2 if stat=7 {goto *main} } gsel 8,1:cls 4 *shadw2 gsel 0,1:cls 4:width 140,125 font "",14:color 255,140,140:pos 28,5:mes "[影をつける]" font "",12:color 255,255,0:objmode 2:pos 5,27:mes "影の形はどうしますか?" objsize 92,20:pos 10,45:button "文字そのまま",*shdtxt pos 10,70:button "長方形",*shdsquare pos 50,97:objsize 70,20:button "キャンセル",*st2 objmode 0 stop *shdtxt flag=0:x2=0:y2=0:gsel 3,1:gmode 2:pos 0,0:gcopy 8,0,0,x,y gsel 0,1:cls 4:width 160,120 font "",14:color 255,140,140:pos 38,5:mes "[影をつける]" font "",12:color 255,255,0 objmode 2:pos 4,32:mes "影の大きさはどうしますか?" pos 2,55:mes "元の文字より":pos 75,52:input x2,22,20,2:pos 100,55:mes "%" objsize 40,30:pos 114,52:combox y2,50,"増\n減" objsize 70,20:pos 8,90:button "OK",*shdcolor:pos 84,90:button "キャンセル",*shadw2 objmode 0 stop *shdsquare if g3=0 {dialog "マウスで影の大きさと位置を決めてください",0 } else {gsel 0,1:cls 4:width 250,100:font "",30:color 255,255,0:pos 5,20:mes "影の大きさと位置を":pos 35,50:mes "決めてください":wait 60} gsel 3,1:gmode 2:pos 0,0:gcopy 8,0,0,x,y gsel 8,1:cls 4:pos 0,0:gcopy 3,0,0,x,y *shdsqusub gsel 3,1:title "左クリックで決定、右クリックでキャンセル、Enterで画面全体を指定" flag=0:repeat:stick flag,,1 if flag=32 {ginfo 1 if prmx!3 {continue} break} if (flag=256)|(flag=512) {ginfo 1 if prmx!3 {continue} ginfo 0:x2=prmx:y2=prmy-16 ginfo 2 if (x2prmx)|(y2>prmy) {continue} break} await 5:loop if flag=512:goto *shadw2 if flag=32:goto *squout x2=mousex:y2=mousey:color 150,150,150 title "左クリックで決定、右クリックでキャンセルです" repeat rv2=mousex:gv2=mousey:line x2,y2,x2,gv2:line rv2,y2,rv2,gv2:line x2,y2,rv2,y2:line x2,gv2,rv2,gv2:stick flag,,1 if (flag=256)|(flag=512) {ginfo 1 if prmx!3 {continue} ginfo 0:rv3=prmx:gv3=prmy-16 ginfo 2 if (rv3prmx)|(gv3>prmy) {continue} break } wait 1:pos 0,0:gcopy 8,0,0,x,y loop if flag=512 {pos 0,0:gcopy 8,0,0,x,y:goto *shdsqusub} *squout if flag=32 {x2=0:y2=0:rv2=x-1:gv2=y-1 } else { if (x2=rv2)|(y2=gv2) {flag=1} if flag!1 {dialog "これでいい?",2} if stat=7 {flag=1} if x2>rv2 {bv3=rv2:rv2=x2:x2=bv3} if y2>gv2 {bv3=gv2:gv2=y2:y2=bv3} if flag=1 {pos 0,0:gcopy 8,0,0,x,y:goto *shdsqusub} } gsel 0,1:flag=1:q.1000.0=x2:q.1000.1=y2:x2=rv2-x2:y2=gv2-y2 *shdcolor if flag=0 { if y2=0 {q.8000.1=100+x2} if y2=1 {q.8000.1=100-x2} x2=z.20*q.8000.1/100:y2=z.21*q.8000.1/100:q.8000.1=q.8000.1*b2/100 } cls 4:width 140,120 font "",14:color 255,140,140:pos 28,5:mes "[影をつける]" font "",12:objmode 2:color 255,255,0:pos 5,22:mes "色はどうしますか?" objsize 92,20:pos 10,40:button "単色",*tanshd pos 10,65:button "グラデーション",*grashd pos 50,90:objsize 70,20:button "キャンセル",*shadw2 objmode 0 stop *tanshd if g3=0 {dialog "影の色を選んでください",0 } else {gsel 0,1:cls 4:width 250,100:font "",30:color 255,255,0:pos 5,20:mes "影の色を":pos 35,50:mes "選んでください":wait 60} dialog "",33 if stat=0:goto *shdcolor rv2=rval:gv2=gval:bv2=bval if rval=0:rv2++ gsel 8,1:cls 4 if flag=0 {color rv2,gv2,bv2:font c2,q.8000.1,d2:pos 0,0:mes a} else {color rv2,gv2,bv2:boxf 0,0,x2,y2:flag=5} goto *shdposi *grashd cls 4:width 160,145 font "",14:color 255,140,140:pos 38,5:mes "[影をつける]" font "",12:color 255,255,0:pos 2,25:mes "どの方向に":mes "グラデーションさせますか?" pos 33,60:mes "左から右へ":pos 33,90:mes "上から下へ" objsize 25,25:pos 100,55:button "→",*shdyoko pos 100,85:button "↓",*shdtate objmode 2:objsize 80,20:pos 40,118:button "キャンセル",*shdcolor objmode 0 stop *shdyoko if g3=0 {dialog "まず左端の色を選んでください",0 } else {gsel 0,1:cls 4:width 250,100:font "",30:color 255,255,0:pos 5,20:mes "まず左端の色を":pos 35,50:mes "選んでください":wait 60} dialog "",33 if stat=0:goto *grashd rv2=rval:gv2=gval:bv2=bval if rval=0:rv2++ if g3=0 {dialog "次に右端の色を選んでください",0} else {color 0,0,0:boxf 5,20,95,50:color 255,0,0:pos 5,20:mes "次に右":wait 60} dialog "",33 if stat=0:goto *grashd goto *shdgra2 *shdtate flag+=2 if g3=0 {dialog "まず上端の色を選んでください",0 } else {gsel 0,1:cls 4:width 250,100:font "",30:color 255,255,0:pos 5,20:mes "まず上端の色を":pos 35,50:mes "選んでください":wait 60} dialog "",33 if stat=0:goto *grashd rv2=rval:gv2=gval:bv2=bval if rval=0:rv2++ if g3=0 {dialog "次に下端の色を選んでください",0} else {color 0,0,0:boxf 5,20,95,50:color 255,0,0:pos 5,20:mes "次に下":wait 60} dialog "",33 if stat=0:goto *grashd goto *shdgra2 *shdgra2 rv3=rval:gv3=gval:bv3=bval if rval=0:rv3++ if (rv2=rv3)&(gv2=gv3)&(bv2=bv3) {dialog "二色とも同じ色だよ?",1:goto *grashd} cls 4:width 100,90 font "",12:color 255,255,0:pos 5,2:mes "グラデーションは\n何段階にする?" pos 33,31:mes "(3〜255)" pos 10,52:i=200:input i,35,28,3 objsize 35,30:pos 60,52:button "OK",*shdyk2 stop *shdyk2 q.7000.1=rv2*100:q.7001.1=gv2*100:q.7002.1=bv2*100 if (i<3)|(i>255) {dialog "ちょっとそれは無理かなぁ",1:goto *grashd} if i>2 {i--:rv4=(rv3-rv2)*100/i:gv4=(gv3-gv2)*100/i:bv4=(bv3-bv2)*100/i} gsel 8,1:cls 4:gsel 15,1:cls 4:font c2,q.8000.1,d2 if flag>1:goto *shdtt2 if flag=1 { q.1999.0=flag:num=x2*100/(i+1) repeat i rv2=rv4*cnt+q.7000.1/100:gv2=gv4*cnt+q.7001.1/100:bv2=bv4*cnt+q.7002.1/100 color rv2,gv2,bv2:gv=num*cnt/100:flag=num/100+gv:boxf gv,0,num+gv,y2 loop color rv3,gv3,bv3:boxf x2-(num/100),0,x2,y2:flag=q.1999.0:gsel 8,1:gmode 2:pos 0,0:gcopy 15,0,0,x2,y2:gsel 15,1:goto *shdposi } bv=i+1 if (x2\bv)=0:q.9501.1=0:else:q.9501.1=1 num=x2*100/(i+1):gv=num/100 if q.9501.1=1:gv+=5 repeat i pos 0,0:rv2=rv4*cnt+q.7000.1/100:gv2=gv4*cnt+q.7001.1/100:bv2=bv4*cnt+q.7002.1/100 font c2,q.8000.1,d2:color rv2,gv2,bv2:mes a:q.9500.1=num*cnt/100:gsel 8,1:pos q.9500.1,0:gcopy 15,q.9500.1,0,gv,y2:gsel 15,1 loop pos 0,0:color rv3,gv3,bv3:mes a:q.9500.1=num*i/100:gsel 8,1:pos q.9500.1,0:gv=x2-q.9500.1:gcopy 15,q.9500.1,0,gv,y2 goto *shdposi *shdtt2 if flag=3 { num=y2*100/(i+1):repeat i rv2=rv4*cnt+q.7000.1/100:gv2=gv4*cnt+q.7001.1/100:bv2=bv4*cnt+q.7002.1/100 color rv2,gv2,bv2:gv=num*cnt/100:flag=num/100+gv:boxf 0,gv,x2,num+gv loop color rv3,gv3,bv3:boxf 0,y2-(num/100),x2,y2 gsel 8,1:gmode 2:pos 0,0:gcopy 15,0,0,x2,y2:gsel 15,1:flag=3 goto *shdposi } bv=i+1 if (y2\bv)=0:q.9501.1=0:else:q.9501.1=1 num=y2*100/(i+1):gv=num/100 if q.9501.1=1:gv+=5 repeat i pos 0,0:rv2=rv4*cnt+q.7000.1/100:gv2=gv4*cnt+q.7001.1/100:bv2=bv4*cnt+q.7002.1/100:font c2,q.8000.1,d2 color rv2,gv2,bv2:mes a:q.9500.1=num*cnt/100:gsel 8,1:pos 0,q.9500.1:gcopy 15,0,q.9500.1,x2,gv:gsel 15,1 loop pos 0,0:color rv3,gv3,bv3:mes a:q.9500.1=num*i/100:gsel 8,1:pos 0,q.9500.1:gv=y2-q.9500.1:gcopy 15,0,q.9500.1,x2,gv goto *shdposi *shdposi gsel 0,-1:gsel 3,1 if (flag\2=1):goto *shdsqposi rv=x0+10:gv=y0+10:rv2=rv-(b2/2):gv2=gv:flag=0:i=0:font "MS ゴシック",b2,d2 x2=0 title "左クリックで位置指定、右クリックで一つ戻す。Enterで終了" repeat if i=0 {color 0,0,0:i=1} else {color 255,255,255:i=0} pos rv2,gv2:mes "|" repeat 10 stick flag,,1 if (flag=256)|(flag=512):gosub *shdsub if flag=32:break wait 5:loop if flag=32:break loop if x2=0 {gsel 8,1:cls 4:num=0} gsel 15,1:cls 4:pos 0,0:gcopy 11,0,0,x,y num=17 gsel 11,1:cls 4:pos rv,gv:gcopy 8,0,0,x,y z.11=1 goto *st2 *shdsub ginfo 1 if prmx!3:return if flag=256 {q.6000.0=rv2:q.6000.1=gv2:rv2=mousex-(b2/2):gv2=mousey} else {rv2=q.6000.0:gv2=q.6000.1} rv=rv2+(b2/2):gv=gv2 cls redraw 2 gmode 2:pos 0,0:gcopy 9,0,0,x,y pos 0,0:gcopy 5,0,0,x3,y3 pos rv,gv:gcopy 8,0,0,x,y pos 0,0:gcopy 12,0,0,x,y if z.13=1 {pos 0,0:gcopy 13,0,0,x,y} pos x0,y0:gcopy 10,0,0,x1,y1 pos 0,0:gcopy 7,0,0,x,y redraw 1 x2=1 return *shdsqposi gsel 15,1:cls 4 pos 0,0:gcopy 11,0,0,x,y num=17 gsel 11,1:cls 4:pos q.1000.0,q.1000.1:gcopy 8,0,0,x2,y2 z.11=2 goto *st2 *shad2 if (z.12=1)&(g3=0) {dialog "残像は一つしか作れないので、このまま実行すると今の残像は消えます。\n\n             よろしいですか?",2 if stat=7 {goto *main} } gsel 0,1:cls 4:width 210,120 font "",14:color 255,140,140:pos 55,5:mes "[残像をつける]" font "",12:color 255,255,0:objmode 2:pos 5,32:mes "残像は一色に塗りつぶしますか?":mes "それともグラデーションさせますか?" objsize 92,20:pos 10,65:button "単色",*tansh2 pos 110,65:button "グラデーション",*grash2 pos 70,92:objsize 70,20:button "キャンセル",*main objmode 0 stop *tansh2 q.6007.1=1 if g3=0 {dialog "字の色を選んでください",0 } else {gsel 0,1:cls 4:width 250,100:font "",30:color 255,255,0:pos 5,20:mes "字の色を":pos 35,50:mes "選んでください":wait 60} dialog "",33 if stat=0:goto *shad2 rv3=rval:gv3=gval:bv3=bval if rval=0:rv3++ goto *sh2posi *grash2 q.6007.1=0 if g3=0 {dialog "まず始まりの色を選んでください",0 } else {gsel 0,1:cls 4:width 250,100:font "",30:color 255,255,0:pos 5,20:mes "まず始まりの色を":pos 35,50:mes "選んでください":wait 60} dialog "",33 if stat=0:goto *shad2 rv4=rval:gv4=gval:bv4=bval if rval=0:rv4++ if g3=0 {dialog "次に終わりの色を選んでください",0} else {color 0,0,0:boxf 5,20,140,50:color 255,0,0:pos 1,20:mes "次に終わり":wait 60} dialog "",33 if stat=0:goto *shad2 rv3=rval:gv3=gval:bv3=bval if rval=0:rv3++ if (rv4=rv3)&(gv4=gv3)&(bv4=bv3) {dialog "二色とも同じ色だよ?",1:goto *grash2} *sh2posi gsel 0,2:cls 4:width 140,110 font "MS ゴシック",12:color 255,255,0:pos 5,5:mes "残像を何枚描きますか?" pos 47,25:mes "(1〜999)" pos 52,45:i=50:input i,35,27,3 pos 38,80:objmode 2:button "キャンセル",*st2 objmode 0 if g3=0 {dialog "残像の終了位置を決めてください。\nカーソルは終了位置の左上になります",0} gsel 3,1 rv=x0+10:gv=y0+10:rv2=rv-(b2/2):gv2=gv:flag=0:q.6003.1=0:q.6006.1=0 title "左クリックで位置指定、右クリックで一つ戻す。Enterで終了" repeat if q.6003.1=0 {color 0,0,0:q.6003.1=1} else {color 255,255,255:q.6003.1=0} pos rv2,gv2:font "MS ゴシック",b2,d2:mes "|" repeat 10 stick flag,,1 if flag=512 {ginfo 1 if prmx=3 {pos rv2,gv2:color 255,255,255:mes "|":rv2=mousex-(b2/2):gv2=mousey} } if (flag=256)|(flag=512) {ginfo 1 if prmx=3 { if flag=256 {q.4000.0=rv2:q.4000.1=gv2:rv2=mousex-(b2/2):gv2=mousey} else {rv2=q.4000.0:gv2=q.4000.1} rv=rv2+(b2/2):gv=gv2:x2=rv-x0:y2=gv-y0 if q.6007.1=1 {gosub *sh2sub1} if q.6007.1=0 {gosub *sh2sub2} } } if flag=32:break wait 5:loop if flag=32:break loop if q.6006.1=0 {gsel 8,1:cls 4} gsel 15,1:cls 4:pos 0,0:gcopy 12,0,0,x,y num=18 gsel 12,1:cls 4:pos 0,0:gcopy 8,0,0,x,y z.12=1 goto *st2 *sh2sub1 if i=0 {dialog "0ってねえ・・・",1:return} q.6004.1=x2*100/i:q.6005.1=y2*100/i gsel 8,1:cls 4:font c2,b2,d2:color rv3,gv3,bv3 if i>1 {i--:repeat i,1:x2=q.6004.1*cnt/100+x0:y2=q.6005.1*cnt/100+y0:pos x2,y2:mes a:await 1:loop} pos rv,gv:mes a gosub *sh2sb3 i++ q.6006.1=1 return *sh2sub2 if i=0 {dialog "0枚ってねえ・・・",1:return} if i=1 {dialog "1枚じゃグラデーションにならないよ",1:return} q.6004.1=x2*100/i:q.6005.1=y2*100/i:q.6000.1=rv4:q.6001.1=gv4:q.6002.1=bv4 i-- rv4=(rv3-rv4)*100/i:gv4=(gv3-gv4)*100/i:bv4=(bv3-bv4)*100/i i++ gsel 8,1:cls 4:font c2,b2,d2 repeat i rv2=rv3-(rv4*cnt/100):gv2=gv3-(gv4*cnt/100):bv2=bv3-(bv4*cnt/100) color rv2,gv2,bv2:x2=rv-(q.6004.1*cnt/100):y2=gv-(q.6005.1*cnt/100):pos x2,y2:mes a:await 1 loop flag=0:rv2=rv-(b2/2):gv2=gv gosub *sh2sb3 rv4=q.6000.1:gv4=q.6001.1:bv4=q.6002.1:q.6006.1=1 return *sh2sb3 gsel 3,1:cls redraw 2 gmode 2:pos 0,0:gcopy 9,0,0,x,y pos 0,0:gcopy 5,0,0,x3,y3 pos 0,0:gcopy 11,0,0,x,y pos 0,0:gcopy 8,0,0,x,y if z.13=1 {pos 0,0:gcopy 13,0,0,x,y} pos x0,y0:gcopy 10,0,0,x1,y1 pos 0,0:gcopy 7,0,0,x,y redraw 1 return *around if g3=0 {dialog "縁取りの色を選んでください",0 } else {gsel 0,1:cls 4:width 250,100:font "",30:color 255,255,0:pos 5,20:mes "縁取りの色を":pos 35,50:mes "選んでください":wait 60} dialog "",33 if stat=0:goto *st2 rv4=rval:gv4=gval:bv4=bval if (rval=0)&(gval=0)&(bval=0):rv4+=1 if (rval=rva)&(gval=gva)&(bval=bva):rv4+=1 *aroun2 gsel 0,1:cls 4:width 210,120 font "",14:color 255,140,140:pos 48,5:mes "[縁取りをつける]" font "",12:color 255,255,0:pos 11,22:mes "縁取りの厚さはいくつにしますか?":pos 85,40:mes "(1〜50)" objsize 92,20:gv2=5:pos 91,59:input gv2,28,28,2 objmode 2:pos 25,94:objsize 70,20:button "OK",*aroun3 pos 115,94:objsize 70,20:button "キャンセル",*st2 objmode 0 stop *aroun3 if (gv2<1)|(gv2>50):goto *aroun2 gsel 15,1:cls 4:pos 0,0:gcopy 13,0,0,x,y gsel 0,2:cls 4:font "",40:color 255,255,0:pos 45,33:mes "処理中" gsel 13,1:gmode 2:pos x0,y0:gcopy 10,0,0,x1,y1:color rv4,gv4,bv4:wait 10 x2=x0:y2=y0:flag=0:i=0:q.6000.0=z.20+gv2+x0:q.6000.1=z.21+gv2+y0:num=q.6000.0*q.6000.1 repeat num pget x2,y2 if flag=0 { if (rval!0)|(gval!0)|(bval!0) { flag=1:bv2=y2 repeat gv2 bv2--:pset x2,bv2 if i>bv2 {break} loop } } if (flag=1)&(rval=0)&(gval=0)&(bval=0) { flag=0 repeat gv2 pset x2,y2:y2++:pget x2,y2 if (rval!0)|(gval!0)|(bval!0) {break} loop y2-=1 i=y2 } y2++ if y2>q.6000.1 {y2=y0:x2++:i=0} if x2>q.6000.0:break loop:wait 50 x2=x0:y2=y0:flag=0:i=0 repeat num pget x2,y2 if flag=0 { if (rval!0)|(gval!0)|(bval!0) { flag=1:bv2=x2 repeat gv2 bv2--:pset bv2,y2 if i>bv2 {break} loop } } if (flag=1)&(rval=0)&(gval=0)&(bval=0) { flag=0 repeat gv2 pset x2,y2:x2++:pget x2,y2 if (rval!0)|(gval!0)|(bval!0) {break} loop x2-=1 i=x2 } x2++ if x2>q.6000.0 {x2=x0:y2++:i=0} if y2>q.6000.1:break loop:wait 10 num=19 z.13=1 goto *st2 *waku gsel 0,1:cls 4:width 400,360 font "",14:color 255,140,140:pos 158,10:mes "[枠をつける]" font "",12:color 255,255,0:pos 122,30:mes "枠の種類はどれにしますか?\nクリックして選んでください。" pos 117,57:color 150,150,200:mes "(色や幅は後で変えられます)" redraw 2 color 255,255,255:boxf 30,80,130,180:boxf 150,80,250,180:boxf 270,80,370,180:boxf 30,200,130,300:boxf 150,200,250,300:boxf 270,200,370,300 color 150,150,150:boxf 30,80,130,90:boxf 30,80,40,180:boxf 30,170,130,180:boxf 120,80,130,180 boxf 155,85,245,90:boxf 155,90,160,175:boxf 155,170,245,175:boxf 240,90,245,175 color 100,100,100:boxf 150,80,250,85:boxf 150,80,155,180:boxf 150,175,250,180:boxf 245,80,250,180 color 150,150,150:boxf 270,80,370,90:boxf 270,80,280,180:boxf 270,170,370,180:boxf 360,80,370,180 color 50,50,50:line 269,80,280,91:line 269,79,280,90:line 270,79,281,90:line 269,180,280,169:line 269,181,280,170 line 270,181,281,170:line 370,79,359,90:line 371,79,360,90:line 371,80,360,91:line 371,180,360,169:line 371,181,360,170 line 370,181,359,170:color 10,100,150:line 30,200,130,200:line 40,210,120,210:line 30,199,30,300 line 40,209,40,290:line 30,300,130,300:line 40,290,120,290:line 120,209,120,290:line 130,199,130,300 color 58,135,175:line 31,201,129,201:line 39,209,121,209:line 31,200,31,299:line 39,208,39,291 line 31,299,129,299:line 39,291,121,291line 121,208,121,291:line 129,201,129,299 color 106,170,200:line 32,202,128,202:line 38,208,122,208:line 32,201,32,298:line 38,207,38,292 line 32,298,128,298:line 38,292,122,292:line 122,207,122,292:line 128,202,128,298 color 154,205,225:line 33,203,127,203:line 37,207,123,207:line 33,202,33,297:line 37,206,37,293 line 33,297,127,297:line 37,293,123,293:line 123,206,123,293:line 127,203,127,297 color 200,240,250:line 34,204,126,204:line 36,206,124,206:line 34,203,34,296:line 36,205,36,294 line 34,296,127,296:line 36,294,124,294:line 124,205,124,294:line 126,204,126,296 color 170,130,70:boxf 152,202,158,298:boxf 152,202,248,208:boxf 242,202,248,298:boxf 152,292,248,298 color 100,60,0:line 150,199,150,300:line 151,199,151,300:line 150,200,250,200:line 150,201,250,201 line 149,299,250,299:line 149,300,250,300:line 249,199,249,300:line 250,199,250,300 line 159,208,159,291:line 160,208,160,291:line 158,209,241,209:line 158,210,241,210 line 240,208,240,291line 241,208,241,291:line 158,290,241,290:line 158,291,241,291 color 170,130,70:boxf 272,202,278,298:boxf 272,202,368,208:boxf 362,202,368,298:boxf 272,292,368,298 color 120,80,20:line 270,199,270,300:line 271,199,271,300:line 270,200,370,200:line 270,201,370,201 line 279,208,279,291:line 280,208,280,291:line 278,209,361,209:line 278,210,361,210 line 271,299,368,299:line 270,300,369,300:line 369,201,369,300:line 370,200,370,300 color 220,180,120:line 360,209,360,290:line 361,208,361,291:line 279,290,360,290:line 278,291,361,291 color 0,0,0:boxf 41,91,119,169:boxf 161,91,239,169:boxf 281,91,359,169:boxf 41,211,119,289 boxf 161,211,239,289:boxf 281,211,359,289 objsize 120,25:pos 140,320:button "キャンセル",*main:wait 5 redraw 1:wait 5 *wktype flag=0 repeat stick flag,,1 if (flag=256)|(flag=512) {ginfo 1 if prmx!0 {continue} ginfo 0:x2=prmx:y2=prmy-16 ginfo 2 if (x2prmx)|(y2>prmy) {continue} break } await 5:loop i=0:x2=mousex:y2=mousey if (x2>29)&(x2<131)&(y2>79)&(y2<181):i=1 if (x2>149)&(x2<251)&(y2>79)&(y2<181):i=2 if (x2>269)&(x2<371)&(y2>79)&(y2<181):i=3 if (x2>29)&(x2<131)&(y2>199)&(y2<301):i=4 if (x2>149)&(x2<251)&(y2>199)&(y2<301):i=5 if (x2>269)&(x2<371)&(y2>199)&(y2<301):i=6 if i=0:goto *wktype *wkcolor cls 4:width 250,100 if i=1 {if g3=0 {dialog "枠の色を選んでください",0 } else {font "MS ゴシック",30:color 255,255,0:pos 5,20:mes "枠の色を":pos 35,50:mes "選んでください":wait 60} dialog "",33 if stat=0 {goto *waku} if (rval=0)&(gval=0)&(bval=0) {rv=1:gv=1:cls 3} else {cls 4:gv=0:rv=rval} width 310,250:font "",14:color 255,140,140:pos 113,5:mes "[枠をつける]":color rval,gval,bval:boxf 55,30,255,230 } if i=2 {if g3=0 {dialog "枠の外側の色を選んでください",0 } else {font "",30:color 255,255,0:pos 5,20:mes "枠の外側の色を":pos 35,50:mes "選んでください":wait 60} dialog "",33 if stat=0 {goto *waku} rv4=rval:gv4=gval:bv4=bval if (rv4=0)&(gv4=0)&(bv4=0) {rv4=1:gv=1} else {gv=0} if g3=0 {dialog "枠の内側の色を選んでください",0} else {color 0,0,0:boxf 65,20,95,50:color 255,0,0:pos 65,20:mes "内":wait 60} dialog "",33 if stat=0 {goto *waku} q.7000.0=5:q.7000.1=5 *wksub cls 4:width 310,250 font "",14:color 255,140,140:pos 113,5:mes "[枠をつける]" font "",12:color 180,180,180:pos 100,37:mes "(足して10になるように)" color 255,255,0:pos 69,22:mes "外側と内側の割合を決めてください" font "",25:pos 100,76:mes "外側":pos 155,75:input q.7000.0,20,27,1:pos 180,76:mes "割" pos 100,131:mes "内側":pos 155,130:input q.7000.1,20,27,1:pos 180,131:mes "割" objsize 90,24:pos 61,198:button "決定",*wksub2 pos 161,198:button "キャンセル",*wkcolor stop *wksub2 flag=q.7000.0+q.7000.1 if flag!10 {dialog "足して10割になるようにしてください",1:q.7000.1=10-q.7000.0:goto *wksub} if (rval=0)&(gval=0)&(bval=0) {rv=1:gv=1} else {rv=rval:gv+=0} if gv=0 {cls 4} else {cls 3} font "",14:color 255,140,140:pos 113,5:mes "[枠をつける]" rv2=q.7000.0*2+55:gv2=q.7000.0*2+30:rv3=255-(q.7000.0*2):gv3=230-(q.7000.0*2) color rv4,gv4,bv4:boxf 55,30,255,230:color rval,gval,bval:boxf rv2,gv2,rv3,gv3 } if i=3 {if g3=0 {dialog "枠の色を選んでください",0 } else {font "MS ゴシック",30:color 255,255,0:pos 5,20:mes "枠の色を":pos 35,50:mes "選んでください":wait 60} dialog "",33 if stat=0 {goto *waku} rv4=rval:gv4=gval:bv4=bval if (rv4=0)&(gv4=0)&(bv4=0) {rv4=1:gv=1} else {gv=0} if g3=0 {dialog "四隅の線の色を選んでください",0 } else {color 0,0,0:boxf 5,20,125,50:color 255,0,0:pos 5,20:mes "四隅の線の色を":wait 60} dialog "",33 if stat=0 {goto *waku} q.7000.0=2 *wksub12 cls 4:width 310,250 font "",14:color 255,140,140:pos 117,5:mes "[枠をつける]" font "",17:color 180,180,180:pos 133,55:mes "(1〜9)" color 255,255,0:pos 40,30:mes "四隅の線の太さを決めてください" pos 145,110:input q.7000.0,20,27,1 objsize 90,24:pos 50,180:button "決定",*wksub22 pos 170,180:button "キャンセル",*waku stop *wksub22 flag=q.7000.0 if flag<1 {goto *wksub12} if (rval=0)&(gval=0)&(bval=0) {rv=1:gv=1} else {rv=rval:gv+=0} if gv=0 {cls 4} else {cls 3} font "",14:color 255,140,140:pos 113,5:mes "[枠をつける]" bv2=20:x2=55:y2=30:rv2=255:gv2=230 gosub *wk3 } if i=4 {if g3=0 {dialog "枠の外側の色を選んでください",0 } else {font "MS ゴシック",30:color 255,255,0:pos 5,20:mes "枠の外側の色を":pos 35,50:mes "選んでください":wait 60} dialog "",33 if stat=0 {goto *waku} rv4=rval:gv4=gval:bv4=bval if (rv4=0)&(gv4=0)&(bv4=0) {rv4=1:gv=1} else {gv=0} if g3=0 {dialog "枠の中心の色を選んでください",0 } else {color 0,0,0:boxf 5,20,125,50:color 255,0,0:pos 5,20:mes "枠の中心の色を":wait 60} dialog "",33 if stat=0 {goto *waku} *wksub23 if (rval=0)&(gval=0)&(bval=0) {rv=1:gv=1} else {rv=rval:gv+=0} if gv=0 {cls 4} else {cls 3} width 310,250 font "",14:color 255,140,140:pos 113,5:mes "[枠をつける]" bv2=20:x2=55:y2=30:rv2=255:gv2=230:gosub *wk4 } if i>4 {if g3=0 {dialog "枠の内側の色を選んでください",0 } else {font "",30:color 255,255,0:pos 5,20:mes "枠の内側の色を":pos 35,50:mes "選んでください":wait 60} dialog "",33 if stat=0 {goto *waku} rv4=rval:gv4=gval:bv4=bval if (rv4=0)&(gv4=0)&(bv4=0) {rv4=1:gv=1} else {gv=0} if g3=0 {dialog "枠の縁の色を選んでください",0} else {color 0,0,0:boxf 5,20,215,50:color 255,0,0:pos 5,20:mes "枠の縁の色を":wait 60} dialog "",33 if stat=0 {goto *waku} *wksub33 if (rval=0)&(gval=0)&(bval=0) {rv=1:gv=1} else {rv=rval:gv+=0} if gv=0 {cls 4} else {cls 3} width 310,250:font "",14:color 255,140,140:pos 113,5:mes "[枠をつける]":color rval,gval,bval:boxf 55,30,255,230: color rv4,gv4,bv4:boxf 59,34,70,225:boxf 59,34,251,45:boxf 59,215,251,225:boxf 240,34,251,225 if i=6 {rv3=rval+100:gv3=gval+100:bv3=bval+100 if rv3>255 {rv3=255} if gv3>255 {gv3=255} if bv3>255 {bv3=255} color rv3,gv3,bv3:x2=70:y2=214:repeat 5:line x2,y2,239,y2:x2++:y2--:loop:x2=239:y2=45:repeat 5:line x2,y2,x2,214:x2--:y2++:loop} } if gv=0 {color 0,0,0} else {color 70,70,70} boxf 76,51,234,209:dialog "これでいい?",2 if (stat=7)&(i=2) {goto *wksub} if (stat=7)&(i=3) {goto *wksub12} if stat=7 {goto *wkcolor} if (rv4=rval)&(gv4=gval)&(bv4=bval) {i=1} *waku2 cls 4:width 210,120 font "",14:color 255,140,140:pos 63,5:mes "[枠をつける]" font "",12:color 255,255,0:pos 23,22:mes "枠の厚さはいくつにしますか?" pos 85,40:mes "(1〜99)" objsize 92,20:bv2=30:pos 91,59:input bv2,28,28,2 objmode 2:pos 25,94:objsize 70,20:button "OK",*waku3 pos 115,94:objsize 70,20:button "キャンセル",*wkcolor objmode 0 stop *waku3 if bv2<1:goto *waku2 if g3=0 {dialog "マウスで枠の大きさと位置を決めてください",0 } else {gsel 0,1:cls 4:width 250,100:font "",30:color 255,255,0:pos 5,20:mes "枠の大きさと位置を":pos 35,50:mes "決めてください":wait 60} gsel 8,1:cls 4:pos 0,0:gcopy 3,0,0,x,y *wkposi gsel 3,1:title "左クリックで決定、右クリックでキャンセル、Enterで画面全体を指定" flag=0 repeat stick flag,,1 if flag=32 {ginfo 1 if prmx!3 {continue} break } if (flag=256)|(flag=512) {ginfo 1 if prmx!3 {continue} ginfo 0:x2=prmx:y2=prmy-16 ginfo 2 if (x2prmx)|(y2>prmy) {continue} break } await 5:loop if flag=512:goto *waku if flag=32:goto *waku4 x2=mousex:y2=mousey color 150,150,150 title "左クリックで決定、右クリックでキャンセルです" repeat rv2=mousex:gv2=mousey:line x2,y2,x2,gv2:line rv2,y2,rv2,gv2:line x2,y2,rv2,y2:line x2,gv2,rv2,gv2 stick flag,,1 if (flag=256)|(flag=512) {ginfo 1 if prmx!3 {continue} ginfo 0:rv3=prmx:gv3=prmy-16 ginfo 2 if (rv3prmx)|(gv3>prmy) {continue} break } wait 1 pos 0,0:gcopy 8,0,0,x,y loop if flag=512 {pos 0,0:gcopy 8,0,0,x,y:goto *wkposi} *waku4 if flag=32 {x2=0:y2=0:rv2=x-1:gv2=y-1} else { if (x2=rv2)|(y2=gv2) {flag=1} if flag!1 {dialog "これでいい?",2} if stat=7 {flag=1} if x2>rv2 {bv3=rv2:rv2=x2:x2=bv3} if y2>gv2 {bv3=gv2:gv2=y2:y2=bv3} rv3=(rv2-x2)/2-1:gv3=(gv2-y2)/2-1 if (rv34 {flag=bv2*10/5+5/10:color rv,gval,bval:boxf x2,y2,rv2,gv2 rv3=x2+flag:gv3=y2+flag:bv3=bv2-flag-flag-1 color rv4,gv4,bv4:boxf rv3,gv3,rv3+bv3,gv2-flag:boxf rv3,gv3,rv2-flag,gv3+bv3 boxf rv3,gv2-flag-bv3,rv2-flag,gv2-flag:boxf rv2-bv3-flag,gv3,rv2-flag,gv2-flag } if i=6 {rv3=rval+100:gv3=gval+100:bv3=bval+100 if rv3>255 {rv3=255} if gv3>255 {gv3=255} if bv3>255 {bv3=255} color rv3,gv3,bv3:rv3=x2+flag:gv3=y2+flag:bv3=bv2-flag-flag-1 q.101.0=rv3+bv3:q.102.0=gv2-flag-bv3-1:q.103.0=rv2-bv3-flag-flag+1 repeat flag:line q.101.0,q.102.0,q.103.0,q.102.0:q.101.0++:q.102.0--:loop q.101.0=rv2-bv2+flag:q.102.0=y2+bv3+flag:q.103=gv2-flag-bv3-1 repeat flag:line q.101.0,q.102.0,q.101.0,q.103.0:q.101.0--:q.102.0++:loop } color 0,0,0:boxf x2+bv2,y2+bv2,rv2-bv2,gv2-bv2 gsel 15,1:cls 4:pos 0,0:gcopy 9,0,0,x,y num=20 gsel 9,1:gmode 2:pos 0,0:gcopy 8,0,0,x,y z.14=1 goto *st2 *wk3 flag=q.7000.0-1:color rv4,gv4,bv4:boxf x2,y2,rv2,gv2:color rv,gval,bval rv3=x2-1:gv3=y2-1:bv3=bv2+1:line rv3,gv3,rv3+bv3,gv3+bv3 if flag>0 {repeat flag:gv3++:line rv3,gv3,rv3+bv3,gv3+bv3:loop:gv3=y2-1:repeat flag:rv3++:line rv3,gv3,rv3+bv3,gv3+bv3:loop} rv3=rv2+1:gv3=y2-1:line rv3,gv3,rv3-bv3,gv3+bv3 if flag>0 {repeat flag:gv3++:line rv3,gv3,rv3-bv3,gv3+bv3:loop:gv3=y2-1:repeat flag:rv3--:line rv3,gv3,rv3-bv3,gv3+bv3:loop} rv3=x2-1:gv3=gv2+1:line rv3,gv3,rv3+bv3,gv3-bv3 if flag>0 {repeat flag:gv3--:line rv3,gv3,rv3+bv3,gv3-bv3:loop:gv3=gv2+1:repeat flag:rv3++:line rv3,gv3,rv3+bv3,gv3-bv3:loop} rv3=rv2+1:gv3=gv2+1:line rv3,gv3,rv3-bv3,gv3-bv3 if flag>0 {repeat flag:gv3--:line rv3,gv3,rv3-bv3,gv3-bv3:loop:gv3=gv2+1:repeat flag:rv3--:line rv3,gv3,rv3-bv3,gv3-bv3:loop} return *wk4 flag=bv2/2-1:q.0.1=rv4-rval/flag:q.1.1=gv4-gval/flag:q.2.1=bv4-bval/flag rv3=rv4:gv3=gv4:bv3=bv4:q.0.0=x2:q.1.0=y2:q.2.0=rv2 repeat bv2/2:color rv3,gv3,bv3:line q.0.0,q.1.0,q.2.0,q.1.0:rv3-=q.0.1:gv3-=q.1.1:bv3-=q.2.1:q.0.0++:q.1.0++:q.2.0--:loop rv3=rv4:gv3=gv4:bv3=bv4:q.0.0=x2+bv2:q.1.0=y2+bv2:q.2.0=rv2-bv2 repeat bv2/2:color rv3,gv3,bv3:line q.0.0,q.1.0,q.2.0,q.1.0:rv3-=q.0.1:gv3-=q.1.1:bv3-=q.2.1:q.0.0--:q.1.0--:q.2.0++:loop rv3=rv4:gv3=gv4:bv3=bv4:q.0.0=x2:q.1.0=y2-1:q.2.0=gv2 repeat bv2/2:color rv3,gv3,bv3:line q.0.0,q.1.0,q.0.0,q.2.0:rv3-=q.0.1:gv3-=q.1.1:bv3-=q.2.1:q.0.0++:q.1.0++:q.2.0--:loop rv3=rv4:gv3=gv4:bv3=bv4:q.0.0=x2+bv2:q.1.0=y2+bv2-1:q.2.0=gv2-bv2 repeat bv2/2:color rv3,gv3,bv3:line q.0.0,q.1.0,q.0.0,q.2.0:rv3-=q.0.1:gv3-=q.1.1:bv3-=q.2.1:q.0.0--:q.1.0--:q.2.0++:loop rv3=rv4:gv3=gv4:bv3=bv4:q.0.0=x2:q.1.0=gv2:q.2.0=rv2 repeat bv2/2:color rv3,gv3,bv3:line q.0.0,q.1.0,q.2.0,q.1.0:rv3-=q.0.1:gv3-=q.1.1:bv3-=q.2.1:q.0.0++:q.1.0--:q.2.0--:loop rv3=rv4:gv3=gv4:bv3=bv4:q.0.0=x2+bv2:q.1.0=gv2-bv2:q.2.0=rv2-bv2 repeat bv2/2:color rv3,gv3,bv3:line q.0.0,q.1.0,q.2.0,q.1.0:rv3-=q.0.1:gv3-=q.1.1:bv3-=q.2.1:q.0.0--:q.1.0++:q.2.0++:loop rv3=rv4:gv3=gv4:bv3=bv4:q.0.0=rv2-bv2:q.1.0=y2+bv2-1:q.2.0=gv2-bv2 repeat bv2/2:color rv3,gv3,bv3:line q.0.0,q.1.0,q.0.0,q.2.0:rv3-=q.0.1:gv3-=q.1.1:bv3-=q.2.1:q.0.0++:q.1.0--:q.2.0++:loop rv3=rv4:gv3=gv4:bv3=bv4:q.0.0=rv2:q.1.0=y2-1:q.2.0=gv2 repeat bv2/2:color rv3,gv3,bv3:line q.0.0,q.1.0,q.0.0,q.2.0:rv3-=q.0.1:gv3-=q.1.1:bv3-=q.2.1:q.0.0--:q.1.0++:q.2.0--:loop flag++:color rv,gval,bval:line x2+flag-1,y2+flag,rv2-flag,y2+flag:line x2+flag,y2+flag-1,x2+flag,gv2-flag line x2+flag,gv2-flag,rv2-flag,gv2-flag:line rv2-flag,y2+flag,rv2-flag,gv2-flag return *resave gsel 3,1 if z.0=1 {bmpsave o.5:chdir o.0:goto *main} strlen i,o.5:i-=3:strmid u,o.5,i,3 if u="bmp":flag=0:else:flag=1 if flag=1 {dialog "新規保存するか、\nBMP画像を背景に読み込んでからにしてね",1:goto *main } else {dialog "背景に読み込んだ画像に\n上書きするけど、いい?",2} if stat=7 {goto *main} else {bmpsave o.5:chdir o.0:z.0=1:goto *main} *bmpout dialog "bmp",17,"ビットマップ ファイル" if stat=0:goto *main o.1=curdir:chdir o.0:fxcopy fil,o.1,0 chdir o.1:fxren fil,refstr gsel 3,1:bmpsave refstr:chdir o.0:z.0=1:o.5=refstr goto *main *ending end