當前位置:編程學習大全網 - 源碼下載 - java小遊戲源代碼

java小遊戲源代碼

介紹這個給妳把...我空間還有很多..

/282919088

import?java.applet.Applet;

import?java.applet.AudioClip;

import?java.awt.Dimension;

import?java.awt.Font;

import?java.awt.Toolkit;

import?javax.sound.sampled.AudioFileFormat;

import?javax.sound.sampled.AudioSystem;

import?javax.swing.JFrame;

import?javax.swing.JPanel;

import?java.awt.Rectangle;

import?javax.swing.BorderFactory;

import?javax.swing.JButton;

import?javax.swing.JOptionPane;

import?javax.swing.JSlider;

import?javax.swing.JLabel;

import?javax.swing.SwingUtilities;

import?javax.swing.UIManager;

import?javax.swing.event.ChangeEvent;

import?javax.swing.event.ChangeListener;

import?java.awt.event.ActionEvent;

import?java.awt.event.ActionListener;

import?java.awt.event.KeyAdapter;

import?java.awt.event.KeyEvent;

import?java.io.File;

import?java.util.Vector;

public?class?Frame?extends?JFrame?implements?Runnable?{

JPanel?contentPane;

JPanel?jPanel1?=?new?JPanel();

JButton?jButton1?=?new?JButton();

JSlider?jSlider1?=?new?JSlider();

JLabel?jLabel1?=?new?JLabel();

JButton?jButton2?=?new?JButton();

JLabel?jLabel2?=?new?JLabel();

int?count?=?1,?rapidity?=?80;?//?count?當前進行的個數,?rapidity?遊標的位置

int?zhengque?=?0,?cuowu?=?0;

int?rush[]?=?{?10?,20?,30?};?//遊戲每關的個數?可以自由添加.列?{?10?,20?,30?,40,50}

int?rush_count?=?0;?//記錄關數

char?list[]?=?{?'A',?'B',?'C',?'D',?'E',?'F',?'G',?'H',?'I',?'J',?'K',?'L',

'M',?'N',?'O',?'P',?'Q',?'R',?'S',?'T',?'U',?'V',?'W',?'X',?'Y',

'Z',?'1',?'2',?'3',?'4',?'5',?'6',?'7',?'8',?'9'?};//隨機出現的數字?可以自由添加

Vector?number?=?new?Vector();

String?paiduan?=?"true";

AudioClip?Musci_anjian,?Music_shibai,?Music_chenggong;

public?Frame()?{

try?{

setDefaultCloseOperation(EXIT_ON_CLOSE);

//-----------------聲音文件---------------------

Musci_anjian?=?Applet.newAudioClip(new?File("sounds//anjian.wav")

.toURL());

Music_shibai?=?Applet.newAudioClip(new?File("sounds//shibai.wav")

.toURL());

Music_chenggong?=?Applet.newAudioClip(new?File(

"sounds//chenggong.wav").toURL());

//---------------------------------------

jbInit();

}?catch?(Exception?exception)?{

exception.printStackTrace();

}

}

/**

*?Component?initialization.

*?

*?@throws?java.lang.Exception

*/

private?void?jbInit()?throws?Exception?{

contentPane?=?(JPanel)?getContentPane();

contentPane.setLayout(null);

setSize(new?Dimension(588,?530));

setTitle("Frame?Title");

jPanel1.setBorder(BorderFactory.createEtchedBorder());

jPanel1.setBounds(new?Rectangle(4,?4,?573,?419));

jPanel1.setLayout(null);

jButton1.setBounds(new?Rectangle(277,?442,?89,?31));

jButton1.setText("開始");

jButton1.addActionListener(new?Frame1_jButton1_actionAdapter(this));

jSlider1.setBounds(new?Rectangle(83,?448,?164,?21));

jSlider1.setMaximum(100);

jSlider1.setMinimum(1);

jSlider1.setValue(50);

jLabel1.setText("速度");

jLabel1.setBounds(new?Rectangle(35,?451,?39,?18));

jButton2.setBounds(new?Rectangle(408,?442,?89,?31));

jButton2.setText("結束");

jButton2.addActionListener(new?Frame1_jButton2_actionAdapter(this));

jLabel2.setText("第壹關:100個");

jLabel2.setBounds(new?Rectangle(414,?473,?171,?21));

contentPane.add(jPanel1);

contentPane.add(jButton2);

contentPane.add(jButton1);

contentPane.add(jSlider1);

contentPane.add(jLabel1);

contentPane.add(jLabel2);

this.addKeyListener(new?MyListener());

jButton1.addKeyListener(new?MyListener());

jSlider1.addKeyListener(new?MyListener());

jSlider1.addChangeListener(new?ChangeListener()?{

public?void?stateChanged(ChangeEvent?e)?{

rapidity?=?jSlider1.getValue();

}

});

}

public?void?run()?{

number.clear();

zhengque?=?0;

cuowu?=?0;

paiduan?=?"true";

while?(count?<=?rush[rush_count])?{?

try?{

Thread?t?=?new?Thread(new?Tthread());

t.start();

count?+=?1;

Thread.sleep(1000?+?(int)?(Math.random()?*?2000));?//?生產下組停頓時間

//?最快1快.最慢2秒

}?catch?(InterruptedException?e)?{

e.printStackTrace();

}

}

while?(true)?{?//?等待最後壹個字符消失

if?(number.size()?==?0)?{

break;

}

}

if?(zhengque?==?0)?{?//?為了以後相除..如果全部正確或者錯誤就會出現錯誤.?所以..

zhengque?=?1;

}

if?(cuowu?==?0)?{

cuowu?=?1;

}

if?(paiduan.equals("true"))?{?//?判斷是否是自然結束

if?(zhengque?/?cuowu?>=?2)?{

JOptionPane.showMessageDialog(null,?"恭喜妳過關了");

rush_count?+=?1;?//?自動加1關

if?(rush_count?<?rush.length)?{

if?(rapidity?>?10)?{?//?當速度大於10的時候在-5提加速度.怕速度太快

rapidity?-=?5;?//?速度自動減10毫秒

jSlider1.setValue(rapidity);?//?選擇位置

}

Thread?t?=?new?Thread(this);

t.start();

}?else?{

JOptionPane.showMessageDialog(null,?"牛B...妳通關了..");

rush_count?=?0;

count?=?0;

}

}?else?{

JOptionPane.showMessageDialog(null,?"請再接再勵");

rush_count?=?0;

count?=?0;

}

}?else?{

rush_count?=?0;

count?=?0;

}

}

public?void?jButton1_actionPerformed(ActionEvent?e)?{

Thread?t?=?new?Thread(this);

t.start();

}

public?void?jButton2_actionPerformed(ActionEvent?e)?{

count?=?rush[rush_count]?+?1;

paiduan?=?"flase";

}

class?Tthread?implements?Runnable?{

public?void?run()?{

boolean?fo?=?true;

int?Y?=?0,?X?=?0;

JLabel?show?=?new?JLabel();

show.setFont(new?java.awt.Font("宋體",?Font.PLAIN,?33));

jPanel1.add(show);

X?=?10?+?(int)?(Math.random()?*?400);

String?parameter?=?list[(int)?(Math.random()?*?list.length)]?+?"";

Bean?bean?=?new?Bean();

bean.setParameter(parameter);

bean.setShow(show);

number.add(bean);

show.setText(parameter);

while?(fo)?{

//?---------------------數字下移--------------------

show.setBounds(new?Rectangle(X,?Y?+=?2,?33,?33));

try?{

Thread.sleep(rapidity);

}?catch?(InterruptedException?e)?{

e.printStackTrace();

}

if?(Y?>=?419)?{

fo?=?false;

for?(int?i?=?number.size()?-?1;?i?>=?0;?i--)?{

Bean?bn?=?((Bean)?number.get(i));

if?(parameter.equalsIgnoreCase(bn.getParameter()))?{

cuowu?+=?1;

jLabel2.setText("正確:"?+?zhengque?+?"個,錯誤:"?+?cuowu

+?"個");

number.removeElementAt(i);

Music_shibai.play();

break;

}

}

}

}

}

}

class?MyListener?extends?KeyAdapter?{

public?void?keyPressed(KeyEvent?e)?{

String?uu?=?e.getKeyChar()?+?"";

for?(int?i?=?0;?i?<?number.size();?i++)?{

Bean?bean?=?((Bean)?number.get(i));

if?(uu.equalsIgnoreCase(bean.getParameter()))?{

zhengque?+=?1;

number.removeElementAt(i);

bean.getShow().setVisible(false);

jLabel2.setText("正確:"?+?zhengque?+?"個,錯誤:"?+?cuowu?+?"個");

Music_chenggong.play();

break;

}

}

Musci_anjian.play();

}

}

public?static?void?main(String[]?args)?{

try?{

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

}?catch?(Exception?exception)?{

exception.printStackTrace();

}

Frame?frame?=?new?Frame();

Dimension?screenSize?=?Toolkit.getDefaultToolkit().getScreenSize();

Dimension?frameSize?=?frame.getSize();

if?(frameSize.height?>?screenSize.height)?{

frameSize.height?=?screenSize.height;

}

if?(frameSize.width?>?screenSize.width)?{

frameSize.width?=?screenSize.width;

}

frame.setLocation((screenSize.width?-?frameSize.width)?/?2,

(screenSize.height?-?frameSize.height)?/?2);

frame.setVisible(true);

}

}

class?Frame1_jButton2_actionAdapter?implements?ActionListener?{

private?Frame?adaptee;

Frame1_jButton2_actionAdapter(Frame?adaptee)?{

this.adaptee?=?adaptee;

}

public?void?actionPerformed(ActionEvent?e)?{

adaptee.jButton2_actionPerformed(e);

}

}

class?Frame1_jButton1_actionAdapter?implements?ActionListener?{

private?Frame?adaptee;

Frame1_jButton1_actionAdapter(Frame?adaptee)?{

this.adaptee?=?adaptee;

}

public?void?actionPerformed(ActionEvent?e)?{

adaptee.jButton1_actionPerformed(e);

}

}

class?Bean?{

String?parameter?=?null;

JLabel?show?=?null;

public?JLabel?getShow()?{

return?show;

}

public?void?setShow(JLabel?show)?{

this.show?=?show;

}

public?String?getParameter()?{

return?parameter;

}

public?void?setParameter(String?parameter)?{

this.parameter?=?parameter;

}

}

  • 上一篇:nodejs npm安裝的模塊 該怎麽使用
  • 下一篇:vb中的循環語句怎麽寫?
  • copyright 2024編程學習大全網