top
Loading...
Java游戲編程初步

現在流行的游戲似乎都是用C或C++來開發的。在java平臺上幾乎沒有很大型及可玩的流行游戲。由于java是個新生語言,他的許多特性還有待大家的發掘,但是我們不能否認Java在游戲編程方面的強大性。本文將帶領大家一步一步學習編寫Java游戲。最終打造屬于自己的Java游戲。

在開始之前我們得確認你已經安裝了Java JDK,并已經安裝了瀏覽器軟件如IE。本章是以Internet為開發對象,一步一步教大家認識Java的Thread、Applets….以及游戲編程要注意的一些方方面面。并在每一小部分附上了相應的源代碼以供大家參考,最后我們還會對我們的游戲程序進行指導性的提示。在文章中我們還穿插了很多建設性的問題,讓讀者參與到我們的開發中來。但是由于本章指在帶領大家進入這個門檻,大部分知識并不會很詳細說明,有興趣的讀者可查閱相關的資料補充。在開始之前我們還得確認你已經知道類,繼承和java語言的一些基本屬性了。

基本applet

Applets是一種Web瀏覽器上的小程序,由于applet對系統而言絕對安全,所以它做的事比aaplication有限,但是對于客戶端的程序,applets仍然是個很強大的工具。為了瀏覽和運行方便,我們就以applet為開發對象。

開發Applets程序,我們得繼承Applet類,并覆寫必要的函數,下面幾個函數控制了Web頁面上的applet生成與執行。

函數作用
Init()這個函數會被自動調用,執行applet的初始化動作—包括組件在版面上的分配,你一定得覆寫它
Start()每當瀏覽器顯示applet內容時,都會調用它,讓applet開啟其正規工作(尤其是那些被stop()關閉的工作),調用init()之后也會調用這個函數
Stop()每當瀏覽器不顯示內容時,都會調用它。讓applet關閉某些耗資源的工作,調用destory()之后也會調用這個函數
Destroy()瀏覽器將applet自網頁移除之際,便會調用它,以執行”applet不再被使用”應該做的最后釋放資源等動作
Paint()讓你在Applet界面上進行相應的繪畫動作,每次刷新時都會重畫

所有的applet文件源文件名和java應用程序一樣都是.java為擴展名,編譯后的執行文件擴展名為.class,由于在applet中已經沒有了main()函數,它是和html自動集成,所以我們要執行applet,要在html源文件中放入一特定的標簽(tag),才能告訴網頁如何裝載并執行這個applet,這里有一點要注意,我們執行的網頁必須能執行java程序。

普通Html 源碼格式

<HTML>

<APPLET CODE="HelloWorld.class" WIDTH=300 HEIGHT=500>

</APPLET>

</HTML


<applet code ="HelloWorld.class" width=300 height=500>這行即applet的執行處。

applet 執行文檔為 ="HelloWorld.class" 告訴網頁”applet ”擴展文件為HelloWorld.class

width 和 height 告訴瀏覽器這個顯示的applet的大小

有關標簽(tag)的說明,大家可在網上找到很多相關的說明文檔。

線程

由于apllet,java應用程序的執行都和線程有關。我們來大概了解一下線程的概念。

線程也稱為輕型進程 (LWP)。每個線程只能在單個進程的作用域內活動、協作和數據交換,并且在計算資源方面非常廉價。線程需要操作系統的支持,因此不是所有的機器都提供線程。Java 編程語言,作為相當新的一種語言,已將線程支持與語言本身合為一體,這樣就對線程提供了強健的支持。

Thread 類是一個具體的類,即不是抽象類,該類封裝了線程的行為。要創建一個線程,程序員必須創建一個從 Thread 類導出的新類。程序員必須覆蓋 Thread 的 run() 函數來完成有用的工作。用戶并不直接調用此函數;而是必須調用 Thread 的 start() 函數,該函數再調用 run()。

但是使用Thread類實現線程,增加了程序的類層次,所以一般程序員都由另一個java線程接口Runnable接口來實現,Runnable接口只有一個函數run(),此函數必須由實現了此接口的類實現。

線程中有幾個重要的方法是我們得了解:

Thread.start(): 啟動一個線程

Thread.stop(): 停止一個線程

Thread.sleep(time in milliseconds): 暫停線程在一個等待時間內。

作者:http://www.zhujiangroad.com
來源:http://www.zhujiangroad.com
北斗有巢氏 有巢氏北斗