package com.zzk.Game_2048.client; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.util.Random; import javax.swing.JButton; import javax.swing.JOptionPane; import com.zzk.Game_2048.constant.Constant; import com.zzk.Game_2048.core.BlockLoader; import com.zzk.Game_2048.core.MyFrame; public class Client extends MyFrame{ public BlockLoader loader = new BlockLoader(); @Override public void loadFrame() { super.loadFrame(); addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { loader.keyPressed(e); } }); } @Override public void paint(Graphics g) { drawBasic(g); drawScore(g); if(gameStart){ try { loader.draw(g); } catch (CloneNotSupportedException e) { e.printStackTrace(); } }else{ if(!gameStart&flag) gameReset(); } } public static boolean gameStart =true; public static boolean flag=true; public void gameReset(){ flag=false; int m = JOptionPane.showOptionDialog(null, "�Բ��� , ��Ϸ��� ! ��ȷ�����¿�ʼ","��Ϸ���",JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE,null,new String[]{"ȷ��","�ر���Ϸ"},"ȷ��"); if(m==JOptionPane.YES_OPTION){ gameStart=true; flag=true; loader=new BlockLoader(); }else{ System.exit(0); } } /** * ����� */ private void drawScore(Graphics g) { g.setColor(Color.RED); g.fillRoundRect(Constant.BACK_X, Constant.BACK_Y-100, 220, 80, 10, 10); g.setColor(Color.WHITE); g.setFont(new Font("��Բ", Font.BOLD, 30)); g.drawString("���:"+BlockLoader.score+"",Constant.BACK_X, Constant.BACK_Y-50); g.setColor(Color.GREEN); g.fillRoundRect(Constant.BACK_RIGHT_IN_X+Constant.BLOCK_SPACE-250, Constant.BACK_Y-100, 250, 80, 10, 10); g.setColor(Color.WHITE); g.setFont(new Font("��Բ", Font.BOLD, 30)); g.drawString("��߷�:"+BlockLoader.bestScore+"",Constant.BACK_RIGHT_IN_X+Constant.BLOCK_SPACE-250, Constant.BACK_Y-50); } /** * ������ * @param g */ private void drawBasic(Graphics g) { g.setColor(Constant.COLOR_BACK); g.fillRoundRect(Constant.BACK_X, Constant.BACK_Y, Constant.BACK_WIDTH, Constant.BACK_HEIGHT, 20, 20); g.setColor(Constant.COLOR_BLOCK_BACK); for(int i=1;i<=4;i++){ for(int j=1;j<=4;j++){ int xStart =Constant.BACK_X+Constant.BLOCK_SPACE*j+Constant.BLOCK_WIDTH*(j-1); int yStart = Constant.BACK_Y+Constant.BLOCK_SPACE*i+Constant.BLOCK_WIDTH*(i-1); g.fillRoundRect(xStart, yStart, Constant.BLOCK_WIDTH, Constant.BLOCK_WIDTH, 10, 10); } } } public static void main(String[] args) { new Client().loadFrame(); } }