StarlingフレームワークによるStage3Dを使った2次元表現

DisplayObject.hitTest()メソッドで座標の重なりを調べる

全333コースを10日間無料で

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
マウスボタンをインスタンス上で放したかどうかは、DisplayObject.hitTest()メソッドで調べます。
講師:
04:11

字幕

Starling フレームワークで ステージに置かれたオブジェクト インスタンスと座標が 重なっているかどうかを 調べたいということがあります その時に使う DisplayObject の hitTest というメソッドについて ご説明します Action Script 3.0 の定義済みクラスにも 似たようなメソッドがありますので それとも比較してみたいと思います ステージに置かれて表示されるオブジェクト これは一般に Display Object のクラス 若しくはそのサブクラスの オブジェクトということになります そうすると それらのオブジェクトは hitTest というメソッドを 使うことができます 引数には座標を持った Pointオブジェクトを渡します そうすると その座標とオブジェクトが 重ねっているかどうか ということを調べることができます Action Script 3.0 の定義済みの DisplayObject にも やはり似たようなメソッド hitTestPoint というメソッドがあります やはり座標がオブジェクトと 重なっているかどうかを調べてます 但し引数が違っていて Point オブジェクトではなく x 座標 y 座標をそれぞれ数字で渡します 戻値も実は違っています Starling フレームワークの DisplayObject の hitTest というのは 座標と重なっているオブジェクトがあれば それを返します ですから戻値はオブジェクトです それに対して Action Script 定義済みの hitTestPoint の方は 重なっているかどうかをルール値 つまり true か false かで返します 重なっていれば true 重なっていなければ false が Action Script 定義済みの hitTestPoint からは返る訳です Starling フレームワークの場合には hitTest は重なっていない場合には 何も無いよ という意味で null という値を返します 重なっていれば その重なっているオブジェクトです Starling フレームワークの DisplayObject hitTest というメソッドは なぜ戻値が この様な仕様になったんでしょうか 勿論 想像ですけれども このままですと もし返される 重なっていれば返される オブジェクトというのは この hitTest を 呼び出したオブジェクトと一緒です ですから別に返されなくても どのオブジェクトとか分かっていますね 余り意味が無い様に思います むしろ true とか false で 教えてもらった方が良さそうです でも そうしなかったのは DisplayObject にはサブクラスがあります その中には Sprite そして Starling フレームワークの Sprite というのは 自分自身は表示できないんです 自分の子どもを持って 子どもたちが表示されると そういう仕様になっています Action Script 3.0 定義済みの Sprite は自分自身に 何か絵を描くこともできます そういった違いがあるんですけれども もしSprite に対して hitTest というメソッドを呼び出した時 子どもたちを沢山持ちます 持つかもしれません その時は重なっている そのポイントの オブジェクトの座標が 重なっている子どもの オブジェクトを返してくれます そういう場合には 幾つか子オブジェクトを持つ内の その中の重なった 1 つが返る訳ですから それが分かると便利なことが多いんです Starling フレームワークの DisplayObject hitTest メソッドについてまとめましょう 引数には座標を示す Point オブジェクトを渡します すると その座標と hitTest を呼び出した オブジェクトとの重なりを見て 重なっていれば そのhitTest を呼び出した オブジェクト自身が返されます これはオブジェクトが Sprite で無い場合ですね イメージとかクワドの場合には そのオブジェクト自身が返されます けれども自分自身は表示されず 子どもを持つ Sprite の場合には その子ども達の中で 座標と重なっているオブジェクトを返します どれもオブジェクトが重なっていなければ null が返りますので それを if 条件で判定をすれば 座標とオブジェクトが重なっているかどうか という判定ができます

StarlingフレームワークによるStage3Dを使った2次元表現

StarlingはFlash Player 11の新しい描画機能Stage3Dに基づいて作られた2次元の描画用フレームワークです。このコースではStarlingフレームワークによるクラス定義の基礎から、トゥイーンアニメーションやマウスインタラクション、そして最近のバージョンで実装された新しい機能まで解説していきます。

5時間09分 (40 ビデオ)
現在、カスタマーレビューはありません…
 
ソフトウェア・トピック
カテゴリー
プログラミング
価格: 3,990
発売日:2014年01月26日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。