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

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


<< マウスによるオブジェクトのサイズ変更 | main | ローレンツアトラクタ >>



オブジェクトのドラッグver3

オブジェクトをドラッグ&ドロップするプログラムです

複数の図形をそれぞれ移動させたり大きさを変えたりできます

 


randomize
objmax=5
dim objdt,5,objmax
repeat objmax
    objdt(0,cnt)=cnt
    x=rnd(390):y=rnd(260)
    objdt(0,cnt)=x,y
    objdt(2,cnt)=x+rnd(100)+50,y+rnd(80)+40
loop
repeat
    mux=mousex:muy=mousey
    ok1=k1
    getkey k1,1
    tk1=k1^ok1&k1
    if tk1{
        ;図形の辺や角をクリックする
        id=-1:type=0
        repeat objmax
            ltx=objdt(0,cnt)
            lty=objdt(1,cnt)
            rbx=objdt(2,cnt)
            rby=objdt(3,cnt)
            if ltx-8<=mux&mux<=rbx+8&lty-8<=muy&muy<rby+8{
                id=cnt
                if abs(mux-ltx)<8{
                    type|%0001
                }
                if abs(muy-lty)<8{
                    type|%0010
                }
                if abs(mux-rbx)<8{
                    type|%0100
                }
                if abs(muy-rby)<8{
                    type|%1000
                }
                if type=0{
                    type|%1111
                }
                sltx=mux-objdt(0,cnt)
                slty=muy-objdt(1,cnt)
                srbx=mux-objdt(2,cnt)
                srby=muy-objdt(3,cnt)
                break
            }
            if id>=0:break
        loop
    }
    if k1{
        if id>=0{
            ;伸ばしたり縮めたりする
            if type&%0001{
                objdt(0,id)=mux-sltx
            }
            if type&%0010{
                objdt(1,id)=muy-slty
            }
            if type&%0100{
                objdt(2,id)=mux-srbx
            }
            if type&%1000{
                objdt(3,id)=muy-srby
            }
        }
    }
    ;描写
    color 255,255,255:boxf:color
    repeat objmax
        ltx=objdt(0,cnt)
        lty=objdt(1,cnt)
        rbx=objdt(2,cnt)
        rby=objdt(3,cnt)
        boxf ltx,lty,rbx,rby
    loop
    redraw:await 17:redraw 0
loop

0
    posted by higashijugem 06:49comments(0)|-|


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