投稿
nobu divine-creator
IFを使ってボタンを選んでもらい、分岐して変数に入れる数値が変わることまでは成功しているのですが、それに伴い分岐する条件を付随しようとすると、うまくいかなくなります…。 髪型を選ぶ所で、ロングを選んだ時だけ、2つのパーツが選ばれるというようにするには、どのような仕組みにすれば良いのでしょうか? 複雑な条件での分岐のさせ方が、分からないのです…orz。
0そうだね
プレイ済み
返信[1]
親投稿
MIKI ifconfig
二つのパーツが選ばれるとは? アクセを二種類選べるとか?
0そうだね
プレイ済み
返信[2]
親投稿
IF BUTTON() AND #A && 条件式 THEN ほにゃほにゃ 'これでどうですか?
0そうだね
プレイ済み
返信[3]
親投稿
あ、ごめん。ボタンじゃなかった。 IF 条件 && 条件 THEN ほにゃほにゃ
0そうだね
プレイ済み
返信[4]
親投稿
nobu divine-creator
ええっ?!そこですか?(予想外のコメントが…Σ(゚Д゚)。) 今後には、そういうこともできるようにと考えていますが、とりあえず最初の基本的なバージョンでは、簡単な服装や髪型の選択と、眼鏡やサングラスを掛ける掛けないを選べる程度の内容にしています♪ そして、まず服装を…次に、学生服の場合のみスカートを選べ、それから髪型を選び、最後に眼鏡かサングラスを選ぶという流れになっています!(眼鏡やサングラスは掛けないという選択もありで。) そこで、問題になっているのは、ロングヘアを選んだ時に、服装と重なる部分を別のパーツとして分けているのですが、それを服の種類ごとに変えるための仕組みがうまく機能していないのです…。 たぶん、分岐の条件付けに問題があるのだと思います!
0そうだね
プレイ済み
返信[5]
親投稿
nobu divine-creator
服を選ぶ所と髪型を選ぶ所が別々になっていて、髪型を選ぶシーンでロングを選ぶと、服を選ぶシーンでしていた選択が影響することになるわけですが、それでもNewあっキーさんの方法で可能ですか?
0そうだね
プレイ済み
返信[6]
親投稿
MIKI ifconfig
なんとなくわかった気がする。基本的には if 髪がロング then cloth = 髪付きの服 else cloth = 通常の服 endif みたいな感じですよね。ところが着ている服が制服だったり着物だったり。 例えばロングヘアなしの服と、ロングヘア付きの服の番号を常に 32 ずらすという決まりにしてしまうのはどうですか? ノーマル制服が 3 番だったら、ロングヘア付きは 35 番にしておく。着物が 12 番なら、ロングへア付き着物は 44 番にしておく。そうすれば、 if 髪がロング then cloth = cloth or 32 else cloth = cloth and not 32 endif で可能です。
0そうだね
プレイ済み
返信[7]
親投稿
nobu divine-creator
32という数字には、どのような意味があるのでしょうか? ちなみに、変数については、 服=CLOTHES スカート=SKIRT 髪型=HAIR ロングヘア=LONG 眼鏡=GLASSES として、スプライトの番号を変数に入れる数字にしています。
0そうだね
プレイ済み
返信[8]
親投稿
ラベルとDATAを使うと良いかもしれませんね ショート用とロング用でラベルをわけて それぞれ使用するスプライトの番号をDATAに書いておいて ロングを選んだらロング用のラベルをRESTOREして使う そんな感じにすると後は同じ処理で対応出来そうな気がします
0そうだね
プレイ済み
返信[9]
親投稿
みきさんの言うようにビット演算をうまく使えばスムーズに実装出来る可能性がありますが慣れてないと難しいかもとも思うので、とりあえずIFで考えてみると、 「服を選ぶ所と髪型を選ぶ所が別々になっていて、髪型を選ぶシーンでロングを選ぶと、服を選ぶシーンでしていた選択が影響することになる」を素直に解釈すると、事前に服が選ばれていたとして、 IF 髪型=ロング THEN 髪型=ロング IF 服==服1 THEN 服=ロング用の服1 IF 服==服2 THEN 服=ロング用の服2 ELSE 髪型=ショート IF 服==服1 THEN 服=ショート用の服1 IF 服==服2 THEN 服=ショート用の服服2 ENDIF みたいな感じかな? まあでもこの場合対象が増えるとIFがさらに複雑になるので簡易的な方法として、です。
0そうだね
プレイ済み
返信[10]
親投稿
nobu divine-creator
皆さんの御意見を参考に色々と変えて試していくうちに、新たな疑問が出てきました…! スプライトと変数の関係ですが、SPSCALE,SPOFS,SPSHOWの数値を変数にすることで、変数に代入された数字のスプライトを表示できますよね?(これは実際に可能だったので、正しいはずですが…。) それで、別々の変数への代入は連続して行っても問題無いと思うのですが、何か失敗する場合もありますか? また、IF文で分岐した先で、2種類の変数への代入を連続で行うようにしたら、エラーになるようになったのですが、何故でしょうか? 髪型(頭部)と服装(胴体)、ロング選択時の差分(接合部)という3種類の組み合わせになるのですけど、選択の状態によって、ロングのパーツは使わなくなるのが、問題になっているようです…。
0そうだね
プレイ済み
返信[11]
親投稿
やってることは問題なさそうですが、そのエラーになった付近のソース画面を載せてみるのが手っ取り早いと思いますよ〜
0そうだね
プレイ済み
返信[12]
親投稿
nobu divine-creator
服装と差分は同じ種類のセットになるので、服装を選ぶ所でCLOTHES=番号とLONG=番号を並べて通過するようにしました。 その後に、その他の選択も行って、最後に表示させる流れですが、SPSCALE,SPOFS,SPSHOWを行う所でエラーになります…! LONGの変数を加えない状態では、そのような流れで正しく表示されていました…。 代入した変数が無効になってしまう条件とかがあるのでしょうか?
0そうだね
プレイ済み