打砖块 java_java实现打砖块小游戏

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

源码共包含两个文件

文件1:play_zhuankuai.java

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

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

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

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

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) {

}

}

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

更多精彩游戏,请参考专题《java经典小游戏》

更多有趣的经典小游戏实现专题,分享给大家:

C++经典小游戏汇总

python经典小游戏汇总

python俄罗斯方块游戏集合

JavaScript经典游戏 玩不停

javascript经典小游戏汇总

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值