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

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


<< 判別分析法 | main | リッチエディットコントロール >>



VRAM操作

VRAMの値を書き換えて矩形を描写するプログラムです

領域の幅が4の倍数でない場合や範囲外を指定した場合でも、正常に表示されます

 

#module
#deffunc areacheck var p,var l,var te,int ge
    if l<0{
        p=p+l
        l=l*(-1)
    }
    te=l+p
    if te<0{
        te=0
    }else:if te>ge{
        te=ge
    }
    if p<0{
        p=0
    }
    return
#global
#module
#deffunc vramset array vram,int tx,int ty,int tw,int th,int tc,int tgw,int tgh
    x=tx:y=ty:w=tw:h=th:c=tc:gw=tgw:gh=tgh
    r=c&0xff
    g=(c>>8)&0xff
    b=(c>>16)&0xff
    areacheck x,w,tew,gw
    areacheck y,h,teh,gh
    if (gw*3)¥4!=0{
        fx=1
        ix=1-((gw*3)¥4)
    }else{
        fx=0:ix=0
    }
    ;横一行分のデータ作成
    sdim wdata,(tew-x)*3
    repeat tew-x
        index=cnt*3
        poke wdata,index,r
        poke wdata,index+1,g
        poke wdata,index+2,b
    loop
    ;四角形描写
    j=y
    w=(tew-x)*3
    repeat
        if j>=teh:break
        tj=(gh-j-1)
        sfx=fx*tj
        six=ix*tj
        i=x+sfx
        index=(tj*gw+i)*3+six
        memcpy vram,wdata,w,index,0
        j++
    loop
    return
#global
boxf
mref vram,66
vramset vram,50,50,100,100,$ffffff,ginfo(12),ginfo(13)
redraw

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


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