Skip to content

Commit 45b769d

Browse files
committed
UI: transitions - use existing ease functions
1 parent 3817d16 commit 45b769d

File tree

3 files changed

+24
-16
lines changed

3 files changed

+24
-16
lines changed

arcade/gui/__init__.py

-2
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
)
2929
from arcade.gui.widgets import UIDummy, Rect
3030
from arcade.gui.transition import (
31-
EaseFunctions,
3231
TransitionBase,
3332
EventTransitionBase,
3433
TransitionAttr,
@@ -100,7 +99,6 @@
10099
"Rect",
101100
"NinePatchTexture",
102101
# Transitions
103-
"EaseFunctions",
104102
"TransitionBase",
105103
"EventTransitionBase",
106104
"TransitionAttr",

arcade/gui/transition.py

+4-13
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,11 @@
1-
import math
21
from abc import ABC, abstractmethod
32
from typing import Callable, Any, Optional, List, TypeVar
43

54
from pyglet.event import EventDispatcher
65

7-
T = TypeVar("T", bound="TransitionBase")
8-
6+
from arcade import linear
97

10-
class EaseFunctions:
11-
@staticmethod
12-
def linear(x: float):
13-
return x
14-
15-
@staticmethod
16-
def sine(x: float):
17-
return 1 - math.cos((x * math.pi) / 2)
8+
T = TypeVar("T", bound="TransitionBase")
189

1910

2011
class TransitionBase(ABC):
@@ -109,7 +100,7 @@ def __init__(
109100
attribute,
110101
duration: float,
111102
start=None,
112-
ease_function=EaseFunctions.linear,
103+
ease_function=linear,
113104
delay=0.0,
114105
mutation_function: Callable[[Any, str, float], None] = setattr,
115106
):
@@ -149,7 +140,7 @@ def __init__(
149140
increment: float,
150141
attribute,
151142
duration: float,
152-
ease_function=EaseFunctions.linear,
143+
ease_function=linear,
153144
delay=0.0,
154145
mutation_function: Callable[[Any, str, float], None] = setattr,
155146
):

doc/programming_guide/gui/concept.rst

+20-1
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ Transitions
6060

6161
To animate a UIWidget, use :meth:`UIWidget.add_transition` and add a :class:`Transition`.
6262
A :class:`Transition` can be used to manipulate a value over time.
63-
:class:`EaseFunctions` provides a few easing functions.
63+
Arcade provides a few easing functions listed below.
6464

6565
.. code-block::
6666
@@ -83,6 +83,25 @@ Arcade provides following transitions:
8383
> Be aware, that transitions may interfere with :class:`UILayout` positioning.
8484

8585

86+
Easing functions
87+
................
88+
89+
You can check out all of these functions using `python -m arcade.examples.easing_example_1`
90+
91+
- :meth:`arcade.linear`
92+
- :meth:`arcade.smoothstep`
93+
- :meth:`arcade.ease_in`
94+
- :meth:`arcade.ease_out`
95+
- :meth:`arcade.ease_in_out`
96+
- :meth:`arcade.ease_out_elastic`
97+
- :meth:`arcade.ease_out_bounce`
98+
- :meth:`arcade.ease_in_back`
99+
- :meth:`arcade.ease_out_back`
100+
- :meth:`arcade.ease_in_sin`
101+
- :meth:`arcade.ease_out_sin`
102+
- :meth:`arcade.ease_in_out_sin`
103+
104+
86105
UILayout
87106
========
88107

0 commit comments

Comments
 (0)