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

プチコン3号


参考資料

§ 移動物搭乗 §

移動する物の上に乗り、一緒に移動するには、SPHITSPステートメントでスプライト同士の衝突判定を行い、SPHITINFOステートメントで衝突時の情報を取得し、キャラクタの表示座標を調整する事で実現出来ます。

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

0000001OPTION  STRICT
0000002ACLS
0000003DIM  I,B,X,Y,A,S,N,M
0000004DIM  T,X1,Y1,X2,Y2
0000005DIM  H,F0,D0,R0
0000006
0000007FOR  I=0  TO  24
0000008  BGPUT  0,I,13,614
0000009  BGPUT  0,I,14,678
0000010NEXT
0000011
0000012SPSET  0,1104
0000013SPOFS  0,10,192
0000014
0000015SPSET  1,1250
0000016SPOFS  1,100,160
0000017
0000018SPCOL  0 : SPCOL  1
0000019
0000020X=10 : Y=192 : S=0 : A=0
0000021F0=160 : D0=-1 : R0=0
0000022WHILE  TRUE
0000023  B=BUTTON(0)
0000024  IF  B  AND  4  THEN
0000025    R0=0 : DEC  X : IF  X<0  THEN  X=0
0000026  ENDIF
0000027  IF  B  AND  8  THEN
0000028    R0=0 : INC  X : IF  X>383  THEN  X=383
0000029  ENDIF
0000030  IF  S==0  &&  (B  AND  16)>0  THEN
0000031    R0=0 : S=1 : A=12
0000032  ENDIF
0000033  IF  S==1  THEN
0000034    DEC  A,0.98
0000035    DEC  Y,A
0000036  ELSE
0000037    N=BGGET(0,X,Y+16,1)
0000038    M=BGGET(0,X+15,Y+16,1)
0000039    IF  N==0  &&  M==0  THEN
0000040      INC  Y,3
0000041    ENDIF
0000042  ENDIF
0000043  IF  Y>192  THEN  Y=192 : S=0
0000044  
0000045  INC  F0,D0 : IF  F0>160  ||  F0<0  THEN  D0=D*-1
0000046  IF  R0==1  THEN  Y=F0-14
0000047  
0000048  SPOFS  0,X,Y
0000049  SPOFS  1,100,F0
0000050  
0000051  H=SPHITSP(0)
0000052  IF  H==1  THEN
0000053    SPHITINFO  OUT  T,X1,Y1,X2,Y2
0000054    IF  Y<Y2  THEN
0000055      Y=Y2-14 : S=0 : R0=1
0000056    ENDIF
0000057  ELSE
0000058    R0=0
0000059  ENDIF
0000060  
0000061  VSYNC  1
0000062WEND



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

Copyright © King of Squid, All rights reserved.