诺基亚N97与传感器Api和一些java逻辑相关
我自己shweta dodiya。我在j2me中遇到了一个与传感器和逻辑相关的问题,我在我的项目中实现了这个问题。我实现的逻辑如下:-诺基亚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
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度。。。决不能像现在这样对对象坐标进行线性更改。