- ActionScript 誰かが物凄い勢いで解答するスレ28
591 :Now_loading...774KB[]:2011/05/23(月) 10:12:15.72 ID:MzdWYYNR - 球同士の衝突の計算をしたいのですが、今ネットに転がってるソースのほとんどがAS1,2でAS3
の私にはできません。 AS1のソースを無理やり変えたのですが夥しいエラーが出てしまったのでやめました。 どなかかASファイルというのを無しで球同士の衝突が分かる方いませんか?
|
- ActionScript 誰かが物凄い勢いで解答するスレ28
595 :Now_loading...774KB[]:2011/05/23(月) 11:25:16.81 ID:MzdWYYNR - >>594
ありがとうございます。具体的となりますと私自身よくわかっていません・・・ 私が衝突をする上で分からないのは打つボールが動いた後にどうやって落とすボールの位置を把握させるかが、 私にはよくわかっていません。 計算式はあたったら進入角度と反対のほうに全て運動量を半分にするような形をとりたいです。
|
- ActionScript 誰かが物凄い勢いで解答するスレ28
598 :Now_loading...774KB[]:2011/05/23(月) 11:35:29.54 ID:MzdWYYNR - 追記です。
私がやったのは if(mainball.x = ball1.x || mainball.y = ball1.y) { dx = dx / 2 * - 1; dy = dy / 2 * -1; 1dx = dx / 2; 1dy = dy / 2; } となります。 まぁとりあえずあたったら見たいな感じにしたんですけど うまく角度をつけたいのですが どのようにしたらいいかわかりません。
|
- ActionScript 誰かが物凄い勢いで解答するスレ28
599 :Now_loading...774KB[]:2011/05/23(月) 11:36:55.83 ID:MzdWYYNR - >>597
先のif分みたいな感じで大丈夫でしょうか? いまいち中身の座標を取得するのは分かっていません。
|
- ActionScript 誰かが物凄い勢いで解答するスレ28
603 :Now_loading...774KB[]:2011/05/23(月) 11:56:34.81 ID:MzdWYYNR - >>601
そうですねww明らかに変な挙動ですw こちらのページの円の衝突の方は見させていただいたんですが、 // 円A var ca = { px : 0, // x 座標 py : 0, // y 座標 dx : 2, // x 方向の速度 dy : 3, // y 方向の速度 r :10, // 半径 m : 1 // 質量 }; // 円B var ca = { px : 0, // x 座標 py : 0, // y 座標 dx : 2, // x 方向の速度 dy : 3, // y 方向の速度 r :10, // 半径 m : 1 // 質量 }; こちらの意味がいまいちわかりませんでした・・・
|
- ActionScript 誰かが物凄い勢いで解答するスレ28
604 :Now_loading...774KB[]:2011/05/23(月) 11:59:57.09 ID:MzdWYYNR - どのようなところが分からないかというと var caが二つあるのでどうしたものかと迷っています。
言い訳ですけど突然やれといわれて基本もままならないので文の意味を簡単に理解できません。 じっくり勉強したいんですが提出する期間が決まっているので・・・
|
- ActionScript 誰かが物凄い勢いで解答するスレ28
607 :Now_loading...774KB[]:2011/05/23(月) 12:39:19.43 ID:MzdWYYNR - 自分の文の打ち方が間違っていました。。。
dx1,dx2が判定してくれません・・・
|
- ActionScript 誰かが物凄い勢いで解答するスレ28
608 :Now_loading...774KB[]:2011/05/23(月) 12:59:54.22 ID:MzdWYYNR - 反応はしましたけどこれだとあたって無くてもY軸かX軸の条件一致したら移動してしまいますね・・・
|
- Flashの超基本的な質問はここでしろ! part42
19 :Now_loading...774KB[]:2011/05/23(月) 13:04:56.86 ID:MzdWYYNR - すいません 今球の衝突をやっています ASはAS3です。
if(mainball.x >= ball1.x { dx = dx / 2 * - 1; dy = dy / 2 * -1; 1dx = dx / 2; 1dy = dy / 2; } と打ったのですが、球に当たって無くても条件満たすと勝手に球が移動してしまいます。 AS2の衝突のソースも見たんですがわかりませんでした。助けてください
|
- Flashの超基本的な質問はここでしろ! part42
21 :Now_loading...774KB[]:2011/05/23(月) 13:11:57.07 ID:MzdWYYNR - >>20
すいません 半径とかまだよくわかってませんちょっとがんばってみます
|
- Flashの超基本的な質問はここでしろ! part42
23 :Now_loading...774KB[]:2011/05/23(月) 13:35:54.08 ID:MzdWYYNR - >>22 そうですね自分で作ったやつです。
作り方としては矩形から適当な大きさにつくりそれをコピーして複製したやつに 個別にインスタンス名をつけました。
|
- Flashの超基本的な質問はここでしろ! part42
25 :sage[]:2011/05/23(月) 13:43:17.68 ID:MzdWYYNR - すいません追加で質問です。環境はFlashProfessional CS5 AS3.0です。
今沢山の変数を作らなきゃいけない状況なんですが、 var a=0; var b=0; var c=0; と一個ずつやるのが面倒です。そこで var a=0,b=0,c=0; とやったのですがうまくいきませんでした?もしかして一個ずつじゃないと駄目なんでしょうか? それともまたh他にやり方があるのでしょうか? 後名前の所にsageって入れればみんなみたいになるのかな?
|
- Flashの超基本的な質問はここでしろ! part42
26 :Now_loading...774KB[sage]:2011/05/23(月) 13:45:46.91 ID:MzdWYYNR - ならなかった・・・
プロパティで確認したんですがxとyとwとhしか乗ってませんでした・・・ もしかして確認方法って位置とサイズじゃない場所ですか? てかでてないんだから別な場所ですよね。。。
|
- Flashの超基本的な質問はここでしろ! part42
29 :Now_loading...774KB[sage]:2011/05/23(月) 14:31:37.60 ID:MzdWYYNR - >>28
最初から中心に来てました。 マイナスつけてxとyに登録したら画面外にいってしまいました これでよかったんでしょうか?
|
- Flashの超基本的な質問はここでしろ! part42
31 :Now_loading...774KB[sage]:2011/05/23(月) 14:38:51.99 ID:MzdWYYNR - >>30
すいません解決しました
|
- Flashの超基本的な質問はここでしろ! part42
37 :Now_loading...774KB[sage]:2011/05/23(月) 15:18:18.92 ID:MzdWYYNR - >>20なんですが距離の出しかたが分かりません。
ball1のxとyが-11.95でmainballのxとyが-11.95の場合どうなりますか?
|
- Flashの超基本的な質問はここでしろ! part42
39 :Now_loading...774KB[sage]:2011/05/23(月) 15:35:56.32 ID:MzdWYYNR - URLにあるサイトの
onClipEvent (load) { // 青い円 ax = _x; // 中心 x 座標 ay = _y; // 中心 y 座標 ar = _width / 2; // 半径 // 赤い円 bx = _root.red._x; // 中心 x 座標 by = _root.red._y; // 中心 y 座標 br = _root.red._width / 2; // 半径 startDrag ("", true); // ドラッグ開始(中央に吸着する) } これなんですが rootとかのAS3への変え方は分かるんですが onClipEvent (load) がわかりません。
|
- Flashの超基本的な質問はここでしろ! part42
43 :Now_loading...774KB[sage]:2011/05/23(月) 15:51:29.65 ID:MzdWYYNR - ということは私の場合距離の式は
Math.sqrt((mainball.x - ball1.x) * (mainball.x - ball1.x) + (mainball.y - ball1.y) * (mainball.y - ball1.y)) となるという認識でよろしいでしょうか
|
- Flashの超基本的な質問はここでしろ! part42
46 :Now_loading...774KB[sage]:2011/05/23(月) 16:51:36.75 ID:MzdWYYNR - >>44
・ ・ ・ 219.1187919827964 219.1187919827964 219.1187919827964 219.1187919827964 -80 0 219.1187919827964 219.1187919827964 219.1187919827964 219.1187919827964 ・ ・ ・ とでます。 -80は当たった瞬間で 0は通り過ぎた後に出ます。 二つを隣接させた状態ではじめたら-80と0無しでずっと219(ry の状態です。たぶん。。。いや絶対間違えてますよね?
|
- Flashの超基本的な質問はここでしろ! part42
48 :Now_loading...774KB[sage]:2011/05/23(月) 16:59:58.88 ID:MzdWYYNR - mainball.x = 450;
mainball.y = 250; var r = mainball.w /2; var nagasa = Math.sqrt((mainball.x - ball1.x) * (mainball.x - ball1.x) + (mainball.y - ball1.y) * (mainball.y - ball1.y)) 一番最初のmainball.xと.yは白ボールの初期位置としておいてます。
|
- Flashの超基本的な質問はここでしろ! part42
49 :Now_loading...774KB[sage]:2011/05/23(月) 17:02:49.23 ID:MzdWYYNR - >>47
そしてすいません0とかマイナスなのは自分が打った球のxとyの移動でした。 全て 219.1187919827964 で固定です。打って位置を変えても同じです ちなみに初期位置を変えると値が変わってずっとそれで固定になります。
|
- Flashの超基本的な質問はここでしろ! part42
51 :Now_loading...774KB[sage]:2011/05/23(月) 17:07:03.83 ID:MzdWYYNR - >>47
追記 nagasaの文をaddEventListener(Event.ENTER_FRAME, fl_EnterFrameHandler);内にいれたら 21.360009363293827 19.258504614844853 17.36922565919392 15.692354826475215 14.22708684165523 12.926813219042028 11.790780296485874 10.816653826391969 9.960045180620408 9.219544457292887 8.592002094971795 8.07217442824421 7.652613932506983 7.295375247374175 6.997142273814343 6.753517601961202 6.5591539088513455 6.408002808988148 6.293647591023818 6.209669878504 と変動しました。 しかし if(nagasa >= r*2) { trace("ぶつかったよ!"); } が出力で出ませんでした。
|
- Flashの超基本的な質問はここでしろ! part42
52 :Now_loading...774KB[sage]:2011/05/23(月) 17:08:04.23 ID:MzdWYYNR - >>50
trace(nagasa); はaddEventListener(Event.ENTER_FRAME, fl_EnterFrameHandler);内です。
|
- Flashの超基本的な質問はここでしろ! part42
53 :Now_loading...774KB[sage]:2011/05/23(月) 17:11:31.81 ID:MzdWYYNR - すいません自己解決しました。とりあえず判定の部分は終わりです。
|
- Flashの超基本的な質問はここでしろ! part42
55 :Now_loading...774KB[sage]:2011/05/23(月) 17:34:58.14 ID:MzdWYYNR - >>54
いろいろありがとうございました。enterframe内に書くことが大事だといまさら知りました・・・ 今ボール9個分の判定入れてます・・・
|