基本信息
源码名称:是男人就撑过30秒 游戏源码下载
源码大小:0.09M
文件格式:.zip
开发语言:Java
更新时间:2016-06-19
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 5 元×
微信扫码支付:5 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
源码在 game.java文件,店家 startgame.bat 可查看效果
源码在 game.java文件,店家 startgame.bat 可查看效果
import javax.swing.JPanel; import javax.swing.JFrame; import javax.swing.JButton; import java.awt.Point; import java.awt.Rectangle; import javax.swing.ImageIcon; import java.awt.Color; import javax.swing.JLabel; import java.awt.Font; import java.net.URL; import java.net.URLClassLoader; import java.util.ArrayList; import java.util.Date; public class Game extends JFrame { /** * This method initializes jButton1 * * @return javax.swing.JButton */ private JButton getJButton1() { if (jButton1 == null) { jButton1 = new JButton(); jButton1.setBounds(new Rectangle(478, 361, 164, 51)); jButton1.setText("重新开始"); jButton1.setVisible(false); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { jButton1.setVisible(false); jLabel.setVisible(false); try { Thread.sleep(1000); } catch (InterruptedException e1) { // TODO 自动生成 catch 块 e1.printStackTrace(); } reset(); } }); } return jButton1; } public static void main(String[] args) { Game game = new Game(); game.start(); game.reset(); game.gogo(); } public void reset() { kup = false; kdown = false; kleft = false; kright = false; int chushihua = 0; while (chushihua < zidanshu) { ((JButton) buttonal.get(chushihua)).setBounds(new Rectangle(-50, -50, 10, 10)); chushihua ; } gamexunhuan = true; jButton.setIcon(new ImageIcon(fileLoc)); jButton.setLocation(320, 320); p = jButton.getLocation(); x=p.getX(); y=p.getY(); firsttime=new Date().getTime(); } public void start() { int chushihua = 0; while (chushihua < zidanshu) { JButton jb = new JButton(); jb.setBounds(new Rectangle(-50, -50, 10, 10)); jb.setEnabled(false); Threads ths = new Threads(jb); Thread th = new Thread(ths); buttonal.add(jb); threadal.add(th); chushihua ; } Game.Move move = new Move(); Thread tm = new Thread(move); tm.start(); } public void gogo() { int chushihua = 0; while (chushihua < zidanshu) { ((Thread) threadal.get(chushihua)).start(); chushihua ; try { Thread.sleep(100); } catch (InterruptedException e) { // TODO 自动生成 catch 块 e.printStackTrace(); } } } // private static Game game; private long firsttime; private long lasttime; private static final long serialVersionUID = 1L; private JPanel jPanel = null; private JButton jButton = null; private boolean kup ; private boolean kdown ; private boolean kleft ; private boolean kright ; // 定义玩家的行走步伐,数值越大,移动速度越快 private int step = 3; Point p; // @jve:decl-index=0: double x = 0.0; double y = 0.0; // 定义了子弹的个数 int zidanshu = 70; // 定义子弹初始值,这个是不变的 // int chushihua = 0; // 定义控制子弹行走的循环false就不走了 private boolean gamexunhuan = true; private JLabel jLabel = null; private JButton jButton1 = null; private ArrayList buttonal = new ArrayList(); private ArrayList threadal = new ArrayList(); URLClassLoader urlLoader = (URLClassLoader)this.getClass().getClassLoader(); URL fileLoc = urlLoader.findResource("MyGameIcons/gwl1.gif"); // @jve:decl-index=0: URL fileLoc1 = urlLoader.findResource("MyGameIcons/gwls1.gif"); /** * This is the default constructor */ public Game() { super(); initialize(); } /** * This method initializes this * * @return void */ private void initialize() { this.setSize(700, 700); this.addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent e) { System.exit(1); } }); this.setResizable(false); this.setContentPane(getJPanel()); this.setTitle("范传奇的小游戏!(模拟撑过30秒的小DEMO)"); this.setVisible(true); } /** * This method initializes jPanel * * @return javax.swing.JPanel */ private JPanel getJPanel() { if (jPanel == null) { jLabel = new JLabel(); jLabel.setBounds(new Rectangle(42, -33, 595, 308)); jLabel.setFont(new Font("Dialog", Font.BOLD, 24)); jLabel.setForeground(new Color(250, 2, 2)); jLabel.setEnabled(true); jLabel.setVisible(false); jPanel = new JPanel(); jPanel.setLayout(null); jPanel.add(getJButton(), null); jPanel.setForeground(new Color(1, 1, 1)); jPanel.setBackground(new Color(1, 1, 1)); jPanel.setVisible(true); jPanel.add(jLabel, null); jPanel.add(getJButton1(), null); } return jPanel; } /** * This method initializes jButton * * @return javax.swing.JButton */ class Move implements Runnable { public void run() { while(true){ while (gamexunhuan) { p = jButton.getLocation(); if (kup) { if (kleft) { x = p.getX(); y = p.getY(); if (x > 0 && y > 0) { jButton.setLocation((int) x - step, (int) y - step); } } else if (kright) { x = p.getX(); y = p.getY(); if (x 40 < 700 && y > 0) { jButton.setLocation((int) x step, (int) y - step); } } else { x = p.getX(); y = p.getY(); if (y > 0) { jButton.setLocation((int) x, (int) y - step); } } } if (kdown) { if (kleft) { x = p.getX(); y = p.getY(); if (y 60 < 700 && x > 0) { jButton.setLocation((int) x - step, (int) y step); } } else if (kright) { x = p.getX(); y = p.getY(); if (x 40 < 700 && y 60 < 700) { jButton.setLocation((int) x step, (int) y step); } } else { x = p.getX(); y = p.getY(); if (y 60 < 700) { jButton.setLocation((int) x, (int) y step); } } } if (kleft) { if (kup) { x = p.getX(); y = p.getY(); if (x > 0 && y > 0) { jButton.setLocation((int) x - step, (int) y - step); } } else if (kdown) { x = p.getX(); y = p.getY(); if (y 60 < 700 && x > 0) { jButton.setLocation((int) x - step, (int) y step); } } else { x = p.getX(); y = p.getY(); if (x > 0) { jButton.setLocation((int) x - step, (int) y); } } } if (kright) { if (kup) { x = p.getX(); y = p.getY(); if (x 40 < 700 && y > 0) { jButton.setLocation((int) x step, (int) y - step); } } else if (kdown) { x = p.getX(); y = p.getY(); if (x 40 < 700 && y 60 < 700) { jButton.setLocation((int) x step, (int) y step); } } else { x = p.getX(); y = p.getY(); if (x 40 < 700) { jButton.setLocation((int) x step, (int) y); } } } try { Thread.sleep(10); } catch (InterruptedException e) { // TODO 自动生成 catch 块 e.printStackTrace(); } } try { Thread.sleep(50); } catch (InterruptedException e) { // TODO 自动生成 catch 块 e.printStackTrace(); } } } } private JButton getJButton() { if (jButton == null) { jButton = new JButton(); jButton.setBounds(new Rectangle(320, 320, 30, 30)); jButton.setBackground(new Color(1, 1, 1)); p = jButton.getLocation(); x = p.getX(); y = p.getY(); jButton.setIcon(new ImageIcon(fileLoc)); jButton.addKeyListener(new java.awt.event.KeyAdapter() { public void keyReleased(java.awt.event.KeyEvent e) { if(e.getKeyCode()==10){ if(!gamexunhuan){ jButton1.setVisible(false); jLabel.setVisible(false); reset(); } } if (e.getKeyCode() == 37) { kleft = false; } if (e.getKeyCode() == 38) { kup = false; } if (e.getKeyCode() == 39) { kright = false; } if (e.getKeyCode() == 40) { kdown = false; } } public void keyPressed(java.awt.event.KeyEvent e) { if (e.getKeyCode() == 37) { kleft = true; } if (e.getKeyCode() == 38) { kup = true; } // 触发按右键 if (e.getKeyCode() == 39) { kright = true; } if (e.getKeyCode() == 40) { kdown = true; } } }); } return jButton; } class Threads implements Runnable { public Threads(JButton jjb) { jb = jjb; } JButton jb = null; private boolean first = true; public void run() { while (gamexunhuan) { go(); } } public void go() { int zzx = 0; int zzy = 0; int zx = 0; int zy = 0; while (true) { if(gamexunhuan){ int fangxiang = (int) (Math.random() * 4 1); // 四个if随即从四个边发射子弹 if (fangxiang == 1) { zx = 0; zy = (int) (Math.random() * 701); } if (fangxiang == 2) { zx = (int) (Math.random() * 701); zy = 0; } if (fangxiang == 3) { zx = 700; zy = (int) (Math.random() * 701); } if (fangxiang == 4) { zx = (int) (Math.random() * 701); zy = 700; } // 初始化子弹,有了就不在加了 if (first) { jPanel.add(jb, null); first = false; } jb.setBounds(new Rectangle(zx, zy, 10, 10)); // 定义子弹与物体之间的步长 zzx = (int) (((x 15) - zx) / 30); zzy = (int) (((y 15) - zy) / 30); } while (gamexunhuan) { try { zx = zzx; zy = zzy; jb.setLocation(zx, zy); if (zx 5 > x & zx 5 < x 30 & zy 5 > y & zy 5 < y 30) { jButton.setIcon(new ImageIcon(fileLoc1)); gamexunhuan = false; first = true; jButton1.setVisible(true); jLabel.setVisible(true); lasttime = new Date().getTime(); Date gametime = new Date(lasttime-firsttime); int min =0; int sec =0; min = gametime.getMinutes(); sec = gametime.getSeconds(); String endtime = ""; if(min!=0){ endtime=min "分 " sec "秒"; }else{ endtime=sec "秒"; } jLabel.setText(" GAME OVER!!! \n用时:" endtime); break; } // 超出边线停止循环 if (zx > 700 | zy > 700 | zx < 0 | zy < 0) { break; } Thread.sleep(60); } catch (InterruptedException e) { // TODO 自动生成 catch 块 e.printStackTrace(); } } try { Thread.sleep(50); } catch (InterruptedException e) { // TODO 自动生成 catch 块 e.printStackTrace(); } } } } } // @jve:decl-index=0:visual-constraint="10,10"