2010-12-16 8 views
0

나는 대리석 미로 게임 프로젝트에 참여하고 있습니다. 나는 공의 이동과 제어와 관련된 문제에 직면하고 있습니다.대리석 미로 게임 관련

내가 사용하고있는 코드는 내가 속도 예를 감소하면 지금 직면하고 여기에 문제가

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을을 writting에 의하여 -, 그럼 난 내 공을 통해 제어를 얻을 수

내 스피드를 10으로 유지하면 내 볼을 컨트롤 할 수 없습니다. 간단히 말해서 속도 나 제어력을 한 가지만 얻을 수 있습니다.

하지만 속도와 제어 모두를 원합니다.

+0

코드 서식을 수정하십시오. 또한 모바일 OS는 무엇입니까? – Robert

답변

1

더 현실적인 동작을 위해 대리석의 모션 벡터를 저장하고 센서 데이터에 따라 각 프레임을 수정하고 매 프레임마다 대리석의 위치에 추가해야합니다. .

대리석의 속도 벡터를 계산하려면 using the equations for Kinmatics 전체 시뮬레이션 방법을 사용할 수 있습니다.

+0

고맙습니다.하지만 그게 끝났습니다.하지만 작동하지 않습니다. –

관련 문제