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

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


<< 視界フィルター | main | マウスによるオブジェクトのサイズ変更 >>



ダメージアニメーション

RPGでよくある、キャラクターに攻撃を当てたり回復したりすると数字が出てくるアニメを作成しました

画面上の物体をクリックすることでアニメが実行されます

 

 

;オブジェクト生成
csz=20
buffer 2,csz,csz:celdiv 2,csz,csz,csz/2,csz/2
color ,255,255:boxf
dim emyxy,2,3
x=220:y=280
repeat 3
    emyxy(0,cnt)=x,y
    x+100
loop
;背景バッファ
buffer 1
boxf
repeat 3
    pos emyxy(0,cnt),emyxy(1,cnt)
    celput 2,0
loop
;ダメージアニメーション
dim dmganidt,6,50
repeat 50
    dmganidt(4,cnt)=50
loop
;処理開始
gsel 0
repeat
    mux=mousex:muy=mousey
    ok1=k1
    getkey k1,1
    tk1=k1^ok1&k1
    if tk1{
        pshnum=-1
        repeat 3
            ltx=emyxy(0,cnt)-csz/2
            lty=emyxy(1,cnt)-csz/2
            rbx=emyxy(0,cnt)+csz/2
            rby=emyxy(1,cnt)+csz/2
            ;オブジェクトをクリックしたかどうか判定
            if ltx<=mux&mux<rbx&lty<=muy&muy<rby{
                pshnum=cnt
                break
            }
        loop
        ;クリックしたらダメージアニメーションを作成
        if pshnum>=0{
            repeat 50
                if dmganidt(0,cnt)=0{
                    dmganidt(0,cnt)=1
                    dmganidt(1,cnt)=emyxy(0,pshnum)
                    dmganidt(2,cnt)=emyxy(1,pshnum)-10
                    dmganidt(3,cnt)=0
                    dmganidt(5,cnt)=rnd(100)
                    break
                }
            loop
        }
    }
    ;描写処理
    gmode 0:pos 0,0:gcopy 1,,,640,480
    color 255
    repeat 50
        if dmganidt(0,cnt){
            x=dmganidt(1,cnt)
            y=dmganidt(2,cnt)-dmganidt(3,cnt)
            pos x,y:mes""+dmganidt(5,cnt)
            dmganidt(3,cnt)++
            if dmganidt(3,cnt)>dmganidt(4,cnt){
                dmganidt(0,cnt)=0
            }
        }
    loop
    redraw:await 17:redraw 0
loop

0
    posted by higashijugem 07:52comments(0)|-|


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