作成なかー その3

投稿者:   mini ___ 投稿日:2011/04/18 01:18

 
「プログラミングと云ふは分解する事と見つけたり」

スキップ機能の実現のためには、現在スペースが押されているか?という情報が必要で。
しかし、Rmakeの関数群に「今押されているかどうか」という関数はないので、
押されたらTrue、離されたらFalseというフラグを作るしか無い。

とりあえずwaitTime()を少しだけいれて、
その後の入力待ちをスキップさせればいいのですから、
スキップらしく見せること自体は別にそこまで難しくはないように思いますが、
上記の入力を判断するのが非常に面倒というか無理ゲーじゃなかろうかと言うか。

入力を取り出すためにstartInput()を書きだして、
「マウス入力かZ入力」なら入力待ちの条件クリアなので先に進めて、
「スペース押し入力」ならスキップフラグをTrueにして、
「スペース離し入力」ならスキップフラグをFalseにする。
入力終わりでendInput()と。

つっても会話スクリプトに上記スクリプトを仕込んだとして、
スキップが実装されるかと言われたらそうでもなくて。

F_Mes(~)  # 自作メッセージ関数、上記のスキップ機能仕込み済
F_Mes(~)  # ここでスペースキー。スキップフラグTrue
F_Mes(~)  # スキップされる
F_Mes(~)  # スペース離す。スキップフラグFalse
F_Mes(~)  # 普通に入力、スキップ待ちのメッセージ表示
その他処理

F_Mes(~)  # メッセージ表示
F_Mes(~)  # スペース入力。スキップフラグTrue
F_Mes(~)  # スキップされる
その他処理
その他処理  # スペースキーを離す。入力を取り出していないのでフラグはTrueのまま
F_Mes(~)  # スキップされる 多分ユーザーさんは慌てる
F_Mes(~)  # スキップされる スペースを押す事でフラグがTrueからTrueに
F_Mes(~)  # スペースを離し、無事にフラグがFalseに

とまあ、こうなりますわな。
スキップフラグがTrueになりっ放しになる以外にも、
スペース押しっぱでF_Mes()に突入するとスキップ状態にならないというのも。
これを防ぐためには、その他の処理の部分にスキップのTorF処理判定を仕込まないといけなくなり、
全体的にスクリプトが煩雑になるので、好ましくないです。

なら、もうスキップなんて無くてもいいじゃないか。   ←今ここ

ノベルゲームなんて10週目以外は「読ませる」ゲームなんですから、
スキップは別に無くてもいいだろ。そうしよう、そう仕様。


拡張画像操作をメインに使用しているわけですが、
シーンが変わるとsetCanvasVisible(false)になってるんですねー。

Rmake様にリソースのバグを直してもらったので気づけました…というか、
画像が描写されなかったのは多分これが原因だったんだなと…w
素直にshowImage()使えばよかったかも。


後はなんだ。
答えを暗記するんじゃなくて、導出方法を理解して欲しい。
はなっから難しいことをしてるんじゃなくて、簡単なことの組み合わせなんだから。
もうちょい分解して組み立てて作ってることを考えてみては如何だろうか。



製作日記一覧
 制作日記1
 制作日記2
 制作日記3 ←今ここ
 制作日記4
 制作日記5

コメントする

コメントするには、ログインする必要があります。

コメント一覧

   mini ___(投稿日:2011/04/19 00:53, 履歴)
>>rurun9さん
 組み合わせでできる範囲内なら、どんなに難しかろうが努力しようとは思えますが、
 そもそも無理なものは無理だろーとしか言えませんしねーw
 申し訳なさはMAXですが、そういう「不可能」なものは、リクエストとして出す他ないような。
 と言っても「本当にそうまでして凝りたいならCでやれ」とも言うような。

 プリンセスメーカーとか分からないですぅ>< と思ってググッてみれば、パラメータ大杉わろたー。
 なるべく(私にとって)シンプルにノベルの立ち絵が動かせるような仕組みを目指しているので、
 そんな画面内が一杯いっぱいになるようなことはないです。…無いと思います。

 時間を調べる関数が出来たら、アナログ時計とか付けたいですねーw
Nyan mini rurun9(投稿日:2011/04/18 23:04, 履歴)
>>文字列切り出し

現状は無理でーす。つまり全て1文字ずつ管理しちゃう(爆)
のはアホくさいので、2年くらい待ってるとRmakeの方が進化してくれる可能性に期待(ォィ)

ロード時に絵の座標がズレると困る…?
一体どんなに情報量ひしめく画面構成にしてるんですか。プリンセスメーカー並みのパラメータゲーだったらwktkですぅ(無責任な無茶振り)
まぁ、シナリオ分岐フラグくらいなら、少し戻されて再開しても大丈夫かと。
最悪、一部の場面を除いてセーブを許可しなければ良いのですw
   mini ___(投稿日:2011/04/18 21:37, 履歴)
>>rurun9さん
 ふむ。文字列切り出しって可能でしたっけ?
 個人的には、speak()がspeakFullScreen()のように背景On/Offが切り替えられりゃーなと。
 まだ試してない色々な組み合わせがありますけどねぇ。

 心配なのは、キャラクターの座標を基本変数で管理している点ですかねー。
 シーン始まりの座標が(50 , 80)、途中で(80 , 80)に変えた後に、
 セーブ&ロードしたらどうなってしまうのか^q^

 ほとんどの関数で、まだセーブロードでの動作を確認していないのが…。ううむ。
Nyan mini rurun9(投稿日:2011/04/18 12:20, 履歴)
何か押したら文章表示をスキップする、というよりも
「文章表示にそもそもspeakウインドウを使わない」でドラクエ風に1文字ずつ表示していく処理を自己流でつくってしまう事が解決への道だと思っています。
まぁ自分でもソレは未だ作ってないワケなんですがw

textViewModeやsetTextFontColorあたりがspeak EOS 内でも変更できるとまた違ってくるんですけどねぇ。

絵は諦めて人影を借りるか、なんとか機バンザイ。
長編ノベルで注意するのは、セーブとロードですね。ロードするとそのシーンの最初から始まるので、複雑な処理を途中に挟むと予期せぬ不具合が…