Java 从一个类到另一个类获取值
假设我在ClassA中有上面的方法,但我想使用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的
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);