Java飞行球游戏零基础快速入门
2018-01-07 19:13
357 查看
游戏简介
玩家使用键盘的上、下键来控制蓝色小球的上下移动,避开所有障碍物达到终点即获胜,类似很早很早以前三星手机上的彩虹飞游戏和近两三年十分火爆的Flappy Bird手游。游戏截图
代码实现
import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import javax.swing.JFrame; import javax.swing.JPanel; public class FlyBallGame extends JFrame { MyPanel jp = null; void initJFrame() { jp = new MyPanel(); this.add(jp); this.addKeyListener(jp); this.setTitle("飞行球游戏"); this.setSize(700, 425); this.setLocation(100, 100); this.setResizable(false); this.setVisible(true); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); new PaintThread().start(); } class PaintThread extends Thread { public void run() { while (true) { repaint(); try { Thread.sleep(40); } catch (Exception e) { e.printStackTrace(); } } } } public static void main(String[] args) { FlyBallGame game = new FlyBallGame(); game.initJFrame(); } } class MyPanel extends JPanel implements KeyListener { Image imageBall = Toolkit.getDefaultToolkit().getImage("image/ball.png"); Image imageBG = Toolkit.getDefaultToolkit().getImage("image/background.jpg"); double x = 10.0; double y = 180.0; double time = 0.0; public void paint(Graphics g) { super.paint(g); g.drawImage(imageBG, 0, 0, null); g.drawImage(imageBall, (int) x, (int) y, 40, 40, null); if (x > 700 - 40) { g.drawString("挑 战 胜 利!", 320, 200); } else if ((x > 155 - 40 && x < 190 && y < 140) || (x > 155 - 40 && x < 190 && y > 262 - 40)) { g.drawString("挑 战 失 败!", 320, 200); } else { x += 2.0; y += 0.5 * 9.8 * time * time; time += 0.02; } } public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_UP) { y -= 2.0; time = 0.0; } else if (e.getKeyCode() == KeyEvent.VK_DOWN) { y += 2.0; time = 0.0; } repaint(); } @Override public void keyReleased(KeyEvent e) { // TODO Auto-generated method stub } @Override public void keyTyped(KeyEvent e) { // TODO Auto-generated method stub } }
PS
此代码中只给出了第一个障碍物的碰撞检测,后续障碍物的碰撞检测已省略。小球模拟自由落体的方式下落。相关文章推荐
- JAVA两小时快速入门:基础
- Java基础:Java泛型编程快速入门
- 想去黑马程序员_基础 java如何快速入门。
- JAVA基础:Java泛型编程快速入门
- JAVA两小时快速入门:基础
- Java基础:Java泛型编程快速入门
- Java基础:Java泛型编程快速入门
- JavaSE 基础 第45节Java异常快速入门
- Spring基础:快速入门spring(10):Java配置注入
- JAVA基础之dojo快速入门
- Eclipse Form程序设计快速入门-Java基础-Java-编程开发
- Java零基础如何学好Java语言从新手快速入门
- Java基础学习总结(46)——JAVA注解快速入门
- JAVA基础:Java泛型编程快速入门
- JAVA快速入门-基础知识
- JavaWeb基础知识:JavaScript快速入门
- Hadoop基础教程-第4章 HDFS的Java API(4.4 Windows+Eclipse+HDFS快速入门)
- Java基础组件快速入门
- Java基础学习总结(46)——JAVA注解快速入门
- java线程基础巩固---线程间通信快速入门,使用wait和notify进行线程间的数据通信