Avatar
frenky.picasso:

Ahoj,
dělám semestrálku člověče nezlob se v Javě. Mám hotovou už celou logiku hry a ted přemýšlím nad Grafikou.

Nejdříve jsem myslel, že v jPanelu vytvořím grafická políčka(Rectangle) a každému z nich přiřadím nějakou vlastnost jako ActionListeners apod. Ale zjistil jsem, že Graphics objekty, které namaluji, žádné takové to "klikací funkce" nemají, tedy nemůžu je někde najít. Jediné řešení tedy je bud přes souřadnice (což mi nepřijde dobré v člověče nezlob se) nebo udělat ty políčka jPanelů, které už MouseCliked mají.

Nevíte tedy, zde se dá připřadit grafickému objetku(např. Rectangle) třeba MouseListeners nebo něco podobného?

Děkuji za radu
Frenky

 
Odpovědět 4.5.2014 19:42
Avatar
tomisoka
Redaktor
Avatar
tomisoka:

No já jsem to vždycky dělal takto:

Rectangle rectangle[][];
//...
if(rectangle[x][y].contains(MouseX, MouseY)){
  //...
}

BTW: co myslíš tímto : přes souřadnice (což mi nepřijde dobré v člověče nezlob se), to víš snad o něčem co na to nepotřebuje souřadnice?

 
Nahoru Odpovědět 4.5.2014 20:53
Avatar
xxxvodnikxxx
Člen
Avatar
Odpovídá na tomisoka
xxxvodnikxxx:

Myslel to tak, že "ručně" porovnávat není moc originální nápad- obzvlášť když můžeš mít hrací pole do různýho tvaru- pamatuju si např. kulatý, nebo do tvaru hvězdy, apod.
(řekl bych)

Nahoru Odpovědět 4.5.2014 21:32
Unix- svět, kde chcete být nulou :) (UID)
Avatar
Odpovídá na xxxvodnikxxx
frenky.picasso:

Jak píše 3xvodnik3x, přijde mi to takový zdlouhavý.. ale je to možná jediný způsob, pokud to nechci dělat přes komponenty jako jPanel...
Ale díky :)

 
Nahoru Odpovědět 4.5.2014 22:16
Avatar
xxxvodnikxxx
Člen
Avatar
xxxvodnikxxx:

teď mě napadlo..
Co si indexovat hrací políčka?
Následně si udělat třídu figurka- která si může uchovávat barvu hráče, a index pole, kde je
(v tomhle případě by bylo výhodný mít "domečkový" políčka zvlášť)

A kvůli naklikávání polí si můžeš i do třídy políčka dát proměnnou něco jako souřadnice, nebo klidně i přímo objekt jako rectangle nebo elipsu, která by ti řikala, kde daný pole je :)

Nahoru Odpovědět 5.5.2014 17:41
Unix- svět, kde chcete být nulou :) (UID)
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.