Japp det är riktigt svårt att få en god struktur när jag delar upp klasserna.
Min tanke är såhär nu:
World innehåller karaktärer
Karaktärer har en inventory (inventoryn kan bestå av Boolean's tex. hasBow() etc.
Sedan har jag ett GameWindow. Detta har en GamePanel.
GamePaneln har en World.
När GamePaneln ritar om sig skickar den med sitt grafikobjekt till World.
public void paintComponent(Graphics g)
{
world.draw(g);
}
World ritar ut sin bakgrund och skickar sedan vidare g till sin karaktär
public void draw(Graphics g)
{
g.rdrawImage(bakgrund,0,0.............
karaktär.draw(g);
}
karaktären har en aktuell ikon som den ritar ut på sin specifika position.
Dvs GamePanel förser World med ett grafikobjekt som i sin tur förser karaktären med samma objekt. Allt fungerar jättebra.
**Problem**
Innuti World skall sedan kollisionshanteringen ta plats. Då behöver jag information om hur GamePanel ser ut. Detta vet inte World.
Jag vill sedan även kunna trycka på 'i' och få upp en inventory. GamePanel känner av knapptryckning på 'i'. Då ska ett nytt fönster öppnas som hämtar sin data från karaktärens inventory. Detta borde väl lösas enklast genom att GamePanel ber World att be Karaktären att be sin Inventory att öppna sig. Öppna sig = öppna sitt fönster och visa vad du innehåller.
När detta är gjort skall Inventoryfönstret få fokus, och tilldelas en panel samt keylistener. När knapptryckning åter sker på 'i' eller Enter skall fönstret stängas och fokus skall återföras till GamePanel.
**Problem**
GamePanel vet inte när InventoryPanel stängs. Inventory vet inte vem GamePanel är. Fokus kan inte sättas på GamePanel från InventoryPanel
Så detta summerar nog de största frågetecknena jag strider med nu
Tack för allt engagemang!