烏賊先生のプログラミング道場

プチコン3号


参考資料

§ 基本アクション(スプライト移動) §

弾め、弾め!

ボタンの押し下げ状態、変数のインクリメントとデクリメント、アニメーション

前出の『歩け、歩け!』に記述して居ますので、参照して下さい。

ジャンプ

前出の『跳べ、跳べ!2』に記述して居ますので、参照して下さい。但し、状態フラグを、跳躍フラグJPと落下フラグFLに別けて居ます。

バウンド

落下時に、地面に到達すれば、速度ACの符号を反転させて減少させます(負の値を乗算する)。速度の絶対値がが一定の値未満に成れば、バウンドを終了します(下記のプログラムでは、画面の上端に達すると、強制的に落下モードに仕て居ます)。

IF Y<0 THEN
  JP=0:FL=1
ELSEIF Y>=216 THEN
  Y=216:AC=AC*(-0.65)
  IF ABS(AC)<1 THEN JP=0:FL=0
ENDIF

スプライトの回転

SPROTステートメントを使用すると、スプライトを回転する事が出来ます。

プログラムの説明

下記のプログラムでは、スプライトが、 ボタンで左右に動き、 ボタンでダッシュし、 ボタンでジャンプします。

0000001OPTION STRICT
0000002ACLS
0000003DIM X,Y,AC,JP,FL,DS,B,A
0000004SPSET 0,339
0000005SPHOME 0,8,8
0000006SPSCALE 0,2,2
0000007GFILL 0,232,399,239,RGB(0,255,0)
0000008
0000009X=184:Y=216:AC=0:JP=0:FL=0:DS=1:A=0
0000010SPOFS 0,X,Y
0000011
0000012LOCATE 17,1:PRINT "PUSH X TO FINISH"
0000013
0000014WHILE TRUE
0000015  B=BUTTON(0)
0000016  
0000017  'QUIT
0000018  IF B AND 64 THEN BREAK
0000019  
0000020  'DASH
0000021  IF B AND 32 THEN
0000022    DS=DS*1.2:IF DS>5 THEN DS=5
0000023  ELSE
0000024    DS=1
0000025  ENDIF
0000026  
0000027  'LEFT MOVE
0000028  IF B AND 4 THEN
0000029    DEC X,DS:DEC A,3*DS:IF A<0 THEN A=359
0000030  ENDIF
0000031  
0000032  'RIGHT MOVE
0000033  IF B AND 8 THEN
0000034    INC X,DS:INC A,3*DS:IF A>359 THEN A=0
0000035  ENDIF
0000036  
0000037  IF X<0 THEN X=0
0000038  IF X>366 THEN X=366
0000039  
0000040  'JUMP
0000041  IF !FL THEN
0000042    IF B AND 16 THEN
0000043      JP=1:DEC AC:IF AC<-10 THEN AC=-10:FL=1
0000044    ELSE
0000045      IF JP THEN FL=1:JP=0
0000046    ENDIF
0000047  ENDIF
0000048  
0000049  IF JP || FL THEN
0000050    INC AC,0.7
0000051    INC Y,AC
0000052    IF Y<0 THEN
0000053     JP=0:FL=1
0000054    ELSEIF Y>=216 THEN
0000055     Y=216:AC=AC*(-0.65)
0000056     IF ABS(AC)<1 THEN JP=0:FL=0
0000057    ENDIF
0000058  ENDIF
0000059  
0000060  SPOFS 0,X,Y
0000061  SPROT 0,A
0000062  
0000063  VSYNC 1
0000064WEND
0000065ACLS:END




ゲームプログラミング道場 ニンテンドー3DS Smile BASIC  Visual Basic,Visual C#

Copyright © King of Squid, All rights reserved.