I have a formula coded which seems to me like it should work, but the sprite never comes back down.
Here's what I have:
package myplatformer;
import java.awt.Rectangle;
import java.awt.Image;
import java.awt.event.KeyEvent;
import javax.swing.ImageIcon;
public class Character
{
String path = "C:/Users/Zack/Desktop/webpage/mario.png";
Image image;
private int dx, dy, x, y, width, height;
private boolean visible;
public Character()
{
image = new ImageIcon(path).getImage();
width = image.getWidth(null);
height = image.getHeight(null);
visible = true;
x = 100;
y = 230;
}
public void move()
{
x+=dx;
y +=dy;
if(x<0)
x=0;
}
public int getX()
{
return x;
}
public int getY()
{
return y;
}
public Image getImage()
{
return image;
}
public void setVisible(boolean visible)
{
this.visible = visible;
}
public boolean isVisible()
{
return visible;
}
public Rectangle getBounds()
{
return new Rectangle(x,y,width,height);
}
public void keyPressed(KeyEvent e)
{
int key = e.getKeyCode();
if(key == KeyEvent.VK_RIGHT)
dx = 1;
if(key == KeyEvent.VK_LEFT)
dx = -1;
if(key == KeyEvent.VK_SPACE)
{
// this code should make it jump
final int jumph = 20;
final int steps = 20;
for(int i = 0; i<steps; i++)
{
dy = -(-1*i*i+jumph*i);
}
}
}
public void keyReleased(KeyEvent e)
{
int key = e.getKeyCode();
if(key == KeyEvent.VK_RIGHT)
dx = 0;
if(key == KeyEvent.VK_LEFT)
dx = 0;
if(key == KeyEvent.VK_SPACE)
dy = 0;
}
}
Here's my logic behind this piece of the code"dy = -(-1*i*i+jumph*i);":
With that formula the y cord should go:
0 -19 -36 -51 -64 -75 -84 -91 -96 -99 -100 99 96 91 84 75 64 51 36 19 0
But it doesn't.
Also, this jump happens VERY fast. Is there a better way to do this to make the movement slower?

New Topic/Question
Reply



MultiQuote



|