public ArenaFrame(String title, Arena arena, String background, String battleBG, String cardBG) { setTitle(title); this.arena = arena; Toolkit tk = Toolkit.getDefaultToolkit(); Dimension screenSize = tk.getScreenSize(); width = (int) screenSize.getWidth(); height = (int) screenSize.getHeight(); posX = (width - Constant.BATTLEFIELD_WIDTH) / 2; posY = (height - Constant.BATTLEFIELD_HEIGHT - Constant.CARDPANEL_HEIGHT) / 2; skill_id = 0; addKeyListener(this); addMouseListener(this); addMouseMotionListener(this); setUndecorated(true); setExtendedState(JFrame.MAXIMIZED_BOTH); c = getContentPane(); c.setPreferredSize(new Dimension(width, height)); c.setLayout(null); battle_field = new BattleFieldPanel(Constant.BATTLEFIELD_WIDTH, Constant.BATTLEFIELD_HEIGHT, arena); battle_field.setBounds(posX, posY, Constant.BATTLEFIELD_WIDTH, Constant.BATTLEFIELD_HEIGHT); battle_field.setOpaque(false); c.add(battle_field); card_panel = new CardPanel(Constant.CARDPANEL_WIDTH, Constant.CARDPANEL_HEIGHT, arena); card_panel.setBounds( posX, posY + Constant.BATTLEFIELD_HEIGHT, Constant.CARDPANEL_WIDTH, Constant.CARDPANEL_HEIGHT); card_panel.setOpaque(false); c.add(card_panel); setSize(width, height); setBackground(background); setBattleFieldBackground(battleBG); setCardPanelBackground(cardBG); setResizable(false); setLocationRelativeTo(null); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); pack(); setVisible(true); setFocusable(true); }
/* mouse events */ public void mousePressed(MouseEvent e) { int x = e.getX(); int y = e.getY(); /* left click */ if (e.getButton() == MouseEvent.BUTTON1) { if (x >= posX && x < posX + Constant.BATTLEFIELD_WIDTH) { if (y >= posY) { if (y < posY + Constant.BATTLEFIELD_HEIGHT) { battle_field.doPress((x - posX), (y - posY)); return; } else if (y < posY + Constant.BATTLEFIELD_HEIGHT + Constant.CARDPANEL_HEIGHT) { card_panel.doDrag(x - posX, y - (posY + Constant.BATTLEFIELD_HEIGHT)); return; } } } /* right click */ } else if (e.getButton() == MouseEvent.BUTTON3) { if (x >= posX && x < posX + Constant.BATTLEFIELD_WIDTH) { if (y >= posY) { if (y < posY + Constant.BATTLEFIELD_HEIGHT) { Skill skill = arena.player.useSkill(skill_id, x - posX, y - posY); if (skill != null) { arena.addSkill(skill); } return; } else if (y < posY + Constant.BATTLEFIELD_HEIGHT + Constant.CARDPANEL_HEIGHT) { card_panel.changeDetail(x - posX, y - (posY + Constant.BATTLEFIELD_HEIGHT)); return; } } } } }
public void reset() { battle_field.reset(); }
public boolean removeFromForeground(int id) { return battle_field.removeFromForeground(id); }
public boolean removeFromBattleField(int id) { return battle_field.removeFromCell(id); }
public int addToForeground(Image img, int x, int y, int width, int height, int id) { return battle_field.addToForeground(img, x, y, width, height, id); }
public int addToBattleField(Image img, int x, int y, int width, int height, int id) { return battle_field.addToPaint(img, x, y, width, height, id); }