敵のスクリプト

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Suikaba
記事: 194
登録日時: 9年前

敵のスクリプト

#1

投稿記事 by Suikaba » 8年前

こんにちわ。久しぶりに投稿させていただきます。
現在、STGを作っていまして、敵の出現とか移動とかをスクリプトでやろうかなと思っています。
方法としては、テキストファイルに書いて解析かなにかするという方法、プログラムに直接書く(これは避けたい)という方法が思い浮かんでます。
インタプリタがなんちゃらかんちゃらとかも聞いたことありますね。
Luaとか勧められたこともあるんですが、よくわからないのでやめておきました。
みなさんならどうされますか?

言語はC++です。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: 敵のスクリプト

#2

投稿記事 by softya(ソフト屋) » 8年前

簡単なのを試しに作ってみたらどうでしょうか?
スクリプト言語を本気でやるとLuaより難しくなってしまうと思います。

テキストに
[コマンド パラメータ]
をずらっ~と並べて、これを読み込んで配列などに格納することで制御できると思いますよ。
コマンドやパラメータは良く考えて設計しないといけませんが。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

grules
記事: 1
登録日時: 9年前

Re: 敵のスクリプト

#3

投稿記事 by grules » 8年前

はじめまして。

スクリプトの構文解析は自分でやろうとするとかなり敷居が高い(ごく単純なスクリプトなら別ですが)ので、luaはいいと思いますよ。
市販ゲームにも使われてますし。

ところで、luaのような組み込みスクリプト言語で、Unicode(ワイド文字列)に対応したものってありますか?
つまり、wchar_tで表すような文字列を使いたいんです。

Suikaba
記事: 194
登録日時: 9年前

Re: 敵のスクリプト

#4

投稿記事 by Suikaba » 8年前

普通に、
move 2, 3 // x座標を2ふやし、y座標を3ふやす
とかでいいんですかね。(txtファイルかなんかに書いた場合

Luaは、確かに市販ゲームにも使われていると聞きましたね。考えておきます。
ワイド文字に対応してるのはわかりませんw 申し訳ございません。

お2人ともありがとうございました。

ほかの方もできれば回答よろしくお願いします。

ISLe
記事: 2645
登録日時: 9年前
連絡を取る:

Re: 敵のスクリプト

#5

投稿記事 by ISLe » 8年前

テキストファイルをPerlで前処理してバイナリデータにパックして、char配列に読み込んで逐次実行というふうにすることが多いです。

move 2, 3
なら
0x00 0x02 0x00 0x03 0x00
というふうにバイナリデータに変換します。
0x00 → move命令に振った番号
0x02 0x00 → 2バイトのリトルエンディアンで2
0x03 0x00 → 2バイトのリトルエンディアンで3
というふうに自由に仕様を決めてやります。

前処理で文法や構文をチェックできますし、分岐のオフセット計算も済ませておけるので、メインプログラムをシンプルにできます。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: 敵のスクリプト

#6

投稿記事 by softya(ソフト屋) » 8年前

ISLeさんの前処理は、PerlじゃなくてもvbscriptでもC#でもC++で得意な言語で処理すれば良いと思います。
Excelにコマンドを書いて、VBAで前処理をさせる方法もあります。
ただ、前処理は一種の中間言語コンパイルですので一手間増えることになります。
どちらにしても内部に取り込むときに中間言語化は必要なんですけどね。

コマンドは色々アプローチがありますね。
move 2, 3 // x座標を2ふやし、y座標を3ふやす
これもひとつの方法だと思います。
とりあえず実装は置いておいて、自分に必要な制御を出来るコマンドを組み立ててみることから始めて見てください。
Luaは複雑な条件制御とかを考えないなら不要かなぁと思う次第です。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

Suikaba
記事: 194
登録日時: 9年前

Re: 敵のスクリプト

#7

投稿記事 by Suikaba » 8年前

ISLeさん
なるほど、そういうやり方があるんですね。参考になりました。ありがとうございます・

softyaさん
中間言語化ですか、聞いたことぐらいしかありませんでした。
言語は、というかC++しかまともに組めないので、それでいこうかなと思いますw

お2人ともありがとうございました。やってみます。

閉鎖

“C言語何でも質問掲示板” へ戻る