Pergunta

Eu estou escrevendo um jogo em Java, e precisam ter uma interação mouse. Eu ia usar MouseAdapter, mas eu olhei para ela alguns, e não parecem ter qualquer meio de determinar a localização do ponteiro do mouse sem um clique ou ação que está sendo feito ... Qual seria a maneira recomendada de fazendo isso?

algumas perguntas a:

  1. Será que o rato "location" referem-se à localização do mouse em relação aos limites do monitor, os limites do jogo, ou seria representado como movimentos em relação a uma localização anterior?

  2. Como seria desativar o ponteiro do mouse em um janela aplicação? (Ie. Um shooter em primeira pessoa onde os movimentos do mouse gira os jogadores ver ao invés de mover um ponteiro) Isso é possível?

Foi útil?

Solução

Olhe para o MouseMotionListener . Isso permitirá que você acompanhe os movimentos do mouse. Ele lhe dará a localização do mouse no componente que está anexado. Mas se você olhar para SwingUtilities classe existe alguns métodos de conveniência para os pontos de converter para a tela ou outros componentes ou o monitor.

Para o cursor, você tem a opção de definir o seu próprio bitmap para o cursor, você pode olhar aqui . Ou para uma resposta SO mais recente, você pode olhar aqui . Assim, você poderá ocultar o cursor, ou defini-lo como um bitmap vazio e, em seguida, interceptar os movimentos do mouse e eventos para controlar o seu ponto de vista.

Outras dicas

Um tutorial sobre os eventos do mouse está em: http://java.sun.com/docs/books/ tutorial / uiswing / eventos / mouselistener.html

Se você olhar aqui: http://java.sun.com/ JavaSE / 7 / docs / api / java / awt / evento / MouseEvent.html

Você pode obter a localização absoluta, na tela, ou coordenadas relativas ao componente.

Se houver um movimento para mudar de direção, então você precisará remover o ouvinte rato, ou você pode simplesmente ter alguma lógica, onde o manipulador de eventos só vai sair, não fazer nada. Eu acho que isso seria melhor, caso contrário, você tem que manter o controle de quando você adicionar e remover os ouvintes.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top