例:キャラ操作(2)

プチコン3号 プチコンBIG 

スプライトキャラのジャンプ・移動制限・アニメーション

解説

動くキャラクター(自分・敵・弾・アイテムなど)のジャンプ・移動制限とアニメーションのサンプルコードです。

キャラクターは「スプライト画面」に表示され、命令文は「SP〜」で始まるものを使用します。
スプライト用コマンドの一覧は、スプライトの命令一覧を参照。

サンプルコード

キャラクターのジャンプ

Aボタンでジャンプするサンプル
SPSET 0,496
X=150:Y=150
J=0   'ジャンプフラグ(1:ジャンプ中)
V=0   '落下速度(マイナスなら上昇)
A=0.2 '重力加速度(地球の引力)
JPOW=6 '初速度(ジャンプ力)
@LOOP
B=BUTTON(2)
IF J==0 && B AND #A THEN J=1:V=-JPOW
Y=Y+V '落下
V=V+A '重力による加速
IF Y>150 THEN Y=150:J=0:V=0
SPOFS 0,X,Y
GOTO @LOOP

キャラクターの移動制限

スプライトキャラが画面から出ないように制限するサンプル
SPSET 0,496
X=100:Y=100
@LOOP
B=BUTTON()
NX=X:NY=Y
IF B AND #UP    THEN NY=Y-1
IF B AND #DOWN  THEN NY=Y+1
IF B AND #LEFT  THEN NX=X-1
IF B AND #RIGHT THEN NX=X+1
IF NX>=0 && NX<=384 THEN X=NX
IF NY>=0 && NY<=224 THEN Y=NY
SPOFS 0,X,Y
GOTO @LOOP

キャラクターのアニメーション

十字キーを押した方向にアニメーションしながら歩くサンプル
C=496:T=10
SPSET 0,C
 
@LOOP
B0=BUTTON(0)
B2=BUTTON(2)
B3=BUTTON(3)
IF B0 AND #UP    THEN Y=Y-1:CC=12
IF B0 AND #DOWN  THEN Y=Y+1:CC=4
IF B0 AND #LEFT  THEN X=X-1:CC=8
IF B0 AND #RIGHT THEN X=X+1:CC=0
IF B2 AND 15 || B3 AND 15 THEN
SPCHR 0,C+CC 'キャラ変更(アニメ停止)
IF B0 AND 15 THEN
  SPANIM 0,"I+" ,T,1,T,2,T,3,T,0 ,0 'アニメ開始
SPOFS 0,X,Y
GOTO @LOOP
 
「C」は基本となるキャラクター番号で、SMILEボタンでSMILEツールを起動し、「SPDEF」を選択すると番号とキャラクターを確認できます。
「T」はアニメーションのコマ数(1秒が60コマなので、T=10だと1秒間に6回アニメーションする)
SPCHR」の行で、十字キーが押されていない時にアニメーションを停止しています。

参照

サンプルについて サンプルコードについての解説
例:文字の表示 文字の表示・位置指定・色指定
例:キャラ操作(1) スプライトキャラの表示・移動
例:キャラ操作(2) スプライトキャラのジャンプ・移動制限・アニメーション
例:マップ作成表示 BG画面(背景・マップ)の作成

Facebookコメント