自分自身shweta dodiya.私は私のプロジェクトで結果を達成するために実装したj2meのセンサーとロジックに関連する問題があります。私が実装したロジックは次のとおりです: -ノキアN97センサーに関連するAPIといくつかのJavaロジック
sensor= (SensorConnection) Connector.open("sensor:acceleration");
try {
data = sensor.getData(1);
} catch (IOException ex) {
ex.printStackTrace();
}
for (int i = 0; i < data.length - 1; i++) {
value[i] = data[i].getDoubleValues()[0];
}
CurrentValX = value[0];//X-axis of sensor
CurrentValY = value[1];//y-axis of sensor
if (CurrentValX < PreValueX1) {
left = false;
right = true;
} else if (CurrentValX > PreValueX1) {
left = true;
right = false;
}
if (CurrentValY < PreValueY1) {
down = false;
up = true;
} else if (CurrentValY > PreValueY1) {
down = true;
up = false;
}
if (right == true && ballX < Scrwidth - 15) {
ballX += 4;
} else if (left == true && ballX > 15) {
ballX -= 4;
}
if (down == true && ballY < Scrheight - 15) {
ballY += 4;
} else if (up == true && ballY > 15) {
ballY -= 4;
}
CurrentValY = PreValueY1;
CurrentValX = PreValueX1;
//check for the collision of ball with the other object like brick
if (bricksprite.collidesWith(ballSprite, true)) {
if (right) {
ballX -= 10;
}
if (left) {
ballX += 10;
}
if (up) {
ballY += 10;
}
if (down) {
ballX -= 10;
}
}
私が午前問題は、ボールの衝突であり、それが得るbricks.when iがに移動いつかボール代わりにcollision.Butの反対方向にボールを移動したい衝突それと反対の方向に同じ方向に動いています。私はボールの方向を上、下、左、右のブール値で取得していました。 、事前
あなたのロジックは間違っています。 MathのVECTORSについて読んで、あなたのコードに実装してください。その後、はるかに単純なコードと多くの自然に見えるゲームを得るでしょう!ボールの軌道を逆にするには、そのベクトルを逆転させます。 90degを前方に動かすように設定するには、そのベクトルを90deg回転させます。あなたが行っているように、オブジェクトの座標を直線的に変更してはいけません。 – Cipi
返信ありがとう –