# Having a Blast with MakeCode Arcade!

**URL:** <https://forum.makecode.com/t/having-a-blast-with-makecode-arcade/59>\
**Category:** Arcade\
**Created:** [February 19, 2019, 3:07am UTC](https://forum.makecode.com/t/having-a-blast-with-makecode-arcade/59 "2019-02-19T03:07:56Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![AlexK](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/alexk/32/33339_2.png) [@AlexK](https://forum.makecode.com/u/AlexK)\
**Post date:** [February 19, 2019, 3:07am UTC](https://forum.makecode.com/t/having-a-blast-with-makecode-arcade/59/1 "2019-02-19T03:07:56Z")

</div>

Hi, all!

I posted this over on Yammer, and @peli asked me to make a post over here, too.

I have been having a blast playing with MakeCode Arcade the past few months… Spent the past few days creating a rendition of the classic Breakout arcade game … and only using the blocks interface. It works quite nicely…! Looking forward to playing the games on a BrainPad Arcade once that’s in production!

---

<div class="post-metadata">

**Author:** ![AlexK](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/alexk/32/33339_2.png) [@AlexK](https://forum.makecode.com/u/AlexK)\
**Post date:** [February 19, 2019, 3:10am UTC](https://forum.makecode.com/t/having-a-blast-with-makecode-arcade/59/2 "2019-02-19T03:10:15Z")

</div>

@peli asked me to provide some feedback, and I did. Here is what I came up with:

Keep in mind that my intention is to build a CS0 course using just the block interface. So, a lot of my feedback stems from that perspective. Some of my feedback is related to MakeCode itself; the rest will be about MakeCode Arcade specifically.

I love the premise, and the MakeCode interface is really easy to use. I really love the Arcade adaptation of PXT; there is some really clever stuff there. It’s just a lot of fun! The documentation has really shaped up, and I find that I’m using it frequently. Major kudos to the team on the great work so far on documentation. Keep it up!

Using screenshot PNGs as your import/export format is absolutely brilliant. Whoever came up with that: mad props.

I know you’re working on making an entire set of blocks that deals with animation. I’m looking forward to that. _Edit: Now available as an extension!_

I’d like to have the ability to rotate sprites (a la Asteroids and SpaceWar). I’m planning on creating an extension to deal with that, but it would be lovely to have that built into Arcade. 🙂 _Edit: I’ve created an extension for this; see response, below._

~~The one thing that I can’t teach very well with blocks is variable scope, since all created variables get global scope. I can talk about local scope with some of the event handlers, which is good. I’d love to see functions be able to take parameters and to be able to define local variables (or member variables … depending on where they are implemented) in MakeCode, though. I know that’s more of a core PXT request.~~ Version 0.8: You can create functions with parameters now!

Also something really picky: When detecting an overlap with a wall, can you create a variable that indicates which tile in the map was hit? For my Breakout clone, I had to guess. It works … most of the time. 🙂

~~Another really picky thing: Can you overload the join function in the Text blocks to accept numeric variables in addition to strings? I don’t see a way in blocks to join a string with a number to use, say, in a speech bubble.~~ See response below.

I can’t begin to tell you how excited I am for BrainPad Arcade, too. And it’s made in my home state of Michigan! Love it!

Brilliant product. Keep up the hard work!

---

<div class="post-metadata">

**Author:** ![AlexK](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/alexk/32/33339_2.png) [@AlexK](https://forum.makecode.com/u/AlexK)\
**Post date:** [February 19, 2019, 4:56am UTC](https://forum.makecode.com/t/having-a-blast-with-makecode-arcade/59/3 "2019-02-19T04:56:43Z")

</div>

> [@AlexK](#):
>
> Another really picky thing: Can you overload the join function in the Text blocks to accept numeric variables in addition to strings? I don’t see a way in blocks to join a string with a number to use, say, in a speech bubble.

Scratch that. The join block seems to work just fine with both strings and numbers. I must have been using something else … maybe the + operation (which is a no-no).

---

<div class="post-metadata">

**Author:** ![hogan](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/hogan/32/17525_2.png) [@hogan](https://forum.makecode.com/u/hogan)\
**Post date:** [February 19, 2019, 9:28pm UTC](https://forum.makecode.com/t/having-a-blast-with-makecode-arcade/59/4 "2019-02-19T21:28:06Z")

</div>

I can hardly wait for your new game…🤬

---

<div class="post-metadata">

**Author:** ![ChaseMor](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/chasemor/32/18_2.png) [@ChaseMor](https://forum.makecode.com/u/ChaseMor)\
**Post date:** [February 19, 2019, 10:11pm UTC](https://forum.makecode.com/t/having-a-blast-with-makecode-arcade/59/5 "2019-02-19T22:11:49Z")

</div>

When it comes to rotating sprites, it’s a quite difficult task given the resolution of the sprites. I’ve implemented an algorithm called RotSprite that rotates low resolution images in a way that is more aesthetically pleasing than traditional rotations. You can add it as an extension with the url: [https://github.com/ChaseMor/pxt-arcade-rotsprite](https://github.com/ChaseMor/pxt-arcade-rotsprite).

[Here is an example of this extension](https://makecode.com/_77PK319kX6aJ)

It’s a pretty basic implementation though. There’s definitely some optimizations that can be made.

For an asteroids-type game, it would probably be better to use vector graphics. I started an extension for this, but ultimately became busy with other things.

I can revisit and finish both of these (especially since they only work for JavaScript) if there is demand for them though.

---

<div class="post-metadata">

**Author:** ![AlexK](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/alexk/32/33339_2.png) [@AlexK](https://forum.makecode.com/u/AlexK)\
**Post date:** [March 3, 2019, 10:06pm UTC](https://forum.makecode.com/t/having-a-blast-with-makecode-arcade/59/6 "2019-03-03T22:06:32Z")

</div>

I’ve taken inspiration from @ChaseMor and created an extension for some image transformations (scaling and rotation). You can use the extension both in the blocks interface and in the JavaScript interface. The extension adds blocks under the Advanced section.

I’ve been looking forward to creating extensions for a while now, just to see how that process works. It’s stunningly simple, given the excellent Monaco code editor and GitHub integration that are built into PXT. You really don’t even need to leave the MakeCode environment to pull it off. Pretty amazing!

If you’re interested, you can pull my extension into your Arcade MakeCode projects from

> **[robo-technical-group/pxt-arcade-image-transform](https://github.com/robo-technical-group/pxt-arcade-image-transform)**
>
> Extension to transform (scale and rotate) images in MakeCode Arcade - robo-technical-group/pxt-arcade-image-transform

You can see an example of the extension in action at

> **[Image Transformation Test](https://arcade.makecode.com/27800-70465-05726-62974)**
>
> Made with ❤️ in MakeCode Arcade.

I’ll eventually cleanup the README a bit more and implement the suggested TODO items. I’ll also be using this extension in my Asteroids and Spacewar! clones. More on those soon.

Have fun!

---

<div class="post-metadata">

**Author:** ![Mr\_Noonan](https://avatars.discourse-cdn.com/v4/letter/m/e0b2c6/32.png) [@Mr\_Noonan](https://forum.makecode.com/u/Mr_Noonan)\
**Post date:** [March 16, 2019, 9:34am UTC](https://forum.makecode.com/t/having-a-blast-with-makecode-arcade/59/7 "2019-03-16T09:34:11Z")

</div>

OMG!!! Thank you so much for this extension. It’s exactly what I’ve wanted!

It took me minimal time to create this tester.

> **[Sprite transforms Rotation movement](https://arcade.makecode.com/54661-10355-93759-71521)**
>
> Made with ❤️ in MakeCode Arcade.

Thanks!

---

<div class="post-metadata">

**Author:** ![AlexK](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/alexk/32/33339_2.png) [@AlexK](https://forum.makecode.com/u/AlexK)\
**Post date:** [March 17, 2019, 8:54am UTC](https://forum.makecode.com/t/having-a-blast-with-makecode-arcade/59/8 "2019-03-17T08:54:11Z")

</div>

Happy to help, @Mr_Noonan! Glad you’ve found the extension useful. If you notice any problems or would like to see any changes or additions, just let me know.

---

<div class="post-metadata">

**Author:** ![TJcorp](https://avatars.discourse-cdn.com/v4/letter/t/b5e925/32.png) [@TJcorp](https://forum.makecode.com/u/TJcorp)\
**Post date:** [November 3, 2019, 11:14pm UTC](https://forum.makecode.com/t/having-a-blast-with-makecode-arcade/59/9 "2019-11-03T23:14:46Z")

</div>

Hey! I’m pretty new to arcade (started learning on microbit) and was fairly shocked to find the absence of a sprite rotation option. Low and behold while looking through other projects I find spacewars, with rotating spaceships and an option for rotation. i need an So, I copy over the code for rotating so i can look it over and work it into my project when I find out that extension for “sprite transformations”. Yet, nowhere can I find this extension. If you could provide me this extension so I can finish my work, that’d be awesome!

Sincerely, a wide eyed learner.

---

<div class="post-metadata">

**Author:** ![AlexK](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/alexk/32/33339_2.png) [@AlexK](https://forum.makecode.com/u/AlexK)\
**Post date:** [November 4, 2019, 9:33pm UTC](https://forum.makecode.com/t/having-a-blast-with-makecode-arcade/59/10 "2019-11-04T21:33:55Z")

</div>

Hi, @TJcorp !

If you scroll up a few posts, you can see a link to the extension in GitHub. You can import the extension with that URL. (You just paste it into the search box when searching for an extension.)

You can find a list of all of my games and extensions here:

[https://sites.google.com/site/akulcsarsite/makecode/makecode-arcade](https://sites.google.com/site/akulcsarsite/makecode/makecode-arcade)

If you need additional assistance, feel free to ask.

---

<div class="post-metadata">

**Author:** ![Momoro](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/momoro/32/520_2.png) [@Momoro](https://forum.makecode.com/u/Momoro)\
**Post date:** [December 24, 2019, 1:28am UTC](https://forum.makecode.com/t/having-a-blast-with-makecode-arcade/59/11 "2019-12-24T01:28:54Z")

</div>

Are you planning on making a “save / load file” extension for Arcade? I really need this 😃

---

<div class="post-metadata">

**Author:** ![AlexK](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/alexk/32/33339_2.png) [@AlexK](https://forum.makecode.com/u/AlexK)\
**Post date:** [December 31, 2019, 2:21am UTC](https://forum.makecode.com/t/having-a-blast-with-makecode-arcade/59/12 "2019-12-31T02:21:22Z")

</div>

Hi, @Momoro.

I don’t have any plans for this, but I know it’s on the list of feature requests for the development team. Part of the problem with persisting state is that there is no mechanism in the current hardware specification, so any solution probably would not work on existing hardware.

---

<div class="post-metadata">

**Author:** ![mmoskal](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/mmoskal/32/20_2.png) [@mmoskal](https://forum.makecode.com/u/mmoskal)\
**Post date:** [January 1, 2020, 1:10pm UTC](https://forum.makecode.com/t/having-a-blast-with-makecode-arcade/59/13 "2020-01-01T13:10:05Z")

</div>

We actually now have ‘settings’ namespace. You can store up to 16k of data there. This works on all hardware and in the simulator.

---

<div class="post-metadata">

**Author:** ![AlexK](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/alexk/32/33339_2.png) [@AlexK](https://forum.makecode.com/u/AlexK)\
**Post date:** [January 10, 2020, 2:24am UTC](https://forum.makecode.com/t/having-a-blast-with-makecode-arcade/59/14 "2020-01-10T02:24:24Z")

</div>

Thanks for the reminder about the `settings` namespace, Michał!

@Momoro, I’ve posted a response to you with some brief information on the `settings` namespace in a separate thread:

> [@Quick tutorial on the \`settings\` namespace](https://forum.makecode.com/t/quick-tutorial-on-the-settings-namespace/1013):
>
> @Momoro asked me a question in a different thread: Are you planning on making a “save / load file” extension for Arcade? I really need this smiley@mmoskal reminded me of the new settings namespace: We actually now have ‘settings’ namespace. You can store up to 16k of data there. This works on all hardware and in the simulator. I totally forgot about the new settings namespace, Michał. Thanks for the reminder to get in there and check it out! I noticed there wasn’t any documentation o…

---

<div class="post-metadata">

**Author:** ![XyHypex2479](https://avatars.discourse-cdn.com/v4/letter/x/f4b2a3/32.png) [@XyHypex2479](https://forum.makecode.com/u/XyHypex2479)\
**Post date:** [March 30, 2022, 7:03pm UTC](https://forum.makecode.com/t/having-a-blast-with-makecode-arcade/59/15 "2022-03-30T19:03:49Z")

</div>

@AlexK can you help me with my first java game

---

<div class="post-metadata">

**Author:** ![AlexK](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/alexk/32/33339_2.png) [@AlexK](https://forum.makecode.com/u/AlexK)\
**Post date:** [March 30, 2022, 9:18pm UTC](https://forum.makecode.com/t/having-a-blast-with-makecode-arcade/59/16 "2022-03-30T21:18:42Z")

</div>

Sure, @XyHypex2479 ! Post a new topic in the forum and let me know what help you need and what questions you have.

---

<div class="post-metadata">

**Author:** ![XyHypex2479](https://avatars.discourse-cdn.com/v4/letter/x/f4b2a3/32.png) [@XyHypex2479](https://forum.makecode.com/u/XyHypex2479)\
**Post date:** [March 31, 2022, 7:47pm UTC](https://forum.makecode.com/t/having-a-blast-with-makecode-arcade/59/17 "2022-03-31T19:47:12Z")

</div>

ok thank you

---

<div class="post-metadata">

**Author:** ![MYR](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/myr/32/16320_2.png) [@MYR](https://forum.makecode.com/u/MYR)\
**Post date:** [December 18, 2023, 6:00pm UTC](https://forum.makecode.com/t/having-a-blast-with-makecode-arcade/59/18 "2023-12-18T18:00:51Z")

</div>

Thanks for this extension! Because of this extension and jwunderl’s arcade-sprite-util (jwunderl/arcade-sprite-util) I figured out a way to make a sprite rotate to the direction it is moving!

---

<div class="post-metadata">

**Author:** ![MrFlapjack](https://avatars.discourse-cdn.com/v4/letter/m/8491ac/32.png) [@MrFlapjack](https://forum.makecode.com/u/MrFlapjack)\
**Post date:** [August 20, 2024, 2:16am UTC](https://forum.makecode.com/t/having-a-blast-with-makecode-arcade/59/19 "2024-08-20T02:16:12Z")

</div>

how do I pull the extension from the projects?

---

<div class="post-metadata">

**Author:** ![AlexK](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/alexk/32/33339_2.png) [@AlexK](https://forum.makecode.com/u/AlexK)\
**Post date:** [August 20, 2024, 2:18am UTC](https://forum.makecode.com/t/having-a-blast-with-makecode-arcade/59/20 "2024-08-20T02:18:32Z")

</div>

Welcome, @MrFlapjack !

1. Copy the URL of the extension. (For example, [https://github.com/robo-technical-group/pxt-arcade-image-transform](https://github.com/robo-technical-group/pxt-arcade-image-transform) .)
2. In your project, select the **Extensions** item in the toolbox.
3. Instead of searching for an extension, paste the URL in the search box.
4. The extension will appear in the search results. Now, you can add it like any other extension.

[Next page](https://forum.makecode.com/t/having-a-blast-with-makecode-arcade/59.md?page=2)
