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

时间:2014-06-17 04:05:15

标签: java

private void update(float delta) {

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

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

}

因此,假设我在ClassA中使用了上述方法,但我想使用

playerRectangle.setPosition(getX() + velocity.x * delta, 300);
但是,对于ClassB,delta不会在ClassB中定义,所以我想知道如何获得delta值?

*我在ClassA中为velocity和playerRectangle制作了getter方法

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;
}

2 个答案:

答案 0 :(得分:0)

这样做

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

这只有在所有功能和   对象( ie; getx(),velocity.x,delta)都是公开的。

答案 1 :(得分:0)

在您的Player类

中包含setPlayerRectangle方法
public void setPlayerRectangle(Rectangle rectangleObject){
    playerRectangle= rectangleObject;
}

然后

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);

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

playerObj.setPlayerRectangle(yourRectangle);