2012-12-18 2 views
-2

마우스 동작을 사용하는 Java 게임을 코딩하고 있습니다. 메인 클래스에 msc 포인트가 있습니다. 마우스를 누를 때마다 변경되어 마우스를 놓을 때마다 (0, 0)으로 설정됩니다. 버튼의 경우 msc이 사각형 안에 있는지 확인하고, 그렇다면 click으로 전화하십시오.초당 Java 마우스 입력

버튼 중 하나는 부울을 토글합니다. 그래도 클릭하면 paintComponent이 호출 될 때마다 msc이 업데이트되기 때문에 매우 빠르고 정확하게 전환됩니다. 여기

버튼 클릭 메서드에 대한 코드입니다 :

if (button.contains(Screen.msc)) { 
    beenClicked = true; 
    this.width = this.width - 2; 
    this.height = this.height - 2; 
    this.x = this.x + 1; 
    this.y = this.y + 1; 
    g.setColor(currColor); 
    textColor = Color.YELLOW; 
} 

하지만 문제는 내가 생각하는 곳이 아니다.

public void mouseReleased(MouseEvent e) { 
    Screen.msc = new Point(0, 0); 
} 

public void mousePressed(MouseEvent e) { 
    Screen.msc = new Point((e.getX()) - ((Frame.size.width - Screen.myWidth)/2), e.getY() - ((Frame.size.height - (Screen.myHeight)) - (Frame.size.width - Screen.myWidth)/2)); 
} 

및 특정 토글 버튼을 클릭 할 때 발생하는 코드 :

if (toggleToolTips.clicked()) { 
    if (Screen.canDrawTooltip) { 
     Screen.canDrawTooltip = false; 
    } else if(!Screen.canDrawTooltip){ 
     Screen.canDrawTooltip = true; 
    } 
} 

문제는 내가 가서, 부울을 버튼을 클릭 할 때마다 여기 msc을 변경하는 코드는 진정한 빠른 전환. 내가 그것을 잡을 때, 그것은 단지 신속하고 지속적으로 전환됩니다. 한번 클릭하면 한 번 전환 할 수 있도록하고 싶습니다.

+0

정직하게 말해서 나는 단지 나를 downvoting하는 것 대신에 어떤 방향을주게된다. 그것은 아무에게도 도움이되지 않는다. – user1871085

+0

타이머가 필요한 것 같습니다. 우리에게 몇 가지 코드를 보여주고 정확한 문제가있는 곳을 알려주십시오. – Smit

+0

k 코드와 물건을 추가했습니다. 어떤 제안? – user1871085

답변

1

사용자가 부울 beenClicked을 설정했지만 아무 것도 확인하지 않습니다. 나는

if (!beenClicked && toggleToolTips.clicked()) 
{ 
    Screen.canDrawTooltip = !Screen.canDrawTooltip); 
} 

노력 등의 mouseReleased로 다시 거짓 어딘가에 beenClicked을 설정하는 것이 좋습니다 것입니다.

+0

예 두 가지를 수행하는 다른 장소에는 훨씬 더 많은 코드가 있지만 실제로는 화면이 다시 그려 질 때마다 마우스 동작이 Screen.mse로 전송되어 해당 Point에 대해 x와 y를 설정합니다. 따라서 버튼은 초당 여러 개의 입력을 받아서 부울을 켜고 끕니다. 그게 문제 야. 나는 그것이 지금 운동 한 것에 trach에 있을지도 모른다라고 생각한다. 그러나 더 한층의 도움은 매우 감사한다. – user1871085

+0

그것은 효과가 있었다. 나는 이것을 매우 열심히 바라 보는 것을 wasnt한다, 그리고, 나는 그것을 읽고, 나 자신에게 생각한다 : 당신은 바보 같은 젠체하는 사람이다. .. 나는 내가 그것을 생각하지 않았다라고 생각할 수 없다! 감사! – user1871085