線を描画して、それがどれ位塗りつぶされたかが分かるような
プログラムを作りたいのですが、何故か一部しか判定されないのです。
分かる方いらっしゃいましたら、どうか教えてください。
randomize #module #include "gdi32.as" #const global PS_SOLID 0 //実線 #const global PS_DASH 1 //破線 #const global PS_DOT 2 //点線 #const global PS_DASHDOT 3 //一点鎖線 #const global PS_DASHDOTDOT 4 //二点鎖線 #deffunc line2 int linetype,int lnwidth,int endx,int endy createPen linetype,lnwidth,ginfo(16)|ginfo(17)<<8|ginfo(18)<<16 pen=stat selectObject hdc,pen moveToEx hdc,ginfo(22),ginfo(23),0 lineTo hdc,endx,endy deleteObject pen return #global *maemain color 131,150,154 pos 250,70 font "STROKE",200,16 dim peintx,641 dim peinty,641 dim peintf,641 dim peintf2,641,481 dim xf2,640 dim yf2,480 peint=0.0 peintc=0.0 peintcmes=0.0 waitn=1000 sakuru=rnd(2) dim sakurux,sakuru+10 dim sakuruy,sakuru+10 dim sakuruset,sakuru+7 dim sakuruline,sakuru+20 dim xkaburi,150 dim linernd,sakuru+7,sakuru+7 dim sakururnd,sakuru+7 sakuru7=sakuru+7 repeat sakuru7 sakurux(cnt)=rnd(640) sakuruy(cnt)=rnd(400) sakururnd(cnt)=rnd(5) loop *lineloop repeat sakuru7 linernd(cnt)=rnd(sakuru7) if linernd(cnt)=cnt:break linef+ loop if linef=sakuru7:goto *nakamein linef=0 goto *lineloop *nakamein redraw 0 repeat sakuru7 color 131,150,154 pos sakurux(linernd(cnt)),sakuruy(linernd(cnt)) line2 0,5,sakurux(cnt)+cnt,sakuruy(cnt)+cnt loop redraw 1 repeat sakuru7 randomize if sakururnd(cnt)=0:color 239,101,101 if sakururnd(cnt)=1:color 84,201,111 if sakururnd(cnt)=2:color 119,201,221 if sakururnd(cnt)=3:color 240,235,166 if sakururnd(cnt)=4:color 108,117,149 circle sakurux(cnt),sakuruy(cnt),sakurux(cnt)+10,sakuruy(cnt)+10,1 loop repeat 640 xf=cnt repeat 480 yf=cnt pget xf,yf r=ginfo(16) g=ginfo(17) b=ginfo(18) if (r=131)and(g=150)and(b=154):peintx(xf)=xf:peinty(xf)=yf:peintf(xf)+:peintc+ loop loop *main redraw 0 color 255,255,255 boxf 0,400,640,480 boxf 0,0,100,100 getkey kurikku if kurikku=1{ color 48,67,243 pos drowx,drowy line2 0,3,mousex,mousey } pget mousex,mousey r=ginfo(16) g=ginfo(17) b=ginfo(18) if (peintx(mousex)=mousex)and(peinty(mousex)=mousey):pos 0,0 :color:mes "ok" repeat 640 xf=cnt repeat peintf(xf) yf=cnt pos 0,390 if peintf2(xf,yf)=0{ pget peintx(xf),peinty(xf) r=ginfo(16) g=ginfo(17) b=ginfo(18) if (r=48)and(g=67)and(b=243):peint=peint+1:peintf2(xf,yf)+:mes "on" } loop loop color font "msgothic",100,16 pos 50,390 mes peint if peint>0:peintcmes=peint/peintc*100 x2=mousex y2=mousey mes peintcmes x=mousex drowx=mousex drowy=mousey yfc=0 wait 1 redraw 1 goto *main