プチコンまとめWiki (初代/mkII)

投稿プログラム : スクリプト制御

パンくずリスト

2011年04月24日投稿 / 投稿者 : 名無しさん / タグ : 投稿プログラム サンプル

概要

DATA文に書かれたスクリプトデータによってキャラクタの動きなどを制御する、サンプル的なプログラムです。
複雑なアニメーションをさせたいときによく使われる手法です。

プチコンだと重いかな?と思って、キャラクタ数が少ない格闘ゲームとして作り始めたのですが、
いろいろ試してみて、16体まで出してもサクサク動いていたので、途中で面倒くさくなったし
サンプル用に整理しました。

アニメデータについて

コマンドとして以下のものがあります。

  1. 次のフレームまで待つ
  2. 別のアニメデータに切り替え
  3. アニメデータ読み込み位置の変更(GOTOのようなもの)
  4. キャラクタを移動する
  5. 左右反転(スプライト表示とキャラ移動が逆になる)
  6. スプライトパターン変更
  7. スプライトアニメーション設定
  8. キー入力判定

キー入力判定はコマンドにしない方がよかったかもしれません。
他にもBEEP音やダメージなど、必要に応じて追加できます。
例えばレミングスで「このタイミングで地面を掘る」というような制御をするのに向いています。

スクリーンショット・動画

背景も何も無いところでスプライトのキャラが動いているだけです

プログラムリスト

  1. ’スクリフ゜ト セイキ゛ョ by ウル
  2. CLEAR
  3. VISIBLE 1,1,1,1,1,1
  4. CLS
  5. ’アニメ テ゛ータ & テーフ゛ル
  6. DIM AD(999)
  7. DIM ADT(99)
  8. RESTORE @ANMDATA
  9. N=0
  10. P=0
  11. @ANMDATA1
  12. ADT(N)=P:N=N+1
  13. @ANMDATA2
  14. READ D
  15. AD(P)=D:P=P+1
  16. IF D>−99  GOTO @ANMDATA2
  17. IF D>−999 GOTO @ANMDATA1
  18. ’キャラクタ ワーク
  19. NN=4
  20. DIM FL(NN)  ’サユウ フリッフ゜
  21. DIM AP(NN)  ’アニメ ホ゜インタ
  22. DIM PL(NN)  ’ハ゜レット
  23. DIM PX(NN)  ’ホシ゛ション X
  24. DIM PY(NN)  ’ホシ゛ション Y
  25. NN=NN−1
  26. SPPAGE 0
  27. SPCLR
  28. FOR N=0 TO NN
  29.  FL(N)=0
  30.  
  31.  AP(N)=ADT(0)
  32.  
  33.  PL(N)=2+(N>0)*3
  34.  
  35.  PX(N)=RND(240)+8
  36.  PY(N)=128
  37.  
  38.  SPSET N,0,0,0,0,1
  39. NEXT
  40. ’メイン ルーフ゜
  41. @MAIN
  42. BT=BUTTON()
  43. IF FL(0)==0 GOTO @MAIN1
  44. B=BT
  45. BT=BT AND &HF3
  46. IF B AND 4 THEN BT=BT OR 8
  47. IF B AND 8 THEN BT=BT OR 4
  48. @MAIN1
  49. FOR N=0 TO NN
  50.  P=AP(N)
  51.  GOSUB @ANM
  52.  AP(N)=P
  53. NEXT
  54. FOR N=0 TO NN
  55.  SPOFS N,PX(N)−8,PY(N)−8
  56. NEXT
  57. VSYNC 1
  58. GOTO @MAIN
  59. ’アニメ テ゛ータ ショリ
  60. @ANM
  61. C=AD(P)
  62. ON C/10 GOTO @C0,@C1,@C2
  63. @C0
  64. ON C GOTO @WT,@AR,@JP,@MV,@FL
  65. @C1
  66. ON C−10 GOTO @SP,@SPA
  67. @C2
  68. ON C−20 GOTO @KI
  69. PRINT ”ERROR!”;C
  70. ’0 ツキ゛ ノ フレーム マテ゛ マツ
  71. @WT
  72. P=P+1
  73. RETURN
  74. ’1 アニメ リクエスト
  75. @AR
  76. P=ADT( AD(P+1) )
  77. RETURN
  78. ’2 ホ゜インタ シ゛ャンフ゜
  79. @JP
  80. P=P+AD(P+1)
  81. GOTO @ANM
  82. ’3 イト゛ウ
  83. @MV
  84. X=AD(P+1)
  85. IF FL(N) THEN X=−X
  86. PX(N)=PX(N)+X
  87. PY(N)=PY(N)+AD(P+2)
  88. P=P+3
  89. GOTO @ANM
  90. ’4 フリッフ゜
  91. @FL
  92. FL(N)=1−FL(N)
  93. P=P+1
  94. GOTO @ANM
  95. ’10 スフ゜ライト セット
  96. @SP
  97. SPCHR N,AD(P+1),PL(N),FL(N),0,0
  98. SPANIM N,1,0,0
  99. P=P+2
  100. GOTO @ANM
  101. ’11 スフ゜ライト アニメーション
  102. @SPA
  103. SPANIM N,AD(P+1),AD(P+2)
  104. P=P+3
  105. GOTO @ANM
  106. ’20 キー ニュウリョク チェック
  107. @KI
  108. IF N>0 GOTO @KI0
  109. B=BT AND AD(P+1)
  110. IF B==0 GOTO @KI0
  111. P=P+3
  112. GOTO @ANM
  113. @KI0
  114. P=P+3+AD(P+2)
  115. GOTO @ANM
  116. ’アニメ テ゛ータ
  117. @ANMDATA
  118. ’0 ニュートラル
  119. DATA 10,64
  120. DATA 20, 8,2, 1,1
  121. DATA 20, 4,2, 1,2
  122. DATA 0
  123. DATA 2,−11
  124. DATA −99
  125. ’1 セ゛ンシン
  126. ’  TODO:テキAI ノ ルーフ゜
  127. DATA 11,4,5
  128. DATA 3,1,0
  129. DATA 0
  130. DATA 20,8,2, 2,−7
  131. DATA 1,0
  132. DATA −99
  133. ’2 フリムキ
  134. DATA 10,68
  135. DATA 0,0
  136. DATA 4
  137. DATA 1,0
  138. DATA −99
  139. ’* オワリ
  140. DATA −999

CHECKER FLAG (ひとことコメント)

この作品に対するコメントがあれば一言どうぞ。(作品に直接関係ない質問や雑談は掲示板へ)

  • 名無しさん : 150行目の@SNMは@ANMの間違いかな? (2011/05/10 (火) 21:49:15)
  • ウル(投稿者) : ご指摘ありがとうございます。修正しました。 (2011/05/11 (水) 01:51:09)
  • 名無しさん : 初心者なのですが Missing operand (140, SPCHR) と出ますどうしたらいいですか (2011/05/20 (金) 22:43:37)
  • ウル : 140行目の末尾に ,0 が抜けていました。申し訳ありません。
    他にも148〜149行目などを修正しました。 (2011/05/21 (土) 00:42:37)
  • あのー : 誰か一緒に格闘ゲー作りませんか? あと、これの作者さん!これ格闘ゲームにして僕にくれませんか? (2013/08/06 (火) 10:39:08)
  • 名無しさん : ↑you make it! Make an effort. A bitch. (2013/08/06 (火) 15:07:57)
  • あのー : 英語じゃわからん (2013/08/24 (土) 15:11:26)

表示モード : [ スマホ・3DS対応表示 | クラシック表示 ]
PukiWiki 1.4.7 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL. Based on "PukiWiki" 1.3 by yu-ji
ページの処理時間 : 0.028 秒 | このページの最終更新 : 2013/08/24 (土) 15:11:26 (2299d) | ログイン
Copyright(C) 2011-2014 プチコンまとめWiki ◆1sxkymI8ji30