This site requires JavaScript, please enable it in your browser!
Greenfoot back

Report as inappropriate.

danpost
danpost presents ...

2014/4/15

Jump and Run Demo w/Moving Platform

I tried to make the code as simple as possible for what it does. It has well documented code which can be viewed by clicking the button obstacles across the bottom edge of the world. Use the escape (ESC) key to return to the demo.

Left (<) and right (>) arrows to move.
Up (^) arrow to jump.

9183 views / 1924 in the last 7 days

10 votes | 2 in the last 7 days

Tags: demo jump platform danpost moving_platform source-text

This scenario is a member of: Demos by danpost


Your browser does not support the canvas tag.
danpostdanpost

2017/12/19

Now, updated for HTML 5.
Super_HippoSuper_Hippo

2017/12/19

Is it just me or is the escape button not working with HTML 5? For example in this scenario, I can't leave the code view with escape. (x works). Not sure if this was always the case, but right now, it doesn't seem to work.
danpostdanpost

2017/12/20

@Hippo, escape works for me in HTML5.
Super_HippoSuper_Hippo

2017/12/20

Okay, maybe that's only a problem with Edge and Internet Explorer then.
Nice Game! I like how the code is as simple as possible for a very common game type. Thank you!
saw444saw444

2022/10/5

Why is he not jumping? import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) /** * Write a description of class Dante here. * * @author (your name) * @version (a version number or a date) */ public class Dante extends Actor { /** * Act - do whatever the Dante wants to do. This method is called whenever * the 'Act' or 'Run' button gets pressed in the environment. */ static final int gravity = 2; static final int jumpForce = 30; int xSpeed = 4; int ySpeed = 0; public void act() { // Add your action code here. moveHorizontal(); } public void moveHorizontal() { int worldWidth = getWorld().getWidth(); int myWidth = getImage().getWidth(); int dx = 0; if(Greenfoot.isKeyDown("a")) dx--; if(Greenfoot.isKeyDown("d")) dx++; setLocation(getX()+dx*xSpeed, getY()); } private void moveVertically() { int worldHeight = getWorld().getHeight(); int myHeight = getImage().getHeight(); boolean onGround = false; ySpeed += gravity; setLocation(getX(), getY()+ySpeed); if(getY() > worldHeight-myHeight/2) { ySpeed = 0; onGround = true; } if(onGround && Greenfoot.isKeyDown("w")) { ySpeed =-jumpForce; } } }
saw444saw444

2022/10/5

ah i know why
WkotWkot

2023/2/19

hey could you please explain to me what this: worldHeight-myHeight/2 does, thanks
danpostdanpost

2023/2/19

@Wkot, to prevent the Who actor from sinking below the bottom of the screen, its y-coordinate must be kept below a point in the world that is half the actor's image height less than the world height. That expression gives that y-coordinate of the line that the center of the actor is not allowed to go beyond in the downward direction.
WkotWkot

2023/2/19

ok, thank you very much

See all comments

Want to leave a comment? You must first log in.

Who likes this?

Wkot AbdulrazaqAS Dlantz JBanyer JoyBajwa madflac fejfo JeppDev herusaputra Arthur114