java实现打砖块小游戏
本文实例为大家分享了java实现打砖块小游戏的具体代码,供大家参考,具体内容如下
源码共包含两个文件
文件1:play_zhuankuai.java
importjava.awt.*;
importjavax.swing.JPanel;
@SuppressWarnings("serial")
publicclassplay_zhuankuaiextendsJPanelimplementsRunnable{
booleanexit=false;
booleanend=false;
doublex=100;//控制小球坐标
doubley=100;
doublex1=300;//控制底板坐标
doubley1=300;
intscore=0;
intindex[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};//标记,记录砖块是否被打中
intx2[]=newint[15];//控制砖块数量和坐标
inty2[]=newint[15];
doubledegree=3.14/3;
Imagefangxing;
Imagediban;
Imagezhuankuai;
Imageheiping;
Threadthread;
play_zhuankuai(){//设置面板属性
jiazai();
thread=newThread(this);
setSize(500,500);
setLocation(0,0);
setBackground(Color.black);
setVisible(true);
thread.start();
}
voidjiazai(){//导入图片
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);
}
publicvoidpaintComponent(Graphicsg){
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();
}
voidrule(){
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(inti=0;i=y2[i]&&y<=y2[i]+20)&&((x>=x2[i]&&x<=x2[i]+50))&&index[i]==0){
index[i]=1;
degree=-degree;
score+=100;
}
}
}
voidpaint_heiping(Graphicsg){
for(inti=0;i500){
j=1;
p=0;
k=k+60;
}
x2[i]=p;
y2[i]=k;
g.drawImage(zhuankuai,p,k,null);
}
}
@Override
publicvoidrun(){
while(!exit){
repaint();
try{
Thread.sleep(5);
}catch(InterruptedExceptione){
//TODO自动生成的catch块
System.out.println("出现错误:"+e+"\n");
}
}
}
}
文件2:jframe_main.java
importjava.awt.event.KeyEvent;
importjava.awt.event.KeyListener;
importjavax.swing.JFrame;
@SuppressWarnings("serial")
publicclassjframe_mainextendsJFrameimplementsKeyListener{
play_zhuankuaiplay=newplay_zhuankuai();
jframe_main(){
addKeyListener(this);
add(play);
setSize(500,500);
setLocation(0,0);
setVisible(true);
}
publicstaticvoidmain(String[]args){
newjframe_main();
}
@Override
publicvoidkeyTyped(KeyEvente){
}
@Override
publicvoidkeyPressed(KeyEvente){
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
publicvoidkeyReleased(KeyEvente){
}
}
友情提示:该段源码会调用相关图片素材,请自行添加,本人在此不方便上传,望谅解
更多精彩游戏,请参考专题《java经典小游戏》
更多有趣的经典小游戏实现专题,分享给大家:
C++经典小游戏汇总
python经典小游戏汇总
python俄罗斯方块游戏集合
JavaScript经典游戏玩不停
javascript经典小游戏汇总
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。