欢迎访问优讯网!
您当前的位置:首页 > 爱编程

java实现打砖块小游戏

时间:2020-05-19 08:35:38  来源:优讯网  作者:小卡司  浏览次数:
这篇文章主要为大家详细介绍了java实现打砖块小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了java实现打砖块小游戏的具体代码,供大家参考,具体内容如下

源码共包含两个文件

文件1:play_zhuankuai.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
import java.awt.*;
import javax.swing.JPanel;
@SuppressWarnings("serial")
public class play_zhuankuai extends JPanel implements Runnable{
 boolean exit=false;
 boolean end=false;
 double x=100;     //控制小球坐标
 double y=100;
 double x1=300;    //控制底板坐标
 double y1=300;
 int score=0;
 int index[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};   //标记,记录砖块是否被打中
 int x2[]=new int[15];    //控制砖块数量和坐标
 int y2[]=new int[15];
 double degree=3.14/3;
 Image fangxing;
 Image diban;
 Image zhuankuai;
 Image heiping;
 Thread thread;
 play_zhuankuai(){  //设置面板属性
  jiazai();
  thread = new Thread(this);
  setSize(500,500);
  setLocation(0,0);
  setBackground(Color.black);
  setVisible(true);
  thread.start();
}
void jiazai(){  //导入图片
  fangxing=Toolkit.getDefaultToolkit().getImage("images/方形.jpg").
getScaledInstance(
10,10,Image.SCALE_DEFAULT);
  diban=Toolkit.getDefaultToolkit().getImage("images/底版.jpg").
getScaledInstance(
100, 10, Image.SCALE_DEFAULT);
  zhuankuai=Toolkit.getDefaultToolkit().getImage("images/砖块.jpg").
getScaledInstance(
50, 20, Image.SCALE_DEFAULT);
  heiping=Toolkit.getDefaultToolkit().getImage("images/黑屏.png").
getScaledInstance(
50, 20, Image.SCALE_DEFAULT);
}
public void paintComponent(Graphics g){
 super.paintComponent(g);
 paint_zhuankuai(g);
 g.setColor(Color.blue);
 g.drawLine(0, 350, 500, 350);
 g.drawImage(diban,(int)x1, (int)y1, null);
 paint_heiping(g);
 g.drawImage(fangxing, (int)x, (int)y, null);
 paint_wenzi(g);
 rule();
}
void rule(){
  x=x+1*Math.cos(degree);
  y=y+1*Math.sin(degree);
 if(y>=500-50||score==1500){
  end=true;
 }
 if(x>=500-20||x<=0)
  degree=3.14-degree;
 if(x1<=0)
  x1=0;
 if(x1>=400)
  x1=400;
 if(y1>=500-50)
  y1=500-50;
 if(y1<=350)
  y1=350;
 if(y>=y1-10&&x>=x1&&x<=x1+100||y<=0)
  degree=-degree;
 for(int i=0;i<x2.length;i++){
  if((y>=y2[i]&&y<=y2[i]+20)&&((x>=x2[i]&&x<=x2[i]+50))&&index[i]==0){
    index[i]=1;
    degree=-degree;
    score+=100;
  }
 }
}
void paint_heiping(Graphics g){
 for(int i=0;i<x2.length;i++){
  if(index[i]==1)
   g.drawImage(heiping, x2[i], y2[i], null);
 }
}
void paint_wenzi(Graphics g){
  g.setColor(Color.red);
  g.drawString("分数:"+score, 0, 340);
  if(end){
   if(score<1500)
   g.drawString("游戏结束!!!",200,250);
   else
   g.drawString("闯关成功!!!",200,250);
   exit=true;
  }
}
  
void paint_zhuankuai(Graphics g){
  int p=0;
  int k=0;
  for(int i=0,j=0;i<x2.length;i++){
   p=100*j;
   j++;
   if(p+100>500){
    j=1;
    p=0;
    k=k+60;
   }
   x2[i]=p;
   y2[i]=k;
  g.drawImage(zhuankuai, p,k,null);
  }
}
@Override
public void run() {
 while(!exit){
  repaint();
  try {
   Thread.sleep(5);
  } catch (InterruptedException e) {
   // TODO 自动生成的 catch 块
   System.out.println("出现错误:"+e+"\n");
  }
 }
}
}

文件2:jframe_main.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
@SuppressWarnings("serial")
public class jframe_main extends JFrame implements KeyListener{
 play_zhuankuai play=new play_zhuankuai();
 jframe_main(){
  addKeyListener(this);
  add(play);
  setSize(500,500);
  setLocation(0, 0);
  setVisible(true);
 }
 public static void main(String[] args) {
   new jframe_main();
 }
 @Override
 public void keyTyped(KeyEvent e) {
 }
 @Override
 public void keyPressed(KeyEvent e) {
 if(e.getKeyCode()==38)
  play.y1-=20;
 if(e.getKeyCode()==40)
  play.y1+=20;
 if(e.getKeyCode()==37)
  play.x1-=20;
 if(e.getKeyCode()==39)
  play.x1+=20;
 }
 @Override
 public void keyReleased(KeyEvent e) {
 }
}

友情提示:该段源码会调用相关图片素材,请自行添加,本人在此不方便上传,望谅解

以上就是本文的全部内容,希望对大家的学习有所帮助

来顶一下
返回首页
返回首页

原文链接:https://www.jb51.net/article/186802.htm


推荐资讯
如何下载旧版centos iso镜像 如何下载迷你mini版的centos镜像
如何下载旧版centos i
计算机的正确使用姿势 电脑痴如何正确的使用电脑
计算机的正确使用姿势
好用的后台管理的前端框架模版H-ui H-ui框架模版分享
好用的后台管理的前端
微信电脑多开方法 无需辅助电脑版微信双开方法分享
微信电脑多开方法 无
相关文章
栏目更新
栏目热门