Plansza w javie (gra kulki)

Odpowiedz Nowy wątek
meg
2007-11-07 13:59
meg
0

Hej. Mam do zrobienia projekt w javie - gre w kulki. Z java miałam juz do czynienia, ale nigdy jeszcze nie robiłam gry. Dlatego chciałam sie poradzić. Na początku zastanawiam się jak zrobic planszę 9x9, przeglądając sieć natknęłam się na rozwiązanie z buttonami jako poszczególnymi polami planszy. Jest to dobre rozwiązanie czy lepiej zastosować coś innego? Z góry dziękuję za wszelkie podpowiedzi i rady :).

Pozostało 580 znaków

2007-11-07 14:08

Rejestracja: 12 lat temu

Ostatnio: 8 lat temu

0

Możesz spokojnie użyć buttonów( np z ikonkami) a po naciśnięciu buttonu zmieniać ikonę. Do ułożenia buttonów użyj menadżera GridLayout który robi coś w stylu tabelki z elementami :-)


"Jam częścią tej siły, która wiecznie zła pragnąc, wiecznie czyni dobro"
J.W. von Goethe "Faust"

Pozostało 580 znaków

2007-11-07 22:39

Rejestracja: 13 lat temu

Ostatnio: 11 lat temu

0

mam kod gomoku jakbys chcial

pozdrawiam

Pozostało 580 znaków

meg
2007-11-13 17:01
meg
0

Jasne, że chcę :). Miałabym się na czym wzorować. Jak możesz to podeślij na [email protected]. Z góry dzieki :)

Pozostało 580 znaków

2007-11-15 19:19

Rejestracja: 13 lat temu

Ostatnio: 11 lat temu

0

ok, ale to po weekendzie, bo lapa do serwisu oddalem :P

pozdrawiam

Pozostało 580 znaków

2007-11-16 11:28

Rejestracja: 13 lat temu

Ostatnio: 2 lata temu

0

mozesz takze zrobic sobie tlo graficzne np w photoshopie, kulki transparentne takze w photoshopie i juz w javie na sztywno poustawiac x i y (ze np kulka ma byc na polu [1][1] to grafika kulki musi byc na danym x i y. ja zrobilem tak szachy i wszystko dzialalo jak trzeba :) podejscie troche strukturalne ale latwe do zrozumienia. pozdrawiam


play hard..go pro.

Pozostało 580 znaków

2007-11-16 14:47

Rejestracja: 13 lat temu

Ostatnio: 4 lata temu

0
Freakman napisał(a)

mozesz takze zrobic sobie tlo graficzne np w photoshopie, kulki transparentne takze w photoshopie i juz w javie na sztywno poustawiac x i y (ze np kulka ma byc na polu [1][1] to grafika kulki musi byc na danym x i y. ja zrobilem tak szachy i wszystko dzialalo jak trzeba :) podejscie troche strukturalne ale latwe do zrozumienia. pozdrawiam

A ile czasu robiłeś te 768 rysunków?
Dobrze, że nie wymyśliłeś, iż do każdej sytuacji na planszy będziesz miał oddzielny rysunek. :-D


Registered Linux user #456405 | SCJP 6 | SCWCD 5 | SCBCD 5

Pozostało 580 znaków

2007-11-17 09:51

Rejestracja: 13 lat temu

Ostatnio: 2 lata temu

0

....moze lepiej bylo zostawic to bez komentarza..rysunkow w szachach mialem tyle co plansza + figury (pozniej zmienic kolor) wiec nie 768. Jesli nie rozumiesz ideii tego pomyslu to moze nie powinienes sie wypowiadac?


play hard..go pro.

Pozostało 580 znaków

2007-12-09 21:42

Rejestracja: 13 lat temu

Ostatnio: 11 lat temu

0

ok, przepraszam, ze tyle to trwalo, ale laptop w koncu dotarl :P
oto obiecywany kod:

public class Panel extends JPanel{
    private static final long serialVersionUID = 4797180680181137952L;
    private int width;
    private int height;
    private ArrayList<Figura> figury;
    public Panel(int width, int height) {
        super();
        this.width = width;
        this.height = height;
        figury=new ArrayList<Figura>();
    }
    public void addFigura(Figura f){
        figury.add(f);
        repaint();
    }
    public void clear(){
        figury.clear();
        repaint();
    }
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        Graphics2D g2=(Graphics2D)g;
        g2.setBackground(Color.WHITE);
        g2.setColor(Color.BLUE);
        for (int i = 0; i <=width; i+=20) {
            g2.drawLine(0,i, height, i);
        }
        for (int i = 0; i <=height; i+=20) {
            g2.drawLine(i,0,i,  width);
        }
        for (int i = 0; i < figury.size(); i++) {
            g2.setColor(Color.RED);
            figury.get(i).draw(g2);
        }
    }
    public boolean contains(Point p){
        boolean result=false;
        for (int i = 0; i < figury.size()&&!result; i++) {
            if(figury.get(i).contains(p.x, p.y)){
                result=true;
            }
        }
        return result;
    }
}
public abstract class Figura implements Serializable{
    private Rectangle2D area;
    protected int x;
    protected int y;
    public Figura(Point p){
        this.x=p.x;
        this.y=p.y;
        area=new Rectangle2D.Float(p.x,p.y,20,20);
    }

    public boolean contains(int x, int y) {
        return area.contains(x, y);
    }
    public int getX(){
        return x; 
    }
    public int getY(){
        return y; 
    }
    abstract public void draw(Graphics2D g2);
}

class Kolko extends Figura{
    private static final long serialVersionUID = 7153846813565405611L;
    public Kolko(Point p){
        super(p);
    }
    public void draw(Graphics2D g2) {
        g2.drawOval(x+5, y+5, 10, 10);      
    }
}

class Krzyzyk extends Figura{
    private static final long serialVersionUID = -1984051710790995083L;
    public Krzyzyk(Point p){
        super(p);
    }
    public void draw(Graphics2D g2) {
        g2.drawLine(x+5, y+5,x+15, y+15);
        g2.drawLine(x+5, y+15, x+15, y+5);
    }
}

panel umieszczamy na JFrame

mam nadzieje, ze sie przyda

pozdrawiam

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0