2048总算是完成了,花了三天左右的时间,虽然一开始走了歧路,好在及时改正了,做的也加了一些我的小创意在里面。
首先 ,建立一个合适的窗体,然后根据它的大小来算好每个格子的大小,用一个方法把十六个按钮加上去。然后写一个加数字的方法,每按一下方向键,都会出现一个数字,所以就要创建一个类来做监听器,它继承的是Keylistener,然后在他的press方法里面写四个方向的运动,
public void keyPressed(KeyEvent e) {
if(e.getKeyCode()==KeyEvent.VK_UP){
my.moveUP();
my.addbutton();
}
if(e.getKeyCode()==KeyEvent.VK_DOWN){
my.moveDOWN();
my.addbutton();
// my.drawcolor(i, j, num);
}
if(e.getKeyCode()==KeyEvent.VK_LEFT){
my.moveLEFT();
my.addbutton();
}
if(e.getKeyCode()==KeyEvent.VK_RIGHT){
my.moveRIGHT();
my.addbutton();
}
再移动完之后一定要调用一次addButton。然后在写好各个方向的按钮时该怎么移动的,
记得要加上一些声音和颜色
for(int i=0;i<4;i++){
for(int j=3;j>0;j--){
if(!buttonarray[i][j].getText().equals("")){
String str=buttonarray[i][j].getText();
String str1=buttonarray[i][j-1].getText();
if(str.equals(str1)){
int num=Integer.parseInt(str1)*2;
au.play();
buttonarray[i][j-1].setText(num+"");
buttonarray[i][j].setText("");
这里面有一个问题我现在还没解决,就是连加!
我做的2048有一个特点,玩家很轻松的就可以玩到2048,因为只要点击两个不同的键,它们就可以交换位置。我是给每个按钮加上监听器,这样就可以轻松地实现这个交换了,还要记得一定要让按钮设置为可获得焦点哦。
String temp=button1.getText();
Color c1=button1.getBackground();
Color c2=button2.getBackground();
button1.setText(button2.getText());
button2.setBackground(c1);
button1.setBackground(c2);
button2.setText(temp);
这样一来就成了一个有特色的2048了,