文档库 最新最全的文档下载
当前位置:文档库 › 打地鼠实训报告

打地鼠实训报告

打地鼠实训报告
打地鼠实训报告

Java语言程序设计实训报告

(打地鼠游戏)

学号:

姓名:

班级:

一、实训题

“打地鼠”游戏程序设计

二、实训容

1.打地鼠的界面设计(含截图、代码)

package .iotek.mouse;

import java.awt.Color;

import java.awt.Font;

import java.awt.Point;

import java.awt.Toolkit;

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

import javax.swing.ImageIcon;

import javax.swing.JFrame;

import javax.swing.JLabel;

public class PlayMouse extends JFrame implements Runnable{ private int num = 0;

private JLabel back;

private JLabel [] mouses;

private ImageIcon imgMouse;

private JLabel jtf;

public PlayMouse(){

this.setResizable(false);//不能修改大小。

this.getContentPane().setLayout(null);

this.setTitle("打地鼠游戏");

this.setBounds(400,200,1000, 600);

back= new JLabel();

ImageIcon icon = new ImageIcon(this.getClass().getResource("1.jpg"));

back.setIcon(icon);

back.setBounds(0, -10,1000,600);

this.setCursor(Toolkit.getDefaultToolkit().createCustomCursor(Toolkit.getDefault Toolkit().getImage("src//iotek/mouse/4.png"),new Point(),"self"));

imgMouse = new ImageIcon(this.getClass().getResource("3.jpg"));

mouses = new JLabel[6];

for(int i=0;i<6;i++){

mouses[i] = new JLabel();

mouses[i].setSize(imgMouse.getIconWidth(),

imgMouse.getIconHeight());

//mouses[i].setIcon(imgMouse);

mouses[i].addMouseListener(new MouseListener() {

Override

public void mouseReleased(MouseEvent e) {

// TODO 自动生成的方法存根

}

Override

public void mousePressed(MouseEvent e) {

// TODO 自动生成的方法存根

}

Override

public void mouseExited(MouseEvent e) {

// TODO 自动生成的方法存根

}

Override

public void mouseEntered(MouseEvent e) {

// TODO 自动生成的方法存根

}

Override

public void mouseClicked(MouseEvent e) {//加分功能Object object = e.getSource();

if(object instanceof JLabel){

JLabel label =(JLabel) object;

if(label.getIcon()!=null){

num++;

jtf.setText("你的得分是:"+num+"分");

}

label.setIcon(null);

}

}

this.getContentPane().add(mouses[i]);

}

jtf = new JLabel();

jtf.setBounds(350,250,200,70);

jtf.setFont(new Font("",20,22));

jtf.setForeground(Color.black);

jtf.setText("你的得分是:分");

mouses[0].setLocation(100, 5);

mouses[1].setLocation(400, 5);

mouses[2].setLocation(700, 5);

mouses[3].setLocation(100, 300);

mouses[4].setLocation(400, 300);

mouses[5].setLocation(700, 300);

this.getContentPane().add(jtf);

this.getContentPane().add(back);

this.setVisible(true);

}

Override

public void run() {

while(true){

try {

Thread.sleep(500);

int index = (int) (Math.random()*6);

if(mouses[index].getIcon()==null){

mouses[index].setIcon(imgMouse);

Thread.sleep(800);//反应时间,可以因为难度的不同,设置不同的长度。

if(mouses[index].isShowing()){

mouses[index].setIcon(null);

}

}

} catch (InterruptedException e) {

// TODO 自动生成的catch 块

e.printStackTrace();

}

}

}

public static void main(String[] args){

PlayMouse P1 = new PlayMouse();

Thread t1 = new Thread(P1);

t1.start();

}

}

2.打地鼠的逻辑设计

1.游戏中的地洞是一图片,从本机文件中选择上传到eclipse中,固定在指定位置显示,地洞在游戏中没有任何动作,所以没有程序需要编写;

2.设计本程序的关键在于实现地鼠的随机出现,几秒钟延时后,便立即消失了,游戏操作者能够控制鼠标移动锤子敲打到地鼠,发生两类碰撞,形成加分机制。

三、心得体会

在学习这门课的过程中,我感受到了自己亲自动手编程序、调程序的重要性,我们要熟悉java的语法、体会如何进行调试的思想,最好的一个手段就是自己动手编程、调试,这会比我们一味的看书效果好得多。当然在这个编程过程中遇到了很多困难,其中调试带来的困难让我无法忘记,在调试程序的同时,我也总结出来了一些调试的小技巧,让我在java语言课程设计中也受用匪浅。

相关文档