http://totetero.hoops.ne.jp/Flash/monamix.html ほんの少しかえました
>>518 435さん
凄いです。萌えました。
線でなぞってトレースしようかと思ったけど
自分の実力では有限時間内に終わらせることはできないと感じました。
キャラクターの髪をなびかせることは難しそうです。
>>519 軟骨 ◆flash7zcさん
質問です。
>>428(114さん)のように文字を一つずつ表示させるのにASでは
どうやるんですか?
あと本当に外部テキストからシナリオを読み込めるのですか?
ASが貧弱なVer.4を使ってるので本当にできるか疑問なんです。
MX体験版もあと17日で期限切れだし、、
背景も(下手だけど)描いてみようかと思うのですが
どんな背景が必要でしょうか?
大きな木の下とか自販機の前とか考えているんですが。
>>528 トテー氏
うちはFLASH5Jですので使えるかどうか解らないですが。
あと5分くらいで考えたものなので動くかどうか(w
単純に言えば文字列を少しずつ表示させるわけですから、
forとlengthとsubstringを使えばいけます。
ここでstrは文字が格納されている変数、dispはダイナミックテキストです。
for( i=0; i<=str.length; i++ ){
disp = str.substring( 0, i );
}
でもたぶんこれだけだと一瞬で表示が終わってしまうので、
どうにかしてウエイトをかけないといけないです。
そこら辺の詳しい説明はまたの機会に。
シナリオを外部テキストから読み込ませることはもちろんできます。
ただ、複数の方法がありまして。
1)巨大なテキストファイルを全部配列に読み込ませる
2)細切れのテキストファイルを随時読み込ませる
方法としては2)のほうがメンテやりやすいし、たぶんこっちがオススメ。
テキストファイル内の例。
txt=表示される文字列\t次ページで表示される文字列\tさらに次ページ(\tが現れたらそこで一度表示停止)
select=分岐がある場合1、ない場合0
option1=分岐がある場合の選択項目1
opfile1=分岐がある場合、次に読み込むファイル名
option2=分岐がある場合の選択項目2
opfile2=分岐がある場合、次に読み込むファイル名
:
file=分岐がなく次のテキストを読み込む場合のテキストファイル名
とかにしていけばいいかと。<昔DOSゲーを作ったときはこの方法でした。
>>529 軟骨さん
ありがとうございます
Flash 4Jでもこんなかんじでできました。
4JではforがなかったのでかわりにLoopを使いました。
Set Variable:"i" =0
Set Variable:"ward" ="こんにちは"
Loop While (i < Length ( ward ))
Set Variable:"i" =i + 1
Set Variable:"message" =Substring ( ward, 0, i )
End Loop
一応ちゃんと機能してるっぽいけど
じっさいに1文字ずつ表示しているか確認できないのでちょっと不安。
ウエイトをかけるのはたいへんなのでしょうか?
外部テキストの方は明日にでも実験してみます。
>>530 あー、Flash4JはPascalみたいなんだなぁ(汗
4Jは触ったことないので、想像でAS書いてみた。
5Jの文法と混ざってて意味が解らないかも。
フレーム1
Set Variable: "i" = 0
Set Variable: "word" = "こんにちは"
フレーム2
Set Variable: "message" = Substring( word, 0, i )
フレーム10くらい(2〜10の間がウエイトというか無駄フレームです)
Set Variable: "i" = i + 1
if( i<= Length( word ) ){ gotoAndPlay(2); } else { stop(); }
みたいにしてループさせるとか。
>>532 今からバイトに行くので、解った問題点だけ挙げておきます。
loadVariablesNum ("scene" & pass & ".txt", 0);
で外部テキストを読み込んでいますよね?
例えばscene1.txtを見ると、
「&opfile1=2 」
と、数字の後に余分な半角スペースが入っています。
まず修正すべきはこの点ですね。
全ての.txtファイルにこの余分な半角スペースが入っていました。
これを全部取り除いてください。
次に、外部ファイルの記述を見ると、
&opfile1=2
&opfile2=…
となっているわけですが、これでは変数に数字+改行コードが
読み込まれてしまうことになります。
変数ごとに改行を入れるのをやめれば直ります。
つまり、メッセージ以外の変数定義部分を
&opfile1=2&opfile2=3…
と全てを1行にまとめてしまえば良いわけです。
解りにくかったらごめんなさいですが…。
本当にありがとうがざいます。
分かりやすかったです。
外部テキストを訂正したら上手くいきました。
そしたらもう一つのラベルの方の問題も同時に解決しました。
MXの文字化けはFlash 4では手におえないっていうことで、、
536 :
135:02/07/17 22:22 ID:???
相談です。
ゲームで使用するBGMを
「前奏」と「ループ」に分けて、
鳴り始め「前奏」を一回だけ再生→ループで繰り返し
というのは可能でしょうか。
>>535 できましたか。よかったよかった。
>>536 できないことはないですよ。っつーかできる。
方法としては、BGMを入れたMCを作ることです。
まずMC内に前奏部分を「同期:スタート」で貼り付けます。
ちょうど前奏が終わる辺りにループ部分を「同期:スタート」で貼り付けて、
繰り返し回数を65535とでもしておけば大丈夫。永久ループ。
音楽を止めたい場合はstopAllSounds();でも実行すればOK。
初めまして
とあるスレでこのスレを知り、来てみました。
>>536 軟骨氏の方法が効率的だと思いますが、
あえてスクリプトで実行しようとすればこんな感じかなぁ(動作確認済み)
soundPrelude = new Sound();
soundPrelude.attachSound("sound1");
soundPrelude.start(0, 1);
_root.onEnterFrame = function() {
soundPrelude.onSoundComplete = function() {
soundPrelude.stop();
soundLoop = new Sound();
soundLoop.attachSound("sound2");
soundLoop.start(0, 999);
};
};
sound1が前奏、sound2がループサウンドで、
それぞれサウンドファイルをライブラリに読み込んだとき、リンケージとして付けた名前です。
ちなみにFlashPlayer6じゃないと動きませぬ。
よく考えたら6行目の
soundPrelude.stop();
は、いらないですね。
スレ汚しスマソ。
540 :
135:02/07/18 22:44 ID:???