ソースを上げるスレッド

140名前は開発中のものです。
#define WX      200 ; ウィンドウサイズX
#define WY      200 ; ウィンドウサイズY
#define CH_SIZE 16  ; キャラサイズ
#define CH_MOVE 2   ; キャラ移動量
#define BL_NUM  3   ; ブロック数
x=0     ; キャラ座標X
y=0     ; キャラ座標Y
int key ; 取得キー

dim blocks,4,BL_NUM
; blocks.(0=左上X 1=左上Y 2=右下X 3=右下Y).ブロック番号
blocks.0.0 = 60 ,70 ,80 ,90
blocks.0.1 = 100,100,120,120
blocks.0.2 = 160,20 ,180,40

screen 0,WX,WY

; メインループ
repeat
        gosub *keyproc
        gosub *draw
        gosub *checkcol
        wait 1
loop
141名前は開発中のものです。:02/12/06 20:12 ID:Ppy2/Myo
; キー処理
*keyproc
        stick key,15
        if key&1 : x-=CH_MOVE : if x<0 : x=0
        if key&2 : y-=CH_MOVE : if y<0 : y=0
        if key&4 : x+=CH_MOVE : if x>(WX-CH_SIZE) : x=WX-CH_SIZE
        if key&8 : y+=CH_MOVE : if y>(WY-CH_SIZE) : y=WY-CH_SIZE
        return

; 描画
*draw
        redraw 0
        color 0,0,0 : boxf

        ; ブロックの描画
        color 255,255,255
        repeat BL_NUM
                dup bl,blocks.0.cnt
                boxf bl.0,bl.1,bl.2,bl.3
        loop

        ; 自キャラの描画
        color 255,255,255
        pos x,y : mes "●"

        redraw 1
        return
142名前は開発中のものです。:02/12/06 20:12 ID:Ppy2/Myo
; 衝突のチェック
*checkcol
        f=0
        repeat BL_NUM
                dup bl,blocks.0.cnt
                if (x>(bl.0-CH_SIZE))&(y>(bl.1-CH_SIZE))&(x<=bl.2)&(y<=bl.3) {
                        title "hit on block no."+cnt
                        f=1
                }
        loop

        if f=0 : title ""
        return