# GemCrush and "Sprite Grid" extension beta

**URL:** <https://forum.makecode.com/t/gemcrush-and-sprite-grid-extension-beta/1842>\
**Category:** Arcade\
**Tags:** game, extension\
**Created:** [April 26, 2020, 7:34pm UTC](https://forum.makecode.com/t/gemcrush-and-sprite-grid-extension-beta/1842 "2020-04-26T19:34:16Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![darzu](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/darzu/32/1882_2.png) [@darzu](https://forum.makecode.com/u/darzu)\
**Post date:** [April 26, 2020, 7:34pm UTC](https://forum.makecode.com/t/gemcrush-and-sprite-grid-extension-beta/1842/1 "2020-04-26T19:34:16Z")

</div>

Hello world,

I tried to make a Bejeweled-like game in blocks and found it very difficult, so I created a “sprite grid” extension that can track sprites on a grid.

The extension is here (early beta): [https://github.com/microsoft/arcade-grid](https://github.com/microsoft/arcade-grid)

And the game is here: [https://makecode.com/\_RbDi9mYx6TwJ](https://makecode.com/_RbDi9mYx6TwJ)

Grid extension blocks:

 ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/1X/de8aff17d476e47d8e2ecd594d145899fa8905ee.png)

Cheers,  
Daryl

---

<div class="post-metadata">

**Author:** ![peli](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/peli/32/12_2.png) [@peli](https://forum.makecode.com/u/peli)\
**Post date:** [April 26, 2020, 7:48pm UTC](https://forum.makecode.com/t/gemcrush-and-sprite-grid-extension-beta/1842/2 "2020-04-26T19:48:37Z")

</div>

This sound very helpful. Could you group the blocks maybe? It’d be great to see a minimalistic example.

---

<div class="post-metadata">

**Author:** ![darzu](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/darzu/32/1882_2.png) [@darzu](https://forum.makecode.com/u/darzu)\
**Post date:** [April 26, 2020, 8:01pm UTC](https://forum.makecode.com/t/gemcrush-and-sprite-grid-extension-beta/1842/3 "2020-04-26T20:01:11Z")

</div>

Here’s a much simpler example:

> **[test arcade-grid](https://arcade.makecode.com/48923-47294-17514-16860)**
>
> Made with ❤️ in Microsoft MakeCode Arcade.

Directions to move  
Hit A to swap the sprites  
Hit B to call our current coordinates

---

<div class="post-metadata">

**Author:** ![darzu](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/darzu/32/1882_2.png) [@darzu](https://forum.makecode.com/u/darzu)\
**Post date:** [April 26, 2020, 8:08pm UTC](https://forum.makecode.com/t/gemcrush-and-sprite-grid-extension-beta/1842/4 "2020-04-26T20:08:03Z")

</div>

And now with better categories:

> **[test arcade-grid](https://arcade.makecode.com/09640-05768-47912-33418)**
>
> Made with ❤️ in Microsoft MakeCode Arcade.

(blocks image update above)

---

<div class="post-metadata">

**Author:** ![darzu](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/darzu/32/1882_2.png) [@darzu](https://forum.makecode.com/u/darzu)\
**Post date:** [April 26, 2020, 8:12pm UTC](https://forum.makecode.com/t/gemcrush-and-sprite-grid-extension-beta/1842/5 "2020-04-26T20:12:52Z")

</div>

Some TODOs:

- Doesn’t work with multiple sprites per location yet
- Requires a tilemap to be present (although this might be a good thing)
- Can get out of sync with real locations, e.g. if a sprite moves via velocity (which is actually done intentionally in GemCrush above and works well if used in combination with “snap”. But it could be confusing)

---

<div class="post-metadata">

**Author:** ![UnsignedArduino](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/unsignedarduino/32/592_2.png) [@UnsignedArduino](https://forum.makecode.com/u/UnsignedArduino)\
**Post date:** [April 28, 2020, 10:29pm UTC](https://forum.makecode.com/t/gemcrush-and-sprite-grid-extension-beta/1842/6 "2020-04-28T22:29:50Z")

</div>

The game is amazing. Period.

Only problems are that the gems occasionally don’t move down.

But still.

Amazing.

---

<div class="post-metadata">

**Author:** ![darzu](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/darzu/32/1882_2.png) [@darzu](https://forum.makecode.com/u/darzu)\
**Post date:** [April 29, 2020, 3:37pm UTC](https://forum.makecode.com/t/gemcrush-and-sprite-grid-extension-beta/1842/7 "2020-04-29T15:37:37Z")

</div>

Thanks!!

If you see the problem again and notice anything weird that might have caused it, let me know!  
I think it probably has to do with the speed of simulation and large physics updates happening between events firing sometimes. Or just a logic bug on my side.

---

<div class="post-metadata">

**Author:** ![richard](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/richard/32/5417_2.png) [@richard](https://forum.makecode.com/u/richard)\
**Post date:** [April 29, 2020, 4:19pm UTC](https://forum.makecode.com/t/gemcrush-and-sprite-grid-extension-beta/1842/8 "2020-04-29T16:19:04Z")

</div>

@darzu it also happened to me

---

<div class="post-metadata">

**Author:** ![darzu](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/darzu/32/1882_2.png) [@darzu](https://forum.makecode.com/u/darzu)\
**Post date:** [April 29, 2020, 4:22pm UTC](https://forum.makecode.com/t/gemcrush-and-sprite-grid-extension-beta/1842/9 "2020-04-29T16:22:25Z")

</div>

Thanks, I got a repro now as well. I’ll look over the code when I get a chance

---

<div class="post-metadata">

**Author:** ![richard](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/richard/32/5417_2.png) [@richard](https://forum.makecode.com/u/richard)\
**Post date:** [April 29, 2020, 4:24pm UTC](https://forum.makecode.com/t/gemcrush-and-sprite-grid-extension-beta/1842/10 "2020-04-29T16:24:17Z")

</div>

Awesome game! I hope to see [puyo puyo](https://youtu.be/Ogk_AJv3Gww?t=104) next. My personal favorite arcade game of all time.

---

<div class="post-metadata">

**Author:** ![darzu](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/darzu/32/1882_2.png) [@darzu](https://forum.makecode.com/u/darzu)\
**Post date:** [April 29, 2020, 4:27pm UTC](https://forum.makecode.com/t/gemcrush-and-sprite-grid-extension-beta/1842/11 "2020-04-29T16:27:07Z")

</div>

Thanks! Nice! Seems kind of like multiplayer tetris?

A modern game that seems similar is “Tricky Towers”

---

<div class="post-metadata">

**Author:** ![richard](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/richard/32/5417_2.png) [@richard](https://forum.makecode.com/u/richard)\
**Post date:** [April 29, 2020, 4:28pm UTC](https://forum.makecode.com/t/gemcrush-and-sprite-grid-extension-beta/1842/12 "2020-04-29T16:28:34Z")

</div>

It’s sorta like if tetris met street fighter. For a long time I had a TV in my apartment dedicated to nothing but puyo puyo

---

<div class="post-metadata">

**Author:** ![darzu](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/darzu/32/1882_2.png) [@darzu](https://forum.makecode.com/u/darzu)\
**Post date:** [April 29, 2020, 4:29pm UTC](https://forum.makecode.com/t/gemcrush-and-sprite-grid-extension-beta/1842/13 "2020-04-29T16:29:15Z")

</div>

Haha well it sounds like we need an arcade cabinet dedicated to puyo puyo in the team room!

---

<div class="post-metadata">

**Author:** ![richard](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/richard/32/5417_2.png) [@richard](https://forum.makecode.com/u/richard)\
**Post date:** [April 29, 2020, 4:29pm UTC](https://forum.makecode.com/t/gemcrush-and-sprite-grid-extension-beta/1842/14 "2020-04-29T16:29:59Z")

</div>

Oh yes for sure

---

<div class="post-metadata">

**Author:** ![UnsignedArduino](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/unsignedarduino/32/592_2.png) [@UnsignedArduino](https://forum.makecode.com/u/UnsignedArduino)\
**Post date:** [April 29, 2020, 5:10pm UTC](https://forum.makecode.com/t/gemcrush-and-sprite-grid-extension-beta/1842/15 "2020-04-29T17:10:53Z")

</div>

I think you should add some sound to your amazing game 🙂

---

<div class="post-metadata">

**Author:** ![UnsignedArduino](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/unsignedarduino/32/592_2.png) [@UnsignedArduino](https://forum.makecode.com/u/UnsignedArduino)\
**Post date:** [July 31, 2020, 7:17pm UTC](https://forum.makecode.com/t/gemcrush-and-sprite-grid-extension-beta/1842/16 "2020-07-31T19:17:06Z")

</div>

Hey, does this work with an 8 × 8 tilemap? (Not the color-coded extension one, using the regular tilemap APIs)

---

<div class="post-metadata">

**Author:** ![darzu](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/darzu/32/1882_2.png) [@darzu](https://forum.makecode.com/u/darzu)\
**Post date:** [August 6, 2020, 4:18pm UTC](https://forum.makecode.com/t/gemcrush-and-sprite-grid-extension-beta/1842/17 "2020-08-06T16:18:27Z")

</div>

Great question. I haven’t tested it with 8x8 (since it’s basically impossible right now to use 8x8 in blocks), but in theory it should work. Likely there’s a bug or two that would need to be fixed.

---

<div class="post-metadata">

**Author:** ![UnsignedArduino](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/unsignedarduino/32/592_2.png) [@UnsignedArduino](https://forum.makecode.com/u/UnsignedArduino)\
**Post date:** [August 6, 2020, 4:35pm UTC](https://forum.makecode.com/t/gemcrush-and-sprite-grid-extension-beta/1842/18 "2020-08-06T16:35:04Z")

</div>

Oh, and I forgot to say that I’ve been using it with an 8x8 tilemap and it works like a charm!

---

<div class="post-metadata">

**Author:** ![kwx](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/kwx/32/1545_2.png) [@kwx](https://forum.makecode.com/u/kwx)\
**Post date:** [September 11, 2020, 4:57pm UTC](https://forum.makecode.com/t/gemcrush-and-sprite-grid-extension-beta/1842/19 "2020-09-11T16:57:02Z")

</div>

This looks very promising, but unfortunately the examples aren’t loading for me. I get _A namespace declaration cannot be in a different file from a class or function with which it is merged_ errors in the JS console. Does it need to be updated?

---

<div class="post-metadata">

**Author:** ![darzu](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/darzu/32/1882_2.png) [@darzu](https://forum.makecode.com/u/darzu)\
**Post date:** [September 11, 2020, 5:00pm UTC](https://forum.makecode.com/t/gemcrush-and-sprite-grid-extension-beta/1842/20 "2020-09-11T17:00:01Z")

</div>

Yes sorry about that, we have a bug that we’re trying to fix shortly.

If you click “Edit Code” it should open okay

[Next page](https://forum.makecode.com/t/gemcrush-and-sprite-grid-extension-beta/1842.md?page=2)
