Попытка реализовать гравитацию игрока для моего тестового блока для класса игрока (руководство по платформе RealtutsGml) - PullRequest
0 голосов
/ 17 апреля 2019

Я следую учебному пособию по realTutsgml, пытаясь реализовать гравитацию для класса игрока, для которого я использую список ссылок для ссылки на мой класс Gameobject.

public class Player extends GameObject {

    private float width = 32, height = 64;
    private float gravity = 0.05f;



    public Player(float x, float y, ObjectId id) {
        super(x, y, id);

    }
    public void tick(LinkedList<GameObject> object) {
        x += velX;
        y += velY;

        if(falling||jumping)
        {
            velY += gravity;
        }
    }

Мне удалось нарисовать тестовый блок на экране, который был создан в игровом классе в методе init

handler.addObject(new Player(100, 100, ObjectId.Player));

Класс GameObject

public abstract class GameObject 
{

    protected float x, y;
    protected ObjectId id;
    protected float velX = 0, velY = 0;
        protected boolean falling = true;
    protected boolean jumping = false;


    public GameObject(float x, float y, ObjectId id)
    {
        this.x = x;
        this.y = y;
        this.id = id;
    }
    public abstract void tick(LinkedList<GameObject> object);
    public abstract void render(Graphics g);
    public abstract Rectangle getBounds();

    public float getX() {
        return x;
    }
    public float getY() {
        return y;
    }
    public void setX(float x) {
        this.x = x;
    }
    public void setY(float y) {
        this.y = y;
    }
    public float getvelX() {
        return velX;
    }
    public float getvelY() {
        return velY;
    }
    public void setvelX(float velX) {
        this.velX = velX;
    }
    public void setvelY(float velY) {
        this.velY = velY;
    }
    public boolean isFalling() {
        return falling;
    }
    public void setFalling(boolean falling) {
        this.falling = falling;
    }
    public boolean isJumping() {
        return jumping;
    }
    public void setJumping(boolean jumping) {
        this.jumping = jumping;
    }
    public ObjectId getId() {
        return id;
    }
  }

Я добавил геттеры и сеттеры, чтобы сгенерировать возвращаемое значение для прыжковых и падающих логических значений.

...