java入门简单小游戏?java小游戏合集
大家好,java入门简单小游戏相信很多的网友都不是很明白,包括java小游戏合集也是一样,不过没有关系,接下来就来为大家分享关于java入门简单小游戏和java小游戏合集的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!
求一个简单又有趣的JAVA小游戏代码
具体如下:
连连看的小源码
package Lianliankan;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class lianliankan implements ActionListener
{
JFrame mainFrame;//主面板
Container thisContainer;
JPanel centerPanel,southPanel,northPanel;//子面板
JButton diamondsButton[][]= new JButton[6][5];//游戏按钮数组
JButton exitButton,resetButton,newlyButton;//退出,重列,重新开始按钮
JLabel fractionLable=new JLabel("0");//分数标签
JButton firstButton,secondButton;//
分别记录两次62616964757a686964616fe59b9ee7ad9431333335326239被选中的按钮
int grid[][]= new int[8][7];//储存游戏按钮位置
static boolean pressInformation=false;//判断是否有按钮被选中
int x0=0,y0=0,x=0,y=0,fristMsg=0,secondMsg=0,validateLV;//游戏按钮的位置坐标
int i,j,k,n;//消除方法控制
代码(code)是程序员用开发工具所支持的语言写出来的源文件,是一组由字符、符号或信号码元以离散形式表示信息的明确的规则体系。
对于字符和Unicode数据的位模式的定义,此模式代表特定字母、数字或符号(例如 0x20代表一个空格,而 0x74代表字符“t”)。一些数据类型每个字符使用一个字节;每个字节可以具有 256个不同的位模式中的一个模式。
在计算机中,字符由不同的位模式(ON或 OFF)表示。每个字节有 8位,这 8位可以有 256种不同的 ON和 OFF组合模式。对于使用 1个字节存储每个字符的程序,通过给每个位模式指派字符可表示最多 256个不同的字符。2个字节有 16位,这 16位可以有 65,536种唯一的 ON和 OFF组合模式。使用 2个字节表示每个字符的程序可表示最多 65,536个字符。
单字节代码页是字符定义,这些字符映射到每个字节可能有的 256种位模式中的每一种。代码页定义大小写字符、数字、符号以及!、@、#、%等特殊字符的位模式。每种欧洲语言(如德语和西班牙语)都有各自的单字节代码页。
虽然用于表示 A到 Z拉丁字母表字符的位模式在所有的代码页中都相同,但用于表示重音字符(如"é"和"á")的位模式在不同的代码页中却不同。如果在运行不同代码页的计算机间交换数据,必须将所有字符数据由发送计算机的代码页转换为接收计算机的代码页。如果源数据中的扩展字符在接收计算机的代码页中未定义,那么数据将丢失。
如果某个数据库为来自许多不同国家的客户端提供服务,则很难为该数据库选择这样一种代码页,使其包括所有客户端计算机所需的全部扩展字符。而且,在代码页间不停地转换需要花费大量的处理时间。
java做一些小游戏需要学什么
Java做这些小游戏,可以使用下面几种Java自带的图形界面框架
Awt适合内存较小,配置较低的嵌入式系统等,组件较少,性能好,资源消耗低.
Swing适合PC等,组件较丰富,内存占用较大,但是跨平台性优越
JavaFX这个是比较强大的框架了,组件比Swing更丰富,比如添加了日期选择组件, WebView组件,还支持3D和动画.并且多多媒体支持良好.但是相关资料比Swing等少
既然学过Java Web那么对网页编程还是有了解吧, HTML+CSS+JS也可以开发出小游戏,浏览器可以显示,放入JavaFX的WebView组件也可以显示出来
推荐使用JavaFX或者 Web,因为这两者都很好做到了分离. JavaFX也可以分离出FXML文件,CSS文件,Java文件.当然也可以采用最稳妥的Swing来开发,毕竟Swing的图书教程很多.
推荐书籍
<Java 2D游戏编程入门><Java游戏编程原理与实践教程>
<JavaFX游戏程式设计第三版>
其实游戏算法都一样,在Swing上好了弄透彻了,也可以轻松移植到JavaFX或者网页上
几个Java小游戏代码
package reduce;
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;
}
}
我只有一个打字母小游戏
java入门简单小游戏的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java小游戏合集、java入门简单小游戏的信息别忘了在本站进行查找哦。