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

横スクロール型ゲーム/スクリプト

横スクロール型ゲーム/スクリプト

横スクロール型ゲーム

1ページだけで開発を続けるのは困難でしょう。
ということで、スクリプト部分についての話題はこちらで。

スクリプトのアップについて

長いスクリプトをアップする場合は、ファイルにしてアップするようにしてください。
長いスクリプトを表示させる場合はスクリプトを直接書き込むのではなく、ファイルをアップして次のように記述してください。

&ref(pic/hsp3.png);~
#region(スクリプト)
#code(スクリプト01.as)
#endregion

のように記述することで、ダウンロードもスクリプトの表示も同時に出来ます。

スクリプトを直接書き込むとTabがスペースに置き換わってしまったり、 ページの編集がしにくくなったりなどの弊害が発生します。
直接実行できないものや短い説明用のサンプルなど以外はできるだけファイルを使ったほうがいいでしょう。

要素別開発

キー入力・キー操作

入力装置

  • キーボード :最低限対応する必要あり。
  • ゲームパッド :出来れば対応したほうがいい。
  • マウス :特殊な場合を除いて対応する必要はない。

stickでもボタン数は足りますが、getkeyの方が押しやすいキー選べるからgetkeyの方がいいんでしょうか。

NPCの制御

つまり敵キャラクターの移動方法についてです。

  • これは基本的なキャラクターの操作用命令をそろえてしまえば簡単かなと思います。PCを操作するときと同じように記述するだけなので。 - GENKI?

当たり判定

パタパタ大王さん作成の当たり判定のスクリプトです。

hsp3.png

+  当たり判定

一行だとちょっと見にくいので…

変数の内容
x - 座標
vx - 速度
chipw - キャラクターXサイズ
con - 当たり判定の結果
+  当たり判定のメイン部分


+  軽い解説
+  当たり判定改良版


[参考]当たり判定その2

矩形同士限定。
上のパタパタ大王さんのスクリプトをもとに判定部分を別の方法にしたもの。
(差し替え。一般的にはこんな感じで行うと思う。 --naznyark 2006-02-14 (火) 01:33:14)

基礎フォルダ20060319用 基礎スクリプト 当たり判定改造版

対応する基礎フォルダにいれて実行してください。 -- naznyark? 2006-03-23 (木) 02:54:44

  • キャラクターアニメーション
    この項目なんにもないのでとりあえず、キャラクターのアニメーションのサンプルでもどうぞ。
    hsp2.png
    +  スクリプト
    実行には画像ファイルが必要です。&ref(): File not found: "chara00.bmp" at page "横スクロール型ゲーム";
    基本方針は、他ウィンドウからのコピペ。後はこれを汎用化(モジュール化)すればokでしょうか?もっと早くなる方法ありますか? - GENKI?

背景描画

背景を何層かに分けて奥行きを表現するとちょっと重くなるようです。
解決案

セレクト画面

タイトル画面やゲーム開始前のセレクト画面(こんな呼び方であってるのかな?)について。

  • 参考資料
    アイテム選択欄 - 参考になりそうでならなさそう。(笑 - GENKI?

マップロード


マップエディタ

HSP3 用(ベータ版)
わざわざ作らなくてもその辺にありますが・・・
横スクロール型ゲーム専用でなく汎用品です。

 

まだまだ機能は少ないですが、実用上の最低限(未満)の機能はあります。 --naznyark? 2006-02-15 (水) 02:16:05
マップデータ仕様を決定。ロード機能追加。 --naznyark? 2006-02-16 (木) 01:36:10

その他

他にも項目あったらどうぞ。

プラグイン・モジュール

参考資料

ジャンプアクションゲームの参考になりそうな資料。
小ワザ/アクション/基本動作
小ワザ/アクションゲーム/ジャンプアクションゲーム
衝突判定

コメント

  • 同種機能のスクリプトは重複させないのがルールのようなので問題ありなら削除してください。
    あと作りかけのものだけどこのあたりからがつらいので暫定公開。画面描画の参考にでもしてください。
    file2djumpact_p.hsp -- naznyark? 2006-02-08 (水) 01:42:53
  • マップエディターですが、77行目のWindowFromPoint? POINT0(0), POINT0(1)でエラーが出てしまいます。マップロードをわたくしの基礎スクリプトに取り込みました。 -- パタパタ大王 2006-02-16 (木) 10:41:17
  • 原因判明。古いHSP3.0 に同梱の user32.as 内の記述ミス。
    対応版をアップしておきましたが、本当なら本体を 3.0a に更新することを推奨したところです。
    (あれ 3.0a って今は無いのか? 今ダウンロードできる 3.0 は 3.0a 相当のものなのかな?) -- naznyark? 2006-02-17 (金) 03:16:17
  • HSP3.0を改めてダウンロードしてマップエディターがちゃんと動作しました。いい感じでした。ところで構想なんですが、背景のグラデーションと得点等の表示以外は全てチップとして扱っていますからマップエディターから進んでステージエディターという感じを考えています。マップエディターならチップの要素の内、位置と幅と画像インデックスしか扱っていないと思いますが、ステージエディターではその他に重力を受けるかや移動方法などの要素も指定できるものです。問題はマップデータ改めステージデータの構造だと思うのですが、簡単に思い付くのは1行に1つのチップのデータを置くというものです。csv形式がいいかな。それなら簡単に要素の追加もできそうです。 -- パタパタ大王 2006-02-17 (金) 10:27:01
  • エディターの出力フォーマットですが、こんなのはどうでしょうか? -- GENKI? 2006-02-26 (日) 18:26:59
  • 横スクロール型ゲーム/パタパタラボで考えておきます。 -- パタパタ大王 2006-02-26 (日) 19:29:05
  • 必要なパラメータをだいたい検討してもらえれば読み取り用モジュール作ってみます。あとからパラメータが少々増減しても大丈夫なようにはするつもりです。 -- GENKI? 2006-02-26 (日) 20:20:40
  • ありがとうございます。csvの一行目はステージ独自のパラメータを指定するのは良いですね。ステージ名やステージの幅や重力加速度やBGMのエイリアス名などを指定すると思います。チップの要素の内イベント・アクションだけは文字列として取る必要があると思います。あとからパラメータが少々増減しても大丈夫なようにするというのはどういう感じなのでしょうか。それが出来るならとても助かります。パラメータは横スクロール型ゲーム/パタパタラボの「別ファイルで初期化するチップデータ」として大体の感じをまとめています。 -- パタパタ大王 2006-02-26 (日) 21:23:36
  • とりあえず基礎フォルダ20060222.lzhではいったんprmに全パラメータを掘り込んだ後に各変数に振り分けていたので、そういう感じで使えるようにしようかなと構想中。つまり使うときは今までどおりprm変数から各変数に振り分けるだけ。…になるはず。まだできてません。 -- GENKI? 2006-02-26 (日) 23:36:58
  • 基礎スクリプト2_r2.hsp使ってみました。妙に重いです。(オリジナル37fpsに対してr2は17fps。) -- GENKI? 2006-03-23 (木) 21:40:24
  • ところで、プレイモードの存在にさっき気が付きました。もっとちゃんと検証しとくんだった。 [tere] -- GENKI? 2006-03-23 (木) 21:43:24
  • 遅いのはアップしたものが await 50 まわしの理論最大 20 FPS の仕様になっているからです。
    (*main) の中の await 50 を await 16 にすれば理論最大 60 FPS のオリジナルと同仕様になります。
    (それでもオリジナルよりは遅いと思いますが) -- naznyark? 2006-03-24 (金) 02:46:04
  • さっき私も基礎スクリプト2_r2.hspを使ってみました。await 20にしたらFPSは33で安定していました。オリジナルより速いし素晴らしいです。 -- パタパタ大王 2006-03-24 (金) 17:30:24
  • 動作速くなりました。(^ ^; 当たり判定の修正がよく効いていますね。不動チップ重なり時の速度低下no回避確認しました。 -- GENKI? 2006-03-24 (金) 22:13:29
  • 私がアップした古いバージョンの基礎フォルダ用のスクリプトを削除してページも整理しました。 -- naznyark? 2006-04-03 (月) 01:51:24
  • 私がアップした古い添付ファイルを削除。 -- naznyark? 2006-06-10 (土) 02:09:40
  • 当たり判定についてちょっと提案があります。
    pgetなどであらかじめ二次元配列に、透明色部分は0それ以外1という風に形をインプットしておき、
    1で出来た部分の端で判定を行う。
    無理かもしれませんが [a] -- アキス 2007-05-05 (土) 16:53:01
  • キャラクタごとの輪郭で判定するということですか?
    このタイプのゲームではほとんど利点がないように思いますが。 -- naznyark? 2007-05-06 (日) 00:38:23
  • そうですよね・・・・、本当に頭が悪いものなので・・・ -- アキス 2007-05-11 (金) 17:10:33
  • あ、でも、丸いキャラとかいたら -- アキス 2007-05-15 (火) 19:29:40
  • Enter押しちゃったorz
    (↓これが本物です。↓)
    あ、でも、丸いキャラとかいたら角とかの空白に当たったときに判定されるのを阻止できますが・・・ -- アキス 2007-05-15 (火) 19:31:56
  • それと、この企画に参加したいです! -- アキス 2007-05-15 (火) 19:32:46
  • 今別のパソコンでやってるんですが。
    あと、ところどころファイルが表示できなくなってますよ。 -- アキス 2007-05-15 (火) 19:34:33
  • 参加は自由です。たぶん。ただ現在は中心になって動いていたパタパタ大王さんの姿が見えないので、企画を牽引する人がいない状態です。まあ、牽引役は誰がやってもいいと思います。 -- GENKI? 2007-05-15 (火) 22:11:34
  • それじゃぁ、naznyarkさんかGENKIさんか両方かですね。
    僕には無理です -- アキス 2007-05-16 (水) 18:44:02
  • あと、当り判定とか仕様とか勉強するので、しばらく来ないかもしれません。 -- アキス 2007-05-16 (水) 18:44:47
  • もひとつ。
    VisualStudio?買ってVC++やるので、しばらくきません。 -- アキス 2007-05-16 (水) 19:42:22
  • >それじゃぁ、naznyarkさんかGENKIさんか両方かですね。いえいえ今のところはアキスさんが有力候補者。理由…書き込みの日付と発言数。 あ、でもこれないなら無理か。 -- GENKI? 2007-05-16 (水) 23:24:30
  • といっても、毎日来るのですが。
    しかし、当り判定が理解できません。なので、アイディア等 -- アキス 2007-05-18 (金) 16:16:26
  • となると、僕が牽引役!? -- アキス 2007-05-18 (金) 16:17:18
  • となると、僕が牽引役!? -- アキス 2007-05-18 (金) 17:09:01
  • あぎゃ!、二重送信だ! -- アキス 2007-05-18 (金) 17:09:59
  • 当たり判定は他のページにも解説あるからそっちを見るのもいいかも。こことかここですね。基本は似たようなもんだよ。 -- GENKI? 2007-05-19 (土) 15:01:29
  • わかりました。見て見ます。
    それと、自作の当り判定を作ってみる予定なのですが、
    公開するとしたら、どの項目がいいのでしょうか? -- アキス 2007-05-19 (土) 20:53:35
  • 汎用的なものなら衝突判定、ここの横スクロール型ゲームのサンプル郡に組み込める(組み込むために作った物)ならこのページの当たり判定がいいんじゃないでしょうか。 -- GENKI? 2007-05-19 (土) 21:24:43
  • 一応、キャラクタの四隅で判定するやつを作ったのですが、出来ませんでした。
    一応掲示してみます。なので意見お願いします。 -- アキス 2007-05-19 (土) 22:54:59
  • 理解できていないことがあるのに完成形を目指したプログラムを書くのは無理があります。
    まずは理解できていないことを理解するためのプログラムを書き、いろいろ試すのが良いと思います。
    filetest1.hsp,filetest2.hsp
    上のプログラムで使用している数値の意味がわかれば、提示したスクリプトでやろうとした当たり判定はどういう意味の処理をやっているのかがわかると思います。 -- naznyark? 2007-05-20 (日) 02:49:43
  • わかりました。公開一時停止させ、実用できるほどとなったら、また公開します。 -- アキス 2007-05-20 (日) 11:40:06
  • test1.hspの方は理解できました。test2.hspのほうも探ってみます。 -- アキス 2007-05-20 (日) 11:46:58
  • test2.hspの方は、
    「右上に表示される数値は、各々の四隅で判定したマス目の位置wo -- アキス 2007-05-20 (日) 11:48:48
  • あ、失礼しました、誤送信してしまいました。 -- アキス 2007-05-20 (日) 11:49:17
  • test2.hspの方も大分理解できました。当り判定の方を再度読んでみます。 -- アキス 2007-05-20 (日) 11:50:16
  • 当り判定_r.hspを読んでみましたが、いまだにわかりません。
    なので、色々試行錯誤して、作ってみます。 -- アキス 2007-05-20 (日) 11:54:38
  • 当たり判定_r.hsp は使用しているアルゴリズムが異なるので test1,test2 では参考になりませんよ・・・。 -- naznyark? 2007-05-21 (月) 00:37:10
  • あ、そうでしたか。じゃぁ・・・どれを・・・(お馬鹿な奴なので・・・) -- アキス 2007-05-21 (月) 13:41:09
  • 当たり判定_r.hsp で使用しているアルゴリズムの説明 対応する四辺が平行な矩形同士の交差判定 -- naznyark? 2007-05-22 (火) 01:52:36

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