связанные с Мраморная игра лабиринт - PullRequest
0 голосов
/ 16 декабря 2010

Я работаю над проектом игры в мраморный лабиринт в j2me. Я сталкиваюсь с проблемой, связанной с движением и контролем мяча.

Я использую код

 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, тогда я не получу контроль над своим мячом. Короче говоря, я могу получить только одну скорость или контроль.

Но я хочу сделать как скорость, так и контроль.

1 Ответ

1 голос
/ 16 декабря 2010

Для более реалистичного поведения вы должны сохранить вектор движения вашего мрамора и изменять его каждый кадр в соответствии с данными датчика и добавлять его к положению мрамора в каждом кадре. .

Вы можете пройти полный путь симуляции, , используя уравнения для кинематики для расчета вектора скорости вашего мрамора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...