# 3D Shadow

**URL:** <https://forum.makecode.com/t/3d-shadow/41381>\
**Category:** Arcade\
**Tags:** game, make, extension\
**Created:** [January 5, 2026, 6:11pm UTC](https://forum.makecode.com/t/3d-shadow/41381 "2026-01-05T18:11:53Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Cybercube](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/cybercube/32/34628_2.png) [@Cybercube](https://forum.makecode.com/u/Cybercube)\
**Post date:** [January 5, 2026, 6:11pm UTC](https://forum.makecode.com/t/3d-shadow/41381/1 "2026-01-05T18:11:53Z")

</div>

# How to make a 3d shadow

> **[3D effect](https://arcade.makecode.com/S01106-78724-21882-01842)**
>
> Made with ❤️ in Microsoft MakeCode Arcade.

* * *

## Requirements

First, copy and paste `https://github.com/jwunderl/arcade-sprite-util`  
into the extensions selection area and press enter, you need them later on.

* * *

## Part 1: Creating functions

Go to advanced and go make a function.

Name the function to Cast shadow and add a sprite, and 2 numbers. It should look like this:

 ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/7/8/786bc6b4d4bf923f59919d48cb085c896940d4db.png)

* * *

## Part 2: The code

Now let’s do the sprites, first step is pretty explanatory.

**Make sure the background is white or else you can’t see the shadows**

Add the function to the on-start block and put the sprite into the sprite input.

Set the sprite depth to 100 so that the shadows wont overlap.

Add the for index from 0 to block into the function and put the timer to replace the zero.

Make a projectile like this:  
 ![Screenshot 2026-01-04 150436](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/3/d/3de47a0f9576f0b37268dedd34307347bd17eafd.png)  
Get the place () angle () distance () form () on the sprite utils block into the index block.

Chnage the block to this:

 ![Screenshot 2026-01-04 150925](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/b/8/b88d1805e0c63c7ddda0b9ec9e9195eddb5c2a04.png)  
Your code should look like this:  
 ![Screenshot 2026-01-04 151149](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/3/8/38623f98f6c49e9ce9d813eddf0a0652ada38661.png)  
You can chang the times and the dir of the functions but that all.

---

<div class="post-metadata">

**Author:** ![Cybercube](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/cybercube/32/34628_2.png) [@Cybercube](https://forum.makecode.com/u/Cybercube)\
**Post date:** [January 6, 2026, 2:56am UTC](https://forum.makecode.com/t/3d-shadow/41381/2 "2026-01-06T02:56:26Z")

</div>

make sure the Get the place () angle () distance () form () be this now:

 ![Screenshot 2026-01-05 144913](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/0/8/08a205e49a3fb848202a1e65a912812763cc7644.png)  
@AlexK make this a makecode blog and add

> **[3D effect](https://arcade.makecode.com/S01106-78724-21882-01842)**
>
> Made with ❤️ in Microsoft MakeCode Arcade.

to the top

---

<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 6, 2026, 2:58am UTC](https://forum.makecode.com/t/3d-shadow/41381/3 "2026-01-06T02:58:03Z")

</div>

I cannot use the MakeCode Blog tag for this – that tag is reserved for blogs created by the MakeCode devs.

I have, however, updated your original post with the project link as requested.
