私はAndroid用のandengineを使用していますが、複数のボールがそれらと画面の境界の間で跳ね返っています。問題は、衝突時に X 方向と Y 方向を逆にすることで、バウンス効果がリアルにならないようにすることです。どうすればよいでしょうか?
@Override
protected void onManagedUpdate(final float pSecondsElapsed) {
if(this.mX < 0) {
this.mPhysicsHandler.setVelocityX(DEMO_VELOCITY);
} else if(this.mX + this.getWidth() > CAMERA_WIDTH) {
this.mPhysicsHandler.setVelocityX(-DEMO_VELOCITY);
}
if(this.mY < 0) {
this.mPhysicsHandler.setVelocityY(DEMO_VELOCITY);
} else if(this.mY + this.getHeight() > CAMERA_HEIGHT) {
this.mPhysicsHandler.setVelocityY(-DEMO_VELOCITY);
}
for (int i = 0; i < Bolas.size(); i++) {
if (this.collidesWith(Bolas.get(i)) && Bolas.get(i).equals(this) == false) {
// ????????????????????????????????
this.mPhysicsHandler.setVelocityY((-1) * this.mPhysicsHandler.getVelocityY());
this.mPhysicsHandler.setVelocityX((-1) * this.mPhysicsHandler.getVelocityX());
}
}
super.onManagedUpdate(pSecondsElapsed);
}
ありがとうございました。