Avatar billede fear Nybegynder
02. februar 2001 - 18:25 Der er 5 kommentarer og
1 løsning

Kryds & Bolle spil!

Jeg har et kryds & bolle spil som jeg er ved at lægge en grafisk overflade oven på(swing).
Men kan ikke helt se hvilken måde jeg skal gøre det på. Hvis jeg bruger checkboxes så kan man jo ikke se hvem der er af spillerne der sætter krydset.(et kryds er jo et kryds!!)

Er der nogen der kan hjælpe??



Avatar billede el_gnu Nybegynder
02. februar 2001 - 21:13 #1
Kan du ikke lave dine egne felter, der f.eks. extender JLabel og så bruge så setIcon(Icon icon) til at vise det ønskede billede?

Noget à la:

class kOgBFelt extends JLabel implements MouseListener {
  Spiller spiller;  // spillerklasse der blandt andet har et icon

  public kOgBFelt(Spiller spiller) {
    this.spiller = spiller;
  }

  public void mouseClicked (MouseEvent e) {
    setIcon(spiller.icon);
  }

  public void mouseEntered (MouseEvent e) {}
  public void mouseExited (MouseEvent e) {}
  public void mousePressed (MouseEvent e) {}
  public void mouseReleased (MouseEvent e) {}
}
Avatar billede el_gnu Nybegynder
03. februar 2001 - 08:35 #2
doh! der skal selvfølgelig være et kald til JLabels constructor:

  public kOgBFelt(Spiller spiller) {
    super(); // OBS!!!
    this.spiller = spiller;
  }
Avatar billede el_gnu Nybegynder
03. februar 2001 - 08:42 #3
hmm, dårlig dag...

  public kOgBFelt(Spiller spiller) {
    super(); // OBS!!!
    addMouseListener(this);
    this.spiller = spiller;
  }
Avatar billede trolle Nybegynder
06. februar 2001 - 13:29 #4
Du kan da blot tegne det hele på selve overfalden med \"graphics\"  (g)! 
banen kan saa tegnes med g.drawLine(x1,y1,x2,y2) osv...
Du kan så bruge et simpelt int[2][2] array til at holde styr paa hvem der har en brik hvor!
EKS. så kan et 1 symbolisere et kryds , 2 er bolle & 0 er tom felt!

krydserne kan saa tegnes med (igen) g.drawLine(...)
og cirklerne med g.drawOval(x,y,bredde,hoejde)

mvh. trolle
Avatar billede trolle Nybegynder
06. februar 2001 - 13:38 #5
ups...  Det var et svar!...

men en nem måde at lave det på er via et interface som det følgende:

interface KrydsOgBolle{

private int[][] plade = new int[2][2];

  private \"konstruktør\"(){
    g.drawLine(x1,y1,x2,y2);  // tegner stregerne
    ...
    ..
  }

/** følgende metode tegner et kryds med i de tilsendte koordinater
*/
  private void tegnKryds(int xFelt, int yFelt){
    g.drawLine(...);
    ...
  }

private .....  // en metode der tegner en cirkel

  priate void actionListener 
// en metode der får koordinater tilsendt om hvor der er trykket  (via actionlistener)
og sætter så det rigtige kryds

classen skal extend JFrame  & implement mouseListener  (ellersådannoget)
Avatar billede trolle Nybegynder
06. februar 2001 - 13:40 #6
øøøøhhh    fejl i det ovenstående...    konstruktøren skal selvfølgelig ikke tegne stregerne...
Det skal paint(graphics g) metoden tilgengæld!
Denne skal også sørge for at de krydser og boller bliver tegnet de rigtige steder næste gang!

Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester