public class FishGame extends JFrame implements Runnable,KeyListener,ActionListener
原來可以這樣喔~XD
直接再繪圖版上控制角色~PART1
javac -d c:/xx *.java
java -cp c:/xx
jar-cvfm xxx.jar manifest.mf *.*
原來可以這樣喔~XD
直接再繪圖版上控制角色~PART1
javac -d c:/xx *.java
java -cp c:/xx
jar-cvfm xxx.jar manifest.mf *.*
仔細想想我這學期根本混到爆(你哪學期不混的)
進階JAVA的課多少是有再聽~也學了不少術語(我沒搞錯真的只是學術語)
多型、繼承、封裝....等....但老實說就算不知道名詞~我早就在用了XD
只是該怎麼設計還是很有問題就是了~
這次網路上神來的範例檔~倒是給了我一個方向!原來可以這樣搞阿
昨天剛看完一本小說~讓人剖痛~
我到底現在再幹麼阿~~
進階JAVA的課多少是有再聽~也學了不少術語(我沒搞錯真的只是學術語)
多型、繼承、封裝....等....但老實說就算不知道名詞~我早就在用了XD
只是該怎麼設計還是很有問題就是了~
這次網路上神來的範例檔~倒是給了我一個方向!原來可以這樣搞阿
昨天剛看完一本小說~讓人剖痛~
我到底現在再幹麼阿~~
遊戲畫面如上~
基本上我是直接抄網路上神來的大魚吃小魚遊戲 :原始檔
因為直接拿去交還挺心虛的~所以就把多餘的功能砍一砍~再加入2p的功能就打算拿去交差了XD
內容被我縮短成三個JAVA檔
Fish、MyFish、FishGame
以下為簡介~
因為直接拿去交還挺心虛的~所以就把多餘的功能砍一砍~再加入2p的功能就打算拿去交差了XD
內容被我縮短成三個JAVA檔
Fish、MyFish、FishGame
以下為簡介~
Fish 定義敵方的魚類~....雖然是有用到繼承的東西~但我個人是覺得沒必要囧
沒啥特別直接貼全文
沒啥特別直接貼全文
不負責任的參考
MyFish 我方控制的魚類
比較特別的部份:
為了有2p的功能~我另外開了4個int 用來存keycode 控制上下左右
Graphics 繪製圖形用~這邊用到了
public abstract boolean drawImage(Image img,
int dx1,
int dy1,
int dx2,
int dy2,
int sx1,
int sy1,
int sx2,
int sy2,
ImageObserver observer)
給定兩個點的目標位置~把原圖對應的點翻轉繪入
另外每次繪製的時候都是畫下一張圖片~每10個一個循環~說實在也沒什麼特別XD
比較特別的部份:
為了有2p的功能~我另外開了4個int 用來存keycode 控制上下左右
Graphics 繪製圖形用~這邊用到了
public abstract boolean drawImage(Image img,
int dx1,
int dy1,
int dx2,
int dy2,
int sx1,
int sy1,
int sx2,
int sy2,
ImageObserver observer)
給定兩個點的目標位置~把原圖對應的點翻轉繪入
另外每次繪製的時候都是畫下一張圖片~每10個一個循環~說實在也沒什麼特別XD
不負責任的參考
FishGame 最精彩的東西~雖然我覺得把所有東西全寫在一個JAVA檔根本找死
首先他繼承了JFrame 是一個視窗~還加掛了Runnable 用來傳入Thread
並且同時是鍵盤&& 動作的監聽器(KeyListener && ActionListener)
還有個內部類別 DrawGame extends JPanel 準備執行paint的動作
另外宣告了兩個boolean 當作是否開始的判斷~(雖然仔細想想其中一個可砍~)
一個串列LinkedList<Fish> 來存等著被吃的魚
一大堆Image 等著存圖~之後就是大量的add 和this了~
首先他繼承了JFrame 是一個視窗~還加掛了Runnable 用來傳入Thread
並且同時是鍵盤&& 動作的監聽器(KeyListener && ActionListener)
還有個內部類別 DrawGame extends JPanel 準備執行paint的動作
另外宣告了兩個boolean 當作是否開始的判斷~(雖然仔細想想其中一個可砍~)
一個串列LinkedList<Fish> 來存等著被吃的魚
一大堆Image 等著存圖~之後就是大量的add 和this了~
首先:在DrawGame
public void paint(Graphics g)
裡面的 paint 中~判斷每條魚是否有碰撞或者出界~並且繪製出來~
也判斷遊戲是否結束~顯示文字等等......
Runnable必需實作
public void run() {
這裡弄出個無限迴圈~每隔0.1秒 檢查遊戲是否結束
如果沒有結束每隔1.5秒創造一隻新魚~改變玩家的大小
並且repaint();整個JFrame
KeyListener 必須實作
public void keyPressed(KeyEvent e)
public void keyReleased(KeyEvent e)
public void keyTyped(KeyEvent e)
因為這遊戲用到了2p而鍵盤傳訊號是沒有同時這檔事
所以只好利用keyPressed 紀錄按下哪顆並設一個旗標代表還沒放開~並讓他移動
keyReleased 時才改變需不需要繼續移動
ActionListener 必須實作
public void actionPerformed(ActionEvent e)
只是用來監聽上面的工具列被按下時執行啥罷了~
不負責任的參考
我以為這單純只是我對于回憶心生的感傷,所以將其撇在腦后
但當它們擺在眼前時,我才發現自己在說謊。
我一直別開目光不去正視這些現實,一直在逃避。
也就是以前的我,其實遠比現在還要幸福。