저는이 프로젝트에서 일하고 있는데, 마우스 오른쪽 버튼에 연결된 부울을 가지고 있습니다. 그래서 RMB을 누르면 불리언 값이 참으로 바뀌지 만, 다시 누를 때까지는 거짓으로 바뀌지 않습니다. 부울을 즉시 켜고 끌 수있는 방법이 있습니까? 1 tick 동안 계속 켜져 있고, 다시 돌아 간다. 마우스를 클릭했을 때 즉시 부울을 켜고 끕니까?
VVV 코드는 부울 부울이 켜져되고
VVV에 해당하는 경우 발생하는 즉
if(Component.isMouseRightClicked) {
if(block[x][y].id == Tile.underDirt || block[x][y].id == Tile.underDirtRight || block[x][y].id == Tile.underDirtLeft || block[x][y].id == Tile.underDirtTop || block[x][y].id == Tile.underDirtRight || block[x][y].id == Tile.underDirtBottom || block[x][y].id == Tile.underDirtBR || block[x][y].id == Tile.underDirtTR || block[x][y].id == Tile.underDirtTL || block[x][y].id == Tile.underDirtBL) {
if(sid != Tile.air) {
block[x][y].id = sid;
}
}
if(block[x][y].id == Tile.dirt || block[x][y].id == Tile.sand || block[x][y].id == Tile.stone) {
if(sid == Tile.dirt) {
block[x][y].id = Tile.dirtWall;
}
if(sid == Tile.stone) {
block[x][y].id = Tile.stoneWall;
}
if(sid == Tile.sand) {
block[x][y].id = Tile.sandWall;
}
}
}
을 VVV (당신이 이해 하듯이 나는 자바 코딩 꽤 신선 해요) (의 mouseClicked) VVV에 의해
여기public void mouseClicked(MouseEvent e) {
if(e.getButton() == MouseEvent.BUTTON3) {
Component.isMouseRightClicked = true;
}
}
그리고()에서 나는 (비참) .. 즉시
을을 해제하려고 시도하는 방법이다public void mouseReleased(MouseEvent e) {
if(e.getButton() == MouseEvent.BUTTON1) {
Component.isMouseLeft = false;
Level.blockBreakTimer = 0;
} else if(e.getButton() == MouseEvent.BUTTON3) {
Component.isMouseRight = false;
Component.isMouseRightClicked = false;
Level.buildTimer = 0;
}
}
는 (나뿐만 아니라 다른 물건을위한 버튼이,하지만 난 당신이 단지 isMouseRightClicked 볼 필요가 있다고 생각) 정말 감사의 도움을
감사합니다.
스윙 타이머 – MadProgrammer
을 사용하십시오. 마우스 클릭을 '눌렀다 놓을 때'호출되므로 가능한 실수는 마우스 기능을 사용할 수 있습니다. 당신은 mouseclicked 대신에 mousepressed를 시도해야합니다. –