# I’m making a 2D platformer (How do you make a Ball or Sprite 'jump'?)

I need help coding the jump on my 2D platformer as it doesn’t look or feel good to use.

Welcome Samuel.

??? could you explain what you mean by 'jump' and 2D platformer. Perhaps post a screen image or provide more explanation.

The player sprite is against an immovable background and I want it to jump up like in 2D Mario games then fall back down. Essentially Brawhalla or Super Smash Bros jumping mechanics.

Generic advice is in this tutorial Creating Animated Apps .

You would need something like the code in Figure 17-7.

Perhaps this will help Oh My Spikes – Create a game from scratch using App Inventor | Imagnity . It has jumping a barriers.

I’m gonna be honest, I’m new to MIT, would animating the sprite which is just a red circle until I get a proper player model make the jump work better than making the heading and speed change, or should I make the sprites Y go up in a loop or every let’s say 0.001 seconds until it’s Y hits 450 the call it’s Y to decrease.

The ball works like a Sprite except you can use the center coordinates of the ball. When you use a sprite, the app 'thinks' the coordinates of the sprite is the coordinates of the top left corner. You need to consider that when programming sprite behavior. You can compensate for the fact you don't have use of the sprite's center unless you provide code to shift the left corner by realizing its center is 1/2 the width of the sprite and 1/2 the height .

There probably are several ways to make a sprite 'jump'.
To make the sprite go up and down you can use the ball.MoveTo a point yNow to yNow-number of pixels you want to jump. x can stay the same or be used to move the jumper to the right or left by adding or subtracting the number of pixels to move laterally. You might also use a Clock to cycle the action.

To get the effect you want you will need to experiment. Your idea might work. Why not try it?

Thank you, I’ll try that out.

Try this very simple example and experiment with it too.

jumpOnCanvas.aia (2.0 KB)

It will work in the emulator.

I’m making a 2d game which I want the jump to feel like super smash bros jump or brawhalla jump, I don’t know why it doesn’t work or how to make it look good when it does work

You can't loop to wait.

Here is a relevant project from the defunct Scott Ferguson graphics library:
GravityExercise.aia (4.4 KB)

(My attempts at flinging with a trackball were mostly futile, but I got a bounce or two out of it.)

I don’t understand why the jump code doesn’t work when the player is moving, the timer interval is 10 so it goes up smoothly, or is there a better way to code it and keep player control.

Please stop creating new topics, post in this topic when you have a new question about the same topic!

Your two tests (0 and 450) are paper thin.

If you replace them with UpdateTimer >= 0
that would give Y more chance to change.

I don't see the point of enabling a Timer in that Timer event.
How would you reach that code if the Timer was not enabled already?

perhaps this is a solution I’m making a 2D platformer (How do you make a Ball or Sprite 'jump'?) - #7 by SteveJG .

Thanks for that, I had that as my jump code for a while but it doesn’t feel natural it’s just teleporting, would there be a way using a timer that I can make the character move up let’s say 1 pixel with a time interval of 10? Would I have to do it a different way?

I’ve seen in unity tutorials people coding gravity and people recommending gravity code to make physics in my 2d platformer I’m coding. Does anyone have any idea how I could go about coding gravity without chang8ng the sprites heading and giving the player as much movement control as possible. (preferably like brawhalla or super smash bros movement)

This is second warning :

Keep the same topic in same thread, or it will be considered as spamming the community.

I’m so sorry, I’m new to the community, would you please explain how I would do that

TimeInterval of 10 ms? Not really practical with App Inventor's slow graphics. 300 ms is ave. duration of an eyeblink. You would make your device cpu cry. Regarding ' doesn’t feel natural it’s just teleporting,' .. how should the ball jump naturally. Provide an example.

Perhaps, App Inventor's graphics are not designed for fast action games. Try a compiler that is.
designed for fast action

If you are determined to use a slow graphics compiler, see the posts by Scott Ferguson, probably the pre eminent coder for AI game graphics.