※ TonyQ.bbs@ptt.cc (骨頭) wrote:
> ※ 引述《maxisam (偽.強者)》之銘言:
> : ? 為什麼是亂傳 @@?
> 其實這是概念上的問題 , XD
> 不過我個人是認同一個物件一個任務,
> panel本來就是顯示元件,由panel來控制graphic做draw的動作,
> 而由moveLine去計算應該要畫的內容,這樣比較符合MVC吧。
> : 不懂 你的意思是說在MoveLine這個thread裡 getGraphics() ?
> : getGraphics()要在panel / Frame裡面才會有吧 ?
> : 還是說你要把整個panel物件丟進moveLine的thread裡面 然後再getGraphics() ?
> you got it,
> 應該說 把你要draw的目標元件扔進去做參考
> : 我也想用計算 能不用thread我是盡量不用 (導致thread現在有點苦手 ?)
> : anyway, thx
我的想法跟T大一樣(應該...XD)
是要畫在 Panel上面吧?
我的話習慣
把MoveLine用內部類別寫在Panel的裡面
在MoveLine裡呼叫paintComponent(getGraphics());
如果MoveLine不想寫在Panel內部
那就用使用Panel的getGraphics()方法取得畫布給MoveLine當參數
再由MoveLine畫就好嚕
--
稍微說一下java遊戲製作的概念好了...
主迴圈只要一個!!
(把這個迴圈實作Thread?不 爽的話無限迴圈也可以 記得要加sleep跟中止條件就好)
主迴圈裡執行二個主要方法draw(Graphics g)跟update(經過的時間);
draw(g)是畫物件 (這個g記得要從要顯示的物件上取得)
update()是更新物件的狀態跟輸入裝置的狀態(x鍵是否被按下)
整個架構其實很簡單,但就是有書要寫到很複雜...
--
だれかとだれかつなぐ
赤い糸
--
◣ ███ ███ ☆ Post by Pistachi
◢█ ▉▉█ █▇█ ★ From 220-134-160-28.HINET-IP.hinet.net
◥█◤ ﹉ ﹍ ﹋ 月光海洋BBS 《mobbs.stut.edu.tw》 163.26.220.130
討論串 (同標題文章)
完整討論串 (本文為第 7 之 8 篇):