Я делаю пространство захватчика для школьного проекта, и когда я пытаюсь использовать ключ D, чтобы сделать его правильно, он не делает PNG правильно, это код для перемещения png < /p>
public PannelloGioco() {
setBackground(Color.BLACK);
navicella = new Navicella(350, 500); // Posizione iniziale della navicella
//metodo per gestire gli input da tastiera
addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
int keyCode = e.getKeyCode();
if (keyCode == KeyEvent.VK_D) {
navicella.Sinistra();
} else if (keyCode == KeyEvent.VK_A) {
navicella.Dstra();
} else if (keyCode == KeyEvent.VK_W) {
navicella.Sopra();
} else if (keyCode == KeyEvent.VK_S) {
navicella.Sotto();
}
repaint(); // faccio il repaint dopo ogni azione
}
});
// Aziono il focus per poter ricevere gli eventi da tastiera
setFocusable(true);
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g); // Pulisce il pannello
navicella.draw(g); // Disegna la navicella
}`
< /code>
И это логика для того, чтобы он двигаться < /p>
public void Sinistra() {
//metodo per spostare la navicella a sinistra
if (x > 0) {
x -= speed+10;
}
}
public void Dstra() {
//metodo per spostare la navicella a destra
if (x + larghezza > 800) {
x -= speed+10;
}
}
public void Sopra() {
if (y > 0) {
//metodo per spostare la navicella sopra
y -= speed+10;
}
}
public void Sotto() {
if (y + altezza < 600) {
//metodo per spostare la navicella sotto
y += speed+10;
}
}
idk, что делать для того, чтобы сделать это правильно, я попытался сделать печать для печати позиции x, но она вообще не движется
Я делаю пространство захватчика для школьного проекта, и когда я пытаюсь использовать ключ D, чтобы сделать его правильно, он не делает PNG правильно, это код для перемещения png < /p> [code]public PannelloGioco() { setBackground(Color.BLACK); navicella = new Navicella(350, 500); // Posizione iniziale della navicella
//metodo per gestire gli input da tastiera addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { int keyCode = e.getKeyCode(); if (keyCode == KeyEvent.VK_D) { navicella.Sinistra(); } else if (keyCode == KeyEvent.VK_A) { navicella.Dstra(); } else if (keyCode == KeyEvent.VK_W) { navicella.Sopra(); } else if (keyCode == KeyEvent.VK_S) { navicella.Sotto(); } repaint(); // faccio il repaint dopo ogni azione } });
// Aziono il focus per poter ricevere gli eventi da tastiera setFocusable(true); }
@Override protected void paintComponent(Graphics g) { super.paintComponent(g); // Pulisce il pannello navicella.draw(g); // Disegna la navicella }` < /code> И это логика для того, чтобы он двигаться < /p> public void Sinistra() { //metodo per spostare la navicella a sinistra if (x > 0) { x -= speed+10; } }
public void Dstra() { //metodo per spostare la navicella a destra if (x + larghezza > 800) { x -= speed+10; } }
public void Sopra() { if (y > 0) { //metodo per spostare la navicella sopra y -= speed+10; } }
public void Sotto() { if (y + altezza < 600) { //metodo per spostare la navicella sotto y += speed+10; } } [/code] idk, что делать для того, чтобы сделать это правильно, я попытался сделать печать для печати позиции x, но она вообще не движется
Я хотел бы понять, почему индекс печатного списка для этого объекта JLIST не синхронизируется с выделенной строкой, когда KeyPressedListener срабатывает после событий нажатия клавиш вверх и вниз, и как я могу решить эту проблему
Обычно я не программирую в Java, но для этого проекта мне нужно. Я получил все, что работает, кроме ключевого слушателя. Я хочу, чтобы программа отреагировала всякий раз, когда нажимается клавиша (не имеет значения, какой из них).
public class...
Я написал небольшую программу с jlabel в ней, и как только я нажимаю с A / S / D, этикетка движется. Проблема в том, что когда я нажимаю и держу, например, W, метка перемещает только один пиксель, а затем продолжает двигаться, пока я снова не отпущу...