メイン 迷える子羊の部屋【初心者専用】 ブロック崩しのボールの速度を一定に。 | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
ebi | Åê¹ÆNo.30035 投稿日時: 2006-11-16 17:33 |
フォーラム芸人 居住地: nagoya 投稿: 926
使用環境:
.6.8 CS6 <参考書> ・基本からしっかりわかるActionScript 3.0(既読) ・ActionScript3.0プロフェッショナルガイド(進行中) ・ActionScript3.0パフォーマンスチューニング(未読) ・ActionScript 3.0 逆引きクイックリファレンス(購入予定... |
ブロック崩しのボールの速度を一定に。 ebiです。
ブロック崩し 参考書などで紹介されてるやり方はたいてい、 「分かり易いから」って理由で何かに接触すると x移動値やy移動値をひっくりかえすやり方ですが、 これだと急にボールが早くなったり、遅くなったりします。 ボールの速度を変えたくないって場合は、 どのような方法が考えられますでしょうか。 x移動値・y移動値ひっくりかえし法から、 角度を算出してウンヌン法って事になるんかしら... |
うすあじ | Åê¹ÆNo.30043 投稿日時: 2006-11-16 18:40 |
職人 居住地: 東京都杉並区 投稿: 211
使用環境:
FlashCS5.5 ,MacOSX 10.6.8 |
Re: ブロック崩しのボールの速度を一定に。 引用:
これだと急にボールが早くなったり、遅くなったりします。 移動値の符号を逆にしているのなら、移動方向が変わるだけで、早くなったり、遅くなったりしませんが・・・ もうちょっと問題にしているポイントが明確になるといいかもしれません。 一応、ブロック崩しに関して書いたものを何度か本にして、出版してるもので(^^A これとか http://www.amazon.co.jp/exec/obidos/ASIN/4875932898/
|
ebi | Åê¹ÆNo.30045 投稿日時: 2006-11-16 18:50 |
フォーラム芸人 居住地: nagoya 投稿: 926
使用環境:
.6.8 CS6 <参考書> ・基本からしっかりわかるActionScript 3.0(既読) ・ActionScript3.0プロフェッショナルガイド(進行中) ・ActionScript3.0パフォーマンスチューニング(未読) ・ActionScript 3.0 逆引きクイックリファレンス(購入予定... |
Re: ブロック崩しのボールの速度を一定に。 ebiです。
引用: 移動値の符号を逆にしているのなら、移動方向が変わるだけで、早くなったり、遅くなったりしませんが・・・ 失礼(´人`)そうでした。 パドルに当たった時に当たった箇所によって値に変化をつけてる事を 言い忘れてました。こういう事をしてます。
変化がつくのはいいんですが、やっぱコレ、そうすると、 早くなったり、遅くなったりしちゃうでしょう? 僕としては角度を変えたいだけなのに 速度まで変わっちゃうわけでして。 どうしたもんでしょうかねぇ。 蛇足 - - - - - - - - - - リンク先のカスタマーレビュー好評ですねぇ |
野中文雄 | Åê¹ÆNo.30050 投稿日時: 2006-11-16 20:09 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: ブロック崩しのボールの速度を一定に。 どういう内容の計算をしている式なのかわかりませんけど。角度を出す必要はないんですよね。たとえば、xy成分(10, 10)ピクセルを毎フレーム加算して動かしていたときに、何らかの計算で値を(5, 15)に変更すると、そのスピード(長さ)が変わるということですか?
引用: ebiさんは書きました: 上記の前提で、Flash 8とします。
[追記] Point.lengthプロパティの存在を見落としていましたので、上記スクリプトはこのプロパティを用いる処理に書替えました。 |
ebi | Åê¹ÆNo.30055 投稿日時: 2006-11-16 21:33 |
フォーラム芸人 居住地: nagoya 投稿: 926
使用環境:
.6.8 CS6 <参考書> ・基本からしっかりわかるActionScript 3.0(既読) ・ActionScript3.0プロフェッショナルガイド(進行中) ・ActionScript3.0パフォーマンスチューニング(未読) ・ActionScript 3.0 逆引きクイックリファレンス(購入予定... |
Re: ブロック崩しのボールの速度を一定に。 ebiです。
引用: どういう内容の計算をしている式なのかわかりませんけど こりゃ失礼しました。そりゃそうですよね。とちりました。 (というか、特に出す必要のないスクリプトだったかもです...) BALLがボールmc PDLがパドル(棒)mc MV_xがボールの_x移動数の変数 です。 MV_X = (BALL._x - (PDL._x + PDL._width/ 2)) * 8 / PDL._width; は、パドル(棒)にボールが接触した時のスクリプトです。 ボールが接触したパドルの位置に(8段階)よって 角度(移動値)を変化させてるです。 お教えいただいたスクリプトは、いろいろ見た事ないのが 登場してますねーっ(鼻息) リファレンスを参考にとりあえず何をやっているのかを 理解しようと思います。 |
ebi | Åê¹ÆNo.30058 投稿日時: 2006-11-16 22:07 |
フォーラム芸人 居住地: nagoya 投稿: 926
使用環境:
.6.8 CS6 <参考書> ・基本からしっかりわかるActionScript 3.0(既読) ・ActionScript3.0プロフェッショナルガイド(進行中) ・ActionScript3.0パフォーマンスチューニング(未読) ・ActionScript 3.0 逆引きクイックリファレンス(購入予定... |
Re: ブロック崩しのボールの速度を一定に。 ebiです。
....すいません。結局geomって何なんでしょう? ゲオム? ちょっとリファレンスみても分かりませんでした。 初期値 みたいな意味でしょうか? |
森 巧尚 | Åê¹ÆNo.30059 投稿日時: 2006-11-16 22:21 |
モデレータ 居住地: 宝塚 投稿: 650
使用環境:
.5/CS4/Safari3 XP+2000//IE6 |
Re: ブロック崩しのボールの速度を一定に。
|
野中文雄 | Åê¹ÆNo.30060 投稿日時: 2006-11-16 22:21 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: ブロック崩しのボールの速度を一定に。
|
ebi | Åê¹ÆNo.30061 投稿日時: 2006-11-16 23:22 |
フォーラム芸人 居住地: nagoya 投稿: 926
使用環境:
.6.8 CS6 <参考書> ・基本からしっかりわかるActionScript 3.0(既読) ・ActionScript3.0プロフェッショナルガイド(進行中) ・ActionScript3.0パフォーマンスチューニング(未読) ・ActionScript 3.0 逆引きクイックリファレンス(購入予定... |
Re: ブロック崩しのボールの速度を一定に。 森さん、野中さん、どうも。
あ、これ、メソッドじゃないんですね。 なぁんだ、幾何学かぁ(°▽°) キ...キカ...キキガカ...ガク...キガク... カカガ...キガキガ...ガクガクガク((((°目°)))) BOMB! はぜました。 なぜかしら、今日は、 import flash.geom.Point; って記述をよく見ます。 たいてい、スクリプトの頭に入ってるようです。 いったい何をしてるんでしょうか? これは。 きっと僕が知らないプログラムのセオリーみたいのが あるんでしょうね。 Pointは分かりました。 が、なんだか、変数に出し入れして自分で管理した方が良さそうな感じです。 distanceはリファレンスには「ベベルのオフセット距離」と そっけなく書いてありました。...わかんないよう。 (今度は“ベベル”と“オフセット”を国語辞書? ) まぁ野中さんのスクリプトから察するになんとなく2点間の距離を 返すもののような気がします。 normalizeは...
だそうです。... 以上ふまえて考えてみると野中さんのスクリプトは、 まず基準となる点、基準となる距離を決めておき、 変更点の位置が変わったら、基準点から変更点への線上の 基準距離の位置の点を出せば角度も速度(距離)も変わらない ってな感じの事をされてるんだろうなぁって事は分かりました。 方法としてそういう事ができるって事は分かりましたが... 敷居高いっす。 とても応用できない。 ってわけで、今回は、以前森さんから頂いた名言 「動けばいい」を旗印に、できる事で遠回り策を模索中です。 完全に速度を一定ってのはできなさそうですが、 そもそもは「超スローになっちゃう」のを回避したかったっていう 意図だったので、それだけなら、なんとかできそうであります。 ありがとうございました。超長文すんません。 |
野中文雄 | Åê¹ÆNo.30066 投稿日時: 2006-11-17 4:28 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: ブロック崩しのボールの速度を一定に。 importステートメントは、ほかにフィルタを使うときにも必要になります。「スクリプトでフィルタを使う ? BlurFilter」の「1. フィルタのインスタンスを作成する」をご参照ください。
引用: ebiさんは書きました: あるものは使ってみただけですので、自分で関数など定義して処理することも可能です。
[追記] 投稿No.30050のスクリプト変更に合わせて、上記サンプルもxLength()関数を使う処理に修正しました。 引用: Pointは分かりました。 Point.distance()メソッドは、「2点間の距離」を返します。 引用: distanceはリファレンスには「ベベルのオフセット距離」と Point.normalize()メソッドは、方向(角度)は変えずに、長さを指定した値に設定します。ですから、このメソッドが、まさにebiさんの必要とされているものです。 引用: normalizeは... まず変更前のxy成分(10, 10)の長さを求め、つぎに変更後のxy成分(5, 15)のベクトルを作成し、その長さを(10, 10)と等しく設定します。その結果求められた新たなxy成分のベクトルは、(4.47213595499958,13.4164078649987)です。y/xの比が(5, 15)と同じ3ですので、方向が一致していることになります。 引用: 以上ふまえて考えてみると野中さんのスクリプトは、 |
(1) 2 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |