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

プチコン3号


参考資料

§ 回転罠2(トラップ) §

複数のスプライトをSPLINKステートメントで連結して連動させる方法以外にも、個々のスプライトの表示位置を三角関数で求め、回転のアニメーションを実現する事が出来ます。三角関数は、ゲーム作成に必須の知識ですので、早目に習得して置く事を推奨します。

下記のプログラムでは、回転する罠(トラップ)を実現して居ます。キャラクタは、 ボタンで左右に動き、 ボタンでジャンプし、 ボタンでダッシュします。 ボタンで何度でも挑戦出来ます。終了するには、キーボード画面の STOP をタップして下さい。

0000001OPTION  STRICT
0000002ACLS
0000003DIM  I,J,B,X,Y,N,A,A1,A2,A3,D
0000004
0000005GFILL  0,0,399,239,RGB(0,0,128)
0000006
0000007FOR  I=0  TO  24
0000008  BGPUT  0,I,13,614
0000009  BGPUT  0,I,14,646
0000010NEXT
0000011FOR  I=6  TO  18  STEP  6
0000012  FOR  J=0  TO  10
0000013    NGPUT  0,I,J,491
0000014  NEXT
0000015NEXT
0000016
0000017SPSET  0,496
0000018SPOFS  0,0,192
0000019
0000020SPSET  1,1346
0000021SPOFS  1,96,168
0000022SPANIM  1,"I",8,1347,8,1346,0
0000023SPSET  2,1346
0000024SPOFS  2,96,144
0000025SPANIM  2,"I",8,1347,8,1346,0
0000026SPSET  3,1346
0000027SPOFS  3,96,128
0000028SPANIM  3,"I",8,1347,8,1346,0
0000029
0000030SPSET  4,1346
0000031SPOFS  4,192,168
0000032SPANIM  4,"I",8,1347,8,1346,0
0000033SPSET  5,1346
0000034SPOFS  5,192,144
0000035SPANIM  5,"I",8,1347,8,1346,0
0000036SPSET  6,1346
0000037SPOFS  6,192,128
0000038SPANIM  6,"I",8,1347,8,1346,0
0000039
0000040SPSET  7,1346
0000041SPOFS  7,288,168
0000042SPANIM  7,"I",8,1347,8,1346,0
0000043SPSET  8,1346
0000044SPOFS  8,288,144
0000045SPANIM  8,"I",8,1347,8,1346,0
0000046SPSET  9,1346
0000047SPOFS  9,288,128
0000048SPANIM  9,"I",8,1347,8,1346,0
0000049
0000050SPCOL  0
0000051SPCOL  1 : SPCOL  2 : SPCOL  3,4,4,4,4,,255
0000052SPCOL  4 : SPCOL  5 : SPCOL  6,4,4,4,4,,255
0000053SPCOL  7 : SPCOL  8 : SPCOL  9,4,4,4,4,,255
0000054
0000055@START
0000056X=0 : Y=192 : A1=0 : A2=90 : A3=180 : D=1 : N=0
0000057WHILE  TRUE
0000058  B=BUTTON(0)
0000059  IF  B  AND  64  THEN  BREAK
0000060  IF  B  AND  32  THEN
0000061    D=D*1.2 : IF  D>5  THEN  D=5
0000062  ELSE
0000063    D=1
0000064  ENDIF
0000065  IF  B  AND  4  THEN
0000066    DEC  X,D : IF  X<0  THEN  X=0
0000067    SPCHR  0,504+(N  DIV  10)
0000068  END IF
0000069  IF  B  AND  8  THEN
0000070    INC  X,D : IF  X>383  THEN  X=383
0000071    SPCHR  0,496+(N  DIV  10)
0000072  ENDIF
0000073  
0000074  INC  A1 : IF  A1>359  THEN  A1=0
0000075  INC  A2 : IF  A2>359  THEN  A2=0
0000076  INC  A3 : IF  A3>359  THEN  A3=0
0000077  A=RAD(A1)
0000078  SPOFS  2,104+SIN(A)*16-8,168-COS(A)*16-8
0000079  SPOFS  3,104+SIN(A)*32-8,168-COS(A)*32-8
0000080  A=RAD(A2)
0000081  SPOFS  5,200+SIN(A)*16-8,168-COS(A)*16-8
0000082  SPOFS  6,200+SIN(A)*32-8,168-COS(A)*32-8
0000083  A=RAD(A3)
0000084  SPOFS  8,296+SIN(A)*16-8,168-COS(A)*16-8
0000085  SPOFS  8,296+SIN(A)*32-8,168-COS(A)*32-8
0000086  
0000087  SPOFS  0,X,Y
0000088  IF  SPHITSP(0)>0  THEN  BREAK
0000089  INC  N : IF  N>30  THEN  N=0
0000090  VSYNC  1
0000091WEND
0000092LOCATE 18,10 : PRINT  "PUSH A BUTTON!"
0000093REPEAT
0000094  B=BUTTON(0)
0000095UNTIL  (B  AND  16)>0
0000096CLS : GOTO  @START
0000097



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

Copyright © King of Squid, All rights reserved.