トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     地形に沿ってMCを動かす
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
Takamoku
Åê¹ÆNo.37583
投稿日時: 2008-2-14 9:52
新米
居住地: 大阪
投稿: 27
使用環境:
Flash CS3
Flash 8 Pro
Flash MX 2004
Mac OS 10.5.7
地形に沿ってMCを動かす
こんな風に地形に沿ったMCの動きを実現するには
どのようなスクリプトが必要になるのでしょうか。

MC自体はattachMovieで複数作成して動かすので
(mc1?mc10までの人がランダムな順番で現れ、右へと歩いていく)
スクリプトで制御する必要があると思います。

どうかアドバイスいただければと思います。
よろしくお願いします。
Tonpoo (gaienboy改め)
Åê¹ÆNo.37585
投稿日時: 2008-2-14 10:34
職人
居住地: 東京・神宮前
投稿: 717
使用環境:
Windows 7 Professional,
Flash CS5 Pro,
Flash Player 10,1,102,64
Re: 地形に沿ってMCを動かす
gaienboyです。

とりあえずまず思いつくのは、A点からB点までは直線運動、B点からC点まではD
を中心とした円弧の運動、C点からE点までは再び直線運動・・・というように、
直線部分と曲線部分(円弧部分)に切り分けてスクリプトを書いていく、というこ
とになるのではないでしょうか。


----------------
Tonpoo (a.k.a. gaienboy)
Tonpoo.com / TONPOOBLOG / twitter@tonpootwit

Takamoku
Åê¹ÆNo.37591
投稿日時: 2008-2-14 12:45
新米
居住地: 大阪
投稿: 27
使用環境:
Flash CS3
Flash 8 Pro
Flash MX 2004
Mac OS 10.5.7
Re: 地形に沿ってMCを動かす
gaienboyさん、素早いご回答ありがとうございます。

引用:
直線部分と曲線部分(円弧部分)に切り分けてスクリプトを書いていく、というこ
とになるのではないでしょうか。

そうですね、納得です。

function walk1():Void {
  A点からB点までの直線運動
}

function walk2():Void {
  B点からC点までの円運動
}

function walk3():Void {
  C点からD点までの直線運動
}

アドバイスを参考に上記のように個々の動きに
分けた作りをしようと思うのですが、
円運動というのはやはりサイン、コサイン的な
処理が必須になってくるのでしょうか。

度々すいません。
野中文雄
Åê¹ÆNo.37593
投稿日時: 2008-2-14 13:09
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: 地形に沿ってMCを動かす
「サイン、コサイン的」といわれる意味が、正確にはわかりませんけど。三角関数が必要かというご質問ですと、使わない方法もあり得るでしょう。ただ、多くの場合、使った方が簡単です。→「円の方程式を利用して円を描画する方法

数学が必須かということでしたら、使わずには計算式が立ちません。
引用:
Takamokuさんは書きました:
円運動というのはやはりサイン、コサイン的な
処理が必須になってくるのでしょうか。


----------------
 

ひろゆき
Åê¹ÆNo.37595
投稿日時: 2008-2-14 14:49
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: 地形に沿ってMCを動かす
要するに、y軸方向で、上下運動させればいいんですよね?

ふわふわと浮かぶ」を参考まで。

ただし、「地形」と呼ばれているものが、複雑な形をしているならば、
計算で動かすのではなく、別の手だてを考える必要があるように思いますけれども。


----------------
質問する際は、回答者に具体的な情報を与えてください。

Takamoku
Åê¹ÆNo.37597
投稿日時: 2008-2-14 14:53
新米
居住地: 大阪
投稿: 27
使用環境:
Flash CS3
Flash 8 Pro
Flash MX 2004
Mac OS 10.5.7
Re: 地形に沿ってMCを動かす
野中さん、ご回答ありがとうございます。

引用:
ただ、多くの場合、使った方が簡単です。

ガビ?ン
私にとって三角関数はややこしいので“使った方が簡単”という事ならやはりガビ?ン

無理矢理作ったサンプルです・・・
円運動のところは参考URLの記事にある永井さんのものを
そのまま使用させていただきています。

import mx.transitions.Tween;
import mx.transitions.easing.*;

var target:MovieClip = mc;

// AからBまで移動
function walking1(xTarget:Number, yTarget:Number):Void {
  var tw:Tween = new Tween(target, "_x", None.easeOut, target._x, xTarget, 5, true);
  var tw:Tween = new Tween(target, "_y", None.easeOut, target._y, yTarget, 5, true);
  tw.onMotionFinished = function():Void  {
    walking2();
  };
}
walking1(point_b._x, point_b._y);

// 円運動
function walking2():Void {
  var nTheat:Number = 60;
  var radius:Number = 60;
  var segment:Number = 0.02;
  var centerX:Number = center._x;
  var centerY:Number = center._y;
  var xpos:Number = radius*Math.cos(nTheat)+centerX;
  var ypos:Number = radius*Math.sin(nTheat)+centerY;
  this.onEnterFrame = function() {
    nTheat += segment;
    target._x = radius*Math.cos(nTheat)+centerX;
    target._y = radius*Math.sin(nTheat)+centerY;
    
    if (target.hitTest(point_c)) {
      delete this.onEnterFrame;
      walking3(point_d._x, point_d._y);
    }
  };
}

// CからDまで移動
function walking3(xTarget:Number, yTarget:Number):Void {
  var tw:Tween = new Tween(target, "_x", None.easeOut, target._x, xTarget, 3, true);
  var tw:Tween = new Tween(target, "_y", None.easeOut, target._y, yTarget, 3, true);
}


スクリプトがナンセンス(永井さん参考箇所は除く)なのは
自覚していますが、こういう方向性で良いのかどうか・・・。

改善したい点としては、
・mcの速度をA点からD点まで一定にしたい。
・円運動に入る時ガクッと座標がずれる。
・onMotionFinishedで円運動に入るのにhitTestで抜けるってどうなの。
などなど

そもそもTweenクラスは使わないほうがいいような気も。
Takamoku
Åê¹ÆNo.37598
投稿日時: 2008-2-14 14:54
新米
居住地: 大阪
投稿: 27
使用環境:
Flash CS3
Flash 8 Pro
Flash MX 2004
Mac OS 10.5.7
Re: 地形に沿ってMCを動かす
ひろゆきさん、ご回答ありがとうございます。
「ふわふわと浮かぶ」の記事チェックしてみます!

追記:
地形は冒頭のリンク画像のようなシンプルなものです。
ひろゆき
Åê¹ÆNo.37600
投稿日時: 2008-2-14 15:18
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: 地形に沿ってMCを動かす
引用:
Takamokuさんは書きました:
地形は冒頭のリンク画像のようなシンプルなものです。

geocities の場合、最初のアクセスでは表示されません。
リロードしないと表示されません。

また、シンプルと片付けない方が良いように思います。
傾斜がある分、シンプルではないように思います。


----------------
質問する際は、回答者に具体的な情報を与えてください。

Takamoku
Åê¹ÆNo.37601
投稿日時: 2008-2-14 15:55
新米
居住地: 大阪
投稿: 27
使用環境:
Flash CS3
Flash 8 Pro
Flash MX 2004
Mac OS 10.5.7
Re: 地形に沿ってMCを動かす
「ふわふわと浮かぶ」はひろゆきさんのとこでしたか。
いつもお世話になってます。
関連記事のジャンプするもGOODなので
これを何とか取り入れたいなぁなんて思います。

引用:
geocities の場合、最初のアクセスでは表示されません。
リロードしないと表示されません。

すいません。
修正しときました

引用:
また、シンプルと片付けない方が良いように思います。
傾斜がある分、シンプルではないように思います。

そうですか。
傾斜 + 障害物というものは自分が想像してた以上に
複雑な処理が必要なようですね。

ちょっと考えます・・・
野中文雄
Åê¹ÆNo.37608
投稿日時: 2008-2-14 22:57
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: 地形に沿ってMCを動かす
「複雑な処理」は要らないでしょう。スクリプトは基本的に、軌道が変わるときの場合分けと、座標を設定するステートメントで構成されます。要は、座標計算の式が立てられるかどうかに尽きます。

参考:「直線の式
「Flash ActionScriptで表現するモーショングラフィックス」03「三角関数を使う
引用:
Takamokuさんは書きました:
傾斜 + 障害物というものは自分が想像してた以上に
複雑な処理が必要なようですね。


----------------
 

(1) 2 3 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops