DisplayObject and GraphicsBase classes base properties abstract¶
This page explains the DisplayObject
and GraphicsBase
classes’ each property (such as the x, visible) abstract.
What apysc can do in its properties¶
You can get/set each property value, such as the x, y, visible.
x and y properties¶
The x and y properties can get/set the x and y coordinates.
Display the code block:
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/")
For more details, please see the following:
visible property¶
The visible
property can get/set the visibility of an object.
Display the code block:
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/")
For more details, please see the following:
rotation interfaces¶
The rotation_around_center
property, get_rotation_around_point
method, and set_rotation_around_point
method can get/set the rotation angle.
Display the code block:
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/")
For more details, please see the following:
scale interfaces¶
The scale_x_from_center
property, scale_y_from_center
property, get_scale_x_from_point
method, set_scale_x_from_point
method, get_scale_y_from_point
method, and set_scale_y_from_point
method can get/set the scale values.
Display the code block:
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/")
For more details, please see the following:
flip properties¶
The flip_x
and flip_y
properties can get/set the flip (reflection) setting.
Display the code block:
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/")
For more details, please see the following:
skew properties¶
The skew_x
and skew_y
properties can get/set the skew-value.
Display the code block:
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/")
For more details, please see the following: