首页编程java编程java开发小游戏?java做小游戏什么水平

java开发小游戏?java做小游戏什么水平

编程之家2026-05-261137次浏览

大家好,今天小编来为大家解答以下的问题,关于java开发小游戏,java做小游戏什么水平这个很多人还不知道,现在让我们一起来看看吧!

java开发小游戏?java做小游戏什么水平

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开发小游戏?java做小游戏什么水平

推荐书籍

<Java 2D游戏编程入门><Java游戏编程原理与实践教程>

<JavaFX游戏程式设计第三版>

其实游戏算法都一样,在Swing上好了弄透彻了,也可以轻松移植到JavaFX或者网页上

java小游戏源代码

介绍这个给你把...我空间还有很多..

java开发小游戏?java做小游戏什么水平

importjava.applet.Applet;

importjava.applet.AudioClip;

importjava.awt.Dimension;

importjava.awt.Font;

importjava.awt.Toolkit;

importjavax.sound.sampled.AudioFileFormat;

importjavax.sound.sampled.AudioSystem;

importjavax.swing.JFrame;

importjavax.swing.JPanel;

importjava.awt.Rectangle;

importjavax.swing.BorderFactory;

importjavax.swing.JButton;

importjavax.swing.JOptionPane;

importjavax.swing.JSlider;

importjavax.swing.JLabel;

importjavax.swing.SwingUtilities;

importjavax.swing.UIManager;

importjavax.swing.event.ChangeEvent;

importjavax.swing.event.ChangeListener;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.awt.event.KeyAdapter;

importjava.awt.event.KeyEvent;

importjava.io.File;

importjava.util.Vector;

publicclassFrameextendsJFrameimplementsRunnable{

JPanelcontentPane;

JPaneljPanel1=newJPanel();

JButtonjButton1=newJButton();

JSliderjSlider1=newJSlider();

JLabeljLabel1=newJLabel();

JButtonjButton2=newJButton();

JLabeljLabel2=newJLabel();

intcount=1,rapidity=80;//count当前进行的个数,rapidity游标的位置

intzhengque=0,cuowu=0;

intrush[]={10,20,30};//游戏每关的个数可以自由添加.列{10,20,30,40,50}

intrush_count=0;//记录关数

charlist[]={'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'};//随机出现的数字可以自由添加

Vectornumber=newVector();

Stringpaiduan="true";

AudioClipMusci_anjian,Music_shibai,Music_chenggong;

publicFrame(){

try{

setDefaultCloseOperation(EXIT_ON_CLOSE);

//-----------------声音文件---------------------

Musci_anjian=Applet.newAudioClip(newFile("sounds//anjian.wav")

.toURL());

Music_shibai=Applet.newAudioClip(newFile("sounds//shibai.wav")

.toURL());

Music_chenggong=Applet.newAudioClip(newFile(

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

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

jbInit();

}catch(Exceptionexception){

exception.printStackTrace();

}

}

/**

*Componentinitialization.

*

*@throwsjava.lang.Exception

*/

privatevoidjbInit()throwsException{

contentPane=(JPanel)getContentPane();

contentPane.setLayout(null);

setSize(newDimension(588,530));

setTitle("FrameTitle");

jPanel1.setBorder(BorderFactory.createEtchedBorder());

jPanel1.setBounds(newRectangle(4,4,573,419));

jPanel1.setLayout(null);

jButton1.setBounds(newRectangle(277,442,89,31));

jButton1.setText("开始");

jButton1.addActionListener(newFrame1_jButton1_actionAdapter(this));

jSlider1.setBounds(newRectangle(83,448,164,21));

jSlider1.setMaximum(100);

jSlider1.setMinimum(1);

jSlider1.setValue(50);

jLabel1.setText("速度");

jLabel1.setBounds(newRectangle(35,451,39,18));

jButton2.setBounds(newRectangle(408,442,89,31));

jButton2.setText("结束");

jButton2.addActionListener(newFrame1_jButton2_actionAdapter(this));

jLabel2.setText("第一关:100个");

jLabel2.setBounds(newRectangle(414,473,171,21));

contentPane.add(jPanel1);

contentPane.add(jButton2);

contentPane.add(jButton1);

contentPane.add(jSlider1);

contentPane.add(jLabel1);

contentPane.add(jLabel2);

this.addKeyListener(newMyListener());

jButton1.addKeyListener(newMyListener());

jSlider1.addKeyListener(newMyListener());

jSlider1.addChangeListener(newChangeListener(){

publicvoidstateChanged(ChangeEvente){

rapidity=jSlider1.getValue();

}

});

}

publicvoidrun(){

number.clear();

zhengque=0;

cuowu=0;

paiduan="true";

while(count<=rush[rush_count]){

try{

Threadt=newThread(newTthread());

t.start();

count+=1;

Thread.sleep(1000+(int)(Math.random()*2000));//生产下组停顿时间

//最快1快.最慢2秒

}catch(InterruptedExceptione){

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);//选择位置

}

Threadt=newThread(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;

}

}

publicvoidjButton1_actionPerformed(ActionEvente){

Threadt=newThread(this);

t.start();

}

publicvoidjButton2_actionPerformed(ActionEvente){

count=rush[rush_count]+1;

paiduan="flase";

}

classTthreadimplementsRunnable{

publicvoidrun(){

booleanfo=true;

intY=0,X=0;

JLabelshow=newJLabel();

show.setFont(newjava.awt.Font("宋体",Font.PLAIN,33));

jPanel1.add(show);

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

Stringparameter=list[(int)(Math.random()*list.length)]+"";

Beanbean=newBean();

bean.setParameter(parameter);

bean.setShow(show);

number.add(bean);

show.setText(parameter);

while(fo){

//---------------------数字下移--------------------

show.setBounds(newRectangle(X,Y+=2,33,33));

try{

Thread.sleep(rapidity);

}catch(InterruptedExceptione){

e.printStackTrace();

}

if(Y>=419){

fo=false;

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

Beanbn=((Bean)number.get(i));

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

cuowu+=1;

jLabel2.setText("正确:"+zhengque+"个,错误:"+cuowu

+"个");

number.removeElementAt(i);

Music_shibai.play();

break;

}

}

}

}

}

}

classMyListenerextendsKeyAdapter{

publicvoidkeyPressed(KeyEvente){

Stringuu=e.getKeyChar()+"";

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

Beanbean=((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();

}

}

publicstaticvoidmain(String[]args){

try{

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

}catch(Exceptionexception){

exception.printStackTrace();

}

Frameframe=newFrame();

DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();

DimensionframeSize=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);

}

}

classFrame1_jButton2_actionAdapterimplementsActionListener{

privateFrameadaptee;

Frame1_jButton2_actionAdapter(Frameadaptee){

this.adaptee=adaptee;

}

publicvoidactionPerformed(ActionEvente){

adaptee.jButton2_actionPerformed(e);

}

}

classFrame1_jButton1_actionAdapterimplementsActionListener{

privateFrameadaptee;

Frame1_jButton1_actionAdapter(Frameadaptee){

this.adaptee=adaptee;

}

publicvoidactionPerformed(ActionEvente){

adaptee.jButton1_actionPerformed(e);

}

}

classBean{

Stringparameter=null;

JLabelshow=null;

publicJLabelgetShow(){

returnshow;

}

publicvoidsetShow(JLabelshow){

this.show=show;

}

publicStringgetParameter(){

returnparameter;

}

publicvoidsetParameter(Stringparameter){

this.parameter=parameter;

}

}

java小游戏

按照题目要求,人拿完火柴后计算机自动拿火柴,判断胜利者。鼠标点击ok或者键盘按enter键即可提交人拿的火柴个数。图形界面如下,

import java.awt.*;

import java.awt.event.ActionListener;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.util.Random;

import javax.swing.JOptionPane;

import javax.swing.JFrame;

import javax.swing.JButton;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JTextField;

import javax.swing.JPasswordField;

public class game extends javax.swing.JFrame implements ActionListener{

private JPanel frame;

private JTextField pwd;

private JTextField jLabel1;

private JTextField jLabel2;

private JButton bntOk;

private JLabel l1;

private JLabel l2;

private JLabel l3;

int total;

public static void main(String[] args)

{

game ff=new game();

}

public game(){

initGUI();

Random r=new Random();

total=r.nextInt(51);

while(total<20){

total=r.nextInt(51);

}

jLabel2.setText(String.valueOf(total));

this.setSize(500, 500);

this.setLocation(300, 400);

this.setLocationRelativeTo(null);

this.setVisible(true);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

getRootPane().setDefaultButton(bntOk);

bntOk.addActionListener(this);

}

public void actionPerformed(java.awt.event.ActionEvent evt)

{

int a=Integer.parseInt(jLabel1.getText());

if((a>3)||(a==0)){

JOptionPane.showMessageDialog(game.this,"输入错误

请重新输入");

return;

}

total=total-a;

jLabel2.setText(String.valueOf(total));

if(total<=0){

JOptionPane.showMessageDialog(game.this,"恭喜你,胜利了!");

return;

}

Random r=new Random();

int b=r.nextInt(4);

while(b==0)

b=r.nextInt(4);

pwd.setText(String.valueOf(b));

total=total-b;

jLabel2.setText(String.valueOf(total));

if(total<=0){

JOptionPane.showMessageDialog(game.this,"很遗憾,你输了!");

}

}

private void initGUI(){

frame=new JPanel();

getContentPane().add(frame, BorderLayout.CENTER);

frame.setLayout(null);

bntOk=new JButton();

bntOk.setText("OK");

bntOk.setBounds(150, 200, 66, 30);

frame.add(bntOk);

jLabel2= new JTextField();

jLabel2.setBounds(150, 50, 100, 50);

frame.add(jLabel2);

l1=new JLabel();

l1.setText("火柴数量");

l1.setBounds(90, 50, 100, 50);

frame.add(l1);

jLabel1= new JTextField();

jLabel1.setText("");

jLabel1.setBounds(200,149, 77, 22);

frame.add(jLabel1);

l2=new JLabel();

l2.setText("我拿火柴");

l2.setBounds(100, 149, 77, 22);

frame.add(l2);

l3=new JLabel();

l3.setText("对方拿火柴");

l3.setBounds(100, 249, 77, 22);

frame.add(l3);

pwd= new JTextField();

pwd.setBounds(200, 249, 77, 22);

frame.add(pwd);

bntOk.addMouseListener(new MouseAdapter()

{

@Override

public void mouseClicked(MouseEvent e1){

int a=Integer.parseInt(jLabel1.getText());

if((a>3)||(a==0)){

JOptionPane.showMessageDialog(game.this,"输入错误

请重新输入");

return;

}

total=total-a;

jLabel2.setText(String.valueOf(total));

if(total<=0){

jLabel2.setText("0");

JOptionPane.showMessageDialog(game.this,"恭喜你,胜利了!");

return;

}

Random r=new Random();

int b=r.nextInt(4);

while(b==0)

b=r.nextInt(4);

pwd.setText(String.valueOf(b));

total=total-b;

jLabel2.setText(String.valueOf(total));

if(total<=0){

JOptionPane.showMessageDialog(game.this,"很遗憾,你输了!");

}

}

}

);

}

}

文章到此结束,如果本次分享的java开发小游戏和java做小游戏什么水平的问题解决了您的问题,那么我们由衷的感到高兴!

亲测源码网站(网站代码生成器)java编写简单聊天界面?java编写的简单窗体