ゲームを作りたい人のための ソースコード集

私がその日作った短めのソースを簡単な解説とともに載せていきます
ゲーム制作初心者にとって参考になるかもしれないソースが多いです


<< ジャパニーズアトラクタ | main | 重ならないように円を配置ver2 >>



重ならないように円を配置

円が重なり合わないように描写するプログラムです

青色の場合はクリックすることで配置可能、赤色の場合はすでに置かれた円と重なっているので配置できません

 


crmax=10
dim crdt,4,crmax    ;円データ
len=50
repeat
    mux=mousex:muy=mousey
    ok1=k1:getkey k1,1:tk1=k1^ok1&k1
    color 255,255,255:boxf
    mapsetflg=0
    if tk1{
        mapsetflg=1
    }
    overflg=0
    color
    repeat crmax    ;配置円の描写と、配置円との重なりがないかチェック
        if crdt(0,cnt){
            tx=crdt(1,cnt):ty=crdt(2,cnt):tlen=crdt(3,cnt)
            dis=sqrt(powf(mux-tx,2)+powf(muy-ty,2))
            if dis<=tlen+len{
                overflg=1
            }
            circle tx-tlen,ty-tlen,tx+tlen,ty+tlen
        }
    loop
    if overflg=0{    ;重なっていなければ
        if mapsetflg{    ;円を配置可能
            repeat crmax
                if crdt(0,cnt)=0{
                    crdt(0,cnt)=1,mux,muy,len
                    break
                }
            loop
        }
        mapsetflg=0
        color ,,255
    }else{
        color 255
    }
    circle mux-len,muy-len,mux+len,muy+len
    redraw:await 17:redraw 0
loop

0
    posted by higashijugem 12:42comments(0)|-|


    この記事に対するコメント