java 自己搭建簡單遊戲框架(適合有想法卻無法入手的新手。)
我想做一個遊戲,但是不知從何下手?
網上可以看到很多遊戲開發的例子,不過這個是我自己研究的,一個簡單卻實在的遊戲框架。
首先,我甚至不知道遊戲到底要什麼效果,但是遊戲肯定要有自動能動的東西。一個可以顯示在螢幕上的單位。
Class Unit{
int x;
int y;
……//一堆屬性,當然現在我不知道自己要多少屬性,但是位置屬性要有,其它屬性呢?比如我要用一張圖片顯示?那就Image img;這不就好了?如果遇到問題或者有什麼新想法我們再來改。
//方法:
public void show(Graphics g){
……//這裡面是顯示單位的程式碼塊。以後我們要顯示這個單位後,就呼叫這個方法。
}
public method(){//這些都是能夠想到的可以作為基礎的方法,比如你覺得要有生命值獲取。那就新增health屬性,新增gethealth()方法。
}
}
Ok!這樣我們就獲得了一個單位類,它能表示位置,也能顯示,但是它可能會動,可能不會動,可能可以攻擊,可能不可以攻擊。
我們想到一個英雄。英雄也是一個單位,有座標系,也要顯示。但是可以控制,可以攻擊,甚至還有一些自動動作。
extends!yes!我們將英雄繼承它!
Class Hero extends Unit implements MouseLisetener,Runnable{
//位置不用寫了。Unit裡面有。其它要新增屬性,比如魔法,比如其它什麼技能,或者奇怪屬性,就加上。
//show()重寫。英雄顯示和單位顯示畢竟不同。怎麼也要特殊一點。最簡單的,一個圓表示敵人的話,一個方形表示英雄啊!
public method()// 這一部分,一系列方法都是英雄獨有,當然如果Unit裡面也有的方法,也可以用啊。
run(){
用run方法將一部分自動動作寫入進去。比如英雄每五分鐘就要大喊:“我是英雄!”你可以在構造器Hero(){(Thread)this.start();//如果不可以,就換個可以的方法。不斷嘗試總能找到一個方法。如果只抄程式碼,那麼自己獨立設計的時候就會出大問題。這也是我沒添方法的原因,想到什麼寫什麼,不會的就先寫一個簡單的,比如用一個圓來顯示英雄。mousepressed方法要實現。比如點選一下放個技能什麼的?}
}
}
Ok 英雄已經弄好了。沒什麼程式碼?自己豐富,最簡單的就是點選一下英雄就動一下了咯。其它的慢慢添。
英雄有了,就要有敵人。
敵人也是單位。ok 繼續extends
Enemy extends Unit implement Runnable{//新增執行緒的介面,主要是因為敵人也要動啊,它們也要躲,要攻擊,要幹這幹那。然後就可以想到,如果敵人的技能是一顆子彈?子彈是單位啊。也有x,y座標,但它會自動飛行。這些單位都是獨立的。為什麼我不給每一樣東西都做個執行緒?一個敵人一個執行緒,一個子彈一個執行緒然後敵人死了,子彈消失了,我們就將它們銷燬。java會自動銷燬執行緒,怎麼銷燬?記得嗎?沒人引用執行緒例項,而執行緒也不是一個死迴圈。執行緒就消失了。while(islive()){}run方法裡面這樣寫,如果單位還活著就繼續執行執行緒,如果死了,執行緒就退出迴圈。然後在將所有引用該執行緒的地方去掉它。子彈到射程自動死,活著到時間死。單位血沒了也死。
}
好了我們有了敵人,有了英雄,有了技能(子彈射擊)
然後要把他們顯示在一個視窗中。
java swing 這個不是專業處理視窗的嗎?
趕緊弄一個。然後又想,我顯示在視窗中的東西都要動啊,動就是過一段時間顯示一次嗎。繼續執行緒!
MyPanel extends JPanel implement Runnable{
public void paint(Graphics g){
//這裡面不可以放所有例項過的英雄,敵人亂七八糟的東西嗎?怎麼找到它們?yes !為什麼我們不弄個DataBank類將所有要顯示的元素儲存了,然後迭代顯示?
//一個遊戲演示可以自己用new方法,但是更高科技一點,用個工廠類,其實就是在一個方法裡面建一堆物件,然後返回它們,自動生成一個英雄,和一堆敵人。反正他們都
//是Unit單位。Unit都有顯示的方法show()!
迭代 Unit例項 表,然後呼叫show(g)!
}
run(){
……
repaint()//每過一段時間重繪一次,一秒鐘重繪20次。用Thread.sleep(50)然後再repaint();這個都是基礎。
}
}
然後frame。add(new MyPanel);
DataBank裡的表最好是靜態的或者單例模式。
然後任何單位一旦死亡,就刪除它們。 List allunit=new arraylist(); 然後在所有UnIt類的run()方法裡面新增一個語句,一旦死亡,就從表裡刪除自己。
ok 這樣我們就得到一個簡單的,可以顯示一堆單位,可以控制英雄,還可以攻擊的一個簡單遊戲。這個遊戲的擴充套件?繼承Unit吧。又或者新增Map,又或者其它七七八八
這些一旦掌握了思想就可以自己慢慢豐富了。
從下到上,一步步來。從簡單到複雜一步步實現。只要懂得這個,一個想法或者專案至少就能入手了。
相關文章
- 使用 Composer 搭建適合自己專案的微框架框架
- 理解vue ssr原理,自己搭建簡單的ssr框架Vue框架
- 適合AI訓練的遊戲框架AI遊戲框架
- 怎樣選擇適合自己php框架PHP框架
- Gin 框架的簡單搭建框架
- git命令使用(適合新手)Git
- 適合Mac新手看的的小技巧:輸入法如何轉換Mac
- 短視訊的平臺有哪些?哪些平臺適合新手?
- 適合新手的鏈棧程式碼
- 擁有一個永遠無法實現的想法的樂趣
- java培訓機構如何選擇適合自己的Java
- 簡單兩步--搭建自己的專屬梯子
- 遊戲新手如何搭建“關卡設計”知識框架?遊戲框架
- 適合新手的Java程式設計課程訓練網址Java程式設計
- Linux有哪些版本?哪個比較適合新手使用?Linux
- 網站策劃:使簡單的想法更簡單網站
- 他們開發遊戲,卻永遠無法進入製作人員名單開發遊戲
- 如何搭建自己的遊戲設計框架之左右互搏術遊戲設計框架
- Python 操作 Excel,總有一個模組適合自己PythonExcel
- 自己動手寫一個簡單的MVC框架MVC框架
- 如何合併視訊?是否適合新手操作?
- iOS App 開發的那些事兒 2:如何搭建合適的框架iOSAPP框架
- 知乎高贊!有沒有適合新手練習 Python 的做題類網站?Python網站
- 最適合和最不適合新手使用的幾款 Linux 發行版Linux
- andriod搭建自己的輪詢框架框架
- 適合 Java 新手的開源專案集合——在 GitHub 學程式設計JavaGithub程式設計
- 虛擬機器快速搭建弱網測試環境 ATC (適合新手)虛擬機
- “沒有劇情”的遊戲也許才是最適合改編的遊戲遊戲
- 教育遊戲?是的,這裡有9款適合孩子的最好的教育遊戲遊戲
- 適合新手入門Spring Security With JWT的demoSpringJWT
- 從最簡單的入手學習 Docker (一)Docker
- 小程式新手 教你如何入手
- 如何選擇合適自己的伺服器伺服器
- 如何選擇適合自己的程式語言
- 遊戲史上那些投資巨大卻血本無歸的遊戲遊戲
- Java實現最簡單的RPC框架JavaRPC框架
- 有哪些適合批發企業使用的訂單系統
- [Rust]使用Rocket框架搭建簡單Web服務Rust框架Web