Java 从一个类到另一个类获取值

Java 从一个类到另一个类获取值,java,Java,假设我在ClassA中有上面的方法,但我想使用 private void update(float delta) { playerRectangle.setPosition(getX() + velocity.x * delta, 300); setX(getX() + velocity.x * delta); } 然而,对于ClassB,delta不会在ClassB中定义,所以我想知道如何获得delta值 *我在ClassA中制作了速度和playerRectangle的

假设我在ClassA中有上面的方法,但我想使用

private void update(float delta) {

    playerRectangle.setPosition(getX() + velocity.x * delta, 300);

    setX(getX() + velocity.x * delta);

}
然而,对于ClassB,delta不会在ClassB中定义,所以我想知道如何获得delta值

*我在ClassA中制作了速度和playerRectangle的getter方法

playerRectangle.setPosition(getX() + velocity.x * delta, 300);
这就行了

public class Player extends Sprite implements InputProcessor{

private Vector2 velocity;
private float speed = 500;
private Rectangle playerRectangle, rightRectangle, leftRectangle;

public Player(Sprite sprite){
    super(sprite);
    playerRectangle = new Rectangle(0,0,286,160);
    rightRectangle = new Rectangle(1280,0,0,720);
    leftRectangle = new Rectangle(0,0,0,720);
    velocity = new Vector2(0,0);

}

public void draw(SpriteBatch spriteBatch){
    update(Gdx.graphics.getDeltaTime());
    super.draw(spriteBatch);
}

private void update(float delta) {

    playerRectangle.setPosition(getX() + velocity.x * delta, 300);

    setX(getX() + velocity.x * delta);

}

public Rectangle getPlayerRectangle(){
    return playerRectangle;
}

public Rectangle getRightRectangle(){
    return rightRectangle;
}

public Rectangle getLeftRectangle(){
    return leftRectangle;
}

public Vector2 getVelocity(){
    return velocity;
}
只有在所有功能和 对象(ie;getx(),velocity.x,delta)都是公共的


在玩家类中包含setPlayerRectangle方法

ClassA obj= new ClassA();
obj.playerRectangle.setPosition(obj.getX() + obj.velocity.x * obj.delta, 300);
然后

您没有提到getX()方法定义在哪里,如果它在Player类中, 然后编写playerbj.getX()。。 然后将其设置为playerObj

Player playerObj = new Player(spriteObject);
....
....
// Create a new Rectangle object with/without arguments as per your need
Rectangle yourRectangle = new Rectangle();
yourRectangle.setPosition(getX() + playerObj.getVelocity().x *deltaValue, 300);

请提供课程代码。您能提供
velocity
playerRectangle
课程的代码吗?很抱歉,刚刚更新。这个问题非常不清楚
delta
只是传递给方法的参数。是什么阻止您将相同的值传递给另一个类上的另一个方法?抱歉,刚刚更新了它。ClassA接受了一个精灵,如果这个物质我相信如果变量是公共的,它会起作用。但是对于private,您不能访问其中的任何函数,因为它的作用域在类中。扩展类不会真正阻止任何东西。它的所有对象和变量都来自JVM。问题是,我必须在ClassA中创建字段“delta”,但我想使用更新方法的“delta”。你不能从外部调用私有方法,你可以创建一个公共函数并从中调用更新函数。否则更改更新函数public。正如我所看到的,
Gdx.graphics.getDeltaTime()
是一个静态值,因此您可以从任何地方获得它。!!选择任何一个选项。对,我做了。我把它公开了,如果我使用'obj.delta'和Gdx.graphics.getDeltaTime()的话,仍然会得到相同的结果。getDeltaTime()似乎不起作用,但我会尝试研究一下。
Player playerObj = new Player(spriteObject);
....
....
// Create a new Rectangle object with/without arguments as per your need
Rectangle yourRectangle = new Rectangle();
yourRectangle.setPosition(getX() + playerObj.getVelocity().x *deltaValue, 300);
playerObj.setPlayerRectangle(yourRectangle);