※この翻訳ドキュメントはスクリプトによって出力・同期されています。内容が怪しそうな場合はGitHubにissueを追加したり英語の原文の確認をお願いします。
DisplayObject と GraphicsBase クラスの基本的な属性の概要¶
このページではDisplayObject
やGraphicsBase
の各サブクラスのxやvisibleなどの基本的な属性の概要について説明します。
それらの属性でapyscができること¶
xやy, visibleなどの属性の取得や更新を行うことができます。
x と y 属性¶
xとy属性ではXとY座標を更新・取得することができます。
コードブロックを表示:
from typing_extensions import TypedDict
import apysc as ap
class RectOptions(TypedDict):
rectangle: ap.Rectangle
direction: ap.Int
def on_timer(e: ap.TimerEvent, options: RectOptions) -> None:
"""
The handler that the timer calls.
Parameters
----------
e : ap.TimerEvent
Event instance.
options : RectOptions
Optional arguments dictionary.
"""
rectangle: ap.Rectangle = options["rectangle"]
direction: ap.Int = options["direction"]
rectangle.x += direction
rectangle.y += direction
with ap.If(rectangle.x >= 100):
direction.value = -1
ap.Return()
with ap.If(rectangle.x <= 50):
direction.value = 1
ap.Return()
ap.Stage(
background_color=ap.Color("#333"),
stage_width=200,
stage_height=200,
stage_elem_id="stage",
)
sprite: ap.Sprite = ap.Sprite()
sprite.graphics.begin_fill(color=ap.Color("#0af"))
rectangle: ap.Rectangle = sprite.graphics.draw_rect(x=50, y=50, width=50, height=50)
direction: ap.Int = ap.Int(1)
options: RectOptions = {"rectangle": rectangle, "direction": direction}
ap.Timer(on_timer, delay=ap.FPS.FPS_60, options=options).start()
ap.save_overall_html(dest_dir_path="do_and_graphics_base_prop_abstract_x_and_y/")
詳細については以下をご確認ください:
visible 属性¶
visible
属性ではオブジェクトの表示・非表示の属性値を取得・更新することができます。
コードブロックを表示:
from typing_extensions import TypedDict
import apysc as ap
class RectOptions(TypedDict):
rectangle: ap.Rectangle
def on_timer(e: ap.TimerEvent, options: RectOptions) -> None:
"""
The handler that the timer calls.
Parameters
----------
e : ap.TimerEvent
Event instance.
options : RectOptions
Optional arguments dictionary.
"""
rectangle: ap.Rectangle = options["rectangle"]
rectangle.visible = rectangle.visible.not_
ap.Stage(
background_color=ap.Color("#333"),
stage_width=150,
stage_height=150,
stage_elem_id="stage",
)
sprite: ap.Sprite = ap.Sprite()
sprite.graphics.begin_fill(color=ap.Color("#0af"))
rectangle: ap.Rectangle = sprite.graphics.draw_rect(x=50, y=50, width=50, height=50)
options: RectOptions = {"rectangle": rectangle}
ap.Timer(on_timer, delay=1000, options=options).start()
ap.save_overall_html(dest_dir_path="do_and_graphics_base_prop_abstract_visible/")
詳細については以下をご確認ください:
回転の各インターフェイス¶
rotation_around_center
属性、get_rotation_around_point
メソッド、そしてset_rotation_around_point
メソッドでは回転の角度の値の取得と更新を行うことができます。
コードブロックを表示:
from typing_extensions import TypedDict
import apysc as ap
class RectOptions(TypedDict):
rectangle: ap.Rectangle
def on_timer(e: ap.TimerEvent, options: RectOptions) -> None:
"""
The handler that the timer calls.
Parameters
----------
e : ap.TimerEvent
Event instance.
options : RectOptions
Optional arguments dictionary.
"""
rectangle: ap.Rectangle = options["rectangle"]
rectangle.rotation_around_center += 1
ap.Stage(
background_color=ap.Color("#333"),
stage_width=150,
stage_height=150,
stage_elem_id="stage",
)
sprite: ap.Sprite = ap.Sprite()
sprite.graphics.begin_fill(color=ap.Color("#0af"))
rectangle: ap.Rectangle = sprite.graphics.draw_rect(x=50, y=50, width=50, height=50)
options: RectOptions = {"rectangle": rectangle}
ap.Timer(on_timer, delay=ap.FPS.FPS_60, options=options).start()
ap.save_overall_html(dest_dir_path="do_and_graphics_base_prop_abstract_rotation/")
詳細については以下をご確認ください:
拡縮の各インターフェイス¶
scale_x_from_center
属性、scale_y_from_center
属性、get_scale_x_from_point
メソッド、set_scale_x_from_point
メソッド、get_scale_y_from_point
メソッド、そしてset_scale_y_from_point
メソッドの各インターフェイスでは拡縮の値の取得と更新を行うことができます。
コードブロックを表示:
from typing_extensions import TypedDict
import apysc as ap
class RectOptions(TypedDict):
rectangle: ap.Rectangle
scale_value: ap.Number
def on_timer(e: ap.TimerEvent, options: RectOptions) -> None:
"""
The handler that the timer calls.
Parameters
----------
e : ap.TimerEvent
Event instance.
options : RectOptions
Optional arguments dictionary.
"""
rectangle: ap.Rectangle = options["rectangle"]
scale_value: ap.Number = options["scale_value"]
rectangle.scale_x_from_center += scale_value
rectangle.scale_y_from_center += scale_value
with ap.If(rectangle.scale_x_from_center >= 2.0):
scale_value.value = -0.01
ap.Return()
with ap.If(rectangle.scale_y_from_center <= 0.5):
scale_value.value = 0.01
ap.Return()
ap.Stage(
background_color=ap.Color("#333"),
stage_width=150,
stage_height=150,
stage_elem_id="stage",
)
sprite: ap.Sprite = ap.Sprite()
sprite.graphics.begin_fill(color=ap.Color("#0af"))
rectangle: ap.Rectangle = sprite.graphics.draw_rect(x=50, y=50, width=50, height=50)
scale_value: ap.Number = ap.Number(0.01)
options: RectOptions = {"rectangle": rectangle, "scale_value": scale_value}
ap.Timer(on_timer, delay=ap.FPS.FPS_60, options=options).start()
ap.save_overall_html(dest_dir_path="do_and_graphics_base_prop_abstract_scale/")
詳細については以下をご確認ください:
反転の各属性¶
flip_x
とflip_y
の属性では反転の属性値の取得と更新を行うことができます。
コードブロックを表示:
from typing_extensions import TypedDict
import apysc as ap
class LineOptions(TypedDict):
line: ap.Line
def on_timer(e: ap.TimerEvent, options: LineOptions) -> None:
"""
The handler that the timer calls.
Parameters
----------
e : ap.TimerEvent
Event instance.
options : LineOptions
Optional arguments dictionary.
"""
line: ap.Line = options["line"]
line.flip_x = line.flip_x.not_
ap.Stage(
background_color=ap.Color("#333"),
stage_width=150,
stage_height=150,
stage_elem_id="stage",
)
sprite: ap.Sprite = ap.Sprite()
sprite.graphics.line_style(color=ap.Color("#fff"), thickness=5)
line: ap.Line = sprite.graphics.draw_line(x_start=50, y_start=50, x_end=100, y_end=100)
options: LineOptions = {"line": line}
ap.Timer(on_timer, delay=1000, options=options).start()
ap.save_overall_html(dest_dir_path="do_and_graphics_base_prop_abstract_flip/")
詳細については以下をご確認ください:
歪みの各属性¶
skew_x
とskew_y
の各属性では歪みの値を取得・更新することができます。
コードブロックを表示:
from typing_extensions import TypedDict
import apysc as ap
class RectOptions(TypedDict):
rectangle: ap.Rectangle
def on_timer(e: ap.TimerEvent, options: RectOptions) -> None:
"""
The handler that the timer calls.
Parameters
----------
e : ap.TimerEvent
Event instance.
options : RectOptions
Optional arguments dictionary.
"""
rectangle: ap.Rectangle = options["rectangle"]
rectangle.skew_x += 1
ap.Stage(
background_color=ap.Color("#333"),
stage_width=150,
stage_height=150,
stage_elem_id="stage",
)
sprite: ap.Sprite = ap.Sprite()
sprite.graphics.begin_fill(color=ap.Color("#0af"))
rectangle: ap.Rectangle = sprite.graphics.draw_rect(x=50, y=50, width=50, height=50)
options: RectOptions = {"rectangle": rectangle}
ap.Timer(on_timer, delay=ap.FPS.FPS_60, options=options).start()
ap.save_overall_html(dest_dir_path="do_and_graphics_base_prop_abstract_skew/")
詳細については以下をご確認ください: