Muszę napisać projekt. Chce stworzyć prostą grę. Plansza składająca się z kafelków 8x8, by można je było po ciśnięciu odwrócić. Co mogę użyć? Jakie wzorce projektowe? Jakieś małe przykłady?
Chce zrobić "tablice" kafelków, ale nie mogę znaleźć tego w tym tutku. Może ktoś mi wskazać? Mam mało czasu, nie chce gotowca, ale chce dokładnego wskazania palcem gdzie mam szukać dokładnie.
Ja bym kafelki umieścił na jakimś panelu z GridLayout(8,8) i w tablicy JPanel[8][8]. Każdy kafelek należałby do klasy dziedziczącej po JPanel i zawierałby dwa obrazki: awers i rewers. Początkowo wyświetlane są awersy, po kliknięciu w kafelek wyświetlany jest rewers.
Ok, ale mam problem z stworzeniem samego kafelka. Tzn. algorytm postępowania mam już napisany. Dokładnie wiem co chce napisać, nie wiem tylko czego używać...
Coś takiego
class Kafelek extends JPanel
{
BufferedImage awers = ...
BufferedImage rewers = ...
boolean fromFront = true;
...
Kafelek()
{
addMouseListener(...);//kliknięcie zmienia wartość zmiennej fromFront i wywołuje repaint()
}
...
public void paintComponent(Graphics g)
{
super.paintComponent(g);
if(fromFront)
{
g.drawImage(awers,0,0,null);
}
else
{
g.drawImage(rewers,0,0,null);
}
}
...
}
http://pastebin.com/wK1EjBai
http://pastebin.com/87q1mj52
Dlaczego to mi nie działa? Dokładnie to chodzi mi o linijkę:
public XOButton(){
X = new ImageIcon(this.getClass().getResource("X.png"));
O = new ImageIcon(this.getClass().getResource("O.png"));
this.addActionListener((ActionListener) this); //ta linijka krzyczy blad
}
Ja się nie dziwię, że kompilator krzyczy. Ta linijka nie ma żadnego sensu.
A możesz mi powiedzieć co mam zmienić? Jak to naprawić?
BTW. Chce wybierać wielkość planszy, muszę tworzyć nową klasę, czy można to w już istniejącej umieścić?
Skoro ta linijka jest zupełnie bez sensu, to nie potrafię się domyślić co chciałeś osiągnąć. Zatem nie mogę Ci doradzić co masz zmienić.
Ok, znalazłem błąd. Wracam do stargo pytania.
To znaczy, do którego?
No, że jakoś grę muszę zacząć. Więc tworze klase Menu od której się program zaczyna, czy tak jak już tutaj mam kod i tylko dodaje klase Menu?
Dodaj do głównego okna JMenuBar albo JToolBar. Przeczytaj jakiś tutorial na temat Swinga, np. ten: http://zetcode.com/gfx/java2d/
Raczej chce coś w rodzaju "nowego okna". Tzn. nie nowego, ale by dopiero po wybraniu opcji z menu sie przeniosło. Bo chce mieć możliwość wybrania wielkości planszy.