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

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


<< 徐々に線引き | main | 一日ゲームNo.19「迷路RPG」 >>



左右対称の線

画面の真ん中を軸に、複数の線を鏡のように左右対称に描写するプログラムです

白い線の角をドラッグすることで線を動かせます

 


;片側の線データ
dim lndt,4,2
cenx=320
lndt(0,0)=200,240,cenx,80
lndt(0,1)=cenx,400,200,240
repeat
    color:boxf:color 255,255,255
    mux=mousex:muy=mousey
    ok1=k1:getkey k1,1:tk1=k1^ok1&k1:rk1=k1^ok1&ok1
    if tk1{    ;角をクリックで線を動かせる
        pushct=-1
        repeat 2
            dis=sqrt(powf(lndt(2,cnt)-mux,2)+powf(lndt(3,cnt)-muy,2))
            if dis<=10{
                pushct=cnt
                break
            }
        loop
        if pushct<0{
            dis=sqrt(powf(lndt(0,length2(lndt)-1)-mux,2)+powf(lndt(1,length2(lndt)-1)-muy,2))
            if dis<=10{
                pushct=length2(lndt)
            }
        }
    }
    if k1{
        if 0=pushct{
            lndt(3,pushct)=muy
        }else:if pushct=length2(lndt){
            lndt(1,pushct-1)=muy
        }else:if 0<pushct&pushct<length2(lndt){
            lndt(0,pushct-1)=mux:lndt(1,pushct-1)=muy
            lndt(2,pushct)=mux:lndt(3,pushct)=muy
        }
    }
    if rk1{
        pushct=-1
    }
    ;左右対称に描写
    repeat length2(lndt)
        ex=lndt(0,cnt):ey=lndt(1,cnt)
        sx=lndt(2,cnt):sy=lndt(3,cnt)
        color 255,255,255
        line ex,ey,sx,sy
        ex=(cenx-lndt(0,cnt))+cenx:ey=lndt(1,cnt)
        sx=(cenx-lndt(2,cnt))+cenx:sy=lndt(3,cnt)
        color 255
        line ex,ey,sx,sy
    loop
    redraw:await 17:redraw 0
loop

0
    posted by higashijugem 21:58comments(0)|-|


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