2010-11-23 9 views
1

Moi-même shweta dodiya.J'ai un problème lié au capteur et la logique en j2me que j'avais mis en œuvre pour atteindre le résultat dans mon projet.La logique que j'avais mis en œuvre est la suivante : -Nokia N97 Relatif au capteur Api et certains logique Java

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; 
      }     
     } 

le problème que je rencontre est dans la collision de la balle et la bricks.when il s'entrent en collision je veux déplacer la balle dans le sens opposé de la collision.But quelque temps la balle au lieu de se déplacer dans Dans la direction opposée, il continue de se déplacer dans la même direction. J'ai eu la direction de la balle à travers le booléen en haut, en bas, à gauche, à droite.

S'il vous plaît me aider à résoudre et me guider et me corriger si im tort quelque part

Merci à l'avance

+1

Votre logique est fausse. Lisez à propos de VECTORS in Math, et implémentez-les dans votre code. Vous obtiendrez alors un code beaucoup plus simple et beaucoup de jeu à l'aspect naturel! Pour inverser la trajectoire des balles, inversez son vecteur. Pour le faire avancer de 90deg, tournez son vecteur de 90deg ... Vous ne devriez jamais faire de changements linéaires aux coordonnées des objets comme vous le faites. – Cipi

+0

Merci pour la réponse –

Répondre

2

Je n'ai pas lu votre code, mais dans le passé j'ai codé le même jeu un peu,

Dans ce que j'ai appliqué la logique suivante;

1.Quand la balle se colore, supposer que la balle bouge de droite à gauche plutôt que de se heurter à la paroi gauche d'un ange. ici, votre x et y diminuaient d'une manière uniforme à la suite de la multiplication, votre x devrait augmenter tandis que y devrait décroître de la même manière.

2.Quand balle colides mur vertical, y doit inverser x doit être identique ..

J'espère qu'il efface la logique.

+0

Merci beaucoup pour vous répondre –

+0

@shweta vous êtes les bienvenus :) –