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

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


<< 折れ線の生成 | main | 多角形の内部の反射処理 >>



2直線と平行のベクトル

二つの線分に対して平行の線を求めるプログラムです

マウスドラッグで線を動かすことで、常に平行線が再描写されてます

 


;線データ
ddim lndt,4,2
lndt(0,0)=100.0,100.0,320.0,240.0
lndt(0,1)=320.0,240.0,320.0,460.0
x1=0:y1=0:x2=0:y2=0
repeat
    color:boxf
    mux=mousex:muy=mousey
    getkey k1,1
    getkey k2,2
    if k1{    ;左ドラッグで線を動かす
        lndt(0,0)=0f+mux:lndt(1,0)=0f+muy
    }
    if k2{    ;右ドラッグで線を動かす
        lndt(2,1)=0f+mux:lndt(3,1)=0f+muy
    }
    repeat 2
        color 255,((cnt+1)/2)*255,((cnt+1)¥2)*255
        line lndt(0,cnt),lndt(1,cnt),lndt(2,cnt),lndt(3,cnt)
    loop
    color 255,255,255
    circle lndt(0,0)-20,lndt(1,0)-20,lndt(0,0)+20,lndt(1,0)+20,0
    circle lndt(2,1)-20,lndt(3,1)-20,lndt(2,1)+20,lndt(3,1)+20,0
    x1=lndt(0,0):y1=lndt(1,0)
    x2=lndt(2,0):y2=lndt(3,0)
    wldir1=atan(y2-y1,x2-x1)        ;線1のベクトル
    x1=lndt(0,1):y1=lndt(1,1)
    x2=lndt(2,1):y2=lndt(3,1)
    wldir2=atan(y2-y1,x2-x1)        ;線2のベクトル
    wldir3=(wldir1+wldir2)/2        ;線1と線2の平行ベクトル
    ;平行ベクトルの描写
    color ,255
    line -cos(wldir3)*100+320,-sin(wldir3)*100+240,cos(wldir3)*100+320,sin(wldir3)*100+240
    redraw:await 17:redraw 0
loop

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


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