Java飛行球遊戲零基礎快速入門
遊戲簡介
玩家使用鍵盤的上、下鍵來控制藍色小球的上下移動,避開所有障礙物達到終點即獲勝,類似很早很早以前三星手機上的彩虹飛遊戲和近兩三年十分火爆的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飛行球遊戲零基礎快速入門
遊戲簡介 玩家使用鍵盤的上、下鍵來控制藍色小球的上下移動,避開所有障礙物達到終點即獲勝,類似很早很早以前三星手機上的彩虹飛遊戲和近兩三年十分火爆的Flappy Bird手遊。 遊戲截圖 程式碼實現 import java.awt.Graphics; import
Java程式設計零基礎快速入門教程索引
Java入門到精通java零起點程式設計教程.精心挑選了java中含金量高的知識點.Window安裝JDK圖文教程.windows搭建java開發環境,配置java環境變數圖文教程.java程式Hell
Python 零基礎 快速入門 趣味教程 (咪博士 海龜繪圖 turtle) 2. 變量
b- 剛才 math .com war 單位 中學 技術分享 sublime 大家在中學就已經學過變量的概念了。例如:我們令 x = 100,則可以推出 x*2 = 200 試試下面這段 Python 代碼 1 import turtle 2 3 turtle.sha
1、HTML+DIV+CSS零基礎快速入門到制作企業站視頻課程_2 html列表的用法
pre inf java src TP 入門到 超文本 技術分享 分享 0.無序列表 1.有序列表 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <m
1、HTML+DIV+CSS零基礎快速入門到制作企業站視頻課程_12 css邊框
技術分享 blue color 入門到 div 視頻 ted col ID 復合寫法: border: 2px solid red; 分開寫法: border-color: red; border-bottom-color: blue; border-bo
1、HTML+DIV+CSS零基礎快速入門到制作企業站視頻課程_20 css樣式作業
order 技術分享 enter -a bsp 樣式 over model ctype 1、HTML+DIV+CSS零基礎快速入門到制作企業站視頻課程_20 css樣式作業 1 <!DOCTYPE html> 2 <html lan
零基礎快速入門SpringBoot2.0 (一)
acc href 項目文件 apache tro maven打包 相關 utf tps 零基礎快速入門SpringBoot2.0 (一) 一、SpringBoot2.x依賴環境和版本新特性說明 簡介:講解新版本依賴環境和springboot2新特性概述
零基礎快速入門SpringBoot2.0 教程(二)
新版本 exec list string classes 控制器 project mat 生命 一、SpringBoot2.x使用Dev-tool熱部署簡介:介紹什麽是熱部署,使用springboot結合dev-tool工具,快速加載啟動應用 官方地址:https://do
零基礎快速入門SpringBoot2.0教程 (四)
trace ssh ket files frame ali serialize fis 系統服務 一、JMS介紹和使用場景及基礎編程模型簡介:講解什麽是小寫隊列,JMS的基礎知識和使用場景 1、什麽是JMS: Java消息服務(Java Message Service),J
python爬蟲實踐——零基礎快速入門(二)爬取豆瓣電影
爬蟲又稱為網頁蜘蛛,是一種程式或指令碼。 但重點在於,它能夠按照一定的規則,自動獲取網頁資訊。 爬蟲的基本原理——通用框架 1.挑選種子URL; 2.講這些URL放入帶抓取的URL列隊; 3.取出帶抓取的URL,下載並存儲進已下載網頁庫中。此外,講這些URL放入帶抓取UR
零基礎快速入門web學習路線(含視訊教程)
下面小編專門為廣大web學習愛好者彙總了一條完整的自學線路:零基礎快速入門web學習路線(含視訊教程)(絕對純乾貨)適合初學者的最新WEB前端學習路線彙總! 在當下來說web前端開發工程師可謂是高福利、高薪水的職業了。所以現在學習web前端開發的技術人員也是日益增多了,但是在學習web前端開發中盲目的去學習
【springboot】一、零基礎快速入門springboot2.0.6
1、springboot2.X 課程全套介紹和高手系列知識點 簡介:介紹Springboot2.x課程大綱章節 java基礎,jdk環境,maven基礎 2、Springboot2.x依賴環境和版本新特性說明 簡介:講解新版本依賴環境和Springboot2.x新特性概述 1、依賴版
python爬蟲實踐——零基礎快速入門(四)爬取小豬租房資訊
接下來我們爬取小豬短租租房資訊。進入主頁後選擇深圳地區的位置。地址如下: http://sz.xiaozhu.com/ 一,標題爬取 按照慣例,我們先複製標題的xpath資訊,多複製幾個進行對比: //*[@id="page_list"]/ul/li[1]/
git零基礎快速入門實戰,重點講解,在實際生產中整合idea對版本、分支的管理等
html lan 幫助 rec 工具 log .com 咖啡館 ise 1、git簡單描述 git是重要的版本管理工具,幾乎每個碼農都有自己的git賬號管理自己的代碼,同時很多公司也是用git管理公司的代碼, 因此掌握git在實際生產中的常規使用非常重要。 2
java併發程式設計一一多執行緒基礎快速入門
1.執行緒與程序的區別 每個正在系統上執行的程式都是一個程序。每個程序包含一到多個執行緒。執行緒是一組指令的集合,或者是程式的特殊段,他可以在程式裡獨立執行。也可以把它理解為程式碼執行的上下文。 所以執行緒基本是輕量級的程序,它負責在單個程式裡執行任務。通常有作業系統負責多個執行緒
java零基礎如何入門、給初學者的建議
推薦一個Java學習交流群 523401738每天晚上在騰訊課堂都有一個Java技術學習課,會有老師分享乾貨,幫助大家分析解答問題歡迎你的加入對於初入Java的學生們來說,都會有一個疑惑?我適合學習程式設計嗎? 程式設計入門遇到難題的時候想到過放棄,當你寫完一個程式的時候感到
答好友困惑:Java零基礎如何入門,不知道怎麼學,迷茫ING
作者:程式設計師小躍 幾個星期之前,我在知乎上看到一個提問,說是:對於完全沒有經驗零基礎自身的數學底子也很弱學習Java應該怎麼學習呢?想著類似的問題我也有過回答,並且反饋還是蠻好的,就參考之前的思路回答了一遍,可惜沒在公眾號裡和大家分享,後續再整理一份好好分享下。(該問答地址見原文) 提出問題的是一位高
C#消息隊列(MQ)零基礎從入門到實戰演練
C# .NET MQ RabbitMQ 消息隊列 一、課程介紹如果您從工作中之聽過但未有接觸過消息對隊列(MQ),如果你接觸過一點關於MQ的知識,如果沒有這麽的多如果的話......,那麽阿笨將通過本次《C#消息隊列零基礎從入門到實戰演練》分享課讓您對消息隊列有一個實質性的了解和認識,達到
H5和小程序直播開發 零距離快速入門
以及 重要 掌握 經驗 導致 技巧 地址 很大的 net 第1章 課程介紹 對於課程整體以及直播行業的現狀進行介紹 第2章 直播工作原理 所謂知其然也要知其所以然,只會用別人總結好的東西很難有質的進步,只有深諳背後的工作原理才能進一步吃透到進階。本章從直播協議入手到工作原理
Expression Blend實例中文教程(7) - 動畫基礎快速入門Animation
edr 周期 oar 都是 自動 開發人員 rpo src 微軟 通過前面文章學習,已經對Blend的開發界面,以及控件有了初步的認識。本文將講述Blend的一個核心功能,動畫設計。大家也許註意到,從開篇到現在,所有的文章都是屬於快速入門,是因為這些文章,都是我曾經學習的經