hinekure.net が http://hspdev-wiki.net/ から自動クローリングした結果を表示しています。画像やリソースなどのリンクが切れています。予めご了承ください。
小ワザ/アクションゲーム/ジャンプアクションゲーム - HSP開発wiki
トップ    編集凍結 差分バックアップ添付複製名前変更リロード   新規一覧単語検索最終更新   最終更新のRSS

ジャンプアクションゲームをやってみる

 小ワザ/アクション/基本動作の続きです。
ここからは基本的な動き方の範囲から外れるので基本動作とは別ページにしました。
 なお、ここで紹介している方法はほんの一例でしかありません。絶対この方法しかダメと言うわけではなく、 他にもさまざまな方法でジャンプアクションを作成することが出来ると思います。

 モジュールを本体スクリプトと別ファイル化していますが、このモジュールは完璧なものではありません。 命令は勝手に増えたり減ったり、名前がかわったりすると思うので注意してください。
同じ命令でも互換性を考えずに修正すると思うので注意が必要です。
あくまでも、参考資料としてご覧下さい。(^-^;)


今回は、「キャラクターアニメーション」機能を加えてみました。

複数のキャラクターを表示

 モジュール部分が肥大化して、みにくくなってきたのでメインスクリプト部分とファイルを分離しました。 このモジュールには以下のような命令があります。
現在はキャラクターサイズ等は固定になっていますが、少し書き換えればキャラクターごとに大きさを変えたりなどの拡張は可能だと思います。

  • 初期化
    • m_ini :初期化
    • m_BBlock :マップデータ登録
  • 内部計算用
    • m_GetCellPosX100 :指定したX座標×100のセル座標を取得
    • m_GetCellPosY100 :指定したY座標×100のセル座標を取得
    • m_GetCellPosX :指定したX座標のセル座標を取得
    • m_GetCellPosY :指定したY座標のセル座標を取得
    • m_GetCellPosXY100 :指定したXY座標×100のセル座標を取得
  • キャラクターの速度設定
    • m_VaddChr? :指定キャラクターの速度加算
    • m_VsubChr? :指定キャラクターの速度減算
    • m_VmulChr? :指定キャラクターの速度掛け算
    • m_VdivChr? :指定キャラクターの速度割り算
    • m_VsetChr? :指定キャラクターの速度を設定
    • m_ChrPos? :指定したキャラクターの位置を計算(衝突判定とかもろもろ)
  • キャラクターの情報取得
    • m_GetChrPosCell? :指定したキャラクターがいるセル座標を取得
    • m_ChrChk? :指定したキャラクターのブロックとの接触状態を取得
    • m_GetVChr :指定したキャラクターの速度を取得
    • m_GetPosChr? :指定したキャラクターの座標×100取得
  • 描画
    • m_PutChr? :指定したキャラクターを描画
    • m_DrwCell? :ブロックの描画
    • m_ViewPos? :画面表示位置設定
  • デバッグ用命令
    • mdb_PutChrPosBlk? :指定したキャラクターの中心座標があるセルを着色

モジュール使い方

キャラクターは速度を指定して移動させます。
次にm_ChrPos?命令を実行すると指定した速度での動きに加えて、障害物などにぶつかった場合のアクションを加えます。 またm_ChrPos?命令を実行しないと設定した速度情報が反映されません。
次にm_PutChr?を実行すると画面上にキャラクターを描画します。

基本的な書き方は次のような感じです。

hsp2.png

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
pcid = 0
*main
    redraw 0
    color 255, 255, 255 : boxf : color 0, 0, 0 : pos 0,0
 
    ・・・(速度vx, vyを計算)
 
 
    ;	動作設定
    m_VsetChr vx, vy, pcid    ;速度を設定
    m_ChrPos pcid    ;キャラクターを実際に移動させる
    m_GetVChr vx, vy, pcid    ;移動後の速度取得
 
    ;	描画
    m_DrwCell    ;背景ブロック描画
    m_PutChr pcid    ;キャラクター描画
 
 
    redraw 1
    await 20
goto *main

サンプル

しょぼいサンプルを掲載します。

hsp2.png

+  サンプル:モジュール
+  サンプル:本体
  • モジュール中の「(今はキャラクターID0をPCとしています。)」という一文は削除し忘れです。 -- GENKI? 2006-02-05 (日) 21:25:44

キャラクターアニメーションを実装してみる

アニメーションの表示はサブウィンドウに画像を読み込んでそこから必要な部分だけを繰り返しコピペする方法です。
あとはアニメーションのカウント(コマ数を数える)と、どれを表示するか、の管理だけです。これらの管理は 今回もChrPr?に詰め込みました。

  • アニメーション命令
    • m_SetChrDrc? :キャラクターの種別を登録
    • m_ChngChrAni? :アニメーションの種類を指定
    • m_CntChrAni? :アニメーション用カウンタ

サンプルスクリプト [#pd5f865

hsp2.png

+  サンプル:モジュール
+  サンプル:本体

サンプルがなぜHSP2ばかりなのか

単純にHSP2になれているからです。なれている分だけデバッグもしやすいもので…。 また、HSP2だろうがHSP3だろうがどっちだろうがアルゴリズムはほとんど変わりようがありませんし。 というわけで、別に深い意味はありません。(^ ^;
(HSP2からHSP3への移殖は容易でも、HSP3からHSP2への移殖は難しいだろうな、というのもちょっとありますけど…。) - GENKI?

コメント


URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White

添付ファイル:
filem010.as
285件 [詳細]
filem008.as
362件 [詳細]
fileat010.as
313件 [詳細]
fileat008.as
343件 [詳細]
トップ    編集凍結 差分バックアップ添付複製名前変更リロード   新規一覧単語検索最終更新   最終更新のRSS
Last-modified: 2011-06-13 (月) 09:41:03 (909d)