したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |
レス数が900を超えています。1000を超えると投稿できなくなるよ。

質問・疑問関連スレ

1tickle★:2005/01/28(金) 21:56:23 HOST:cachesv4410.tk.mesh.ad.jp[FLA1Aew153.tky.mesh.ad.jp]
何か質問などあればこちらへ。
果たしてどこまでサポートできるかわかりませんが。。

156TAKADRA:2006/01/15(日) 11:25:42 HOST:3d75a231.tcat.ne.jp
またまたお願いがあります。orz

配列操作系ASでどうしても悩んでいます。

・配列の偶数番ごとにある数値を追加する方法
・配列内に同じ数値がある場合、1つを残して残りを消す

ご教授お願いいたしますです。

157tickle★:2006/01/15(日) 12:47:20 HOST:bgcs4422.tk.mesh.ad.jp[FLA1Adr242.tky.mesh.ad.jp]
>>156
・配列の偶数番ごとにある数値を追加する方法

例えば、偶数番目に1をいれるなら、
tnt = new Array(); // 配列作成(初期値はALL 0)
_root.ArrayLength = 30; // 配列要素数(for文で使う)
for( var j = 0; j < _root.ArrayLength; j += 2){
  tnt[ j ] = 1; // 偶数番目に"1"を入れる
}
な感じでOKだと思います。
for文の3つ目の条件を"2つプラスする"ことにすれば。。

・配列内に同じ数値がある場合、1つを残して残りを消す

配列はソート(整列)されているものとします。
tnt = [ 1, 5, 7, 7, 7, 9, 9,10 ];
であるとすると、"7"の場合、3番目と4番目、5番目が同じ要素になっています。
この場合、4番目と5番目を消して、前に詰めれば良いことになります。

tnt = [ 1, 5, 7, 7, 7, 9, 9, 10 ]; // 昇順にソート済み
_root.ArrayLength = tnt.length; // 配列要素数(この場合は8)
_root.ArrayLength_def = tnt.length // 上と同じ(デフォルト)
for( var i = 0; i < _root.ArrayLength-1; i++){
  var count = 0; // 連続した同じ要素の数(初期値:0)
  for( var j = i + 1; j < _root.ArrayLength; j++){
    if( tnt[ i ] == tnt [ j ]){ // もし一致したら
      count++; // カウントを1つプラス
    } else {
      break; // ループを抜ける
    }
  }
  for(var j = i + count; j < _root.ArrayLength; j++){
    tnt[ j -count ] = tnt[ j ]; // 被った分だけ前に詰める
  }
  _root.ArrayLength -= count;
  // 配列要素数のMAXを重複分だけ減らす
}
for( var j = _root.ArrayLength; j < _root.ArrayLength_def; j++){
  tnt[ j ] = 0; // 残ったあまりの部分の処理(初期値に戻す)
          // 不安なら"null" "undefined"でも
}

思いつくままに書いたので、ミス等あるかもしれませんが
こんな形で行けるかと。。

158TAKADRA:2006/01/15(日) 21:49:22 HOST:3d75a231.tcat.ne.jp
>>157

おかげさまでできましたー。
ありがとうございます。

参考までに仕上げた後のASはこうなりました

配列削除(同じ数値がある場合、1つ残してあとは削除する)

//同じ数値を削除する処理 協力者 : tickleさん
t = left_timeline.length;
n = left_timeline.length;
for( i = 0; i < n - 1; i++ ){
var count = 0;
for( j = i + 1; j < n; j++ ){
if( left_timeline[i] == left_timeline[j] ){
count++;
} else {
break;
}
}
for( j = i + count; j < n; j++ ){
left_timeline[j - count] = left_timeline[j];
}
n -= count;
}
for( j = n; j < t; j++ ){
left_timeline.splice(j, j);
}

159tickle★:2006/01/15(日) 23:15:01 HOST:bgcs4419.tk.mesh.ad.jp[FLA1Adr242.tky.mesh.ad.jp]
>>158
splice使う手がありましたねorz

でもspliceの仕様だと
splice("開始位置", "削除する要素数", "置き換え文字列1", "置き換え文字列2",...)
だった気がするので最後のほうは
for( j = n; j < t; j++ ){
 left_timeline.splice(j , 1); // 1要素ずつ削除
}
な気がしますけど。。

でもこれを使うなら、最後のところは
 left_timeline.splice( n, t - n ); // 余剰な文字列の数分削除
の一行で済みそうですね。

160TAKADRA:2006/01/16(月) 00:00:49 HOST:3d75a231.tcat.ne.jp
>>159

うは。それに気づかなかったorz
(j, j)でしっかり動いたのはなぜだろうか?ww

161tickle★:2006/01/16(月) 00:57:10 HOST:bgcs4419.tk.mesh.ad.jp[FLA1Adr242.tky.mesh.ad.jp]
>>160
「j 番目から j 個文字列を削除する」
というのは、文字列が"null"に置き換わっただけ、と見れるのでは。
"null"が"null"に置き換わっても問題ない。
あくまで推測であって、仕様は知りませんが。。

162zentpp ◆OkdQwbMjMA:2006/01/18(水) 23:23:24 HOST:bb201-12.rosenet.ne.jp
話を切ってしまって申し訳ありませんorz

質問なのですが、
私のHPの中のダン★おに作品一覧のページから、
tickleさんHP内の合作の置いてあるページへのリンクをはっつけちゃっていいものなのでしょうか…?

163tickle★:2006/01/19(木) 16:42:06 HOST:cachesv4411.tk.mesh.ad.jp[FLA1Adr242.tky.mesh.ad.jp]
>>162
合作ページ内に自分のページのトップへのリンクがあるので、
基本的に問題ないですよ(・∀・)

164zentpp ◆OkdQwbMjMA:2006/01/19(木) 21:21:09 HOST:bb201-12.rosenet.ne.jp
>>163
OKです☆
どうもありがとうございましたヽ( ´ー`)ノ

165T/R:2006/01/20(金) 07:55:22 HOST:d238043.ppp.asahi-net.or.jp
では漏れも話切ります(チネ

冷凍矢印についてですが。
ブログ見ました。


 漏 れ に は 理 解 不 能 OTL

twenty_dotさんのも見ましたが根本的にやり方が違うようでorz
isoさんのソースから冷凍矢印つけるのってかなり難しいですかね?

ん?漏れの力?ムリムリ
まだFLASH使い始めて6ヶ月経ってませんから(ぇ

では学校行ってきます(ぇ

166T/R:2006/01/22(日) 11:07:05 HOST:d238043.ppp.asahi-net.or.jp
もう二つほど問題発生。

iso氏の一番最初のソースを弄ってやってたら。

矢印は出てくるが右と上矢印しか出てこない!?
そして。ステップゾーンのMAXフレームが25だったので100に改造したら。

ライフゲージ増えませんorz

Flaファイル送ります。どうすればいいのか教えてくださいorz

矢印出てきただけでもまだましかな(ぇ

167tickle★:2006/01/22(日) 18:31:02 HOST:bgcs4422.tk.mesh.ad.jp[FLA1Adr242.tky.mesh.ad.jp]
>>166
ライフゲージくらいなら、ver2ソースから流用しても問題なかったような。

矢印はデフォルトでは出てくるので、余計な部分を消したor追加しただけかと。
left_timeline = _root.left_data.split(",");
down_timeline = _root.down_data.split(",");
・・・
はそのままでOK。
というか、ここを変にいじると矢印が動作してくれません。

MAKE矢印にある
function move1(){ ・・・以降は、
Dan★Oniの核に近いものが入っているので、
始めからやたらと弄るのはあまり推奨できないです。
まずはソースの理解が先だと。。

169T/R:2006/01/27(金) 18:47:42 HOST:d238043.ppp.asahi-net.or.jp
何とか直りました。
しかし最大のバグ発生orz

ウワァンが出てこねぇ(`Д´)

何も押さなかったとき判定が出ませんorz
ステップエリアの上のバーが見当たりませんが下手に弄ると死んでしまうのでw
てことでヨロシクです

170tickle★:2006/01/28(土) 02:01:27 HOST:bgcs4422.tk.mesh.ad.jp[FLA1Adr242.tky.mesh.ad.jp]
>>169
ステップエリアの上のバーが何かはわかりませんが・・・
単発矢印の枠外ラインは_global.outで決められています。

function move1(){
・・・
の中の
if(this._y < _global.out){
 ・・・
}
内で(リバースは逆)枠外ウワァンを制御しているので
_global.outの変数を途中で弄ったか(or消したか)どうか、などを確認してみてください。
ちなみに、設定画面のスピード設定のASにて設定されています。

枠外に出てライフが減れば_global.outの問題ではなく
エフェクト(判定のモーション)がおかしい可能性が大です。
if( this._y < _global.out){
 ・・・
}
の中にある、
_parent.effect.gotoAndPlay(?);
の?フレームがウワァンのモーションの開始位置になるように
エフェクト(判定表示部分)を調整すればOKです。

171TAKADRA:2006/01/30(月) 17:38:42 HOST:d2c664a9.tcat.ne.jp
加速>>57

すでにそこまで完成しているのですか(・∀・)
自分としては一回目で打ち込んだデータをそのまま矢印として一回流してみて、
そこに追加としてさらに打ち込めるor新たにその矢印を参考に打ち直すって機能があればさらに便利だと思います

さらに自分のエディタであれば3・4・Cキーで拍子切り替えとかエディタ切り替えとかができれば変速にも対応できるかも・・・

p.s.

サザクロ最初のピアノソロ部分完成orz

そこだけだけど・・・。そこも3拍子っぽかった。4拍子だとずれたから試しに3拍子でやったらズレが少なかった件
BPMの測り方がおかしいのかorz

172T/R ◆FErv3aPHjk:2006/02/05(日) 02:50:51 HOST:d238043.ppp.asahi-net.or.jp
>>170
MAKE矢印をいじってたら何とかなりました^^;
どうやらオプションのReverseが邪魔していたようでw

今度は、広い視点の質問です(ぇ
MusicSelectソース(というか作品)を作ろうとしてますが、
自分の手で、となったので、疑問がたくさん。

1 フレーム数が少ないシーンが異常なまでに増えそうですが、
  これは重くなる原因になりそうでしょうか?

2 外部から読み込むからといって、オプションを搭載しすぎるのは良くないでしょうか?

3 シンボル(特にムービークリップ)が多すぎなんですが、この状態は変えたほうがいいでしょうか?

意味が分からなければレスをどうぞ。状況を詳しく伝えます。

P.S. 今はMusicSelectの波が来ているのでしょうか?
   この波に乗って頑張ろうかな、と思っていたり。
   tickleさんがMusicSelectソースを作ろうと思った動機は何ですか?

↑後書きも質問かいorz

173tickle★:2006/02/05(日) 10:38:08 HOST:bgcs4419.tk.mesh.ad.jp[FLA1Adr242.tky.mesh.ad.jp]
>>172
1.フレーム数の少ないシーン・・・?
  どこのことでしょうか; もう少し詳しくお願いします。。

2.前に言っていた通り、オプションによって処理量が増えるので
  どうしても動作は遅くなりますね。
  曲とメインを分離したら
  フレームの流れる速度がやや速くなった気がします
  (というより、本来のスピードに戻りつつあると言ったほうが正しいかも)。
  オプションを搭載しすぎると、過去曲の譜面を新swfに移行したときに
  若干のズレ(遅れ)が生じるので注意です。。

3.シンボルはまとめて動作しても問題なければ
  一つにまとめてもいいと思います。
  
>>MusicSelect
確かに増えてますね。
自分は最初、これを作るのはあまり気が進まなかったわけですが。。
(特殊なオプションの搭載が難しい、
 一作品としての存在が薄くなる可能性がある、
 今になって搭載すると過去曲の譜面修正が面倒、など)

後者はコメント挿入でそのあたりは多少はマシになった感もありますが。
前者の場合は・・・音楽ファイルの他に
もう一つswfを組み込む手もありますがどうするか・・・が課題ですorz

搭載しようと思ったのは、曲とメインを分離したときに
軽くならないかな、と思ってやっただけですorz

174T/R ◆FErv3aPHjk:2006/02/07(火) 23:17:26 HOST:d238043.ppp.asahi-net.or.jp
>>173
1ですが、 どこ、ではなく、フレーム数が少ないシーンを大量つくってしまった
ってことです。 容量に影響するのか・・・と言いたかったんですがorz

また新Flash作りが進んでますが。。。
一番大きな(多分) MusicSelect部分で壁にぶち当たりました(死

Aというシンボルの中に、 曲名、難しさ、曲の長さ を入れました。
キーフレームは29個、つまり入れる作品の数です。

んで、ボタンでAというシンボルのフレームを動かそうとしましたが。。。

フレーム1でフレーム29に飛ばすのと、1フレームずつ動くのを1つのボタンに入れようとしました
フレーム1に、
stop();
_root.count=1;
と入れました。
ボタンのASは↓のとおり

on(release){
if(_root.count=1){
gotoAndStop(29)
}else{
_root.A.prevFrame();
}
}
こんな感じです(分かりにくい
反対側も同じ様な感じです。

結果は、フレーム1とフレーム29の行き来は自由に出来ましたが、
他のフレームにいくことができません。

階層を分かり易く言うと、
ステージにA というシンボルが1つ。
同じ場所にフレーム移動のボタンが2つって感じです。
分からなかったらここに書いてください。
Flaファイル送ります。

またアドレス間違えそうなんで、念のために送るアドレスをレスに貼っといてください。

文長いw

175tickle★:2006/02/08(水) 00:25:59 HOST:cachesv4411.tk.mesh.ad.jp[FLA1Adr242.tky.mesh.ad.jp]
>>174
階層とカウントの問題ではないかと。
あと、フレーム1の設定はキーフレームに、
ASと表示部分をレイヤーで分けたほうが分かりやすいかな。。
AS部分は違うけど表示部分はすべて同じですからね。

on(release){
  if(_root.count=1){
    _root.count = 29; // 29曲目にする
    gotoAndStop(29);
  }else{
    _root.count--;  // 上へ戻る
    prevFrame();
  }
}
ちなみに、フレーム2〜29には
ASとして"stop();"とだけ打っておいて下さい。

自分も始めはフレーム数を作りまくってやりましたが、
ダイナミックテキストでまとめられると思い1フレーム化しました。
外部読み込みにしたので、その分文字フォントは劣化しにくいのを
選ぶ必要がありましたが(・∀・)

176tickle★:2006/02/08(水) 00:40:45 HOST:cachesv4411.tk.mesh.ad.jp[FLA1Adr242.tky.mesh.ad.jp]
>>175
>>シーン
余計であれば、シーンは削除できますよ。一応。
flaファイルとしては多少影響するもしれませんが、
swfはそこまで影響しないかと。
「シーン」といっても、見た目的なもので
実際は前シーンと連続しているものなので
不要ならまとめるのもありかと。。

「ウィンドウ」→「シーン」でシーンを表示させて、
不要なシーンをクリック→ゴミ箱アイコンをクリックで。

177T/R ◆FErv3aPHjk:2006/02/08(水) 17:43:11 HOST:d238043.ppp.asahi-net.or.jp
>>175
_root.countの後はマイナス2つでしょうか?

ちなみにちゃんとフレーム1〜29までstop();
は入れました。 ・・・・1は要らない??

漏れも最初はダイナミックテキストでやろうと思ったんですけど
DDR(本物ね)みたいにイメージも入れるためには、
キーフレームを作りまくるしかなかった・・・というお話(ぇ

シーンの削除方法は分かりますが、影響しないならこのまま進行しようかな

壁に当たらないように聞いて置きます。
swfを読み込む階層に、_levelというのがあった気がします。
読み込むswfに変数を送るにはどうすればいいんでしょうか?
また読み込んだswfから読み込む前のswfに変数を送ることは可能でしょうか?

作った後作り直すのは結構悲惨なんで(ぇ

譜面と個々のswfは高速で作るとして(ぁ
核の部分を早く作ろうかな、と思ってます。

デザイン・・・・・・orz

178tickle★:2006/02/08(水) 20:28:34 HOST:cachesv4411.tk.mesh.ad.jp[FLA1Adr242.tky.mesh.ad.jp]
>>177
stop();は全部に入れておいて下さい。

>>読み込んだswfから読み込む前のswfに変数を送る
もし「レベル0(_level0)」に
  _root.plus = 1;
としたら、これは
  _level0._root.plus = 1;
と同じです。レベル1の階層なら
  _level1._root.minus = -1;
というように。
もしレベル1(読み込んだswf)からレベル0(もとのswf)に変数を渡す
とするなら、
  _level0._root.plus = _root.minus; // レベル1のswfで行う
のようにします。
逆なら
  _level1._root.minus = _root.plus; // レベル0のswfで行う
基本的に、
  unloadMovieNum(1); // レベル1の階層にあるswfを消す
のようなことをしない限り、swfファイルは残っています。

179トパーズライン ◆wTopazYQ4E:2006/02/08(水) 20:44:18 HOST:p8070-ipad11aobadori.miyagi.ocn.ne.jp
リク。
crankyさんのPAL,36で。

つ+1

180トパーズライン ◆wTopazYQ4E:2006/02/08(水) 20:45:19 HOST:p8070-ipad11aobadori.miyagi.ocn.ne.jp
スマソorzorzorz
加速スレと間違えました。。
気にしないで下さい(滅

181T/R ◆FErv3aPHjk:2006/02/08(水) 22:02:12 HOST:d238043.ppp.asahi-net.or.jp
>>178
いまいち分からない件(爆死

_level0 のa.swfの中の、_global.scoreという変数を
_level1 のb.swfに送る場合、
またb.swfの_global.scoreをa.swfに送るASを書いてもらえないでしょうか

私は、Flashを作る際いつも完成したやつを"参照"して作っています。

元のASから自分のアイデアを練りこんで新しいものを作っていく・・・としています。
・・・まあそれで出来た作品はまだないわけですが(死

とりあえず2パターンのASを書いてくださいです。。。

182tickle★:2006/02/08(水) 22:30:44 HOST:cachesv4411.tk.mesh.ad.jp[FLA1Adr242.tky.mesh.ad.jp]
>>181
_global.〜はswfごとに定義されたものなので、
階層ごとに_global.〜の意味が変わります。

できれば、_root.〜で書いたほうがいいですね。
個人的にあとで見たときに混乱するので;

_level0内にあるスコアの変数を"score"、
_level1内にあるスコアの変数を"score1"としておきます。

_global.score をすべて_level0._root.scoreに直して、
_level0._root.scoreをレベル1にある_level1._root.score1に渡します。
敢えて書くなら
  _root.score = _global.score; // データコピー

// a.swf(_level0) → b.swf(_level1)へscoreを渡す
// a.swf内に記述
   _level1._root.score1 = _root.score; // _level1の階層のscore1変数
  または
   _level1._root.score1 = _level0._root.score;

// b.swf(_level1) → a.swf(_level0)へscoreを渡す
// b.swf内に記述
   _level0._root.score = _root.score1; // _level0の階層のscore変数
  または
   _level0._root.score = _level1._root.score1;

_level0.〜というのは、レベル0の階層にある、って意味です。
_root.〜も階層によって変わるのでこのように。

それで最後に
  _global.score = _root.score;
のような感じに。
でも2回コピーしてるので_global.score を
全部_root.scoreに直すと最初と最後の文は書く必要はないです。

183T/R ◆FErv3aPHjk:2006/02/08(水) 23:32:04 HOST:d238043.ppp.asahi-net.or.jp
>>175のとおりにやりましたがどうも動いてくれないorz
Flaファイルうpしますんで見てやってください。。。
http://ccfa.info/cgi-bin/up/upload.html
の、11-40.zipです。
パスワードはかけていません・・・っていうかかけ方知らねぇ(ぁ

こっちの説明が不足していた可能性が十分あります(爆
シーンは、Free play mode のはずです。
ではよろしくです

184T/R ◆FErv3aPHjk:2006/02/11(土) 19:07:50 HOST:d238043.ppp.asahi-net.or.jp
flaファイル再うpしました
tickleさんお願いですm(__)m

185tickle★:2006/02/11(土) 21:47:43 HOST:cachesv4410.tk.mesh.ad.jp[FLA1Adr242.tky.mesh.ad.jp]
>>184
DLしました。
PCの調子が悪いので、わかりしだいできるだけ早く知らせます。

186tickle★:2006/02/11(土) 22:38:53 HOST:cachesv4410.tk.mesh.ad.jp[FLA1Adr242.tky.mesh.ad.jp]
>>184
ソース見ました。
ボタン内の階層が違ってます。。
進むボタンでは
if (_root.count==29) {
  _root.select.gotoAndStop(1);
} else {
  _root.select.nextFrame();
}

戻るボタンを
if (_root.count==1) {
  _root.select.gotoAndStop(29);
} else {
  _root.select.prevFrame();
}
とすればOKです。

つまりは、セレクト部分の中の次のフレーム(曲)、
みたいなことをしたいわけなので
  _root.select.nextFrame();
のようにします。
単に"nextFrame();"だと"Free Play Mode"のシーンで
次のフレームへ進むことになりますから、
次のフレームがなくそのまま戻ってくることになってしまいます。

"= ="が"="になっていたのも原因の一つのようでした。。

187T/R ◆FErv3aPHjk:2006/02/11(土) 23:42:26 HOST:d238043.ppp.asahi-net.or.jp
>>186
返信どうもです。大体分かりました。

ASにon(release)は入れないんでしょうか?
これからテストしてみます。

階層って複雑ですよね(´・ω・`)
これからもっと勉強しますです

188tickle★:2006/02/11(土) 23:43:19 HOST:cachesv4410.tk.mesh.ad.jp[FLA1Adr242.tky.mesh.ad.jp]
>>187
入れますよ。必要な部分のみ出しただけです。

189shifter:2006/02/17(金) 23:59:57 HOST:softbank221019247060.bbtec.net
お久しぶりです(`・ω・)

質問なんですけど、5keyのソースは公開なさらないのですかね?

190tickle★:2006/02/18(土) 13:54:24 HOST:proxy134.docomo.ne.jp
>>189
5keyはソースを公開しているサイトが多いので
出る幕ないと思うんですが・・・。どうでしょう?;

ちなみに、5&7keyソースは
将来的に公開するかもしれません。。
その前に、動作を軽くすることが先決ですが。。

191shifter:2006/02/19(日) 09:31:51 HOST:softbank221019247060.bbtec.net
>>190
個人的には使ってみたいと思いますが…
どうでしょうか^^;

192tickle★:2006/02/23(木) 00:00:14 HOST:proxy114.docomo.ne.jp
>>191
自分のソース全てに言えることですが、
現状のソースがすでに重いため、
自分のソースがある程度確立するまでは公開しにくいかもorz

193shifter:2006/02/25(土) 19:24:34 HOST:softbank221019247060.bbtec.net
>>192
そうですか・・・
期待してますので頑張ってください^^

194アスタスファ。in theミューシイ:2006/02/27(月) 23:51:09 HOST:horologium.aitai.ne.jp
なぜか知らないけど、音楽が読み込めないTT
まさか読み込める容量に限界ってありますか?

195tickle★:2006/02/28(火) 00:20:53 HOST:FLA1Adr242.tky.mesh.ad.jp
mp3→wav→mp3って変換をすると、
読み込めることがあるみたいです。

ビットレートは大丈夫そうだから、もしかしたらその方面かも。
「午後のこ〜だ」などでmp3ファイルサイズは減らせますよ。

196アスタスファ。in theミューシイ:2006/02/28(火) 00:43:13 HOST:horologium.aitai.ne.jp
>>195
読みこめました。ありです。

197tickle★:2006/03/11(土) 00:54:10 HOST:FLA1Adr242.tky.mesh.ad.jp
連絡スレ>>438
加速スレ>>469

まず、SpeedオプションのフレームのASと
スタート時のフレームのASがマッチしているか確認してください。

どういった仕様かはわかりませんが、
O-toroさんのソースだと少なくとも
_global.speedUp // スピード
_global.speedY  // 初期位置
_global.out   // 枠外位置
の3つは必要です。

また、swfを直接開けるならその状態で
ウィンドウを上下に広げると矢印がどうなっているかわかるので
そのあたりを調べるのもありかと。。

スタートから直接メインへ飛ぼうとすると
譜面や設定が読み込まれずにスタートする、という可能性もあります。

独自仕様のようで、どういったASでどのように動かそうとしているのか
見えてこないので(AS部分など)具体的にお願いしますorz

198T/R ◆FErv3aPHjk:2006/03/11(土) 01:20:37 HOST:d238043.ppp.asahi-net.or.jp
>>197
2回のスレ違い失礼しましたOTL

_global.outを入れるのを忘れてたみたいで^^;
MAKE矢印などはisoさんのソースをそのまま引用しただk(ry

スタートからメイン・・・・。
スタート画面をクリックすると画面が左に動いて右からオプションが出てくるという・・・。

なんであまり変わって無いです。。。
オプションもそんな入れて無いですしデザインで加工しただけかも。。。

これから_global.out入れてやってみますです。。。

199T/R ◆FErv3aPHjk:2006/03/12(日) 10:10:29 HOST:d238043.ppp.asahi-net.or.jp
_global.out入れてもだめでしたOTL

数値は勿論 -10
これ以上何を言っても分からないと思うのでソース送ります(結局

200tickle★:2006/03/12(日) 13:10:17 HOST:FLA1Adr242.tky.mesh.ad.jp
>>198-199
半分そうでないかと予想していたり(マテ

_global.SpeedUpや_global.SpeedYの定義方法に問題があるのかも。
テスト用に、わざと
  _global.speedY=185; // 矢印を中央から表示するようにする
としておくと、矢印が複製されているかどうかは知ることができると思います。

補足ですが、MX 2004で保存しているのなら、
大文字・小文字は区別して書かないとエラーになりますよ。
初期ソースの場合、
 currentFrame → currentframe // 現在のフレーム
 hittest → hitTest // 当たり判定
など。他は忘れました。。

手っ取り早い方法は、
「編集」→「検索して置換」を押して
 「検索」の欄に左側の文字を、
 「置換」の欄に右側の文字を入れるといいと思います。
(あまりやったことはありませんが。。)

201T/R ◆FErv3aPHjk:2006/03/21(火) 19:02:24 HOST:s188040.ppp.asahi-net.or.jp
>>200
おかげさまで全て直りました。

過去の作品が重すぎるので、新ソースに全て差し替えようとしたら
また問題発生です('A`)

作曲者のリンクをクリックしてもページが開かないorz

曲のASは、
on (release) {
getURL(_root.Music_ad[0] , "_blank");
}
フレームのASは、
Stage.showMenu = false;
_root.Music_ad = _root.Music_URL.split(",");
_root.tune_ad = _root.Tune_URL.split(",");
this.loadVariables("option.txt");
this.loadVariables("dos.txt");

変数の内容はoption.txtに入れてあります。
確か送ったソースと大体同じのはずです。
変数の最後に ,  を入れても意味ありませんでした。

何をどうすればいいか教えて下さいm(____)m

202tickle★:2006/03/21(火) 20:01:47 HOST:FLA1Adr242.tky.mesh.ad.jp
>>201
変数代入の後に"option.txt"を読み込んでしまってます。
this.loadVariables("option.txt");
this.loadVariables("dos.txt");
はローディング時に読み込ませるようにしておけばOKかと。

203T/R ◆FErv3aPHjk:2006/03/21(火) 20:15:42 HOST:s188040.ppp.asahi-net.or.jp
>>202
1時間掛けて出来なかったのが一瞬にして・・・www
今までtickleさんに教えてもらったのを全て記憶して今後生かします(^ω^ )

・・・・でも新ソースの上の曲名表示はすんなり出たのは何でだろう??
まあいいや(ry

次は軽量化('A`)

204T/R ◆FErv3aPHjk:2006/03/30(木) 18:57:30 HOST:s188040.ppp.asahi-net.or.jp
配布用swfを作る途中で問題が。

ライフゲージが異常なまでに重いので、
tickleさんのソースを見て、

Σ(゚Д゚)これだ

と閃き、ASを加工して弄ってみました。
結論から言えば、ライフゲージがおかしい、ということです。
貼り付けたASはこのとおり↓

ライフゲージに貼り付けたもの

onClipEvent (enterFrame) {
this._xscale = _global.life;
if (_global.life=100) {
this.guage.gotoAndStop(2);
} else {
this.guage.gotoAndStop(1);
}
}

ライフゲージの中に、MAXゲージのときの言葉と、guage と名前を付けたゲージ元があります。

・・・・これで分からなかったらflaファイルをメールで送ります。

tickleさんに教えてもらったことは数知れず・・・。

205tickle★:2006/03/31(金) 00:20:04 HOST:FLA1Adr242.tky.mesh.ad.jp
>>204
ライフゲージがはみ出してしまうとか、
途中のバーで止まってしまうとか、
そういった症状でも書いておくとわかりやすいかもしれません。
ソースを送る前に、ある程度詳しい症状だけでも書いておくと
わかることもありますよ。

自分のライフゲージの仕様に合わせるなら、
ライフゲージの中へ入り、
1フレーム目でバー部分を全部塗りつぶして
それを右クリック、「シンボル化」します。(名前は適当で)

例えば、シンボル名を"GaugeLine"、ここで使う別名
(シンボル化した後、
 左下の"ムービークリップ"と書かれているものの下の空白部分)
を"GaugeMeter"とでもしておきます。

2フレーム目はそのままキーフレームを挿入すれば
前のものが維持されて表示されるのでこのまま。
MAXゲージの文字を入れます。
(その際、何度も往復されないように各フレームにstop();を入れます)

そしてメインに戻り、ライフゲージをクリックして、
その部分のASを
onClipEvent(enterFrame){
  this.GaugeMeter._xscale = _global.life;
  this.gotoAndStop(_global.life == 100 ? 2 : 1);
}
としておけばOKかと。
つまり、>>204では_xscaleの参照先が間違っています。
たぶん、バーだけでなく外枠まで縮まったのではないかと。

206tickle★:2006/03/31(金) 00:26:13 HOST:FLA1Adr242.tky.mesh.ad.jp
>>205
追記。
ゲージ内移動の参照先も違ってますね;
"ゲージ元"というのが外枠を除いたバーのみのシンボルだとするなら、
onClipEvent (enterFrame) {
  this.guage._xscale = _global.life;
  if (_global.life=100) {
    this.gotoAndStop(2);
  } else {
    this.gotoAndStop(1);
  }
}
のようにするかですね。無理なら、まず>>205のようにするか、
ライフゲージそのものをコピペして
AS内にある
_global.life_option.life → _global.life
に直せば良いです。

207tickle★:2006/03/31(金) 00:28:19 HOST:FLA1Adr242.tky.mesh.ad.jp
>>206
3連投。何やってるんだかorz
>>204のASのミス、もう1つありました。

if(_global.life=100){...ではなく、

if(_global.life = = 100){...です。
あえて誇張して書いていますが、"=="のことです。

208T/R ◆FErv3aPHjk:2006/03/31(金) 10:03:28 HOST:s188040.ppp.asahi-net.or.jp
>>205-207
症状書くのすっかり忘れてましたorz

イイがどれだけ出てもライフゲージが回復しない
そして最初からゲージがMAX
にもかかわらずMAXゲージのときの文字が出てこない

纏めると、【最初からMAXゲージで文字が出てこない】

こういうわけです。

仕組みをもっと分かりやすく書きます。

ますライフゲージの名前がbar そこには外枠があります。
その中にguageというバー元があり、外枠、文字がレイヤーに分かれています。
guageの中はバー元のイメージを変えるだけ tickleさんのと大体同じ筈です。

_global.lifeをいろいろ調べましたが、【私の調べでは】問題ありませんでした。

・・・・私の調べ ってとこかなり重要(・∀・;;

>>207を見て、=と = =の違いが分からなくなりましたorz
私の前の概念は、
文字だったら= =数値だったら= だと思っていました。
変数に数値を入れる場合は= =なんでしょうか?

いろいろありますがお願いしますです。。。

209tickle★:2006/03/31(金) 13:05:15 HOST:FLA1Adr242.tky.mesh.ad.jp
>>208
まず、>>206のようにASを入れてみてください。
もちろん、"="は"=="に直しますが。
入れる場所は、シーン[メイン]でライフゲージを表示する場所です。

参照先が違っていて動いていないだけだと思います。
簡単に書くなら、
onClipEvent(enterFrame){
  this.Guage._xscale = _global.life;
  this.gotoAndStop(_global.life == 100 ? 2 : 1);
}
でいいかと思います。
それで動かなければ一旦>>205の手順を確認してください。

= と == については次のレスにて・・・

210tickle★:2006/03/31(金) 13:07:40 HOST:FLA1Adr242.tky.mesh.ad.jp
>>"="と"= ="の違い
よく勘違いする部分なので、書いておくと・・・

○ "=" [代入]
 通常の式では「イコール(等号)」を指しますが、
 ASなどで使う"="はイコールではなく、「代入」を意味します。

例えば、「a = 6;」と書けば、
「"a"という変数に6を代入した」
ということになります。
ASで使うような文字の場合には、
 _global.reverse = "cross";
は「_global.reverseに"cross"という文字を代入した」
のように。
わかりやすく?書けば
 a ← 6
 _global.reverse ← cross
な感じで捉えておけばいいかと。

○ "= =" [イコール]
 上に似ていますが、こちらのほうが「イコール」です。
 ごちゃごちゃしそうですが。
 主に、条件式で使うことが多いかも。

 if(j == 6)は
「もし jという変数の中身が6ならば」
 if(_global.reverse = = "cross")は
「もし、_global.reverseという変数の中身が"cross"だったら」
ということなので前の"="とは違う意味です。

要するに、「代入(右のものを左の変数に入れる)」と
「等号(左右が等しいかどうか?)」の違いってことです。
意味としては違うものですよ。

211T/R ◆FErv3aPHjk:2006/04/02(日) 16:44:18 HOST:h198167.ppp.asahi-net.or.jp
>>209-210
何とか直りました。
やはり=と= =の違いでした。

さらにASを研究していたところ、仕組みが分からないものを見つけました。

tickleさんの冷凍矢印搭載ソースは、曲swfを外部から入れる仕様ですが、

1 swfを入れるASが見つからない
2 どのムービークリップに入れるのか分からない
3 入れるフレーム数が無い(はずなのに正常に作動してる)

この仕組みについて教えてください。

そしてもう一つ。

得点計算の、
// ランク判定後にスコア計算
_root.speed_check = Math.abs(_global.SpeedUp[0]) / 2;)
_root.speed = "×"+_root.speed_check;
に使われている、Math.absの意味を教えてください。
・・・私が昨日買ってきたASの本には書いてありませんでしたorz

只今AS猛勉強中 MAKE矢印みたら頭が壊れそうなT/Rですた(ry

212tanishi ◆Pika524cbU:2006/04/02(日) 16:59:12 HOST:softbank218181193078.bbtec.net
>math.abs
絶対値だったと思います。

エディターにバグらしきものが(というか仕様かも
ストップの間隔詰めるとズレます。
あと、ストップが譜面の数値に影響しないことがありました。

矢印出現位置固定で速度変化ってどうするんだろう…。

213T/R ◆FErv3aPHjk:2006/04/02(日) 17:04:54 HOST:h198167.ppp.asahi-net.or.jp
>>212
どうもです。

Math.abs本にあったorzorzorz

後は外部からのswf挿入・・・・。
フレーム数がなくても関係ない・・・?

んなこたぁない(ry

214tickle★:2006/04/02(日) 17:11:15 HOST:FLA1Adr242.tky.mesh.ad.jp
>>211
答えやすいものから答えておきます。

>>Math.abs
多分、「Math」の部類で入っていると思います。
よく使いそうなものを挙げておくと・・・
・ Math.abs(number)
  − numberの絶対値を取る(マイナス部分を取り除く)
・ Math.random()
  − 0以上1未満の数字(小数)をランダムに取得
・ Math.round(number)
  − numberを整数値に丸める(四捨五入)

>>1 swfを入れるASが見つからない
シーン「設定」の
4フレーム目くらいにある「譜面ファイルを・・・」
をクリックするとわかります。

>>2 どのムービークリップに入れるのか分からない
ムービークリップに入れるというよりは、
指定した別の階層にswfを挿入しているだけです。
ブログにそのあたりは書いたような気がします(たぶん半年以上前)。

>>3 入れるフレーム数が無い(はずなのに正常に作動してる)
_parent._currentframe(現在のフレーム数)で制御しているのではなく
「MAKE矢印」の一番下のほうにあるframe_numの値を増やすことで
フレームを進めなくても矢印が生成されるようにしています。

ちなみに、音楽ファイルには
「読み込み完了フラグ」と「音楽終了フラグ」しか重要な変数はありません。

215tickle★:2006/04/02(日) 17:21:59 HOST:FLA1Adr242.tky.mesh.ad.jp
>>212
>>エディターのバグ
フリーズアローをストップ付近に置くと
ズレることは確認してます。
現在、バグ原因を探している途中です・・・orz

>>矢印出現位置固定で速度変化
今のところ考えている方法は・・・

1.速度変化は現状維持で、初期倍速の位置を固定する
  (1.5x, 2xでも同じ位置から出てくるようにするが、
   速度変化した場合は今まで通り座標制御)
 → こちらはストップを内部設定すれば実現できそうです。

2.速度変化も、初期倍速も出現位置固定
 → 考え中ですが、とりあえず考えられるとすれば
   変化する場所ごとに矢印の塊を配列で区切り、
   再計算して矢印を生成させる・・・

無理ではないですが、配列と条件式の関係で動作が不安です。
これが軽量化できるようなら、順序入れ替え操作不要で
矢印個別加速でも低倍速が行けそうな気はしますが。。

216T/R ◆FErv3aPHjk:2006/04/02(日) 17:32:17 HOST:h198167.ppp.asahi-net.or.jp
>>214
すぐに答えていただき有難う御座いました。。。
Math.absは上にあるように本に載ってありましたorz

フレーム数増やすASはframe_num++という事でしょうか?
他のところは、曲の時間設定とか矢印の設定とかが溢れてました。。。

tickleさんの5key・・・・(´・ω・`) いや何でもありません(ry

217tickle★:2006/04/02(日) 17:45:17 HOST:FLA1Adr242.tky.mesh.ad.jp
>>216
>>フレーム数増やすASはframe_num++という事でしょうか?
そうですね。その数と譜面ファイルの数字を使って比較して
矢印を生成してます。

>>5keyソース(?)
つまり、7keyの機能のソースを5keyに移植するって意味ですかね。
>>189-193にも同じような感じが。。)
7keyソースから改造しようと思えばできますが、軽量化しないとorz

218T/R ◆FErv3aPHjk:2006/04/02(日) 17:47:59 HOST:h198167.ppp.asahi-net.or.jp
>>217
あ、ソースじゃないソースじゃない(滝汗

5keyの作品はまだかな・・・なんて思ってたりw

とりあえず、7鍵のソース、頑張ってください(・∀・)ノ~~

では塾に行ってきます壁|・_・)ノ

219T/R ◆FErv3aPHjk:2006/04/02(日) 17:52:39 HOST:h198167.ppp.asahi-net.or.jp
おっと忘れてた

Difficultyの設定がどうもおかしいので症状とファイルをメールで送ります。
flaファイルはdifficultyのシンボルしかありません。
option.txtも添付しときます。

それでは行ってきます壁|・_・)ノ

220tickle★:2006/04/02(日) 18:10:41 HOST:FLA1Adr242.tky.mesh.ad.jp
>>218
5keyはソースも譜面も出る幕がない気g(ry
ソースができれば作るかもしれないです。

>>219
添付ファイルありませんでしたよー;
容量オーバーで切られた可能性があります。。

多分、7keyの設定通りにすれば「Difficulty」は動くと思います。
フレームのASだけじゃなくて
ボタンのASも条件式入れてたりしてるのでそのあたりを探ってみてください。

221T/R ◆FErv3aPHjk:2006/04/02(日) 19:55:41 HOST:h198167.ppp.asahi-net.or.jp
>>220
あまりに焦ったあまり添付するのを忘れたという(ry

再送信しますorz

222:2006/04/03(月) 11:34:29 HOST:softbank219022232063.bbtec.net
突然すいません。
twenty_dot様のソースを元に
自分好みの操作性を付け加えようと四苦八苦している梨という者です。

困っていることなのですが、
曲中タイトルバックすることはできたのですが
曲中リプレイすると、リプレイ前に入力していたキーは
当たり判定がなくなってしまう?というものです。


この件について修正する方法が分かる方がいらっしゃいましたら
どうか教えてくださいorz

223tickle★:2006/04/03(月) 16:21:45 HOST:FLA1Adr242.tky.mesh.ad.jp
>>222
状況から察するに、被り判定がついているバージョンのようです。
「Replay」(ボタンを押すとリプレイ)を入れる箇所に

_global.objCnt=[0,0,0,0,0];
for(j=0;j<5;j++){
  _global.nowJudgeArrow[j]="Arrow_"+j+"_"+objCnt[j];
}
を入れてみてください。

矢印の番号によって判定するかどうか決めているので、
矢印の番号部分も初期化する必要があるわけです。

他の部分に関しては、基本的に
にゃじらさんのサイトのAS解説通りでOKだと思います。

>>ALL
独自ソースでない限り、
DLしたソースのバージョンを一緒に書いておくと
対応しやすいです(たいていは最新だと思いますが)。

224tickle★:2006/04/03(月) 16:30:52 HOST:FLA1Adr242.tky.mesh.ad.jp
>>223
追記。マスクの存在を忘れてましたorz
↓も、「Replay」するところに加えておいてください。

this.mask.removeMovieClip(); // マスクを消す
this.life_main.removeMovieClip(); // ライフゲージを消す
this.status_quality.removeMovieClip(); // 画質表示を消す
this.effect.removeMovieClip(); // 判定(矢印)を消す
this.effect2.removeMovieClip(); // 判定(フリーズアロー)を消す
_global.SpeedUp=_root.speed_lock; // 速度をデフォルトに戻す
unloadMovieNum(1); // 音楽を止める & swf破棄
_level0.musicFlag=false;

尚、リプレイのラベルは「譜面変換」のシーンに書くよりは
「設定」シーンで新たにフレームを作っておくほうがいいと思います。

225tickle★:2006/04/03(月) 16:33:04 HOST:FLA1Adr242.tky.mesh.ad.jp
階層ミスorz
>>224は間違えなので、こちらで。。

_parent.mask.removeMovieClip(); // マスクを消す
_parent.life_main.removeMovieClip(); // ライフゲージを消す
_parent.status_quality.removeMovieClip(); // 画質表示を消す
_parent.effect.removeMovieClip(); // 判定(矢印)を消す
_parent.effect2.removeMovieClip(); // 判定(フリーズアロー)を消す
_global.SpeedUp=_root.speed_lock; // 速度をデフォルトに戻す
unloadMovieNum(1); // 音楽を止める & swf破棄
_level0.musicFlag=false;

226:2006/04/04(火) 15:13:39 HOST:softbank219022232063.bbtec.net
tickle様、すばやい返答をありがとうございます。
&Verを書かずに申し訳ありませんでした(汗
(仰るとおり最新版でございます。。。)

でもって、本題。
早速やってみるとしっかりキーを押せるようになりました!


ただ、なぜか音楽用swfの読み込みがとまってしまう?のかなんだかで
曲が流れませんでした。

ものは試しと「unloadMovieNum(1); 」を消してみたら
あっさり動いたので報告しておきます。

本当にありがとうございました。

227Free Walker:2006/04/16(日) 19:13:07 HOST:p9304a5.tokyte00.ap.so-net.ne.jp
ここの7keyの速度変化(イニシャルTとかと違うやつ)のやり方がイマイチわかりません;
5keyの速度変化をそれにしたかったんですが…
ちなみに5keyのVerは祭り05のときのやつです。

228tickle★:2006/04/16(日) 21:36:23 HOST:FLA1Adr242.tky.mesh.ad.jp
>>227
基本的に「MAKE矢印」の部分のみを弄ります。
多少長くなりますがご了承を・・・

まず、下準備として
onClipEvent(load){・・・}
の中にある
  _root.speed_rock = _global.SpeedUp;
  SpeedY1 = _global.SpeedY;
  SpeedY2 = _global.SpeedY-(70+300*(_global.SpeedUp-1));
の文の後に
  _root.speedY1_rock = SpeedY1;
    // スクロールが通常のときの矢印の初期開始位置
  _root.speedY2_rock = SpeedY2;
    // スクロールがリバースのときの矢印の初期開始位置
  _root.out_rock = _global.out;
    // 枠外ウワァンの初期位置
の3文を入れます。これを基準に加速させます。

次に、function move2(){・・・}, function move1(){・・・}
共通で、まず
function move2(sp){    // ()内に"sp"と入れる[引数]
  return function(){   // この文を挿入(クロージャ)
    var sp_rock = sp; // この文も挿入
    if(_global.life<0){
     ・・・(以下略)・・・
  }; // 関数の終わりの手前1行にこれを入れる(セミコロンも)
}

長くなるので次レス>>229に続けます・・・

229tickle★:2006/04/16(日) 21:44:17 HOST:FLA1Adr242.tky.mesh.ad.jp
>>228の続き

>>228のmove2については、
function move1についても同じことをします。

次に、これもmove1,move2共通で、
この関数内にある
(function move1{・・・}, function move2{・・・}の・・・部分)
"_global.speedUp"と書かれている部分を
すべて"sp_rock"に置き換えてください。

これで、矢印のスピードが途中で変わることがなくなります。
(矢印を個別に加速すればいいので)

次に、function make_left, function make_right,...
の関数に移ります。
この関数内に、
 _parent[newArrowName].onEnterFrame
    = eval("this.move"+_root.Reverse_array[0]);
のような文があるので([]内の数字は矢印によって変わります)、
 _parent[newArrowName].onEnterFrame
    = eval("this.move"+_root.Reverse_array[0])(_global.speedUp);
のように、
"(_global.speedUp)"を付け加えてください。
これは、make_right, make_up, make_down, make_space
についても同じです。

もう少し続きます・・・(あと少しですが >>230

230tickle★:2006/04/16(日) 21:52:28 HOST:FLA1Adr242.tky.mesh.ad.jp
>>229の続き(一応ここまで)

onClipEvent(enterFrame){・・・
以降の部分についてです。ここで、変速する部分を作ります。

onClipEvent(enterFrame){
の直後に、次の文を入れてください。
if (_parent._currentframe == speed_timeline[s]-150) {
  var sp_delta = (speed_timeline[s+1]-1)*2;
  // どのくらい加速させるかを決める
  _global.speedUp = _root.speed_rock + sp_delta;
  SpeedY1 = _root.speedY1_rock + 150*sp_delta;
  SpeedY2 = _root.speedY2_rock - 150*sp_delta;
  _global.out = _root.out_rock - 10*sp_delta;
  // _global.speedUpなど、
  // スピードに関する部分をすべて変更
  s += 2;
}

そして最後に、最後のほうにある
if (_parent._currentframe == speed_timeline[s]) {
  //_global.SpeedUp = _root.speed_rock*speed_timeline[s+1];
}
と書いてある部分を消します。

これで、一通りは完成です。(もちろん、コピペでなく手打ちで入れます)
速度変化するときは、エディターver2ではなく
フリーズアロー対応のエディターを使ってください。

わからない部分があれば、どの部分がわからないかを言ってくれれば幸いです。

231tickle★:2006/04/16(日) 21:55:27 HOST:FLA1Adr242.tky.mesh.ad.jp
>>228-230に補足で。

このやり方は、1倍速未満には対応していません。
また、曲中リプレイをする場合や結果画面からリプレイさせる場合、
スピードを一度初期化する必要があります。

232Free Walker:2006/04/16(日) 22:48:33 HOST:p9304a5.tokyte00.ap.so-net.ne.jp
うわぁ…
お手数かけさせてしまって申し訳ありません;
よく分かりました。ありがとうございます。

233T/R ◆FErv3aPHjk:2006/04/22(土) 01:09:17 HOST:u062172.ppp.asahi-net.or.jp
また質問です。

毎日tickleさんやtwenty-dotさんのflaファイルを見て研究しているんですが、
分からないのがあります。

そのうちの一つ、メインのフレーム調整が分かりません。

twenty-dotさんのやつには、フレームにフラグがあり、そこに飛ぶようにするようですが
仕組みが見つからず。

tickleさんのやつにはスタート、メイン、シャッターの3フレームしかなく、
フレームを増やす仕組みは、MAKE矢印の最後の、frame_num++しか見当たりませんでした。

勿論この変数は一体何なのかは全く分かっていません。

出来ればこの仕組みを教えて下さい。

・・・・よくわからない文章になっちゃったorz

234tickle★:2006/04/22(土) 01:41:36 HOST:FLA1Adr242.tky.mesh.ad.jp
>>233
>>214の通り、フレームを増やすのはframe_numだけです。
スタートのモーションが終わればメインに、
メインが終われば(曲終了フラグが立てば)シャッターに移る仕組みです。

それまでは、stop();によって表面上はフレームを止めています。

表面上は、というのは
 stop();
が出てきたからといって、止まって何もしないわけではない、ということです。
つまりは stop();をしても、処理は続いてます。
(何度も同じフレームに入っている、と考えたほうがいいかも)

onClipEvent(enterFrame){ 以後は、
「フレームに入るたびに行う処理」です。

だから、ここに入っている"frame_num++;"は
stop(); で止められていても同じフレームに何度も入るので
frame_numは同じフレームに入るたびに増えていきます。

これがフレームが増えるのと同じようにできるので
このようにしています。

フラグ関係はメイン部分だけでなく、
曲ファイルの変数と連係して動かしているので、
曲ファイルと一緒に見るとわかるかも。

ちなみに、自分の曲ファイルには>>214の通り
「読み込み完了フラグ」(メイン開始)と
「音楽終了フラグ」(メイン終了→シャッター)
がメインとつながっている変数です。

235T/R ◆FErv3aPHjk:2006/04/22(土) 02:14:07 HOST:u062172.ppp.asahi-net.or.jp
>>234
│ ・ω・)<フレームを増やす設定が上手くいきません

MAKE矢印の、onClipEvent(enterFrame)の中にframe_num++;
を入れてみましたが上手くいきません。

frame_numの定義自体知らないので何をどうするのやら。

こんな時間にでもソース弄ってますよ('A`)

眠気なんか襲ってこない(だって昼寝しちゃったから(爆

tickleさんはもし今起きてたら何やってんでしょうか(・∀・)

236tickle★:2006/04/22(土) 02:29:23 HOST:FLA1Adr242.tky.mesh.ad.jp
>>234
「Make矢印」の最初のところ
onClipEvent(load){
・・・
}
の中に、
  var frame_num = 1;
を入れる。(つまり初期化です)

frame_numはローカル変数なので
「Make矢印」以外では使われていません。

多分今日はそろそろ寝ます(ぁ

237T/R ◆FErv3aPHjk:2006/04/22(土) 22:51:28 HOST:u062172.ppp.asahi-net.or.jp
onClipEvent(enterFrame)の
if (this._current.frame == left_timeline[v]-150) を、
if (frame_num == left_timeline[v]-150) に変えて出来ました。

これで一つ分かりましたです。。。

まだ質問が(ぁ

今度は判定です。

判定のカウントは1つに纏められる事を、ソースをみて分かりました。
でも分からない箇所が。

曲中設定に、
function judgeArrow(num){
var j = num;
// ターゲットの矢印のみ判定をする
var crtCnt = Math.abs(_root[_global.ArrowMC[j]].count-150);
_root[_global.ArrowMC[j]].pick = true;
_root[_global.ArrowMC[j]].gotoAndPlay(5);

_global.temp[j]++;
_global.ArrowMC[j] = "Arrow"+ j +"_"+_global.temp[j];
if( crtCnt < 4){
this.ii_judge();
} else if ( crtCnt < 7){
this.matari_judge();
} else {
this.uwan_judge();
}
}
というようなjudgeArrow関数を見つけました。(MusicSelectソース)

その下にはそれぞれの判定ごとにライフゲージやらなんやらの設定があります。

ここで分からないのは3つ。

1、var crtCnt = Math.abs(_root[_global.ArrowMC[j]].count-150);の意味。

それぞれのArrowMC[j]で作った矢印に関係するとは思っていますが、絶対値を求めて何をするのか分からず。

2、_root[_global.ArrowMC[j]].pick = true;の意味。

_global.ArrowMC[j].pickの文さえ見つからず。
何の指令か勿論分かりません。

3、_global.temp[j]++;の意味。

_global.temp[j]の数値を1足すそうですが、効果が分からない。

特に、var crtCntの意味が分かりません。
数値によって判定が変わるようですが・・・。

解説お願いしますm(__)m

238tickle★:2006/04/22(土) 23:23:01 HOST:FLA1Adr242.tky.mesh.ad.jp
>>237
>>「判定部分」
まとめたにはまとめたんですが、軽くなっているかは微妙です(ォィ

>>1、var crtCnt = Math.abs(_root[_global.ArrowMC[j]].count-150);
_root[_global.ArrowMC[j]].countは
「MAKE矢印」のmove_Arrow関数に対応していて
 "this.count"と同じです。
つまり、矢印が生成されてからの時間(フレーム)のことです。
矢印は基本的に150フレームでステップゾーンに到達するので、

このカウンタが147〜153ならイイ、
上以外で144〜156ならマターリ、
それ以外はウワァンになるように設定しています。
-150して絶対値を取っているのはジャストな位置から
どれだけずれたかを表すためのものです。
時間、フレームで判定しているので、
倍速を上げても判定の辛さは変わりません。

>>2、_root[_global.ArrowMC[j]].pick = true;
これもmove_Arrow関数の"this.pick"に対応します。
要するに、この矢印の判定を確定させるためのもので、
これが"true"になった時点で次の矢印の判定に移動します。

>>3、_global.temp[j]++;
2の通り、次の矢印の判定に移行するためのものです。被り判定で使います。
矢印の名前は"arrow2_25"のようになっていて
"_"の右横の数字がその矢印が何番目のものかを表しているので(この場合は25+1番目)、
これを増やしていくことで、どの矢印の判定かを特定させることができます。

239T/R ◆FErv3aPHjk:2006/04/28(金) 23:46:08 HOST:u062172.ppp.asahi-net.or.jp
長い間研究してみたものの、分からないASが見つかりました。

if (this.count <= 157){
} else if (this.count > 170) { // 枠外に矢印が行ったときの処理
_root.half_judge.uwan_judge();
this.removeMovieClip();
} else if (this.count > 157){ // 矢印をスルーした場合の処理
if(this.pick == false){
this.pick = true; // この矢印の判定を確定
_global.temp[j]++; // 後続矢印の判定に移す
_global.ArrowMC[j] = "Arrow"+j+"_"+_global.temp[j];
}
}

枠外に矢印が行くのと矢印をスルーしたときの区別がイマイチ分かりませんorz

そして、1行目のコイツがいる意味が分かりません
                   ↓コイツ
if (this.count <= 157){
}
システムはMusicSelect以外は全て把握しました

最後のこいつらを解説してくださいm(____)m

240T/R ◆FErv3aPHjk:2006/04/28(金) 23:51:29 HOST:u062172.ppp.asahi-net.or.jp
症状を書くのを忘れました

Arrowがあるy座標を超えたときに消えましたorz
恐らく↑のレス ASの4行目のせいだとは思いますが。。。

不等号の向きが違うとしか思えませんがどう弄ればいいのかわからないというorz

241tickle★:2006/04/29(土) 00:11:43 HOST:FLA1Adr242.tky.mesh.ad.jp
>>239-240
矢印が生成されてからの時間が
157フレームを超えたら自動的にウワァンになるようにして
次の判定に移し、
(その後の条件
  this.pick==false
 がつくのは矢印の2重判定を防ぐためです)
170フレームを超えたら消えるようにするという仕掛けです。
(60fpsなので1秒=60フレームくらい)

ステップゾーンを越えても、しばらく矢印が残るのは
このようにしているためです。
y座標で指定するのではなく、
「矢印はこの時間以内しか生存できない」
ようにしているので、それを超えたら消えます。
(「Stair」使ってみるとそのあたりがわかるかも)

残りは次レスにて・・・

242tickle★:2006/04/29(土) 00:15:09 HOST:FLA1Adr242.tky.mesh.ad.jp
>>241の続き
>>if (this.count <= 157){
>>}
これは枠外ウワァン以外のときで、
これは一番条件に引っかかりにくいので
始めに判定させて以降の余計な処理をしないようにするものです。
2,3個ならいいですがもし
if( ){・・・
}else if( ){・・・
}else if( ){・・・
・・・// 20回ほどelse if
}else{・・・ // 一番該当するパターン → すべて通る必要あり
ということになったら、
一番該当するパターンは20回以上if文を通さなくてはいけません。

これでは処理が増える一方なので
if( ){・・・ // 一番該当するパターン → 1回で抜ける
}else if( ){・・・
}else if( ){・・・
・・・// 20回ほどelse if
}
のようにして、始めに逃がしておけば1回の条件判定で済みます。

つまり、処理回数の問題です。。

243T/R ◆FErv3aPHjk:2006/04/30(日) 00:26:28 HOST:u062172.ppp.asahi-net.or.jp
>>241
・・・イマイチ良く分かりませんorz

if (this.count <= 157){
は、「もし"this.count"が157以下なら」という意味の筈です。
そしてMAKE矢印の
_parent[newArrow].onEnterFrame = this.move_Arrow(j, _global.SpeedUp[j]);
で、毎フレーム毎にmove_Arrow関数を読み込むという意味で、
move_Arrow関数の中にあるASで、
読み込むたびにthis.countを1ずつ増やす仕組み、と思っていますが間違いでしょうか?

this.countと作られる矢印のY座標の関係を決めるASが見当たらないので余計分かりません。。。

>>242の内容にある『条件』が何かわかりませんorz

そしてメインソースのY座標を色々調べると、
ムービークリップ名「effect」のY座標が150でした。
下に行くとY座標が増えるので、
if (this.count <= 157){の判定が行われるのはeffectのちょっと上辺りかと。

自分のソースで、swfの高さを合わせて設定してみると、
矢印が出てきてすぐに消えてしまいました。

・・・理解力が悪い俺なので多分ソースを送ることになるかと(ry

244tickle★:2006/04/30(日) 00:52:06 HOST:FLA1Adr242.tky.mesh.ad.jp
>>243
何か勘違いされてるかも。
Y座標は全く関係ありませんよ。
また、「effect」はイイ・マターリ・ウワァン表示を出す部分なので
無関係です。
ただ、>>243の最初の10行はその解釈で合ってます。

this.countの増える条件を確認してくださいな。
function move_Arrowだったり、function move_FreezeArrowな訳です。
その関数が実行される条件は?
→ >>243の通り、フレーム毎に実行されます。

つまり、フレーム毎にthis.countが増えていく、
ということになります。

わかりやすく言えば、キーを押さなかった場合
矢印は出現してから2秒ちょっとで勝手に消える、という意味です。
座標に一切関係なく。
(StairやHalf Wayを実行すれば、座標指定ではないこともわかるかと)

>>242は読み流してOKです。処理量の問題なので。
そうでなくてはいけない、ってこともないですからね。

245T/R ◆FErv3aPHjk:2006/04/30(日) 09:59:11 HOST:u062172.ppp.asahi-net.or.jp
>>244
this.countとY座標が全く関係ないことが今朝起きて気づきました(ぁ

・・・・にも関わらず矢印が出てすぐ消えてしまいますorz
Dazziling soul作り終わってからソース送りますorz

246tickle★:2006/04/30(日) 11:32:38 HOST:FLA1Adr242.tky.mesh.ad.jp
>>245
矢印が消える条件は何かわかりますか?
もし
if(this.count<=157){
  this.removeMovieClip();
}
みたいなことをやってたら確かにすぐに消えますが。。

248T/R ◆FErv3aPHjk:2006/04/30(日) 19:21:22 HOST:u062172.ppp.asahi-net.or.jp
>>246
Σ(・ω・ノ)ノ!!!!

普通にやっちゃってましたorz

if(this.count>=157){
  this.removeMovieClip();
}
だといいんでしょうか?
いまやってみます。。。

249T/R ◆FErv3aPHjk:2006/04/30(日) 19:43:26 HOST:u062172.ppp.asahi-net.or.jp
あれ ちょっと違った

if (this.count<=157) {
} else if (this.count>170) {
// 枠外に矢印が行ったときの処理
_root.half_judge.uwan_judge();
this.removeMovieClip();

・・・これだと正常に動くはずですが。。。

この部分の全体的な解釈

「もし、"this.count"が157以下ではなく、もし170以上なら、
関数"half_judge"の"uwan_judge"を実行して、この矢印を見えなくする」

違ってたら教えてください。。。

250tickle★:2006/04/30(日) 20:39:01 HOST:FLA1Adr242.tky.mesh.ad.jp
>>249
もし被り判定なしでいいのなら
if(this.count >= 170){
  _root.half_judge.uwan_judge();
  this.removeMovieClip();
}
だけで良いと思いますよ。
独自ソースなら、function uwan_judge()の入っている
ムービークリップ名が"half_judge"である必要があります(。 。

"half_judge"は参照先を示すので。。
自分のソースだと「曲中設定」をクリックすると
「プロパティ」パネルの左に"half_judge"と書いてある部分が
ありますがそれのことです。

251Free Walker:2006/05/03(水) 21:24:12 HOST:ddae44ed1.oct-net.ne.jp
HPにdos.txtを複数アップロードする時にはどうすれば良いでしょうか?
同じ名前だと1つしかアップできないし、名前を変えると読み込まなくなります。
お願いします

252tickle★:2006/05/03(水) 21:28:35 HOST:FLA1Adr242.tky.mesh.ad.jp
>>251
フォルダを曲ごとに作って、
そのフォルダに1つのswfファイル、1つの譜面ファイル、・・・
を入れていけばいいかと思います。

例えば、
|−[ music1 ]
|  |-- dos.txt(譜面ファイル)
|  |-- step.txt / option.txt (必要な場合のみ)
|  |-- music1.swf(swfファイル)

|−[ music2 ]
|  |-- dos.txt(譜面ファイル)
|  |-- step.txt / option.txt (必要な場合のみ)
|  |-- music2.swf(swfファイル)

のような感じに。

253Free Walker:2006/05/07(日) 14:23:56 HOST:p9304a5.tokyte00.ap.so-net.ne.jp
Initial-Tのソースでもここの速度変化をやろうと思ったんですが・・・
あのソースは何がなんだかぜんぜんわかりませんw;
目標は両方搭載なんですが;

3時間も無駄になってしまtt(ry

254T/R ◆FErv3aPHjk:2006/05/07(日) 22:33:59 HOST:u062172.ppp.asahi-net.or.jp
Dan★Oni Option-Development
にある項目なのに質問させてもらいます。。。

譜面数を外部で調整する・・・っていうのありましたよね。
あれがどうしてもうまくいかないようで。。。
(今は何故か分かりませんが解説ページ見れませんけど)

外部の設定を読み込ませるテキストはしっかり読めています。
&dif_num=2と入れておきました。
そして、オプション設定が出てくるフレームで、

stop();
_root.speed_lock[0] = _root.speed.split(",");
_root.dif_count[0] = _root.dif_num.split(",");
Number(_root.dif_count[0]);
Number(_root.speed_lock[0]);
this.difficulty.gotoAndStop(_root.dif_count[0]);
this.speed.gotoAndStop(_root.speed_lock[0]);
と長ったらしいASを加えました。
_root.speed_lockとかいうのは、強制オプションをやろうとして加えたものです。

4,5行目を加えたのは、あらかじめ数値にして飛ばせばいいのかなと思って加えたものです。

・・・これでも飛びませんでしたorz
このASをオプションが出るフレームの前に入れてもダメでした。
オプションを設定するムービークリップにも名前を付けました。

_root.〜〜とかの後ろの、[0]をつけるとどうなるのか、がイマイチ分かりません。

tickleさんのソースの、for文を使った[0]とかの意味・概念は分かりましたが、
ここだとイマイチ理解できませんでした。


・・・全く別の質問が一つあります。
tickleさんのソースに、さっき行ったような
『for文』がありますが、どうも納得できない点が何箇所も見られました。
(恐らく私の理解力不足でしょうけど)

例えばMAKE矢印にあるステップゾーンのY座標を決めるこのAS↓

for(var j = 0; j != 7; j++){
_root["StepZone"+j]._y = _global.step_line[j];
_root["Hit"+j]._y = _root["StepZone"+j]._y;
}
ここでやりたい事は、
「j(ローカル変数)の数値(最初は0)が、7になるまで1ずつ足し続けた時に、
_root.["StepZone"+j]と、_root.["Hit"+j]のY座標を、
_global.step_lineのj番目にある数値に設定する」

こんな感じだと思います。
for文の説明は、
for(●;◆;▲)

●は開始条件、◆は終了条件、▲は終了条件を満たすまで毎回すること
とありました。

ですが、↑のASだと、
「jが7じゃなくなるまで以下の内容をする」となり、1回やっただけで終わるのでは、と思いました。

この文を打っている今、 "!="の意味を調べました。
「等しくない」とはっきり載っていました。

解説よろしくおねがいします。。。

・・・打つの疲れた(ry

255tickle★:2006/05/07(日) 23:21:52 HOST:FLA1Adr242.tky.mesh.ad.jp
>>253
「途中変速」と「個別加速」の融合ですか(・∀・;
できれば楽しそうですがw

構想としては、やはり「途中変速」に「個別加速」の機能を
乗せる形になるかな、と。
あと、途中変速と区別するために
&speed_change=400,1.5,600,1,...のように
&speed_data=500,1.5,900,0.5,..と区別する必要が出てきそうですね。

自分も少し試してみましたが、
フリーズアローの場合、
フリーズアローの長さを変える必要があって
これが意外と厄介そうなので後に回すことにします。

あと途中加速中に個別加速させると、
フレーム数の関係でどうしても計算量が多くなるので、
「単発矢印で、途中加速中には個別加速させない」
という条件ならつけやすいのではないでしょうか。

完全版ではないですが、自分が実験的に速度を変えた方法を
次に書いておきます。


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板