こんにちは、今作っているFlashで初期段階で
いきなり行き詰ってしまい色々と調べてみたんですが
解決出来ずに困っていますのでお助け願えたら幸いです。
Flashでピンボールを作ろうと思っています。ゆくゆくはパチンコ等も作りたいなと思っているんですが分からない事は球を跳ね返す衝突判定(当たり判定)が何もない長方形及び正方形のステージ内なら問題なく重力を持たせた球を跳ね回す事が出来たのですが、障害物や曲面の跳ね返りの方法が分からなくて困っています。ピンボールやパチンコでも曲面が多かったりパチンコなんかはステージ自体が円ですよね。どちらも球を最初に打った時は楕円の形に沿って球が飛んで釘や障害物に当たりながら落ちていくと思うのですが、その球を楕円に沿わす方法や障害物(釘)に球が当った跳ね返り方がどうしても分かりません。文章が下手で上手く伝わっているかどうか分かりませんがご教授ください。
No.3ベストアンサー
- 回答日時:
衝突判定はhitTestか座標で判定するしかないと思います。
座標判定というのは例えばボールと線が、
● ボール
↓
──────── 線
のような位置関係の場合(ボールは画面下に向かう)、
ボールのy座標が線のy座標より大きくなった場合に衝突したとみなせます。
(flashのy座標は上が0位置)
弧を描いたカーブの場合はまず円全体を考えて
ボールが円の内側にあるか外側にあるかを判断して、
かつx,y座標が弧の位置にあるかを見れば衝突したかどうかがわかると思います。
hitTestを使用する場合はmc(線)とmc(ボール)で衝突判定するよりも
mc(線)と点(ボール)で判定する方が処理が軽いらしいです。
点と言ったのはボールを点で表すという意味ではなく、
ボールの一点(例えば中心部分)と判定するという意味です。
その他にも内積と外積を利用する方法もあるみたいです。
参考URL:http://www.h6.dion.ne.jp/~game296o/COL_main.html
perseさんありがとうございます!
参考URL先も色々とタメになりそうです!
まだそれらをどうやってActionScriptで表すのかは
今の段階ではいまいち分かりませんが1つずつ
基礎から考えて作ってみます!また分からない事があれば
教えてくださいね^^
No.2
- 回答日時:
そもそもFlashの問題なのでしょうか?
重力のある環境で、丸い釘に丸いボールが任意の角度から飛んできて、ボールがかするように当たった場合の、ボールの軌道を計算して紙に示すことはできますか?Flashではなく、です。理論まではわかっているんですよね?
物理計算ができないのか、それをActionScriptで表現できないのか、どちらかなぁと思いまして。
この回答への補足
ogupikoさん回答ありがとうございます。
理論…は高校時代にそういえば習ったかなぁぐらいの知識です。
私もそんなに頭が良い方ではないのでボールの軌道を計算して
紙に示すことは出来ますかという問いに自信を持ってyesとは
言えません…ブロック崩しのように縦横方向へのボールの軌道の
計算は理解出来ています。円の反射計算も完璧ではありませんが
全く分からない事もないという感じです。
それをActionScriptで表現するという事が今の私に出来ない
方だと思います。ご面倒かとは思いますが基礎的な事でも
ご教授頂けたら嬉しいです。よろしくお願いします。
No.1
- 回答日時:
基本的に当たり判定は、hitTest()を使います。
曲面でもなんでも、関係ないです。
http://hakuhin.hp.infoseek.co.jp/main/as/hittest …
かなり参考になると思いますよ。
この回答への補足
mokomichiiさんありがとうございます。
記載されたサイトも以前から勉強させてもらっているんですが
ブロック崩し等の跳ね返りは作れるのですが曲面になると
どうしても上手く球が跳ね返ってくれません。
色々とまた調べてみたら
http://flash.genin.jp/test/collision2.html
ここのサイトの「物体衝突シミュレーション」
のような当たり判定を作りたいのですがこのような自由な線の
当たり判定はどう作っているのでしょうか?色々とお手数かけますが
よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 宇宙科学・天文学・天気 宇宙を宇宙の外から見ることができるなら 7 2023/05/13 01:32
- 物理学 どうして放物線ですか? 15 2023/06/11 09:53
- 野球 野球のルールを教えてください。 1995年6月20日 横浜スタジアムでの試合です。 9回表リリーフの 2 2023/08/15 04:35
- パチンコ・スロット パチンコって、1万円分を1パチで打ち切ったら、およそ何千円分帰ってくるものなんですか? 4 2022/11/21 10:39
- 特撮 仮面ライダー1号とコンボイ司令官が戦ったらどちらが勝つと思いますか? 1 2022/10/26 23:17
- 物理学 高2物理反発係数の問題が分かりません。 教えてください。 小球をh(m)の高さから床の上に落とした。 1 2023/05/29 20:23
- 野球 大谷翔平とアーロン・ジャッジのMVP争いですが、根本的な事から考えるべきではないですか? 11 2022/10/08 07:17
- 卓球 卓球 体育で卓球をやることになりました。 ちょっとやってみたところ、私には難しく、ラリーが全然続きま 1 2023/01/11 19:13
- 物理学 相対性理論と円運動について。 1 2023/01/30 11:39
- 求人情報・採用情報 障害者雇用で働いています。週30時間の勤務なので手取り12.5万ぐらいです。これは標準金額ですよね? 2 2023/02/08 23:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
物体の衝突判定について教えて...
-
VBAで改行の入ったデータの正規...
-
python ボタンを押すと複数の関...
-
VBScriptでMsgBoxのYesNoボック...
-
DataTableの件数を取得したい
-
別のアプリケーションのテキス...
-
static関数がmapファイルに載ら...
-
【VB.NET】別Formのボタンが押...
-
suzukaの透過について教えてく...
-
photoshopで書いた四角の枠の中...
-
VBSでMid関数を使ったらエラー...
-
VB.NETで数十行のプログラムを...
-
VBAユーザーホームテキストボッ...
-
IP Address 入力フォームについて
-
テキストボックスの中身をリセ...
-
C# chart controlの透過について
-
スクロールバーの自作の仕方
-
多言語を混在できるか。
-
「Me」を「Form1」にするとエラ...
-
VB6.0のHideのバグ?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
動かした画像を元の位置に戻すには
-
MOUSE_MOVE マウスの動きと同...
-
MCを一定の間隔で吸着させた...
-
MCをブラウン運動させたい。
-
_x,_y指定の移動の方法(Flash l...
-
HSP あたり判定
-
[開発形態]UIレイアウトまでデ...
-
わからない・・・!!!
-
press座標とrelease座標からス...
-
下記のような運動をホームペー...
-
ムービークリップの初期座標
-
Flash mx2004 画質が劣化して...
-
画像のランダム配置からボタン...
-
mcの交点の座標を求める方法
-
Flashパブリッシュエラー
-
ボタンによるムービークリップ移動
-
photoshopで書いた四角の枠の中...
-
テキストボックスの中身をリセ...
-
python ボタンを押すと複数の関...
-
変数に256文字以上のテキストを...
おすすめ情報