Gondwana Game Engine Development (master) - 2.6.1
Gondwana is a cross-platform 2.5D game and rendering engine written in C#/.NET 8. It provides fine-grained control over rendering, timing, and scene composition, with built-in support for parallax, z-ordering, pixel overhang, collision detection, and particle effects. Gondwana targets desktop and web platforms using SkiaSharp for graphics and pluggable audio backends for desktop and browser targets.
Loading...
Searching...
No Matches
EasingFunctions.cs
2
7public static class EasingFunctions
8{
12 public static float Linear(float t) => t;
13
17 public static float EaseInQuad(float t) => t * t;
18
22 public static float EaseOutQuad(float t) => t * (2f - t);
23
27 public static float EaseInOutQuad(float t)
28 {
29 t *= 2f;
30 if (t < 1f) return 0.5f * t * t;
31 t -= 1f;
32 return -0.5f * (t * (t - 2f) - 1f);
33 }
34
38 public static float EaseInCubic(float t) => t * t * t;
39
43 public static float EaseOutCubic(float t)
44 {
45 t -= 1f;
46 return t * t * t + 1f;
47 }
48
52 public static float EaseInOutCubic(float t)
53 {
54 t *= 2f;
55 if (t < 1f) return 0.5f * t * t * t;
56 t -= 2f;
57 return 0.5f * (t * t * t + 2f);
58 }
59
63 public static float EaseInQuart(float t) => t * t * t * t;
64
68 public static float EaseOutQuart(float t)
69 {
70 t -= 1f;
71 return 1f - t * t * t * t;
72 }
73
77 public static float EaseInOutQuart(float t)
78 {
79 t *= 2f;
80 if (t < 1f) return 0.5f * t * t * t * t;
81 t -= 2f;
82 return -0.5f * (t * t * t * t - 2f);
83 }
84
88 public static float EaseInQuint(float t) => t * t * t * t * t;
89
93 public static float EaseOutQuint(float t)
94 {
95 t -= 1f;
96 return t * t * t * t * t + 1f;
97 }
98
102 public static float EaseInOutQuint(float t)
103 {
104 t *= 2f;
105 if (t < 1f) return 0.5f * t * t * t * t * t;
106 t -= 2f;
107 return 0.5f * (t * t * t * t * t + 2f);
108 }
109
113 public static float SmoothStep(float t) => t * t * (3f - 2f * t);
114
118 public static float SmootherStep(float t) => t * t * t * (t * (t * 6f - 15f) + 10f);
119
123 public static Func<float, float> From(EasingKind kind)
124 {
125 return kind switch
126 {
127 EasingKind.Linear => Linear,
128 EasingKind.EaseInQuad => EaseInQuad,
129 EasingKind.EaseOutQuad => EaseOutQuad,
130 EasingKind.EaseInOutQuad => EaseInOutQuad,
131 EasingKind.EaseInCubic => EaseInCubic,
132 EasingKind.EaseOutCubic => EaseOutCubic,
133 EasingKind.EaseInOutCubic => EaseInOutCubic,
134 EasingKind.EaseInQuart => EaseInQuart,
135 EasingKind.EaseOutQuart => EaseOutQuart,
136 EasingKind.EaseInOutQuart => EaseInOutQuart,
137 EasingKind.EaseInQuint => EaseInQuint,
138 EasingKind.EaseOutQuint => EaseOutQuint,
139 EasingKind.EaseInOutQuint => EaseInOutQuint,
140 EasingKind.SmoothStep => SmoothStep,
141 EasingKind.SmootherStep => SmootherStep,
142 _ => Linear
143 };
144 }
145}