# \[Extension\] Arcade Easing - Move your sprite from A to B in style!

**URL:** https://forum.makecode.com/t/extension-arcade-easing-move-your-sprite-from-a-to-b-in-style/39077
**Category:** Show & Tell
**Tags:** extension
**Created:** [September 5, 2025, 4:08pm UTC](https://forum.makecode.com/t/extension-arcade-easing-move-your-sprite-from-a-to-b-in-style/39077 "2025-09-05T16:08:02Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![ChimbroDaPro](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/chimbrodapro/32/15852_2.png) [@ChimbroDaPro](https://forum.makecode.com/u/ChimbroDaPro)
#### Post date: [September 5, 2025, 4:08pm UTC](https://forum.makecode.com/t/extension-arcade-easing-move-your-sprite-from-a-to-b-in-style/39077/1 "2025-09-05T16:08:02Z")

</div>

[  
https://github.com/ChimbroDaPro/arcade-easing](https://github.com/ChimbroDaPro/arcade-easing)

Hey yall, so I’ve found myself getting really frustrated with the limited movement options for MakeCode, like, pretty much EVERYTHING is linear, and it makes things like character dashing, objects falling, and UI movement have a lot to be desired. I found it to be very limiting especially when you want certain movements to be really expressive or fancy.

But all of that has changed now, with the all new Easing Extension, my first proper extension! I made sure it’s super easy to use, and, who knows, maybe it’ll become something like Timers or Settings that people won’t be able to live without 😅 . I guess time will tell. But let me give you a breakdown of what this extension has to offer:

 ![IMG_6696](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/8/2/82647b6ab9c756e30d56db7072b3e4831a6bbd3d.jpeg)

I strived to make the extension as accessible as possible, so that it’s simply a case of a “sprite moves from A to B” type block. So, in that sense, it helps with simple sprite movement, similar to that one block in @jwunderl’s sprite utils extension. Of course their also the twist of the actual easing to the location of your choice:

![IMG_6697](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/7/3/731fe803ad8cba96080c0d4f38eb2c06e9da9006.gif)

I have various easings, from sine, quad, quint, bounce, elastic, circular (my favourite), exponential, quart, and back.

Here are a few fun ones:

# Circular

![IMG_6698](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/8/f/8f08801a2cb00f27751255ce811b2ddd97cc560e.gif)

# Elastic

![IMG_6699](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/3/e/3e7b3fc6bca4151321bbf11ba701337aca0ca39f.gif)

# Bounce

![IMG_6700](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/7/a/7aa1064c94950ae2bb8e0de24e7f9b6d919855dd.gif)

And if you want to move your sprite relative to the sprites location, like, say, you want a sprite to dash, you can use the ease by dx and dy block!

 ![IMG_6702](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/7/8/78f29e31bf41406736f16666410d4a7ff33960e7.jpeg)

Now, trust me, my example isn’t great, but you can do A LOT with this if you pair it with an animation, or like some killer move where the enemy flies in and… nevermind lol, getting ahead of myself.

![IMG_6701](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/3/3/3339634cc866524aa4a210c190d09a19bd80d99c.gif)

Those are the main two blocks, and the rest are intuitive enough, but the cancel easing blocks are very useful too, especially if you want a diving attack to be parried of deflected, you could cancel the easing and… bruh why am I giving you ideas again? Just use it for yourself, I think you’ll like it.

Another gif with me just goin crazy with easings:

![IMG_6703](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/a/3/a30a84e2c87e3dd1f9a2854dc63f8c65e4164734.gif)

---

<div class="post-metadata">

### Author: ![JtSpeedRun](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/jtspeedrun/32/33167_2.png) [@JtSpeedRun](https://forum.makecode.com/u/JtSpeedRun)
#### Post date: [September 5, 2025, 4:23pm UTC](https://forum.makecode.com/t/extension-arcade-easing-move-your-sprite-from-a-to-b-in-style/39077/2 "2025-09-05T16:23:59Z")

</div>

This is great! I see it being really useful in cutscenes and stuff like that in the future. I already have alot of projects that i’d like to implement this with! 🔥

Awsome work 👏

---

<div class="post-metadata">

### Author: ![PixelDoodle](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/pixeldoodle/32/24129_2.png) [@PixelDoodle](https://forum.makecode.com/u/PixelDoodle)
#### Post date: [September 5, 2025, 6:18pm UTC](https://forum.makecode.com/t/extension-arcade-easing-move-your-sprite-from-a-to-b-in-style/39077/3 "2025-09-05T18:18:40Z")

</div>

really cool extension!

oohhh god the geometry dash brainrot is kicking in…

---

<div class="post-metadata">

### Author: ![Astronomicality22](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/astronomicality22/32/18365_2.png) [@Astronomicality22](https://forum.makecode.com/u/Astronomicality22)
#### Post date: [September 5, 2025, 10:46pm UTC](https://forum.makecode.com/t/extension-arcade-easing-move-your-sprite-from-a-to-b-in-style/39077/4 "2025-09-05T22:46:02Z")

</div>

FIRE IN THE HOLE​:speaking\_head:🗣🗣🔥🔥🔥💯💯💯💯

---

<div class="post-metadata">

### Author: ![TheEarth](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/theearth/32/34579_2.png) [@TheEarth](https://forum.makecode.com/u/TheEarth)
#### Post date: [September 5, 2025, 10:46pm UTC](https://forum.makecode.com/t/extension-arcade-easing-move-your-sprite-from-a-to-b-in-style/39077/5 "2025-09-05T22:46:10Z")

</div>

what do you mea

---

<div class="post-metadata">

### Author: ![PixelDoodle](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/pixeldoodle/32/24129_2.png) [@PixelDoodle](https://forum.makecode.com/u/PixelDoodle)
#### Post date: [September 6, 2025, 2:04am UTC](https://forum.makecode.com/t/extension-arcade-easing-move-your-sprite-from-a-to-b-in-style/39077/6 "2025-09-06T02:04:34Z")

</div>

gd movement triggers

i know geometry dash didnt invent easings but its where i recognize them from

---

<div class="post-metadata">

### Author: ![ChimbroDaPro](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/chimbrodapro/32/15852_2.png) [@ChimbroDaPro](https://forum.makecode.com/u/ChimbroDaPro)
#### Post date: [September 6, 2025, 11:23pm UTC](https://forum.makecode.com/t/extension-arcade-easing-move-your-sprite-from-a-to-b-in-style/39077/7 "2025-09-06T23:23:07Z")

</div>

SAME LOL! I got the easing idea straight from gd

---

<div class="post-metadata">

### Author: ![teaeat100](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/teaeat100/32/33097_2.png) [@teaeat100](https://forum.makecode.com/u/teaeat100)
#### Post date: [September 7, 2025, 2:55am UTC](https://forum.makecode.com/t/extension-arcade-easing-move-your-sprite-from-a-to-b-in-style/39077/8 "2025-09-07T02:55:28Z")

</div>

I got a thing using this extension : [https://makecode.com/\_e8F3f8EU1Uc8](https://makecode.com/_e8F3f8EU1Uc8)

---

<div class="post-metadata">

### Author: ![Bilangus](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/bilangus/32/33219_2.png) [@Bilangus](https://forum.makecode.com/u/Bilangus)
#### Post date: [September 9, 2025, 4:51pm UTC](https://forum.makecode.com/t/extension-arcade-easing-move-your-sprite-from-a-to-b-in-style/39077/9 "2025-09-09T16:51:24Z")

</div>

Something happened. Guess we doin circles now!

 ![1000074360](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/c/6/c69e334ae81640decc3e6513831fc2668ad2a964.jpeg)

---

<div class="post-metadata">

### Author: ![ChimbroDaPro](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/chimbrodapro/32/15852_2.png) [@ChimbroDaPro](https://forum.makecode.com/u/ChimbroDaPro)
#### Post date: [September 10, 2025, 5:21pm UTC](https://forum.makecode.com/t/extension-arcade-easing-move-your-sprite-from-a-to-b-in-style/39077/10 "2025-09-10T17:21:45Z")

</div>

I’m updating it… it’s almost finished…

---

<div class="post-metadata">

### Author: ![Trr](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/trr/32/31964_2.png) [@Trr](https://forum.makecode.com/u/Trr)
#### Post date: [September 11, 2025, 4:48pm UTC](https://forum.makecode.com/t/extension-arcade-easing-move-your-sprite-from-a-to-b-in-style/39077/11 "2025-09-11T16:48:27Z")

</div>

Oh my god thank you so much

---

<div class="post-metadata">

### Author: ![teaeat100](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/teaeat100/32/33097_2.png) [@teaeat100](https://forum.makecode.com/u/teaeat100)
#### Post date: [September 11, 2025, 4:50pm UTC](https://forum.makecode.com/t/extension-arcade-easing-move-your-sprite-from-a-to-b-in-style/39077/12 "2025-09-11T16:50:53Z")

</div>

How did this happen 😭

---

<div class="post-metadata">

### Author: ![not\_a\_lemon](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/not_a_lemon/32/35289_2.png) [@not\_a\_lemon](https://forum.makecode.com/u/not_a_lemon)
#### Post date: [September 11, 2025, 4:57pm UTC](https://forum.makecode.com/t/extension-arcade-easing-move-your-sprite-from-a-to-b-in-style/39077/13 "2025-09-11T16:57:48Z")

</div>

Wow, that is so terrifying 😱 /s

---

<div class="post-metadata">

### Author: ![MeatballDev](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/meatballdev/32/28502_2.png) [@MeatballDev](https://forum.makecode.com/u/MeatballDev)
#### Post date: [September 16, 2025, 10:33pm UTC](https://forum.makecode.com/t/extension-arcade-easing-move-your-sprite-from-a-to-b-in-style/39077/14 "2025-09-16T22:33:01Z")

</div>

It wont work, in circles

---

<div class="post-metadata">

### Author: ![ChimbroDaPro](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/chimbrodapro/32/15852_2.png) [@ChimbroDaPro](https://forum.makecode.com/u/ChimbroDaPro)
#### Post date: [September 17, 2025, 3:43pm UTC](https://forum.makecode.com/t/extension-arcade-easing-move-your-sprite-from-a-to-b-in-style/39077/15 "2025-09-17T15:43:11Z")

</div>

Just a sec… almosttttt…

---

<div class="post-metadata">

### Author: ![ChimbroDaPro](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/chimbrodapro/32/15852_2.png) [@ChimbroDaPro](https://forum.makecode.com/u/ChimbroDaPro)
#### Post date: [September 24, 2025, 5:27pm UTC](https://forum.makecode.com/t/extension-arcade-easing-move-your-sprite-from-a-to-b-in-style/39077/16 "2025-09-24T17:27:41Z")

</div>

IT’S FINISHED, IT’S FINALLY COMPLETELY FINISHED, AFTER 1 MONTH! You can now ease anything. Absolutely anything. Tutorial incoming.

---

<div class="post-metadata">

### Author: ![TheEarth](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/theearth/32/34579_2.png) [@TheEarth](https://forum.makecode.com/u/TheEarth)
#### Post date: [September 25, 2025, 12:20am UTC](https://forum.makecode.com/t/extension-arcade-easing-move-your-sprite-from-a-to-b-in-style/39077/17 "2025-09-25T00:20:17Z")

</div>

no it’s actually 19 days

---

<div class="post-metadata">

### Author: ![Astro](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/astro/32/35479_2.png) [@Astro](https://forum.makecode.com/u/Astro)
#### Post date: [September 26, 2025, 12:09am UTC](https://forum.makecode.com/t/extension-arcade-easing-move-your-sprite-from-a-to-b-in-style/39077/19 "2025-09-26T00:09:30Z")

</div>

can I ease tilemaps?

---

<div class="post-metadata">

### Author: ![TheEarth](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/theearth/32/34579_2.png) [@TheEarth](https://forum.makecode.com/u/TheEarth)
#### Post date: [September 26, 2025, 12:09am UTC](https://forum.makecode.com/t/extension-arcade-easing-move-your-sprite-from-a-to-b-in-style/39077/20 "2025-09-26T00:09:31Z")

</div>

none taken

---

<div class="post-metadata">

### Author: ![ChimbroDaPro](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/chimbrodapro/32/15852_2.png) [@ChimbroDaPro](https://forum.makecode.com/u/ChimbroDaPro)
#### Post date: [September 28, 2025, 2:55am UTC](https://forum.makecode.com/t/extension-arcade-easing-move-your-sprite-from-a-to-b-in-style/39077/21 "2025-09-28T02:55:15Z")

</div>

# Tutorial for Easing Extension v2.0.0!

Ok, so, as you can tell, A LOT has changed. We even had a super cursed “circle” block at some point (explanation of what the block was later on), but now, after so long, it’s ready! Let’s start with the blocks!

 ![IMG_6719](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/c/f/cf0f034c7b12a52d9d43524485f51e43bd91566f.jpeg)

The update implements easing ID’s - you can cancel them, get their progress, tag them, _replay them_… and that’s how it works. Every time you create an easing, it has an ID. The number type blocks for position, scaling and camera do the easing, but also return the ID.

> **Sprite Movement**
>
> ![IMG_6720](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/9/6/96a0baab085cc139e44387e57ba5c98e23aaed35.jpeg)
> 
> Yeah this is the one we’ve already seen above. No differences, but I suppose it does it’s usual. Move a sprite from A to B with easing options. There’s another block to move the sprites relatively, based on its position, but it’s basically the the same.
> 
> ![IMG_6721](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/6/1/61969a3592164dd8eadae28ca0f94441716c30ec.jpeg)
> 
> As I said above, there’s an ID version which returns the ID of the easings so you can do a ton of stuff with it in the future.

> **Sprite Scaling**
>
> ![IMG_6724](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/d/9/d9ef51336804ee315f8ebd5c829c459f94d0c04d.jpeg)
> 
> Alright so this is a new block. You can now ease scaling as well! You can make all sorts of stuff with this, for example…
> 
> ![IMG_6725](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/4/0/40dcd8db7d873ef4b356cef16ab9826ea9c1255f.gif)
> 
> # A JUMPSCARE!
> 
> So, uh, anyway… just like the movement block, all of this can be done relatively with a separate block. There’s also the ID version of the block, which you can use to uhhh… yeah, what I said above.
> 
> ![IMG_6723](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/9/a/9a07f81cd280deb3f7a978792bb6280dc51de8de.jpeg)
> 
> And here’s what it looks like just for the lols. You can set up what the scale starts as, which I think I forgot to say earlier.

> **Camera Easing**
>
> ![IMG_6727](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/7/0/70f338f22caca2d8797fc2862197f89e9d152228.jpeg)
> 
> This is also a new block! It’s a little bit buggy, might patch a few things later, but with this, you can ease the camera to a coordinate! You can also do really sick stuff with this, you could even do parallax easing if you mix it with _another easing block_…
> 
> ![IMG_6726](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/3/8/38a4ee12dc0b8aee366c96625d7ba050cd6f932a.gif)
> 
> I personally feel it’s very good if you want camera effects for cutscenes, and maybe it could work well mixed with sprite movement if you’re feeling innovative. Quick note: if the camera is following a sprite elsewhere in your project, that will fight manual centering, so turn off any follow behavior or be mindful that the follow will dominate. There’s obviously also the ID version, but it works exactly as mentioned above.

> **Generic Easing Function Creation**
>
> ![IMG_6718](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/f/7/f7f8473f46c381b8add2b43c90f17ecf208f0058.jpeg)
> 
> This. This is the block that caused this update to take so long. If you want to predefine behaviors, use this block to register a named handler ahead of time; later you can call to run it. Put the value parameter in for the number in the block you wish to ease. If people use this extension, big projects would have like millions of these. It’s neat for reusable effects, so you can define how “rotate” or “transform” should behave once, then launch it with different ranges and durations. This block works best with other extensions. Oh yeah, and this was the super cursed circle block.
> 
> Here are a few examples:
> 
> ![IMG_6728](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/8/6/86e0ad22e302909b0dde94d0a6161a9609e41fda.jpeg)
> 
> Here’s a fun one to implement rotation easing! I used [this extension](https://github.com/robo-technical-group/pxt-arcade-image-transform). Here’s the result:
> 
> ![IMG_6729](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/4/5/4596314a4cafeaf863a828d622a2e7faaeaa46aa.gif)
> 
> Let’s try adding some [camera zoom](https://github.com/kiwiphoenix364/pxt-zoom) into the mix:
> 
> ![IMG_6730](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/f/7/f737088267fd003bf9facb6c05dcca6d54d4b65e.jpeg)
> 
> And here’s what we get as a result:
> 
> ![IMG_6731](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/7/0/705e7a26a53f5eed3da9b126ce869e38758e5020.gif)
> 
> I could go on and on, but in any case, this is a really huge block. You can do anything with it. You can even put easings in the easing function and do really stupid stuff. This is by far the best block in the extension, so uh, have fun!

> **Easing ID and Tag Usage**
>
> Easing number blocks return easing IDs when you create them. Keep that ID if you want to cancel the effect or check its progress.
> 
> ![IMG_6732](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/f/d/fdcdef3cd36d41bdbed38eeb35460fb32ec229ff.jpeg)
> 
> This block cancels a single easing by ID. Basic stuff.
> 
> ![IMG_6733](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/2/3/23b6af6f6770e9f15f8dba0a051e403e89776309.jpeg)
> 
> This cancels all easings attached to a sprite (and yes, you can have more than one), and this:
> 
> ![IMG_6734](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/8/e/8e9eb0bc3c7eaf98cec71719cc253a5178698678.jpeg)
> 
> This cancels all easings with a tag. This would be a good time to show the block to tag easings!
> 
> ![IMG_6735](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/e/8/e81f144b2e15d96e8da04b98b366517dfb4eaabb.jpeg)
> 
> Just be aware that tagging an easing plays the easing. Finally there’s this block:
> 
> ![IMG_6736](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/7/f/7f95613c88e7b144b76ba837eebc9837c61bddd7.jpeg)
> 
> And this just nukes everything. Good if you want to crash out.
> 
> Tagging is one of those small conveniences that becomes very useful in larger projects: when you create an easing you can optionally tag it (for example “intro” or “enemy-hit”) and then cancel or replay groups by tag instead of juggling lists of numbers (look at replay in the next dropdown).
> 
> Aight I’m tired of taking pictures, I might just blitz through the last few of these.
> 
> Querying is simple and helpful for logic: `is <sprite> easing?` answers whether there’s any active easing on a sprite. `easing progress of <sprite>` or `easing progress of job id <n>` returns a 0 to 1 progress float (or -1 if nothing’s running), so you can drive other things off the easing state.

> **Easing Replayability**
>
> Replaying is the fun part, and it’s just lovely to use. This clones whatever easing you point it at and restarts it, giving you a new easing id (though unobtainable since you have the original). You can also replay em by tag. That will replay every easing with that tag; great for re-running an “intro” sequence when the player retries a level, like you could just name them all “intro” and boom! I made them create fresh easings so your old easing records stay for later use.
> 
> Here’s a super fun example I made showcasing the replay blocks:
> 
> ![IMG_6738](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/d/5/d51a3eef05c54b8472583b572a99d0302c088953.jpeg)
> 
> And now, here’s the result! Introducing the rolling duck! He’ll never stop rolling.
> 
> ![IMG_6737](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/5/8/58079ed6579f0bddd4282a34eabdccfd0f791f8b.gif)

Here’s a final example with me using most of the ver.2.0.0 features (except for camera stuff). It’s far from perfect, but here’s a random ultimate attack I made with Vortex throwing a… well, vortex… at scamma!

![IMG_6740](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/c/4/c4bb788863e0a5320b06c3c1afdcbf180b85871b.gif)

[Next page](https://forum.makecode.com/t/extension-arcade-easing-move-your-sprite-from-a-to-b-in-style/39077.md?page=2)
