okです
まっさらの状態から考えていきましょう
まず、
acls
@main
goto @main
というプログラムを組みます
1行目のaclsは画面を初期化するためのものです
2行目の@mainはラベルと呼ばれるものです
プログラムでは常に上から下に向かって処理が行われています。goto @mainで、その流れを変えるのです(@mainのところに行く)
ここでは、@mainからgoto @mainの間に書いた処理が無限に繰り返されます。これを無限ループと呼びます
では次に、ボタン入力を受け付けてみましょう。そのためには
@main
vsync
stick out sx,sy
b=button()
goto @main
と書きます
stickという関数でスティックの入力を受け付けてます
後ろの変数に、横の傾き、縦の傾きが入ります
buttonというのも関数です。これはボタン入力を受け付けます。stickと書き方が違うのは、本を読んでください。ちなみに変数名は、何でもいいです
vsyncはstickとbuttonを正常に動作させるためにあります。詳しくは本を読んでください
次に戦士のスプライトを出します
この処理は無限ループの外に書きます
acls
spset 0,496
@main
〜
496が戦士の定義番号(画像番号)です
最初の0は管理番号と言います。スプライトの名前みたいなものです。詳しくは本で
さて次にアニメーションと位置です。これも無限ループの外です
acls
x=64
y=48
t=16
spset 〜
spofs 0,x,y
spanim 0,"i+",t,0,t,1,t,2,t,3,0
@main
〜
これでアニメーションと位置の調整ができます。xとy、およびtの値は何でもいいです
次に四方向むくようにします
これは無限ループの中です
〜
@main
〜
up=(b and 1) || sy>0.3
down=(b and 2) || sy<-0.3
left=(b and 4) || sx<-0.3
right=(b and 8) || sx>0.3
idou=0
m=muki
if up then idou=1 muki=3
if down then idou=1 muki=1
if left then idou=1 muki=2
if right then idou=1 muki=0
if idou then
if m!=muki then
spchr 0,496+ muki×4
spanim 0,"i+",t,0,t,1,t,2,t,3,0
endif
endif
goto @main
これで向きが変わります
次は移動です