public class MyGame extends JFrame {
static int up = KeyEvent.VK_UP;
static int right = KeyEvent.VK_RIGHT;
static int down = KeyEvent.VK_DOWN;
static int left = KeyEvent.VK_LEFT;
static int fire = KeyEvent.VK_Q;
public MyGame() {
// Do all the layout management and what not...
JLabel obj1 = new JLabel();
JLabel obj2 = new JLabel();
obj1.addKeyListener(new MyKeyListener());
obj2.addKeyListener(new MyKeyListener());
add(obj1);
add(obj2);
// Do other GUI things...
}
static void move(int direction, Object source) {
// do something
}
static void fire(Object source) {
// do something
}
static void rebindKey(int newKey, String oldKey) {
// Depends on your GUI implementation.
// Detecting the new key by a KeyListener is the way to go this time.
if (oldKey.equals("up"))
up = newKey;
if (oldKey.equals("down"))
down = newKey;
// ...
}
public static void main(String[] args) {
new MyGame();
}
private static class MyKeyListener extends KeyAdapter {
@Override
public void keyPressed(KeyEvent e) {
Object source = e.getSource();
int action = e.getExtendedKeyCode();
/* Will not work if you want to allow rebinding keys since case variables must be constants.
switch (action) {
case up:
move(1, source);
case right:
move(2, source);
case down:
move(3, source);
case left:
move(4, source);
case fire:
fire(source);
...
}
*/
if (action == up)
move(1, source);
else if (action == right)
move(2, source);
else if (action == down)
move(3, source);
else if (action == left)
move(4, source);
else if (action == fire)
fire(source);
}
}
}
У меня проблемы с отзывчивостью:
Мне нужно нажать на объект, чтобы он работал.
Отклик, который я получаю при нажатии одной из клавиш, не такой, как я хотел — слишком отзывчивый или слишком неотзывчивый.
Я использую KeyListener в своем коде (игре или другом), чтобы мои экранные объекты реагировали на ввод клавиш пользователем. Вот мой код:
[code]public class MyGame extends JFrame {
static int up = KeyEvent.VK_UP; static int right = KeyEvent.VK_RIGHT; static int down = KeyEvent.VK_DOWN; static int left = KeyEvent.VK_LEFT; static int fire = KeyEvent.VK_Q;
public MyGame() {
// Do all the layout management and what not... JLabel obj1 = new JLabel(); JLabel obj2 = new JLabel(); obj1.addKeyListener(new MyKeyListener()); obj2.addKeyListener(new MyKeyListener()); add(obj1); add(obj2); // Do other GUI things... }
// Depends on your GUI implementation. // Detecting the new key by a KeyListener is the way to go this time. if (oldKey.equals("up")) up = newKey; if (oldKey.equals("down")) down = newKey; // ... }
public static void main(String[] args) {
new MyGame(); }
private static class MyKeyListener extends KeyAdapter {
@Override public void keyPressed(KeyEvent e) {
Object source = e.getSource(); int action = e.getExtendedKeyCode();
/* Will not work if you want to allow rebinding keys since case variables must be constants. switch (action) { case up: move(1, source); case right: move(2, source); case down: move(3, source); case left: move(4, source); case fire: fire(source); ... } */ if (action == up) move(1, source); else if (action == right) move(2, source); else if (action == down) move(3, source); else if (action == left) move(4, source); else if (action == fire) fire(source); } } } [/code]
У меня проблемы с отзывчивостью:
[list] [*]Мне нужно нажать на объект, чтобы он работал. [*]Отклик, который я получаю при нажатии одной из клавиш, не такой, как я хотел — слишком отзывчивый или слишком неотзывчивый. [/list]
Мое приложение Java 8 использует OkHttp3 для выполнения N HTTP-вызовов к конечной точке. Предположим, что в очереди есть некоторая работа, и несколько потоков M выходят из очереди, анализируют работу и запускают HTTP-вызовы. Около 40% первоначальных...
Я делаю игру и использую множество событий, чтобы заставить один класс взаимодействовать с другими, но утомительно обрабатывать подписку и отмену подписки на методы OnEnable и OnDisable каждый раз, когда новый класс будет слушать определенное...
Раньше я использовал RabbitMQ в качестве платформы для обмена сообщениями, и у меня никогда не было с ней проблем — к сожалению, недавно мы перенесли нашу инфраструктуру в Azure, и они не предоставляют серверы RabbitMQ, поэтому я подумал о том,...
Я делаю игру и использую множество событий, чтобы заставить один класс взаимодействовать с другими, но утомительно обрабатывать подписку и отмену подписки на методы OnEnable и OnDisable каждый раз, когда новый класс будет слушать определенное...
Я пытаюсь реализовать SoftDelete. Да, я знаю о Gedmo.
Я пытаюсь реализовать следующую логику, чтобы установить значение softdelete вместо удаления объекта:
#
class SoftDeleteEventListener
{
public function preRemove(PreRemoveEventArgs $args):...