栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java实现一个桌球小游戏

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java实现一个桌球小游戏

本文实例为大家分享了java实现桌球小游戏的具体代码,供大家参考,具体内容如下

在ecplise中新建一个JAVA项目

建立四个class分别对应游戏登陆界面,游戏界面,数据库操作,和一个开始类

代码如下

游戏类:

package 弹球游戏;
import java.awt.BorderLayout;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.frame;
import java.awt.Graphics;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Random;
import javax.swing.JTextPane;
import javax.swing.Timer;




public class Game {
 private final int frame_X =500;
 private final int frame_Y =450;
 private final int frame_WIDTH =500;
 private final int frame_HIGH =500;
 private final int TABLE_WIDTH = 100;  //板子宽度
 private final int TABLE_HIGH =20 ;  //板子高度
 private final int BALL_SIZE =20;  //球的大小
 Random rand = new Random();
 private int TABLE_X=rand.nextInt(200); //板子的坐标
 private int TABLE_Y=400;
 private int BALL_X=10;   //小球的横坐标
 private int BALL_Y=10;   //小球的纵坐标
 private int SPEED = 10;   //小球横向速度
 frame f = new frame("弹球游戏");
 private Mycanvas draw = new Mycanvas();
 private boolean is_X = true;  //为true的时候横坐标+
 private boolean is_Y = true;  //为true的时候纵坐标+
 private int score =0;   //游戏的得分
 private Panel p = new Panel();
 private JTextPane tex = new JTextPane(); //排行榜显示
 //定义键盘监听器
 KeyAdapter keyProcessor = new KeyAdapter() {
 public void keyPressed(KeyEvent e) {
  if(e.getKeyCode()==KeyEvent.VK_LEFT&&TABLE_X>0) {
  TABLE_X -=10;
  }
  if(e.getKeyCode()==KeyEvent.VK_RIGHT&&TABLE_X<370){
  TABLE_X +=10;
  }
  if(e.getKeyCode()==KeyEvent.VK_UP&&TABLE_Y>0) {
  TABLE_Y -=10;
  }
  if(e.getKeyCode()==KeyEvent.VK_DOWN&&TABLE_Y<430) {
  TABLE_Y +=10;
  }
 }
 };
 //定义事件监听器

 ActionListener task = new ActionListener (){
  public void actionPerformed(ActionEvent e) {

  if(BALL_X>frame_X||BALL_Y>frame_Y&&BALL_Y>TABLE_Y-15) {

   try {
   DatabaseLoding d = new DatabaseLoding();
   d.initParam("mysql.ini");
   d.insertScore(score);
  } catch (Exception e1) {
   e1.printStackTrace();
  }

   System.out.println("结束了");
   timer.stop();
  }
  if(is_X) {
   BALL_X +=10;
  }else {
   BALL_X -=10;
  }
  if(BALL_X>440){
  is_X=false; 
  }
  if(BALL_X<10) {
   is_X=true;

  }

  if(BALL_Y<0) {
   is_Y =true;
  }
  if(is_Y) {
   BALL_Y+=10;

  }else {
   BALL_Y-=10;
  }

  if(BALL_Y==TABLE_Y-10&&BALL_X>TABLE_X&&BALL_X

登陆类:输入一个名字,成功后就直接开始游戏

package 弹球游戏;

import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.Jframe;
import javax.swing.JPanel;


public class Langding {
 private final int frame_X =500;
 private final int frame_Y =450;
 private final int frame_WIDTH =500;
 private final int frame_HIGH =500;
 private Jframe f;
 private JButton ok;
 private JPanel p;
 private TextField name;
 private TextField pass;
 private Game g;
 private int score=0;
 
 //private String PASS_WORD ="";
 private String NAME_WORD ="";

 public void init() throws Exception {
 f = new Jframe("登陆窗口");
 p = new JPanel() {
  protected void paintComponent(Graphics g) {
  ImageIcon icon = new ImageIcon("lib/01.png");
  Image img = icon.getImage();
  Image img1 = img.getScaledInstance(frame_WIDTH+300, frame_HIGH,Image.SCALE_DEFAULT);
  icon.setImage(img1);
  g.drawImage(img, 0, 0, icon.getIconWidth(),
  icon.getIconHeight(), icon.getImageObserver());
  }
  };
 f.add(p);
 ok = new JButton("登陆");
 name = new TextField(20);
 //pass = new TextField(20);
 p.add(name);
 //p.add(pass);
 ok.setPreferredSize(new Dimension(100, 100));
 p.add(ok);
 //点击按钮的事件
 Action go = new AbstractAction() {
  public void actionPerformed(ActionEvent e) { 
  DatabaseLoding d = new DatabaseLoding();
  try {
   //获得输入的名字
   NAME_WORD = name.getText();
   //将名字导入到数据库
   d.initParam("mysql.ini");
   d.insertName(NAME_WORD);
  } catch (Exception e1) {
   // TODO Auto-generated catch block
   e1.printStackTrace();
  }
  System.out.println("玩家名字是"+name.getText());
  //游戏开始
  g = new Game();
  g.init();
  }
 };
 ok.addActionListener(go);
 f.setBounds(frame_X, frame_Y, frame_WIDTH+300, frame_HIGH);
 f.add(p);
 f.setVisible(true);
 }

 public static void main(String[] args) throws Exception {
 Langding l = new Langding();
 l.init();
 }
}

数据库操作类:包含两个方法,插入名字和修改分数,用的数据库分数默认是-1

package 弹球游戏;

import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Properties;



public class DatabaseLoding {
 private String driver;
 private String url;
 private String user;
 private String pass;
 //登陆数据库
 public void initParam(String paramFile) throws Exception {
 Properties props = new Properties();
 props.load(new FileInputStream(paramFile));
 driver = props.getProperty("driver");
 url = props.getProperty("url");
 user = props.getProperty("user");
 pass = props.getProperty("pass");
 }
 //将名字插入到数据库中
 public int insertName(String Name) throws Exception {
 Class.forName(driver);
 String sql ="insert into 弹球游戏(name) values("+"'"+Name+"'"+")"+";";
 try (
  Connection conn =DriverManager.getConnection(url,user,pass);
  Statement stmt =conn.createStatement();
  )
 {
  System.out.println(Name);
  return stmt.executeUpdate(sql);
 }
 }
 //把score插到主键为name的那一行
 public int insertScore(int Score) throws Exception {
  Class.forName(driver);
  String sql ="update 弹球游戏 set score ="+Score

   +" where score = -1"+";";
  try (
  Connection conn =DriverManager.getConnection(url,user,pass);
  Statement stmt =conn.createStatement();
  )
  {
  System.out.println(Score);
  return stmt.executeUpdate(sql);
  }
 }
 public String select() throws Exception{
 Class.forName(driver);
 String sql ="select * from 弹球游戏 ORDER BY score DESC ;";
 String result ="";
 try (
  Connection conn =DriverManager.getConnection(url,user,pass);
  Statement stmt =conn.createStatement();
  ResultSet rs =stmt.executeQuery(sql);
  )
  {
  int i=1;
  while(rs.next()) {
   result +="第"+i+"名"+ rs.getString(1)+"t"+"t"+rs.getInt(2)+"r";
   i++;
   if(i==11) {
   break;
   }
  }
  return result;
  }
 }
}

主类:

package 弹球游戏;
public class Begain {
 public static void main(String[] args) throws Exception {
 Langding l = new Langding();
 l.init()package 弹球游戏;

 }
 }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/137655.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号