Нужна небольшая помощь, я пытаюсь сделать простую игру для школьного проекта, но я не могу заставить свои танки двигаться.
Можно ли заставить графический объект двигаться только с помощью кнопок?
Я знаю, что этот код ужасен, и многие вещи можно было бы сделать проще и короче, но мы должны сделать это в основном из того, что мы узнали ...
Я пробовал это с помощью слушателя мыши, но пока не смог. Вот мой код
public class Hra extends JPanel{
public int zakladc=1300;
public int zakladm=35;
public int GetZakladc(){
return zakladc;
}
public int GetZakladm(){
return zakladm;
}
Pozadi();
tank_cerveny();
tank_modry();
JTextField uhel_text=new JTextField(3);
JTextField sila_text=new JTextField(3);
JButton prava=new JButton("VPRAVO");
add(prava);
class obsluha_prava implements MouseListener{
public void mouseClicked(MouseEvent e) {
if (natahu==0){
zakladc=zakladc+1;
System.out.println(zakladc);
}
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
}
JButton leva=new JButton("VLEVO");
add(leva);
class obsluha_leva implements MouseListener{
public void mouseClicked(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
}
}
public void Pozadi(){
Graphics g = img.getGraphics();
Color pisek=new Color(242,197,102);
g.setColor(pisek);
g.fillRect(0,665,1368,100);
}
public void tank_cerveny(){
Graphics g = img.getGraphics();
g.setColor(Color.BLACK);
g.fillOval(zakladc,y-13,40,13);
g.fillRect(zakladc-10,y-2*13+6,15,4);
g.setColor(Color.RED);
g.fillRect(zakladc+5,y-2*13+1,30,13);
}
public void tank_modry(){
Graphics g = img.getGraphics();
g.setColor(Color.BLACK);
g.fillOval(zakladm,y-13,40,13);
g.fillRect(zakladm+35,y-2*13+6,15,4);
g.setColor(Color.BLUE);
g.fillRect(zakladm+5,y-2*13+1,30,13);
}
То, как это должно работать, заключается в том, что вы нажимаете кнопку «VPRAVO», и один танк перемещается вправо или «VLEVO», а танк перемещается влево.