2010-11-23 1 views
1

내 자신의 shweta dodiya.I는 내 프로젝트의 결과를 달성하기 위해 구현했다 j2me 센서 및 논리 관련 문제가 있습니다. 내가 구현했던 논리는 다음과 같습니다 -노키아 N97 관련 센서 API 및 일부 자바 로직

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 내가 이동의 언젠가 공 대신 collision.But의 반대 방향으로 볼을 이동하려는 충돌 반대 방향으로 똑같은 방향으로 계속 움직입니다. 나는 공의 방향을 위, 아래, 왼쪽, 오른쪽으로 부울을 통해 얻었습니다. ,

날을 해결하고 저를 안내하고 사전

+1

논리가 잘못되었습니다. Math의 VECTORS에 대해 읽고 코드에 구현하십시오. 그러면 훨씬 간단한 코드와 자연스러운 게임을 얻을 수 있습니다! 공의 궤도를 뒤집으려면 벡터를 뒤집으십시오. 앞으로 90deg 앞으로 움직이게 설정하려면 벡터를 90deg 회전시켜야합니다 ...하고있는 것처럼 오브젝트 좌표를 선형 적으로 변경해서는 안됩니다. – Cipi

+0

답장을 보내 주셔서 감사합니다 –

답변

2

내가 코드를 읽지 않은 어딘가에

감사 잘못 메신저 경우에 저를 해결하기 위해 도와주세요, 그러나 과거에 나는 같은 좀 게임을 코딩 한

나는 다음과 같은 논리를 적용했다.

1 볼 볼 콜로이드는 볼이 오른쪽에서 왼쪽으로 움직이는 것을 고려할 때 어떤 천사의 왼쪽 벽에서 충돌하는 것으로 생각합니다. 여기 당신의 x와 y는 콜레 션시 균일 한 방식으로 감소하고 x는 증가해야하지만 y는 같은 방식으로 감소해야합니다.

할수 있도록 팝업 공 직벽 colides, Y는 I 그것이 논리를 정리할 희망 .. X는 동일해야

반전한다.

+0

답장을 보내 주셔서 감사합니다. –

+0

@shweta 당신을 환영합니다 :) –