2013-04-17 3 views
0

메신저 Java에 상당히 새로운 기능입니다. 화살 열쇠로 공을 조종 할 수 있도록 다른 공과 충돌하면, 콘솔에 "잃어버린"말 또는 뭔가가 나오는 줄을 인쇄합니다.java - 충돌 감지가 작동하지 않습니까?

나는 움직 였지만, 나는 충돌 할 2 구슬을 얻을 수있는 방법으로 조금 고생하고있다. 지금까지 내가 (! 내가 공 주위에 사각형을 넣어 생각하지만, 난 정말 모르겠다)이 시도 :

public void collision() { 
    Rectangle rectP = new Rectangle(player.x, player.y, player.WIDTH, player.HEIGHT);  
    Rectangle rectE = new Rectangle(Enemy.ex, Enemy.ey, Enemy.WIDTH, Enemy.HEIGHT); 

    if(rectP.intersects(rectE)) 
    { 

    System.out.println("game over"); 
    } 
} 

은 누군가가 나를 도와 내가 잘못 한 일을 설명 할 수 없습니다.

ps. 제발 코드를주지 마세요, 나는 시도하고 배우고 싶습니다 !!!.

감사합니다.

public void actionPerformed(ActionEvent e) { 
    repaint(); 
    x += velx; 
    y += vely; 
} 

public void up() { 
    vely = -1.5; 
    velx = 0; 
} 

public void down() { 
    vely = 1.5; 
    velx = 0; 
} 

public void left() { 
    vely = 0; 
    velx = -1.5; 
} 

public void right() { 
    vely = 0; 
    velx = 1.5; 
} 

public void keyPressed(KeyEvent e) { 
    int code = e.getKeyCode(); 
    if (code == KeyEvent.VK_UP) { 
     up(); 
    } 
    if (code == KeyEvent.VK_DOWN) { 
     down(); 
    } 
    if (code == KeyEvent.VK_LEFT) { 
     left(); 
    } 
    if (code == KeyEvent.VK_RIGHT) { 
     right(); 
    } 
} 
+0

아마도 내가 그것을 실행하고 서로 공을 움직일 때 말하면 안되는 일입니다. – user2099816

+0

얼마나 자주이'collision()'메소드를 실행하고 있습니까? 매초 또는 수 밀리 초마다 실행되도록 타이머에 설정되어 있습니까? – Niro

+0

아니, 어떻게 그럴 수 있니? – user2099816

답변

0

두 볼 센터의 X와 Y 좌표가 있고 볼의 반경을 알고있는 경우 간단한 작업이어야합니다.

공의 중심 사이의 거리를 계산하고 공의 반지름의 합과 비교하십시오. 이 클래스 또는 객체

당신은 .. 그 코드에서 이상한 보이는 무엇

PS는 player는 소문자로되어 있지만 Enemy는 대문자이다 그것은 : 그래서 공식을 생략하도록 요청입니까?

+0

그것은 내가 잘못 명명 한 havent와 수정에 둥글게하는 havent이다. 또한 내가 말한 것을 할 수 있다면 왜 사람들이 사각형을 사용해야한다고 말하는가? – user2099816

+0

그러면 클래스에서'Enemy.ex'라는 값을 읽는 이유는 무엇입니까? 아니면 움직이지 않는거야? – Vitaly

+0

와 하나 더. 그것이 공인 경우 - 폭과 높이가있는 이유는 무엇입니까? – Vitaly

0

글쎄, 나는 무엇이 잘못되었는지 충돌 탐지라고 생각하지 않는다. 나는 무엇이 잘못 되었는가는 컴퓨터가 그 물체가 실제로 어디 다른 곳에 있는지를 생각하는 것입니다. 한 때 벽돌 깨는 노를 만들려고했던 것처럼, 실제로 프로그램이 노를 반대쪽에 있다고 생각했을 때 충돌 감지에 문제가있었습니다! 당신이해야 할 일은 게임 위에 사각형의 위치를 ​​그려야한다는 것입니다. 이 방법을 통해 컴퓨터가 객체를 어디에서 인식하는지 알 수 있습니다. 어쩌면 그들은 완전히 벗어 났을 까?

관련 문제