概要 | attachMovieで作ったマップの移動 |
---|---|
投稿者 | Parafla Quality |
状態 | |
カテゴリー | ActionScript |
投稿日 | 2010-01-08 (金) 18:22:20 |
バージョン | 1.37 |
マップチップを使用してattachMovieで作ったマップに常にplayerを中心に配置しマップ自体を移動させたいです。 http://www.wikihouse.com/ParaFla/index.php?%A5%B5%A5%F3%A5%D7%A5%EBpfl.#wc6430deを参考にしています。
ダンジョン1.pflのASの一部 //━━━━━基礎工事 mp = new Array(); //行を作る for(iy=0; iy<yy; iy++){ mp[iy] = new Array(); for(ix=0; ix<xx; ix++){ //列を作る mp[iy][ix] = this.attachMovie("map", "part"+iy*100+ix, sindo+iy*100+ix); //スプライトmapを配置 mp[iy][ix]._x = ix*size; mp[iy][ix]._y = iy*size; } }
上記の //スプライトmapを配置 の部分のASの新しいインスタンス名である"part"+iy*100+ixの計算の真意がどうしてもわかりません。
配列アクセス演算子で直接マップを操作したいと思い、簡素なインスタンス名にしたいと考え //列を作る の後ろに、
var i; for(i=0;i<xx*yy;i++){
と加え、attachMovieの引数は("map","part"+i, i)に変えてみましたが、マップが表示されず、しかもチカチカと点滅しています。
インスタンス名を連番にするにはどうしたら良いでしょうか。
_root.attachMovie("map", "part"+1, sindo++); //attachMovieの部分はこのようになっています
if(_root.onoff == 1){ //ここからキーボード操作の部分 if (Key.isDown(Key.UP)){ for (var i=0; i<xx*yy; i++) { _root["part"+i]._x -= 0; //[インスタンス名]で配列アクセス演算子を使い、座標を変更 _root["part"+i]._y -= 40;} } else if(Key.isDown(Key.DOWN)) { for (var i=0; i<xx*yy; i++) { _root["part"+i]._x += 0; _root["part"+i]._y += 40;} } else if(Key.isDown(Key.RIGHT)) { for (var i=0; i<xx*yy; i++) { _root["part"+i]._x += 40; _root["part"+i]._y += 0;} } else if (Key.isDown(Key.LEFT)) { for (var i=0; i<xx*yy; i++) { _root["part"+i]._x -= 40; _root["part"+i]._y -= 0;} } }
間違った考えや認識を訂正いただければ嬉しいです。 -- 質問者? 2010-01-09 (土) 02:21:56
サンプルはキャラの動きに応じて背景も1マス動くタイプです。
やりたいのは、主人公を常に画面の中心に置き、背景のみが動くタイプです。
結論として、マップチップの集合体を1枚の背景のように扱いたいんですが、ステージに直接配置しないので書いたASのどこが悪いのかも確認できず困っています。 -- 質問者? 2010-01-15 (金) 00:14:43