本当に簡易的で説明も下手なので参考にもならないと思います。
#コード
main.hsp
screen 0,320,240 //画面初期化
x=0 //変数初期化ここから
y=0
dim hit,60,17
atr=0
stg=0
sizx=60
sizy=17 //変数初期化ここまで
//マップデータ
map(0) ="000000000000000000000000000000000000000000000000000000000000"
map(0)+="000000000000000000000000000000000000000000000000000000000000"
map(0)+="000000000000000000000000000000000000000000000000000000000000"
map(0)+="000000000000000000000000000000000000000000000000000000000000"
map(0)+="000000000000000000000000000000000000000000000000000000000000"
map(0)+="000000000000000000000000000000000000000000000000000000000000"
map(0)+="000000000000000000000000000000000000000000000000000000000000"
map(0)+="000000000000000000000000000000000000000000000000000000000000"
map(0)+="000000000000000000000000000000000000000000000000000000000000"
map(0)+="000000000000000000000000000000000000000000000000000000000000"
map(0)+="000001111111000000000000000000000000000000000000000000000000"
map(0)+="000000000000000000000000000000000000000000000000000000000000"
map(0)+="000000000000000000000000000000000000000000000000000000000000"
map(0)+="000000000000000000000000000000000000000000000000000000000000"
map(0)+="111111111111111000111111111110111111111111111111111111111111"
map(0)+="111111111111111000111111111110111111111111111111111111111111"
map(0)+="111111111111111000111111111110111111111111111111111111111111"
//地面描画処理ここから
buffer 3
repeat sizy//Yサイズの数だけ繰り返す
bgy=cnt//bgy変数にY方向の繰り返し回数を代入
repeat sizx//Xサイズの数だけ繰り返す
bgx=cnt//bgx変数にX方向の繰り返し回数を代入
drw=strmid(map(0),bgy*sizx+bgx,1)//drw変数に現在位置の文字列をmap変数から読み出し
//atr変数は当たり判定です
//str_map変数は描画する文字です
if drw="0" {str_map=" ":atr=0}
if drw="1" {str_map="B":atr=1}
hit(bgx,bgy)=atr//当たり判定を設定
//描画ここから
pos bgx*8,bgy*16
color 255,0,255
mes str_map
//描画ここまで
loop
loop
gsel 0
//地面描画処理ここまで
repeat //永遠に繰り返す
redraw 0
stick stk,15//stk命令にキー入力を代入
color 0,0,0//背景色
boxf//背景
color 255,255,255//透過色
gmode 4,0,0,255//透過モード
pos 0,0//左端に設定
gcopy 3,bx,0,320,240//地面コピー
pos x,y//場所指定
mes "A"//A(プレイヤー)を描画
y=y+1//重力
vx=0//Xの進む量
if (y/16+1)>16 :break//落ちたら終了
if hit((x+bx)/8,y/16+1)=1 :y=y-1//地面があったら重力に抵抗する
if stk&16 {
if j=0 :j=64//ジャンプしていなければジャンプ
}
if j!0 :j=j-1:y=y-2//ジャンプ中なら浮かせる
if stk&1 :vx=-1//左に入力中なら移動量を-1にする
if stk&4 :vx=1//右に入力中なら移動量を1にする
if x>160 :bx=bx+1:x=x-1//Xが160以上になったらスクロール
x=x+vx//移動量を追加
if x<0 :x=0//画面外に出たら戻す
redraw 1
await 10
loop
end
初投稿なのでこれだけで許してください...