コミュニティアイコン プチコン 非公式コミュニティ トピック

アバター
Pn-D ◆Fl.pn0dS30KB
2017/12/26 14:05
情報交換
rpgのシステム
皆さんってRPGの歩行、イベントの仕組みをどうしているんですか?
自分では、到底思いつかないので・・・
イベントは自分だったらDEF化して組み込もうかな・・・

とか、そういうのあったらおねがいします!

コメント

アバター
New3DS大豆マン 2017/12/26 14:50 ◆2FCk4r5A9R8g
私はrpgを作ったことがありませんが、
イベントは絶対、DEFで作ると思います。

呼び出しかたは、
DATA イベントが起こる座標X,Y,イベントDEF名
見たいにすると思います。

歩行は、MAPがスクロールするやり方が好きです。
スクロール方法は要望があればのせます。
アバター
だにえる 2017/12/26 16:37 ◆m76OCAQyrWGt
ON GOSUBからのDEFかな。
そっちの方が応用ききそう。
アバター
あまさとしおん 2017/12/26 17:15 ◆mzDKTVUAtwqE
MiniRPGの場合、イベント自体はDEFにしないです。(その代わり「メッセージ表示命令」とかそういう単位でDEFにします)

理由は2つあって
・仕様を固めるのに時間をかけるならとりあえずのコードでいいから書いたほうがよい
・綺麗に同じイベントが複数あることはあまり無い
からです。
アバター
シロ 2017/12/26 17:17 ◆g0oUAxBiWqcj
極論だが必ず DEF(関数)化 しないと作れない事は無いと思う。 まずDEF(関数)化を考えずに処理を作ってみて、汎用性がある処理であったり、処理が見ずらい場合にDEF(関数)化すれば良いかな。RPGを作るのが目的であってDEF(関数)化が目的ではないから。無闇にDEF(関数)化すると後で処理を追うのが大変になったりする。
アバター
キルル2 2017/12/26 17:18 ◆rGE712Ruejv7
プレイヤーがイベントキャラとぶつかったらイベント発生

if文で作ります
アバター
ナルミンチョ 2017/12/26 18:08 ◆CMMCJeR8nSC5
イベント専用の言語を作ったなEventScript。
マップ移動も全てこれで行う。
別の座標に同じイベントがあることが多いので、マップに入ってからxy座標とイベント番号でイベントを設置する
@InitEv005
DATA "#set 0 0 @Ev028"

内容はこんな感じ
@Ev028
DATA "剣が石版に刺さっている"
DATA ":仙人"
DATA "#yesNo さあ、<hero>/この剣を抜くのだ"
DATA ":"
DATA " 剣を抜いた。"
DATA " 誰かが昔に、この剣で激しい戦いをした感じがする"
DATA " #get 伝説の剣 1"
DATA "#else"
DATA " まだ、決心が足らんのだな。/待っているぞ"
DATA "#endYesNo"
アバター
しょぼーん 2017/12/26 18:08 ◆lp6HwPeaFWPI
自分はイベントならIFとGOSUBで充分だと思います。
DEFはシステム的なものなら作ります。

歩行は
・キャラ固定にして背景動かす
・背景固定にしてキャラ動かす
・キャラ動かしてある程度キャラが画面の端に近づいたらキャラ固定して背景動かす
とか色々なパターンありますがどれですか?
アバター
Pn-D 2017/12/26 18:26 ◆Fl.pn0dS30KB
New3DS大豆マン、だにえる、シロ さん → やっぱりそうですか!DEFで作るのは間違っていなかった・・・

あまさとしおん さん → 言葉が足りていませんでしたね。「イベントの命令の仕組み」なんです。イベントはDEFを多数つなげる仕組みでいいと思っています。

キルル2 さん → うん。そうですね。イベント用BGを用意して、BGGETで読み取ってイベントを発生させる仕組みを聞いたのですが、それもいいな〜と思ってたりしてます。SPかBG、どっちがいいですかね?
アバター
Pn-D 2017/12/26 18:43 ◆Fl.pn0dS30KB
ナルミンチョ さん → そんなものがあるんですか!?出来れば公開キーを教えてくれると嬉しいです!

しょぼーん さん → 歩行は「キャラ固定にして背景動かす」です。障害物の判定がよく分からない。どうしようか大悩み中。
アバター
Soybeanman 2017/12/26 19:09 ◆uLGVbKI5uUe6
まず、「キャラ固定にして背景動かす」のに必要なのは、
背景の幅と高さ(HW,HHとする)
自分の座標(MX,MYとする)
それ以外のものの座標(EX,EYとして、背景の座標は0,0)
スクロール後の座標を入れる変数(SX,SYとする)
(画面に表示する幅と高さを変えるなら200と120をそれぞれ変えてください)
です。

まず、

DEF SCROLL IX,IY OUT OX,OY
OX=200-MIN(MAX(MX,200),HW-200)+IX
OY=120-MIN(MAX(MY,120),HH-120)+IY
END
みたいなのを作って

SCROLL EX,EY OUT SX,SY
表示する命令(SPOFSなど) SX,SY
って感じにそれぞれの障害物の座標をぶち込めばOKです。
背景は、

SCROLL 0,0 OUT SX,SY
表示する命令(BGOFSなど) -SX,-SY
でOKです。

[EKXKXDCP]
前に作った(RPGではないけどスクロールは多分想像と同じ)奴の公開キーです。
アバター
はる 2017/12/26 19:16 ◆75Vh4SY8TdKS


SCROLLという命令はすでにあるので、
それだとDuplicate functionが出てしまう気がするんですが…
まあ、ここではそんなことどうでもいいですね。


投稿主さん

EventScriptは、
ナルミンチョさんの"DESIRED Route"という作品で使われているようです。
自分は公開キーを知りませんが。
アバター
キルル2 2017/12/26 19:55 ◆rGE712Ruejv7
SPかBGか?ならBGの方が便利かなと思います
でも多分、配列を作るのが手っ取り早いかと
基本的に動いたときしかイベントが発生しないので、こんな感じのプログラムでいけるはずです

if 移動ボタンが押されたとき
移動先に壁がなければ動く
移動アニメ再生
イベントチェック
nフレーム同期する
イベントが発生してればイベントを呼び出す
endif
アバター
Soybeanman 2017/12/26 20:00 ◆uLGVbKI5uUe6
はるさん

ああ^〜そういえばありましたね。
申し訳ありません。
SCROLLは別の名前に変えてください。
アバター
はる 2017/12/26 21:53 ◆75Vh4SY8TdKS


SCROLL命令はあまり使わない命令なので、
すぐ存在を忘れてしまいますね。
何故か自分は覚えてましたが。
アバター
ナルミンチョ 2017/12/26 23:31 ◆CMMCJeR8nSC5
3年くらい前のやつ。この頃はプログラミング初心者だったから色々とコードがひどいけど雰囲気は伝わると思う。左上にイベントスクリプトが表示される。
DESIRED_R_001【Q3H324X3】
より新しいが機能不足な新しめのバージョン
DESIRED_R_041 【TDNEE3DJ】

イベントはデータの集まりで扱って後で加工した方がいい。マップを文字列で表すのと同じ。DEFで命令の羅列だと何か同時に処理ができない。(下画面メニューの操作や上画面演出)
アバター
Pn-D 2017/12/27 4:57 ◆Fl.pn0dS30KB
いい提案、ありがとうございます。
ここらへんで、トピックを閉めたいと思います。
ありがとうございました。

コメントを書く

この投稿にはコメントできません。

- WEB PATIO -