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

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


<< ひまわりの種の配置 | main | 自動で近づき攻撃するオブジェクト >>



近づくと出現するオブジェクト

範囲内に入るとオブジェクトが作成されるプログラムです

黒い円の中にマウスカーソルを持ってくると、赤い円の範囲内にオブジェクトが現れ、近づいていきます

 

 

;中心の範囲データ
dim origindt,5
origindt=320,240,30,120
;オブジェクトデータ
objmax=100
ddim objdt,5,objmax
objtmax=50
objtnum=0
repeat
    mux=mousex:muy=mousey
    den1=sqrt(powf(origindt(0)-mux,2)+powf(origindt(1)-muy,2))
    len=origindt(2)
    if den1<=origindt(3){
        ;一定の間隔で作成される
        if objtnum{
            objtnum--
        }else{
            repeat objmax
                if objdt(0,cnt)<1.0{
                    objdt(0,cnt)=1.0
                    objdt(1,cnt)=0f+rnd(len)-len/2+origindt(0)
                    objdt(2,cnt)=0f+rnd(len)-len/2+origindt(1)
                    break
                }
            loop
            objtnum=objtmax
        }
    }
    ;描写
    color 255,255,255:boxf
    x=origindt(0):y=origindt(1):r1=origindt(2):r2=origindt(3)
    color 255:circle x-r1,y-r1,x+r1,y+r1,0
    color:circle x-r2,y-r2,x+r2,y+r2,0
    repeat objmax
        if objdt(0,cnt)>=1.0{
            den2=sqrt(powf(objdt(1,cnt)-mux,2)+powf(objdt(2,cnt)-muy,2))
            if den2<2{
                ;消滅
                objdt(0,cnt)=0.0
            }else{
                ;移動
                rad=atan(muy-objdt(2,cnt),mux-objdt(1,cnt))
                objdt(1,cnt)+cos(rad)
                objdt(2,cnt)+sin(rad)
                dx=objdt(1,cnt):dy=objdt(2,cnt)
                circle dx-2,dy-2,dx+2,dy+2
            }
        }
    loop
    redraw:await 17:redraw 0
loop

0
    posted by higashijugem 11:18comments(0)|-|


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