Java setVelocity不';不要在屏幕外改变
我刚刚开始学习AndEngine,正在学习一个关于精灵移动的教程,我想如果我想在它离开屏幕后反转它,我会这样做Java setVelocity不';不要在屏幕外改变,java,android,box2d,andengine,Java,Android,Box2d,Andengine,我刚刚开始学习AndEngine,正在学习一个关于精灵移动的教程,我想如果我想在它离开屏幕后反转它,我会这样做 @Override public void move() { this.mPhysicsHandler.setVelocityX(-100); this.mPhysicsHandler.setVelocityY(100); OutOfScreenX(); OutOfScreenY(); } // =====================
@Override
public void move() {
this.mPhysicsHandler.setVelocityX(-100);
this.mPhysicsHandler.setVelocityY(100);
OutOfScreenX();
OutOfScreenY();
}
// ===========================================================
// Methods
// ===========================================================
private void OutOfScreenX() {
if (mX > MainActivity.CAMERA_WIDTH) { // OutOfScreenX (right)
mX = 0;
} else if (mX < 0) { // OutOfScreenX (left)
mX = MainActivity.CAMERA_WIDTH;
}
}
private void OutOfScreenY() {
if (mY > MainActivity.CAMERA_HEIGHT) { // OutOfScreenX (right)
this.mPhysicsHandler.setVelocityY(-1000);
Log.d("Changing Direction","Changed");
} else if (mY < 0) { // OutOfScreenX (left)
mY = MainActivity.CAMERA_HEIGHT;
}
}
@覆盖
公开作废动议(){
这个.mpphysicandler.setVelocityX(-100);
这个.mpphysicandler.setVelocityY(100);
OutOfScreenX();
离筛();
}
// ===========================================================
//方法
// ===========================================================
隐私权{
如果(mX>MainActivity.CAMERA_WIDTH){//OutOfScreenX(右)
mX=0;
}else如果(mX<0){//OutOfScreenX(左)
mX=MainActivity.CAMERA_宽度;
}
}
私隐无效{
如果(mY>MainActivity.CAMERA_HEIGHT){//OutOfScreenX(右)
这个.mpphysicandler.setVelocityY(-1000);
Log.d(“改变方向”、“改变”);
}else如果(mY<0){//OutOfScreenX(左)
mY=main Activity.CAMERA\u高度;
}
}
不幸的是,所有这些都会使精灵在屏幕底部反弹。是否有任何理由修复此问题以及如何修复?我知道另一种方法是通过将速度乘以负速度来反转速度,但这似乎也不起作用
如果有人能给我指出正确的方向,我将不胜感激
谢谢 我假设您正在稳定地调用move()-方法 执行此操作时,y速度设置为100,然后调用OutOfScreenY方法检查精灵的位置。在这种方法中,y速度被设置为-1000,因此精灵的移动方向相反 但是再次调用move()-methos,将速度设置回100。然后,又一次,outofscreen方法被称为a,它将速度更改为-1000
速度在100到-1000之间稳定地变化,这可以解释反弹的原因。this.mpphysicandler.setVelocityY(-1000);为什么它被设置为-1000?不应该是-100吗?不管你设置什么,结果都是一样的。我用1000来测试它是否能跳得更大,但它也没有。