Im making a soccer game where you basically have to shoot the ball to the goal and the ball goes to where you touch the screen. Im having an issue with the ball though, when the ball spawns on the player it goes directly to the top left corner of the screen, without even touching the screen. This might be really easy but I cant seem to find the solution
Here's the code:
Ball class
public void shootToward(float targetX, float targetY) {
velocity.set(targetX - position.x, targetY - position.y);
}
public void update(float deltaTime) {
position.add(velocity.x * deltaTime, velocity.y * deltaTime);
velocity.scl(1 - (1f * deltaTime));
}
Game class
public void create () {
cam = new OrthographicCamera();
cam.setToOrtho(false, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
batch = new SpriteBatch();
batch.setProjectionMatrix(cam.combined);
player = new Sprite(player1);
player.setX(MathUtils.random(Gdx.graphics.getWidth()));
player.setY(MathUtils.random(Gdx.graphics.getHeight() / 2));
b.position.set(player.getX(), player.getY());
}
public void render () {
Gdx.gl.glClearColor(255, 255, 255, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
b.update(Gdx.graphics.getDeltaTime());
batch.begin();
batch.draw(bg, 0, 0);
batch.draw(goal1, Gdx.graphics.getWidth()/4-20, Gdx.graphics.getHeight() - 180, 420, 130);
if (!Gdx.input.isTouched()) {
batch.draw(bs, b.position.x, b.position.y);
b.shootToward(Gdx.input.getX(), Gdx.graphics.getHeight() - Gdx.input.getY());
}
player.draw(batch);
batch.end();
}
Thanks in advance.