Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
诺基亚N97与传感器Api和一些java逻辑相关_Java_Java Me - Fatal编程技术网

诺基亚N97与传感器Api和一些java逻辑相关

诺基亚N97与传感器Api和一些java逻辑相关,java,java-me,Java,Java Me,我自己shweta dodiya。我在j2me中遇到了一个与传感器和逻辑相关的问题,我在我的项目中实现了这个问题。我实现的逻辑如下:- sensor= (SensorConnection) Connector.open("sensor:acceleration"); try { data = sensor.getData(1); } catch (IOException ex) { ex.printStac

我自己shweta dodiya。我在j2me中遇到了一个与传感器和逻辑相关的问题,我在我的项目中实现了这个问题。我实现的逻辑如下:-

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;
            }                
        }
传感器=(传感器连接)接头。打开(“传感器:加速度”);
试一试{
数据=传感器。获取数据(1);
}捕获(IOEX异常){
例如printStackTrace();
}
对于(int i=0;iPreValueX1){
左=真;
右=假;
}
如果(当前值<先前值1){
向下=假;
向上=真;
}否则如果(当前值>前值1){
向下=真;
向上=错误;
}
if(right==true&&ballX15){
ballX-=4;
}
如果(向下==true&&ballY15),则为else{
ballY-=4;
}
CurrentValY=prevalue1;
CurrentValX=PreValueX1;
//检查球是否与砖块等其他物体发生碰撞
如果(bricksprite.collizeswith(ballSprite,true)){
如果(右){
ballX-=10;
}
如果(左){
ballX+=10;
}
如果(向上){
ballY+=10;
}
如果(向下){
ballX-=10;
}                
}
我遇到的问题是球和砖块的碰撞。当它发生碰撞时,我想让球朝着碰撞的相反方向移动。但有时球不是朝着相反的方向移动,而是一直朝着相同的方向移动。我通过布尔上、下、左、右得到球的方向

请帮我解决它,如果我在某个地方出错,请指导我并纠正我


提前感谢

我没有读过你的代码,但在过去我也编写过类似的游戏

在这一点上,我应用了以下逻辑

当球偏转时,假设球从右向左移动,而不是在某个天使的左壁碰撞。在这里,你的x和y以一致的方式减少,当你的x应该增加,而y应该以相同的方式减少

2.当球与垂直壁相交时,y应倒置,x应相同


我希望它澄清了逻辑。

你的逻辑是错误的。阅读数学中的向量,并在代码中实现它们。你将得到更简单的代码和更自然的游戏!要反转球的轨迹,请反转其矢量。若要将其向前移动90度,请将其矢量旋转90度。。。决不能像现在这样对对象坐标进行线性更改。