Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - Arkanoid
Forum - Java - Arkanoid

Avatar
liogiu2 (Normal User)
Newbie


Messaggi: 11
Iscritto: 19/12/2010

Segnala al moderatore
Postato alle 10:37
Mercoledì, 15/02/2012
Salve a tutti,
Ho iniziato ad scrivere il codice di questo gioco per presentarlo a scuola ma mi trovo subito davanti ad un problema
Codice sorgente - presumibilmente Java

  1. import java.awt.*;
  2. import javax.swing.*;
  3. public class RettangoloBasso extends JPanel
  4. {
  5.         public int x=200;
  6.         public static int y=400;
  7.        
  8.                 public void paintComponent (Graphics g)
  9.                 {
  10.                         super.paintComponent(g);
  11.                        
  12.                         this.setBackground(Color.WHITE);
  13.                        
  14.                         g.setColor(Color.RED);
  15.                         g.fillRect(x, y, 50, 20);
  16.                 }


Ho fatto una classe per creare il rettangolino sotto. Ora volevo implementare una classe che gestiva gli eventi da tastiera, e quando si premeva "a" o "d" questo rettangolo mi si muoveva. Esiste un metodo della classe Graphics con il quale riesco a spostare le coordinate del quadrato? Cercando sul sito della sun ho trovato il metodo setClip ma dato che la classe Graphics è astratta, fino a quando non viene implementata non posso creare un suo elemento, per poi chiamare il metodo dalla classe per la gestione degli eventi da tastiera.
Mi potreste dare un consiglio per procedere? Mi conviene cambiare ragionamento? Grazie in anticipo.:hail:

PM
Avatar
ale.gatti96 (Member)
Pro


Messaggi: 71
Iscritto: 29/11/2011

Up
2
Down
V
Segnala al moderatore
Postato alle 14:58
Mercoledì, 15/02/2012
Penso che per spostare il rettangolo ti basti ridisegnare il pannello con il rettangolo sulle nuove coordinate.
Invece per intercettare gli eventi da tastiera usa un KeyListener o un KeyAdapter.

PM
Avatar
Bonny (Member)
Expert


Messaggi: 437
Iscritto: 24/04/2009

Up
2
Down
V
Segnala al moderatore
Postato alle 16:46
Mercoledì, 15/02/2012
Quando implementi il KeyListener o estendi il KeyAdapter e lo associ al JPanel ovvero il JPanel sarà in grado di intercettare(ascoltare) gli eventi derivati dalla tastiera gli devi dare il "fuoco" altrimenti non funziona. Per esempio:
Codice sorgente - presumibilmente Java

  1. JFrame f = new JFrame();
  2. RettangoloBasso rt = new RettangoloBasso();
  3. f.getContentPane().add(rt);
  4. rt.requestFocusInWindow();



vedi anche http://www.pierotofy.it/pages/extras/forum/14/1034143-java_evento_onkeyup/ - Bonny - 15/02/12 22:29
Quindi faccio tutto in questa classe! Bene ora provo :D - liogiu2 - 16/02/12 18:30
PM