
参考資料
§ 基本アクション(スプライト移動) §
走れ、走れ!
ボタンの押し下げ状態、変数のインクリメントとデクリメント、アニメーション
前出の『歩け、歩け!』に記述して居ますので、参照して下さい。
ダッシュ
移動速度を格納した変数DSの値を、
ボタンが押され続けて居る間、上限の5に成る迄、1.2倍して居ます。亦、
ボタンが押されて居ないか、開放された時に、初期値の0に戻して居ます。
B=BUTTOPN(0)
IF B AND 32 THEN
DS=DS*1.2:IF DS>5 THEN DS=5
ELSE
DS=1
ENDIF
移動速度に一定の値を加算して行くと等加速に成りますが、乗算して行くと徐々に加速する事に成ります(此の値は、適宜調整して下さい)。
プログラムの説明
下記のプログラムでは、スプライトが、
ボタンで左右に動きます。
ボタンを同時に押すとダッシュします。
| 0000001 | OPTION STRICT |
| 0000002 | ACLS |
| 0000003 | DIM B,X=184,Y=200,DS=1,C=0,N=0 |
| 0000004 | SPSET 0,620 |
| 0000005 | SPSCALE 0,2,2 |
| 0000006 | SPOFS 0,X,Y |
| 0000007 | GFILL 0,232,399,239,RGB(0,255,0) |
| 0000008 | |
| 0000009 | LOCATE 17,1:PRINT "PUSH X TO FINISH" |
| 0000010 | |
| 0000011 | WHILE TRUE |
| 0000012 | B=BUTTON(0) |
| 0000013 | IF B AND 64 THEN BREAK |
| 0000014 | IF B AND 32 THEN |
| 0000015 | DS=DS*1.2:IF DS>5 THEN DS=5 |
| 0000016 | ELSE |
| 0000017 | DS=1 |
| 0000018 | ENDIF |
| 0000019 | IF B AND 4 THEN |
| 0000020 | DEC X,DS:SPCHR 0,624+N |
| 0000021 | ENDIF |
| 0000022 | IF B AND 8 THEN |
| 0000023 | INC X,DS:SPCHR 0,616+N |
| 0000024 | ENDIF |
| 0000025 | IF X<0 THEN X=0 |
| 0000026 | IF X>366 THEN X=366 |
| 0000027 | INC C,DS |
| 0000028 | IF (C DIV 10)==1 THEN |
| 0000029 | C=0:INC N:IF N>3 THEN N=0 |
| 0000030 | ENDIF |
| 0000031 | SPOFS 0,X,Y |
| 0000032 | VSYNC 1 |
| 0000033 | WEND |
| 0000034 | ACLS:END |
