Я работаю над проектом игры в мраморный лабиринт в j2me.Я столкнулся с проблемой, связанной с движением и контролем мяча., связанный с Marble Maze Game
кода я использую это
private SensorConnection sensor;
Data[] data;
double value[] = new double[3];
double PreValueX1, PreValueX2, PreValueY1, PreValueY2;
double CurrentValX, CurrentValY;
int ballX,ballY;
Sensor = (SensorConnection) Connector.open("sensor:acceleration");//To open connection
public void run() {
while(true){
try {
data = compass.getData(1);/
} catch (IOException ex) {
ex.printStackTrace();
}
for (int i = 0; i < data.length - 1; i++) {
value[i] = data[i].getDoubleValues()[0];/Get data For X and Y axis
}
CurrentValX = value[0];
CurrentValY = value[1];
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 += 10;
} else if (left == true {
ballX -= 10;
}
if (down == true) {
ballY += 10;
} else if (up == true) {
ballY -= 10;
}
CurrentValY = PreValueY1;
CurrentValX = PreValueX1;
dodraw();
repaint();
}
//Function used to draw the image of ball
dodraw(){
ballSprite.setPosition(ballX, ballY);
ballSprite.paint(g);//Graphics==g
}
Теперь проблема здесь я столкнулся, если я уменьшаю скорость ПРИМЕРА: ее сочинительство ballx+=4;ballY+=4 OR ballx-=4;ballY-=4
, Тогда я получаю контроль над моим мячом
И если моя скорость будет равна 10, тогда я не получу контроль над своим мячом. Короче, я могу получить только одну скорость или контроль.
Но я хочу сделать как скорость, так и контроль.
Исправить форматирование кода. Кроме того, какая мобильная ОС? – Robert 2010-12-16 06:25:24