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;
}
答案 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);