[英]Getting a value from one class to another
private void update(float delta) {
playerRectangle.setPosition(getX() + velocity.x * delta, 300);
setX(getX() + velocity.x * delta);
}
So let's say I have the above method in ClassA but I want to use 假设我在ClassA中有上述方法,但我想使用
playerRectangle.setPosition(getX() + velocity.x * delta, 300);
for ClassB, however, delta would not defined in ClassB, so I was wondering how would I get the delta value? 但是,对于ClassB,delta不会在ClassB中定义,因此我想知道如何获取delta值?
*I made getter methods for velocity and playerRectangle in ClassA *我在ClassA中为速度和playerRectangle设置了吸气方法
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;
}
This will do 这会做
ClassA obj= new ClassA();
obj.playerRectangle.setPosition(obj.getX() + obj.velocity.x * obj.delta, 300);
this will only work if all the functions and objects( ie; getx(),velocity.x,delta ) are all public.
仅当所有函数和对象( 即 getx(),velocity.x,delta)全部公开时,这才起作用。
Include a setPlayerRectangle method in your Player class 在Player类中包含setPlayerRectangle方法
public void setPlayerRectangle(Rectangle rectangleObject){
playerRectangle= rectangleObject;
}
Then 然后
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);
You didn't mention where is the getX() method defined, if its in the Player class, then write playerObj.getX().. and then set it to playerObj 您没有提到getX()方法在哪里定义,如果它在Player类中,则编写playerObj.getX()..然后将其设置为playerObj
playerObj.setPlayerRectangle(yourRectangle);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.