---
title: "MakeCode Arcade Help: Jump, Gravity, Levels and Saving"
description: "MakeCode Arcade help for students: how to make a sprite jump, add gravity, build levels with tilemaps, fix a jump that never fires, and find a project you lost."
canonical: https://learn.modernagecoders.com/makecode-arcade-help-for-students
source: src/pages/makecode-arcade-help-for-students.html
---
> MakeCode Arcade help for students: how to make a sprite jump, add gravity, build levels with tilemaps, fix a jump that never fires, and find a project you lost.

In short

To make a MakeCode Arcade sprite jump, move it left and right only, set its ay (vertical acceleration) to a positive number for gravity, and on the A button set vy to a negative number if isHittingTile(Bottom) is true. Levels are tilemaps drawn in the editor and loaded with setTilemap. Modern Age Coders teaches game coding live, ages 8 to 18.

Keep going with a teacher

## Three courses for students who outgrow the school unit

Each starts from the game the student has already made, blocks or typed code.

[![Game Development for Kids course thumbnail](/images/game-dev-kids.webp)  MCA / 01 Game development for kids Kids 8 to 12 build platformers, scores and levels, then Roblox and Minecraft. Open the syllabus →](/courses/game-development-masterclass-for-kids)[![Coding for Kids course thumbnail](/images/kids-coding.webp)  MCA / 02 Coding for kids Kids 6 to 12 go from blocks to games, apps and AI. Open the syllabus →](/courses/kids-coding-blocks-masterclass)[![JavaScript for Teens course thumbnail](/images/javascript-teens.webp)  MCA / 03 JavaScript for teens Teens 13 to 18 learn the language behind Arcade’s JavaScript view. Open the syllabus →](/courses/javascript-course-for-teens-beginners-interactive-web)

The number one question

## How to make a sprite jump and add gravity in MakeCode Arcade

A jump is two numbers working together: an upward speed that starts the jump and a steady pull that ends it. MakeCode Arcade gives every sprite properties for both.

| Property | What it controls | Unit | Direction |
| --- | --- | --- | --- |
| vx | Horizontal speed | Pixels per second | Positive moves right |
| vy | Vertical speed | Pixels per second | Positive moves toward the bottom |
| ax | Horizontal acceleration | Pixels per second, per second | Changes vx over time |
| ay | Vertical acceleration | Pixels per second, per second | Positive speeds the sprite toward the bottom |

1. **Stop the up and down buttons from moving the hero.** Use move sprite with a horizontal speed and a vertical speed of 0, so up and down no longer fight gravity.
2. **Add gravity.** Set the hero’s ay to a positive number, such as 350. The docs explain that a positive value increases the speed toward the bottom, which is exactly what gravity does.
3. **Give it a floor.** Draw a tilemap and mark the ground tiles as walls, so the hero lands instead of falling through.
4. **Jump on a button.** In an on A button pressed event, set vy to a negative number, such as -150. Negative vy moves the sprite toward the top.
5. **Jump only from the floor.** Wrap the jump in an if that checks is hitting tile, bottom. Without it, a student can press A in mid air and fly.

***Program 1 · run and jump**typescript*

```
// A hero who runs and jumps (ours, JavaScript view)
let box = image.create(16, 16)
box.fill(5)
let hero = sprites.create(box, SpriteKind.Player)
tiles.setTilemap(tilemap`level1`)

controller.moveSprite(hero, 80, 0) // left, right
hero.ay = 350 // gravity, pulling down
scene.cameraFollowSprite(hero)

controller.A.onEvent(
    ControllerButtonEvent.Pressed,
    function () {
        // jump only from the floor
        if (hero.isHittingTile(CollisionDirection.Bottom)) {
            hero.vy = -150
        }
    })
```

Paste this into the JavaScript view; the editor can also show JavaScript as blocks, so try switching views. It needs a tilemap named level1 with wall tiles for a floor, drawn in the tilemap editor, because tilemaps are not written in code.

### The jump, worked out (our calculation)

The docs give the rule for acceleration: a sprite at speed 0 with an acceleration of 2 is moving at 2 pixels per second after one second, and 4 after two. Our jump starts at 150 pixels per second upward, and gravity of 350 takes that away each second.

So the hero reaches the top after 150 / 350 = 0.43 seconds. The height of the jump is 150 x 150 / (2 x 350) = 22,500 / 700, about 32 pixels: two tiles of 16 pixels, the tile size the documentation’s own examples use.

### Tuning it

A floaty jump has gravity too weak for its speed. A jump that barely leaves the ground has speed too low for its gravity. Change one number at a time and press play.

A useful classroom target is a jump that clears exactly the gap or wall in your level. Work out the height first, then test it, and the numbers stop being guesses.

### Practice 1 (ours)

Keep ay at 350 and jump with vy = -200. About how high does the hero go? (Answer: 40,000 / 700, about 57 pixels.)

### Practice 2 (ours)

You want a jump of 48 pixels, three tiles, with ay = 350. Which speed works? (Try vy = -183: 183 x 183 / 700 is about 48.)

### Practice 3 (ours)

Double ay to 700 and keep vy at -150. What happens to the height? (It halves, to about 16 pixels.)

Levels

## How to make levels in MakeCode Arcade with tilemaps

In MakeCode Arcade a level is a tilemap: a grid of tiles drawn in the editor and stored in the project’s assets. The docs say a game can have more than one tilemap, and changing the tilemap changes the level.

| Block or function | What the documentation says it does |
| --- | --- |
| set tilemap | Sets a tilemap as the current tilemap for the game scene |
| set wall at | Makes a tile a barrier, so sprites cannot pass through it, or turns it back |
| on overlap tile | Runs code when a sprite of a chosen kind overlaps a tile |
| place on random tile | Moves a sprite to a random tile of a chosen type; with only one such tile, always that one |
| camera follow sprite | Moves the scene so a sprite stays in view in a scene bigger than the screen |
| game over | Stops the game and shows the current and highest scores; win can be true or false |

***Program 2 · a goal tile that loads level 2**typescript*

```
// Two levels and a goal tile (ours)
let level = 1
scene.onOverlapTile(
    SpriteKind.Player,
    assets.tile`goal`,
    function (sprite, location) {
        if (level == 1) {
            level = 2
            tiles.setTilemap(tilemap`level2`)
            tiles.placeOnRandomTile(sprite,
                assets.tile`start`)
        } else {
            game.over(true)
        }
    })
```

It assumes two tilemaps named level1 and level2, a tile named goal at the end of each level, and a tile named start where level 2 begins. Draw them in the editor first; the names in the code must match the names in the assets.

### Why a level variable

Without the level variable, touching the goal on level 2 would load level 2 again forever. One number that remembers where the player is turns a loop into a sequence.

This is the same idea as a save slot in a big game: the program keeps a little state and decides what happens next from it.

### Designing a level that works

Draw the floor first and mark it as walls, then place the start and the goal, then add hazards. A level that cannot be finished is a classic bug, and it is a design bug, not a code bug.

Play your own level start to finish after every change. If you need to jump a gap, use the jump height from the section above to size it.

Common problems

## Why your MakeCode Arcade game is not doing what you expected

These are classic MakeCode Arcade problems. Each cause comes from a documented rule, so the fix is not a guess.

| What happens | The documented rule behind it | Fix |
| --- | --- | --- |
| The jump button does nothing | is hitting tile returns false unless the sprite is moving | Make sure gravity (ay) is set so the hero keeps pressing on the floor |
| The hero flies with each press | Nothing stops a jump in mid air | Wrap the jump in the is hitting tile, bottom check |
| The hero walks off the screen | A moving sprite leaves the screen unless something stops it | Use camera follow sprite, or set stay in screen |
| The hero falls through the floor | Wall tiles are what create a barrier for sprites | Mark floor tiles as walls in the tilemap editor |
| Up and down fight gravity | move sprite sets vertical speed from the buttons | Set the vy value in move sprite to 0 in a platformer |
| An event runs again and again | A button event can be pressed, released or repeated | Choose pressed, not repeated, for a single jump |

### The rule behind a classic jump bug

The docs put it plainly: the sprite must be in motion, with a vx or vy that is not 0, before the check for a tile hit; otherwise false is returned even though the sprite is touching the wall tile.

Our reading of that rule: with no gravity, a hero standing still has a vy of 0, so the check fails and the jump never fires. Gravity keeps a little downward motion going, and the check works.

### How to find a bug yourself

Make the sprite tell you what it knows. A say block showing vy, or whether is hitting tile is true, turns an invisible number into something you can watch while you play.

Then change one thing, play again, and note what changed. That habit is what our teachers practise with students in every class, whatever the tool.

Lost work

## Where MakeCode Arcade saves your projects, and how to keep them

The most painful MakeCode question is the one asked after a project disappears. The documentation explains exactly where projects live, which also explains how they get lost.

| Question | What the documentation says |
| --- | --- |
| Where is my project? | In the browser’s local indexed data store, named or as an Untitled project |
| What is in a project? | Four files: main.ts, main.blocks, README.md and pxt.json |
| What deletes it? | Clearing browsing data removes all saved projects and the offline files |
| What survives? | A project you shared to the public cloud is still there |
| Who can see a shared project? | Anyone who has its shared URL |
| Can I go back a version? | Yes, with GitHub: History, then View commits |
| How do I keep a copy? | The Save icon downloads a PNG that also encodes your game |

### Why school projects vanish

Because projects live inside one browser on one computer, a project made on a school laptop is not on the home computer, and a laptop that clears its browsing data at the end of the day takes the project with it.

Signing in to a different browser profile has the same effect. The project is not deleted; it is in a browser you are not using.

### A habit that prevents it

At the end of every session, download the project file with the Save icon and keep it in your school drive or email it to yourself. Opening that file later brings the whole game back.

For work you share with a teacher, use the Share button. Remember that anyone with the link can see it, so share it only with the people it is meant for.

Sources, read 17 October 2026: [Saving projects](https://arcade.makecode.com/save), the [MakeCode Arcade FAQ](https://arcade.makecode.com/faq) and [Publishing games](https://arcade.makecode.com/publishing-games). We are not connected with Microsoft.

At school

## MakeCode Arcade at school: blocked sites, offline use and the three views

MakeCode Arcade appears in US high school courses that Microsoft lists on its own courses page, including an AP Computer Science Principles course and a full-year introduction to computer science, plus activities for grades 5 to 12.

### If the editor will not load at school

School networks sometimes block the sites MakeCode needs. The FAQ lists domains to unblock, among them https://makecode.com, https://cdn.makecode.com, https://api.github.com and https://immersivereaderprod.cognitiveservices.azure.com, alongside the editor’s own address.

A student cannot change a school network. Show that list to the teacher or the school’s technology staff, who can.

### Working without internet

The docs describe two routes. The web editor is cached in the browser the first time it loads, so it can keep working offline; adding a new extension needs a connection again.

There is also an offline app that installs on a Windows or Mac computer and works the same way as the web editor.

| View | What the docs say | Who it suits |
| --- | --- | --- |
| Blocks | Blocks snap into each other; the on start event runs first | Beginners, and anyone planning a game |
| JavaScript | JavaScript along with the Static TypeScript language | Students ready to type, and AP CSP students |
| Python | Python along with the JavaScript language | Students who already use Python in class |

Sources, read 17 October 2026: [MakeCode Arcade courses](https://arcade.makecode.com/courses), [Using MakeCode offline](https://arcade.makecode.com/offline), [JavaScript](https://arcade.makecode.com/javascript) and [Python](https://arcade.makecode.com/python).

Class assignments

## Help with a MakeCode class project, without doing it for you

Some students come to us in the middle of a graded MakeCode unit. Here is how we handle that.

### What we teach

We teach the idea the assignment is testing: events, variables, velocity and acceleration, conditions, tilemaps. Students practise it on a different small game, then go back and solve their own assignment.

That way the grade reflects what the student can do, and the next unit is easier rather than harder.

### What we will not do

We do not write or finish graded assignments, and we do not provide answer keys. If a student asks for the answer, the teacher asks the question that leads to it.

If your class has rules about outside help, follow them, and tell your teacher you are learning with a tutor.

Ready for more after Arcade? Our [Scratch coding classes](/scratch-coding-classes-for-kids) suit younger students, the [guide to coding games and platforms](/blog/top-coding-games-platforms-make-learning-fun-kids) compares the options, and [Minecraft coding classes](/minecraft-coding-classes-for-kids) use a MakeCode editor too.

From blocks to typed code

## Four stages of an Arcade game maker

Where a student might be after a school unit, and what comes next.

| Stage | What it looks like |
| --- | --- |
| 1. Follower | Finishes the built-in tutorials step by step |
| 2. Tinkerer | Changes speeds and images to see what happens |
| 3. Designer | Plans a level, sets jump numbers on purpose, adds a second level |
| 4. Typist | Switches to JavaScript or Python view and writes code directly |

### For parents

Arcade is a real foundation. Velocity, events and conditions are the same ideas used in professional game engines.

The step from stage 3 to stage 4 is where a teacher helps most, because typed code brings typing errors with it.

### For students

Switch to JavaScript view now and then, even if you write in blocks. Reading your own program as text is the fastest way to stage 4.

Finish small games. A one-level game that works teaches more than a ten-level plan.

The catalogue

## Nine courses after MakeCode Arcade

Every one is live, with a regular teacher, in a group batch or private lessons.

I

### Kids

Ages 6 to 12

MCA / KID / 01

#### Scratch coding

More blocks, bigger games.

[Open the syllabus](/courses/scratch-programming-complete-course)

MCA / KID / 02

#### Minecraft coding

MakeCode blocks in a 3D world.

[Open the syllabus](/courses/minecraft-coding-for-kids-course)

MCA / KID / 03

#### Python for kids

From Arcade’s Python view to real Python.

[Open the syllabus](/courses/python-ai-kids-masterclass)II

### Teens

Ages 13 to 18

MCA / TEN / 01

#### JavaScript for teens

Browser games written by hand.

[Open the syllabus](/courses/javascript-course-for-teens-beginners-interactive-web)

MCA / TEN / 02

#### Python for teens

Games, data and AI projects.

[Open the syllabus](/courses/python-complete-masterclass-teens)

MCA / TEN / 03

#### Game development for teens

From 2D sprites to Unity.

[Open the syllabus](/courses/complete-game-development-masterclass-for-teens)III

### Going further

Teens and adults

MCA / PRO / 01

#### Roblox coding in Luau

The jump to 3D and real players.

[Open the syllabus](/courses/roblox-game-coding-for-kids-lua-course)

MCA / PRO / 02

#### C++ for teens

The language of game engines.

[Open the syllabus](/courses/cpp-programming-masterclass-for-teens)

MCA / PRO / 03

#### Vibe coding for teens

Building with AI, carefully.

[Open the syllabus](/courses/vibe-coding-for-teens-python-web-ai-projects-course)

How lessons run

## Live classes that start from your own game

Weekdays or weekends, flexible: choose your batch, or for a very personalised plan choose 1-on-1 at your convenience, weekend mornings or weekdays.

Weekdays

A batch after school, in your own time zone.

Weekends

Weekend mornings for longer building sessions.

1-on-1

Times you choose, around school.

### Open your project

Arcade runs in the browser, so class starts there.

### Blocks or text

We work in whichever view you use.

### Same teacher

Week after week, one person.

### Concepts, not answers

You solve your own assignments.

### All fifty states

Online, from any US time zone.

### Batch or private

A group of fifteen to twenty, or one to one.

Student work

## Projects our students went on to build

A few finished projects by our students. See more on the [student labs](/student-labs) page.

![NutriLife AI nutrition coach project screenshot](/images/projects/nutrilife.webp)

AI and ML

#### NutriLife

An AI nutrition coach that reads what you eat and works you toward a target.

by Bhavya · [Open it](https://nutrilife-bhavya.lovable.app)

![Misti AI chatbot for maths and coding screenshot](/images/projects/misti.webp)

AI and ML

#### Misti

A chatbot that answers mathematics and programming questions, built and deployed by a student.

by Harshit · [Open it](https://misti.modernagecoders.com)

![GuardianX AI internet safety assistant screenshot](/images/projects/guardianx.webp)

AI and ML

#### GuardianX

An assistant that helps a young person recognise unsafe situations online.

by Vivaan · [Open it](https://guardianx-cybersaver.lovable.app)

![SkyCast weather forecast application screenshot](/images/projects/skycast.webp)

Web app

#### SkyCast

A weather forecasting site with live conditions for any location.

by Krish

Fees

## Fees

MakeCode Arcade costs nothing, and the first lesson is free too. Regular classes are paid for a month at a time, in US dollars, and you can stop after any month.

Free first class

USD 0

no card required

- A free first lesson
- Bring your Arcade game
- No card asked for

Book it

Group batch

USD 100

a month, billed in US dollars

- Fifteen to twenty in a batch
- A regular teacher
- You choose the batch
- Billed monthly

Start here

One to one

USD 150

a month, billed in US dollars

- Private lessons
- Scheduled around school
- Built on your project

Enquire

What families say

## Rated 4.9 across 547 Google reviews

Parent reviews from Google, unchanged.

★★★★★

"The one step solution for my son. Modern Age Coders make learning coding so simple that kids love it. The teachers explain complex concepts clearly with practical exercises and interactive content."

Ria Mukherjee

Parent

★★★★★

"Modern Age Coders has been a game-changer for me. I struggled to grasp IT concepts and coding before joining, but their classes transformed everything. I can now confidently write complex programs with ease."

Samriddha Mondal

Student

★★★★★

"One of the most wonderful education centres out there. Education is not limited to school syllabus but focuses on skill development."

Vansh Agarwal

Student

★★★★★

"My child Dhairya is really enjoying the Modern Age Coders classes. This is his first online class and he eagerly looks forward to it. I can already see his improvement, and the teachers are very cooperative."

Sonam Oswal

Parent of Dhairya

★★★★★

"Modern Age Coders have wonderful teachers who teach in a clear, easy and practical way. The teacher boosts students' confidence and inspires them to learn without hesitation."

Sonu Goyal

Parent

★★★★★

"I highly recommend this computer coding class! The teachers are incredibly knowledgeable and passionate about coding."

Ritu Kedia

Parent

Questions from students and parents

## MakeCode Arcade: common questions

### How do you make a sprite jump in MakeCode Arcade?

Set a positive ay on the sprite for gravity, then in an on A button pressed event set vy to a negative number, such as -150, but only if is hitting tile, bottom is true, so the sprite jumps from the floor.

### How do you add gravity in MakeCode Arcade?

Set the sprite's ay property, its vertical acceleration in pixels per second per second. A positive value speeds the sprite toward the bottom of the screen, which works as gravity.

### Why does my jump not work in MakeCode Arcade?

The docs say is hitting tile returns false unless the sprite is moving, even when it touches a wall tile. Set gravity so the sprite keeps pressing on the floor, and make sure the floor tiles are walls.

### How do you make levels in MakeCode Arcade?

Draw each level as a tilemap in the tilemap editor, then load it with set tilemap. A game can have several tilemaps, and setting a different one changes the level, for example when the player touches a goal tile.

### Where are my MakeCode Arcade projects saved?

In your browser's local data store on that computer. Clearing browsing data removes them, so download a copy with the Save icon or share the project before you leave a school computer.

### Can I get a deleted MakeCode project back?

If the browser data was cleared, only a copy saved elsewhere can bring it back: a downloaded project file, a shared link, or a GitHub repository with its commit history.

### Can MakeCode Arcade work offline?

Yes. The web editor is cached the first time it loads, and Microsoft also offers an offline app for Windows and Mac computers. Adding a new extension needs an internet connection.

### Does MakeCode Arcade use real code?

Yes. Besides blocks, it has a JavaScript view, using JavaScript with Static TypeScript, and a Python view. Students can switch views and see the same program as text.

### Can you do my MakeCode assignment?

No. We never write graded work or give answer keys. We teach the concept behind the assignment, such as velocity or tilemaps, so the student can complete it on their own.

### When are classes for US students?

Weekdays or weekends, flexible: choose your batch, or for a very personalised plan choose 1-on-1 at your convenience, weekend mornings or weekdays.

### What do game coding classes cost?

The first lesson is free. After that, classes are paid monthly, and the fees part of this page states that monthly price in US dollars.

Elsewhere on this site

## Related pages

More for US students who like making games.

### [Scratch coding classes](/scratch-coding-classes-for-kids)

Block coding for younger game makers.

### [Minecraft coding classes](/minecraft-coding-classes-for-kids)

Another MakeCode editor, in 3D.

### [Coding games and platforms](/blog/top-coding-games-platforms-make-learning-fun-kids)

How the popular tools compare.

### [Coding classes in the USA](/coding-classes-in-united-states)

Our full set of pages for US families.

### [Coding for 10 year olds](/coding-for-10-year-olds)

What fits at that age.

### [How we teach](/how-we-teach)

A look inside a live class.

### [Roblox Studio errors fixed](/roblox-studio-errors-fixed)

Roblox Studio errors from the Creator docs: 403, 502, HTTP, endless waits.

### [Khan Academy CS vs live classes](/khan-academy-computer-science-vs-live-classes)

Khan Academy CS or live classes? A fair comparison, built from Khan Academy descriptions of its course.

### [CodeHS help for students](/codehs-help-for-students)

CodeHS help: resets, debugger, unit tests, autograder messages and login fixes.

Start here

## Book a free first lesson

Send us the share link to your Arcade game, or just describe it. The teacher plays it before the lesson and plans the next step from there.

Want to know what a lesson is like first? Read [how our classes run](/how-we-teach), or open any syllabus on [our course list](/courses).

[WhatsApp us](https://wa.me/919123366161?text=Hello%20Modern%20Age%20Coders%2C%20my%20child%20in%20the%20US%20uses%20MakeCode%20Arcade%20at%20school%20and%20wants%20to%20go%20further%20with%20game%20coding.%20Could%20we%20book%20a%20free%20first%20lesson%3F) · [+91 91233 66161](tel:+919123366161) · [connect@modernagecoders.com](mailto:connect@modernagecoders.com)

Our teaching team works from India, entirely over live video, so families in every US state join the same way. WhatsApp is the quickest channel for questions.

### Want a class sooner? Book a priority demo

A priority demo is a full class of about 45 to 60 minutes. After the class the mentor sends a written skill report and a personal learning roadmap on WhatsApp. If you enrol, the demo fee is adjusted against your first month's fee. Share your demo Order ID with us on WhatsApp and we take it off.

[Book a priority demo](/book-demo)

## Keep exploring Modern Age Coders

### Related courses and guides

- [MATHCOUNTS Preparation Online: Sprint, Target, Team, Countdown](/mathcounts-preparation)
- [Lua for Kids: Learn Lua and Luau with Real Code](/lua-for-kids)
- [Minecraft Coding Classes in Australia](/minecraft-coding-classes-australia)
- [Leaving Cert Computer Science Grinds Online](/leaving-cert-computer-science-grinds-online)
- [Learn to Code Over 50, UK](/learn-to-code-over-50-uk)
- [11 Common Coding & Maths Mistakes Students Make](/mistakes-students-make)
- [TASC Computer Science Help](/tasc-computer-science-help)
- [Coding Classes for DPS Rohini Students](/coding-classes-for-dps-rohini-new-delhi)
- [Roblox Studio Errors Fixed: 403, 502, HTTP and Output](/roblox-studio-errors-fixed)

### Free resources

- [HTML & CSS Tutorial: Build Websites from Scratch](/resources/html-and-css)
- [Introduction to C++](/resources/cpp/introduction-to-cpp)
- [Modern CSS - Container Queries, Subgrid, clamp](/resources/html-and-css/modern-css-features)
- [Smart Pointers and Modern Memory Management](/resources/cpp/smart-pointers-and-memory)

### From the blog

- [How to Make a Text Adventure Game in Python](/blog/how-to-make-a-text-adventure-game-in-python)
- [How College Students Can Build Real-World Projects While Studying](/blog/how-college-students-build-real-world-projects-while-studying)
- [How Data Analytics and Math Help Businesses Make Better Decisions](/blog/data-analytics-math-help-businesses-better-decisions)

### Start here

- [Modern Age Coders pricing, one honest price per plan](/pricing)
- [How Modern Age Coders teaches, small batches and real projects](/how-we-teach)

Free class[Priority demo](/book-demo)[Call us](tel:+919123366161)

---

*Canonical: https://learn.modernagecoders.com/makecode-arcade-help-for-students*
