2048小游戏设计 下载本文

页眉内容

setBounds(500, 50, 500, 615);

setDefaultC?oseOperation(J Frame. EX「「0N_CLOSE) ; setTltle(\版\ scoresPane= new JPanel0; scoresPane.setBackground(Color.green); scoresPane.setBounds(20, 20, 460, 40);

scoresPane.setBorder(BorderFactory.createMatteBorder(2, 2, 2, 2,,Color.YELLOW)); getContentPane0.add(scoresPane); scoresPane.setLayout(null);

labelMaxScores= new JLabel(\最高分:\labelMaxScores.setBounds(10, 5, 50, 30); scoresPane.add(labelMaxScores); textMaxScores= new JTextField(\textMaxScores.setBounds(60, 5, 150, 30); textMaxScores.setFont(font); textMaxScores.setEditable(false); scores Pane.add(textMaxScores) ; 数面ili , 1 '

labelScores= new JLabel(”得 分:\labelScores.setBounds(240, 5, 50, 30); scoresPane.add(labelScores); textSoores= new JLabe1(String.valueOf(scores)); textSoores.setFont(font); textSoores.setBounds(290, 5, 150, 30); scores Pane.add(textScores) ;

mainPane= new JPanel0; mainPane.setBounds(20, 70, 460, 500); ;

页眉内容

mainPane.setLayout(null); //设置空布用 texts= new JLabel[4][4]; for(int i= 0; i<4; i++){ for(int j= 0; j<4; j++){ texts[ilm= new JLabel0; texts[ilm.setFont(font2);

//创建文本框二维数组//遍历数组 //创建 t示签

texts[ilm. setHorizontalAlign me nt(SwingConstants.CENTE R) ; texts[ilm. setText(-) ; texts[ilm.setBounds(120* j, 120*i, 100, 100); //设置方块 的大小位置 setColor(l, j, \

te),(ts[ilm. setOpaque(true) ;

texts[ilm.setBorder(BorderFactory.createMatteBorder(2, 2, 2,,2, Color.green));//设置方決边框颜色

main Pane.add(texts[ilm) ; 文本框放在

tips=newJLabel(Tips:使用上、下、左、右键或者W、 S、 A、 D键控 制H);

tips.setFont(font);

tips.setBounds(60,480,400,20) main Pane.add(tips) ;

textMaxScores.add KeyListe:ner( new KeyAdapte r0{ 高分标签添加接键监所器

publicvoid keyPressed( KeyEvente)(

页眉内容

do_label_keyPressed(e) ; } });

//调用时同处理方法 Create20; Create20; } /t*

* 接键输入事件的处理方法 @param e */

protected void do_label_keyPressed(fina] KeyEvent e){ int code= e.getKeyCode0;//获取接键代码 inta; String str; Strirlg str1 ; int num;

switch(oode)(case KeyEvent.VK_LEFT: case KeyEvent.VK_A: 或者A键

for(int i= 0; i<:4; i++){ a=5;

//a 的引入是为了防止上连加的情況出现 //如果按键代码是左方向键 for(int k= 0; k< 3; k++){ for(int j= 1 ; j<4; j++){

页眉内容

str= texts[ilm.getTe)(t0;

//遍历1 6个方块//获取当前方块标签文 本字符

str1 =texts[i][j-1].getText0; //获取当前左1方块 r(l00.」;Ca -一 s al0 本示:整文本字特

if(str1.compareTo(…') == 0){ //如果左1方块 文本为空字符

texts[i][]-1 ].setText(str) ; setColor(i,,j-1 ,str); texts[ilm.setText(\//字符左移 //当前方.映字符 a-1 )){

setColor(i, j,川');

}else if((str.compareTo(str1) == 0) && 0l=a) && (j!= //如果当前方映 和左1方块文本字fii:相等 num =lnteger.parselnt(str); scores+= num; timeS十十;

str= String.valueOf(2 num); texts[i][]-1].setText(str); setColor(i,,j-1 , str); texts[ilm.setTe)(t(\ //当前方」央字符