Java实现打字游戏实现打字游戏
主要为大家详细介绍了Java实现打字游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了Java实现打字游戏的具体代码,供大家参考,具体内容如下
新建一个项目,然后在src里面建一个MyGame.java文件,
把代码粘到刚才新建的MyGame.java,
然后把两张图放到src下,就行了
一、代码一、代码
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.awt.*;
import java.awt.event.*;
public class MyGame {
static UIFrame uiFrame;//主界面
static playGame playgame;//正式游戏开始界面
public static void main(String[] args) {
uiFrame = new UIFrame("打字游戏");
playgame = new playGame();
}
/*游戏主界面*/
static class UIFrame extends JFrame {
int width = 500;
int height = 700;
Font X = new Font("方正舒体", Font.PLAIN, 30);
JLabel playjb = new JLabel("开始游戏");
JLabel rulejb = new JLabel("规则");
JLabel exitjb = new JLabel("退出游戏");
JFrame f1 = new JFrame("规则");
/*主界面设置*/
public UIFrame(String text) {
super(text);
this.setLayout(null);
this.setSize(width, height);
this.setLocationRelativeTo(null);
this.setResizable(false);
this.getLayeredPane().setLayout(null);
JPanel imgPanel = (JPanel) this.getContentPane();
imgPanel.setOpaque(false);
imgPanel.setBounds(0, 0, width, height);
imgPanel.setLayout(null);
ImageIcon icon = new ImageIcon("src/bg.jpg");
JLabel label = new JLabel(icon);
label.setBounds(0, 0, this.getWidth(), this.getHeight());
icon.setImage(icon.getImage().getScaledInstance(label.getWidth(), label.getHeight(), Image.SCALE_DEFAULT));
this.getLayeredPane().add(label, Integer.valueOf(Integer.MIN_VALUE));
Title title = new Title();//新建一个标题对象
this.add(title);//往窗口中加入标题面板
Thread t = new Thread(title);//将标题面板加入一个线程
t.start();//启动线程,实现标题面板下落
buildButton();
add_JB_Listener();
setruleJF();
this.setVisible(true);
}
/*设置按钮规格*/
public void buildButton() {
playjb.setForeground(Color.red);
rulejb.setForeground(Color.red);
exitjb.setForeground(Color.red);
playjb.setFont(X);
rulejb.setFont(X);
exitjb.setFont(X);
playjb.setBounds(width / 3, height * 2 / 6, width / 3, 50);
rulejb.setBounds(width / 3, height * 3 / 6, width / 3, 50);
exitjb.setBounds(width / 3, height * 4 / 6, width / 3, 50);
playjb.setHorizontalAlignment(JLabel.CENTER);
rulejb.setHorizontalAlignment(JLabel.CENTER);
exitjb.setHorizontalAlignment(JLabel.CENTER);
this.add(playjb);
this.add(rulejb);
this.add(exitjb);
}
/*设置规则窗口*/
public void setruleJF(){
JLabel text1 = new JLabel("<html><body>"+"基本规则:点击开始游戏后可以选择生命值,确认后游戏正式开始游戏开始后会自动下落四个三位"+"<br>"+" "+"数,在输入框中输入其中之一会自动消除这个三位数," +
"得分增加,并产生新数字,当数字"+"<br>"+" "+"掉落到屏幕底部时生命值减一,生命值为0游戏结束。(PS:在输入框中输入空格游戏暂"+"<br>"+" "+"停,输入任意数字则继续)" +"<br>"+"<br>"+
"难度介绍:游戏难度会随着得分的增加而自动增加,也可使用滑块自己调整数字下落难度等级。"+"<br>"+"<br>"+
"闪烁模式:游戏开始后可以点击开始闪烁按钮来开始闪烁模式,此时数字会隔一段时间消失再出现。"+"<br>"+"<br>"+"好好享受吧!"+"</body></html>");
text1.setVerticalAlignment(JLabel.NORTH);//使其文本位于JLabel顶部
text1.setFont(new Font("宋体", Font.PLAIN, 20));
f1.add(text1);//f1为显示规则的窗口
f1.setResizable(false);
f1.setSize(2 * width - 100, height / 2);
f1.setLocationRelativeTo(null);
}
/*按钮添加监听器*/
public void add_JB_Listener() {
playjb.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
setVisible(false);
Chooselife chooselife = new Chooselife();
}
@Override
public void mouseEntered(MouseEvent e) {
playjb.setBorder(BorderFactory.createMatteBorder(2, 2, 2, 2, Color.LIGHT_GRAY));
}
@Override
public void mouseExited(MouseEvent e) {
playjb.setBorder(null);
}
});
rulejb.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
f1.setVisible(true);
}
public void mouseEntered(MouseEvent e) {
rulejb.setBorder(BorderFactory.createMatteBorder(2, 2, 2, 2, Color.LIGHT_GRAY));
}
@Override