java课程设计进程管理_Java课设总结(个人版)
使用物理引擎JBox2D完成游戲關卡的各個物理狀態模擬
根據物理引擎設計Bird,Pig,Brick等游戲中出現的可運動剛體類
建立JBox2d的工具類以實現
###本人對這次課設的看法與吐槽 1.
課設內容的腦洞是我在看完17級學長的游戲課設之后想出的 當時還沒學java網絡編程的內容,誤以為java課設只能做游戲(然后一路頭鐵到底)
在前期準備的時候參考的基礎代碼和鄭老師博客中的參考資料南洋理工Java Game Programming 前者的代碼僅使用了碰撞檢測,無法對物體的實際運動狀態進行模擬 后者使用物理公式模擬了運動軌跡,利用圓的各向性質相同實現了圓形的碰撞后反向運動,而憤怒的小鳥游戲中各向性質相同的物體并不存在
于是當時在前期調查報告中加了這句話
天真的認為物理引擎是簡單物理公式/數學公式進行編寫碰撞,旋轉等操作的代碼 下載了一個JBox2D的jar包,找不到文檔,就先扔著了(并不知道將要面對什么)
直到發現JBox2D的示例代碼也基本沒有時,到github下載了源碼,才發現自己工作量遠超想象
##3.物理引擎JBox2D簡介/分析
JBox2D是開源的物理引擎Box2D的Java版本 該引擎能夠根據開發人員設定的參數,如重力、密度、摩擦系數和彈性系數等,對2D剛體物理運動的全方位模擬 安卓版的憤怒的小鳥也是依賴JBox2D引擎
###3.1 JBox2D引擎的主要類 ####Vec2類 二維矢量
####World類 世界
####Body類 剛體
####BodyDef類 剛體描述
####Fixture 夾具
####FixtureDef 夾具描述
####CircleShape 圓形
####PolygonShape 多邊形 ####包含關系
該博客使用的JBox2D版本已過時,大部分對物理引擎的調用方法已失效,已通過閱讀新版源碼的方式修正這些方法 只有球類的自由落體演示,并且作者對Jbox2d方面的內容不再更新 剛體繪制無法進行旋轉,自行研究了如何進行剛體隨實際運動 但是作為唯一的一份找到的幫助我理解JBox2D引擎的代碼,對作者還是十分感謝 Conf類:配置參數
存儲構建世界/畫布時使用的常量
抽象類MyFrame 繼承自JFrame
屬性: AABB aabb //規定世界范圍
World world //模擬的物理世界
ArrayList bodyList //剛體集合
MyBody類
DrawThread類 繼承自Thread 繪制線程,同步啟動鼠標監聽器
Gview 類 繼承自JPanel 設置背景,啟動繪制線程
Box2dUtil類 根據JBox2d引擎進行Body的組裝
MymouseListener類 根據鼠標點擊創建并發射bird類
MyBrickBody類 矩形剛體及繪制方法
MyCircleBody類 圓形剛體及繪制方法
Bird類 繼承自MyCircleBody 設置圖片與hp
Pig類 繼承自MyCircleBody
Wall類 繼承自MyBrickBody類
Brick類 繼承自MyBrickBody類
##5.存在的問題
對物理引擎的理解仍然不夠深入,部分操作短時間內不能實現 存在無法無法解決的bug,github上已經開源的代碼與依賴jar包版本不匹配,對問題發生處朔源失敗 課設時間(一周)實在太短,只完成了勉強能動的游戲內容
總結
以上是生活随笔為你收集整理的java课程设计进程管理_Java课设总结(个人版)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux内核驱动开发前景(linux内
- 下一篇: 安卓微信秒抢(安卓微信秒)