※この翻訳ドキュメントはスクリプトによって出力・同期されています。内容が怪しそうな場合はGitHubにissueを追加したり英語の原文の確認をお願いします。

contains インターフェイス

このページではGraphicsSpriteStageなどのコンテナとしての各クラスが持つcontainsメソッドのインターフェイスについて説明します。

インターフェイス概要

containsインターフェイスは引数に指定された子のインスタンスを対象のコンテナが持つかどうかの真偽値(Boolean)を返却します。

基本的な使い方

以下のコード例では最初の四角がSpriteのコンテナーの子かどうかをチェックしています。もしその子を含んでいればその子を取り除き、ブラウザのコンソール上にログを表示しています(ログの表示にはF12キーを押してください)。

from typing_extensions import TypedDict

import apysc as ap


class _RectOptions(TypedDict):
    rectangle: ap.Rectangle


def on_sprite_click(e: ap.MouseEvent[ap.Sprite], options: _RectOptions) -> None:
    """
    The handler that the sprite calls when clicked.

    Parameters
    ----------
    e : MouseEvent
        Event instance.
    options : dict
        Optional arguments dictionary.
    """
    sprite: ap.Sprite = e.this
    rectangle_1: ap.Rectangle = options["rectangle"]
    condition: ap.Boolean = sprite.graphics.contains(child=rectangle_1)
    with ap.If(condition):
        sprite.remove_child(child=rectangle_1)
        ap.trace("Removed the rectangle!")


ap.Stage(
    background_color=ap.Color("#333"),
    stage_width=250,
    stage_height=150,
    stage_elem_id="stage",
)

sprite: ap.Sprite = ap.Sprite()
sprite.graphics.begin_fill(color=ap.Color("#0af"))
rectangle_1: ap.Rectangle = sprite.graphics.draw_rect(x=50, y=50, width=50, height=50)
sprite.graphics.draw_rect(x=150, y=50, width=50, height=50)
options: _RectOptions = {"rectangle": rectangle_1}
sprite.click(on_sprite_click, options=options)

ap.save_overall_html(dest_dir_path="sprite_contains_basic_usage/")

関連資料

contains API

特記事項: このAPIドキュメントはドキュメントビルド用のスクリプトによって自動で生成・同期されています。そのためもしかしたらこの節の内容は前節までの内容と重複している場合があります。

[インターフェイスの構造] contains(self, child: apysc._display.display_object.DisplayObject) -> apysc._type.boolean.Boolean


[インターフェイス概要]

指定された子のインスタンスを持っているかどうかの真偽値を取得します。


[引数]

  • child: DisplayObject

    • チェック対象の子のインスタンス。


[返却値]

  • result: Boolean

    • このインスタンスが指定された子を持つ場合Trueが設定されます。


[コードサンプル]

>>> import apysc as ap
>>> stage: ap.Stage = ap.Stage()
>>> sprite: ap.Sprite = ap.Sprite()
>>> sprite.graphics.begin_fill(color=ap.Color("#0af"), alpha=0.5)
>>> rectangle: ap.Rectangle = sprite.graphics.draw_rect(
...     x=50, y=50, width=50, height=50
... )
>>> sprite.graphics.contains(rectangle)
Boolean(True)

>>> rectangle.remove_from_parent()
>>> sprite.graphics.contains(rectangle)
Boolean(False)