1、怎麼製作一個網頁游戲
一、簡單的程序框架。
webgame程序構成:
三大部分。
第一是數據流程。第二是程序。第三是美術。
其中,數據流程包括了功能。也只有在功能中才能體現數據流程。
數據流程相當的麻煩,後面再討論。
比如最簡單的賣買產品。
要實現這個功能。
那麼需要有產品基礎表、產品詳細表、商店表、背包表。如果擴展性更強,相應的雙表是少不不了的。
表的問題都簡單了。關鍵是這個物品有什麼用。這樣物品的來源,一大堆數據,物品的走向,又是一大堆數據。
最後,這些數據得繞成一個圈。
繞圈是一件困難的事情。特別是功能和道具多了起來的時候。難度是2的n次方。
美術:
UI。簡潔漂亮的界面總會有好處。
小圖標。道具,地圖,裝備。一類至少10個吧?大體上百把個是需要的。
程序分5個部分:
伺服器定時器。(C語言或自己設定伺服器)定時循環執行某一段代碼。而這段代碼主要是根據資料庫的數據進行更新。這個可以找個C語言程序員來做。對於C語言程序員來講,這個功能是相當的簡單。當然,具體的處理數據的判斷和操作資料庫,需要你自己寫。讓C語言程序員給你段標准代碼就行了。完全支持sql語句的。
功能頁面、功能函數。主要就是數據存取,判斷,數據走向。
ajax函數。(可選)某些需要偽即時的功能要用到。
javascript函數。(可選)模擬客戶端的數據計算。也就是webgame的與時間相關的數據。分為兩部分。一部分是真實數據,是由伺服器端的定時器計算的。另一部分是只有初始值,客戶端顯示用的。不需要即時同步,僅僅需要模擬同步就行。
資料庫。一大堆基礎數據表和詳細數據表。基礎數據表:比如等級1到等級100的用戶的屬性初始值。詳細數據表:每個用戶的具體屬性。
二、一個詳細的例子。
單純的討論數據流程是件痛苦的事情。
討論程序而不給代碼也是比較痛苦。
這里用的是php+mysql的。
那就按一個超簡單的webgame的方式來討論。配上適當的代碼。應該有所幫助。不足的地方也請大家指出,對我個人也是幫助。
我們不去考慮游戲的可玩性,數值平衡等等問題。我們先只考慮一個簡單例子的實現。
那麼一個webgame的基本內容需要些什麼呢?
資料庫:玩家、地圖、城市、建築、武器、士兵。
功能:登陸、升級、個人戰斗、士兵之間的戰斗、與城市的戰斗、修建建築、打造武器、買賣道具。
(注意:每一個功能,必然對應1個或多個數據表。上面資料庫中所列的只是基礎中的基礎。)
首先是地圖、城市、建築。
這里認為,地圖可以有多張,城市在地圖上,建築在城市內。
地圖表
Map :Map_ID ,X坐標, Y坐標,City_ID(城市ID),描述。
其中Map_ID是指地圖的id。不是自動編號。一張地圖就是一個Map_ID,可以重復。
城市表
City:City_ID,城市名字,城市所有人,城市等級,城市資源,描述。
建築表
Build:ID,City_ID,建築名稱,建築等級,建築功能。
其中,地圖表確定城市的位置,城市表確定城市的相關數據以及所有人,建築表內的多條信息屬於某一個城市。
建表後,顯示出來。
一個for循環。把地圖表整個取出來就ok。
跟普通網站的新聞列表沒太大區別。不同的是,你需要取得X坐標和Y坐標定位。可以用tabel也可以用div。
class Map//地圖類
{
var $Map_ID;
function Map_bg_css($Map_ID) {
$this->Map_ID = $Map_ID;
mysql_select_db($db_name,$link);
$sql=」select * from map where Map_ID=』」.$this->Map_ID.」『 limit 1″;
$result=mysql_query($sql,$link);
echo 「<style type=」.」text」.」/」.」css>」;
$rs=mysql_fetch_array($result);
echo 「#map{」;
echo 「position:absolute;」;
echo 「width:」.$rs[X坐標].」px;」;
echo 「height:」.$rs[Y坐標].」px;」;
echo 「z-index:0;」;
echo 「left:0px;top:0px;}」;
}
function Map_bg($Map_ID){
$this->Map_ID = $Map_ID;
$sql=」select * from map where Map_ID=』」.$this->Map_ID.」『」;
$result=mysql_query($sql,$link);
while($rs=mysql_fetch_array($result))
{
echo 「<div id=Layer_bg_」.$rs[X坐標].」_」.$rs[Y坐標].」>」;
echo 「<img src=」.$rs[Map_bg].」 border=0 title=」.$rs[ID].」></div>」;
}
}
}
上面是一個很簡單的地圖類。代碼可能不太正確,意思是正確的。就是根據map表中的坐標,生成了一組div層,以及這一組層的css。
你可以改為table的。你可以也把坐標放到一個欄位里,用數組的形式取。
使用的時候,用
new map;
map(N);
其中N是map表裡的地圖Map_ID.
城市內的建築也類似。如果要顯示出來的話。
有了地圖和城市後。
涉及到的問題就是城市裡資源的產生。
這時候,City表裡需要有可供判斷的時間和數量的欄位。
比如:產生資金量Money,產生資金花費的時間Action_Time,上次產生資金時間Money_time。
這兩個欄位的數值應該在City_base表裡出現。(即城市基礎表,不同等級,不同類型城市的對應數值。這是給策劃填數據用的,建好表後就等策劃去頭痛吧。如果你身兼數職。。。)
如何自動產生資源呢?
我們可以在城市所有人改變的時候,寫入一個時間。或者在城市初始化的時候寫入一個時間。
$Now_Time=date(』Y-m-d H:i:s』);
(說明:$開頭是變數的意思。php里特有的。如果是asp的話可以寫成。Now_Time=Now() )
把$Now_Time寫入到Money_time里。
update(」UPDATE City SET Money_time=』$Now_Time WHERE City_ID=』$City_ID』 LIMIT 1;」);
$City_ID是你自己定義的。指某一個城市。如:$City_ID=1;
我們假定當前城市產生資金量為100。即$Money=100;(具體的數值,應該是由City_base表裡取出的。)
假設間隔時間為$Action_Time,我們再假定是每小時執行一次。即$Action_Time=3600;(具體的數值,是根據你的初始化表裡取得的。也可以根據城市等級或者用戶等級取得。反正隨便你自己怎麼設定。)
這時候,有基礎時間了。有基礎資金產量了。有間隔時間了。
讓它循環執行起來就行了。
上面說過,服務端用C語言定時器。客戶端用javascript。
服務端,資源定時器設定為5分鍾執行一次。那麼我們的誤差就是5分鍾。對網頁游戲來說,可以接受。(戰斗的定時器得1分鍾吧。當然伺服器夠牛的話,幾秒鍾都可以。)
每次執行什麼代碼呢?
首先得新建一個定時器任務的表。目的就是讓定時器知道需要執行哪些程序和數據的更新。表內容比如:城市資源更新。當然,這個表可要可不要。建立的好處是方便處理類似保護狀態不產生資源之類的問題。
服務端程序:
獲得當前伺服器時間。
獲得當前需要更新城市。
判斷伺服器時間與$Money_time的時間差。(時間戳,具體的時間戳網上資料滿多的。)
判斷時間差是否大於$Action_Time。
大於,則更新資源。同時更新$Money_time。
小於,則無操作。
客戶端程序:
獲得當前伺服器時間。
獲得當前城市的$Money,$Money_time,$Action_Time。
使用javascript顯示剩餘時間的倒計時,以及增加的資源量。
客戶端特殊情況觸發:
因為客戶端顯示的資源情況是偽同步,所以當客戶端使用該資源的時候。需要服務端將當前的實際資源更新,屬於定時器處理的時間也需要更新。
即,當客戶端觸發涉及資源的情況時,立即更新當前資源。同時更新定時器中會用到的$Money_time。這樣才不會造成,看的資源用不到,或者定時器重復產生資源。
總體來說。這部分程序都很簡單。難點在C語言定時器的製作,以及前台javascipt倒計時的寫法上。
C語言定時器,找個C語言程序員,超簡單;前台的javascipt,網上有很多倒計時的代碼,找個來改改就能用。
<SCRIPT LANGUAGE=」JavaScript」>
var maxtime = 這里是你的時間差///一個小時,按秒計算,自己調整!
function CountDown(){
if(maxtime>=0){
minutes = Math.floor(maxtime/60);
seconds = Math.floor(maxtime%60);
msg = 「你的文字說明」+minutes+」分」+seconds+」秒」;//動態顯示剩餘時間。
document.all["timer"].innerHTML=msg;
//if(maxtime == 3) document.all["timer"].innerHTML=』只剩3秒!』;
–maxtime;
}
else{
clearInterval(timer);
document.all["timer"].innerHTML=』時間到』;
}
}
timer = setInterval(」CountDown()」,1000);
</SCRIPT>
<div id=timer></div>
這個是網上找的代碼。稍微修改就可以用的。這里只是顯示了倒計時。也可以改為顯示資源的增加情況。
C語言里操作mysql資料庫。
// TODO: Add your control notification handler code here
bool bRes = m_dbConn.Connect(」資料庫ip地址」, 3306 , 「用戶名」, 「[email=d203!@#ghj]密碼[/email]「, 「資料庫名」);
if(!bRes)
{
AfxMessageBox(」connect fail」);
return;
}
string strSql = 「select * from city limit 1″;//所有顯示或取值類的都用這段。中間的sql語句可以自己構造。
ResultSet* rs = m_dbConn.ExecuteQuery(strSql);
while(rs->Next())
{
string str = rs->GetString(」username」);
AfxMessageBox(str.c_str());
}
/*
strSql = 「update city set money=money +100 where City_ID=』xxx』」;//所有的增加、刪除、更新都用這段,中間的sql語句可以自己構造。
bRes = m_dbConn.ExecuteUpdate(strSql);
if(!bRes)
{
AfxMessageBox(」ExecuteUpdate fail」);
}
*/
m_dbConn.Close();
定時器的主函數。
void CBeiLiDlg::Go()
{
while(true)
{
// AfxMessageBox(」go」);
Sleep(5*1000);//毫秒。定時器刷新時間。
}
}
//相當的簡單..。
當然。這里的C的代碼不能直接用。只是一部分。
地圖、城市、基本上算是有了。
接下來是城市裡的建築。
上面講的資源增加,其實定位在建築上更准確。不過建築的分類和數值會復雜很多。那是策劃考慮的問題。
建築上,只講一個前台的修建效果。
當然,這個效果是可有可無。你可以直接給個類似新聞列表的顯示,再加個倒計時就行。
顯示的效果就是,點修建後。不刷新頁面,調入一張動畫圖片。並在時間到後自動轉換為其他圖片。
<script language=』javascript』>
function xiujian()
{
top.abc.document.getElementById(』前台建築位置所在圖片的id』).src=』修建後建築的圖片地址』;
//顯示修建後的建築圖片。可以加上後台時間判斷。其中abc,是建築所在層的id,
}
function xiujian1()
{
setTimeout(』xiujian()』,5000);//動畫時間5秒。這里也可以加入時間判斷。當時間不到的完成的時候,繼續調用動畫。
}
function donghua()
{
top.abc.document.getElementById(』前台建築位置所在圖片的id』).src=』建築動畫所在的地址』;//顯示修建動畫。
}
donghua();
xiujian1();
</script>
後台部分,把時間到增加資源的代碼改為時間到增加或更新建築就行了。又是增加N個表。。
建築基礎表:產出,類型,圖片等等。。
建築詳細表:屬於哪個城市,可以在城市表裡關聯。關聯的方式不同會對程序有很大的影響。各種關聯方式都行,但是一旦關聯方式確定後,最好別改動。
現在建築也有了。用類似的定時方式,打工,徵兵等等都可以實現。
戰斗,
兵的參數:兵種,數量,攻擊,防禦等等。
戰斗的臨時表:誰的兵,打誰,出發時間,戰斗時間,戰斗結果。
這里的幾個字到是簡單。實際的表會復雜一些。
webgame中,戰斗的過程分兩種,
一種是給出雙方參數,時間到,就根據公式計算結果。
一種是半即時或者即時的戰斗,可以邊打邊喝葯邊用技能的那種。
第一種流程。
點出兵。這時候,兵的參數,出發時間,到達時間,都記錄進戰斗臨時表。
定時器中,處理戰斗的部分,判斷時間是否到開打的時候。到開打的時間了,則取得被攻擊方的兵的參數。然後通過幾個公式計算結果。處理結果,比如誰的兵掛了多少,戰場掉落了多少錢,城市被誰搶到了。一大堆判斷以及updata。(這里的定時器處理和獲得資源的定時器處理是很類似的。)
最後把結果分別發給雙方。(又涉及到一個簡訊息系統。)
第二種流程。
點攻擊。馬上就處理數據。打打npc好做。玩家之間對戰,也可以把被攻擊的玩家當成npc來處理。
兩個人或兩人以上即時戰斗。需要用到ajax了。目前在技術上和理論上是沒問題的,還沒實際寫代碼,所以不好講。
很簡單的公式,兩種戰斗都可以用到:
intval(sqrt($User_B_AP)-sqrt($User_A_DP));
根號下攻擊-根號下防禦=傷害。
2、幾種常見網頁布局設計
網站是有網頁構成,這點相信很多的從事網站建設或者是接觸過網站開發的站長應該都清楚,但是你現在的問題是,雖然很多的企業都想要建設網站,但是對於網站的布局了解的並不清楚,下面就跟著我們沃然一起來了解一下網站建設中幾種常見的布局吧。
1、區塊型
2、國字型
3、門戶型
4、Flash型
5、左右框架型
6、拐角型
7、封面型
8、標題正文型
9、上下框架型
10、綜合框架型
3、網頁設計的經典布局類型有哪些
網站建設中網頁布局大致可分為:「國」字型、拐角型、標題正文型、左右框架型、上下框架型、綜合框架型、封面型、Flash型、變化型等,以下分別論述:
1、國字類型:也被稱為同字型,頂部是網站的標題、橫幅廣告條,然後是網站的主體內容個,而左右分別是一些比較小的內容條,中間就是主要內容,最底部是網站的一些基本信息、聯系方式、版權聲明等。這也是現在網上見到的差不多最多的一種結構類型;
2、拐角型:這種類型其實與國字型很相近的,只是在形式上不一樣,最上面的部分是網站的標題以及網站的橫幅廣告條,一種很常見的類型是最上面是標題及廣告,左側是導航鏈接;
3、標題正文類型:上面是網站的標題,或者是類似的東西,接著就是網站的正文內容,例如是一些文章或者是注冊登錄頁面;
4、左右框架類型:這是一種左右為分別兩頁的框架結構,一般布局是:左邊是導航鏈接,最上面有時是一個小的標題或標致,而右面就是主要內容,最常使用是論壇網站,企業網站中的內頁有很多是採用這種布局方式的;這種類型的布局的特點是結構清晰明了;
5、上下框架類型:與左右框架類型類似,只是這種類型是上下兩頁的框架;
6、綜合框架類型:其實就是左右框架類型和上下框架類型的結合體;
7、封面型:這種類型基本上是出現在一些網站的首頁,多是精美平面結合小動畫,再加幾個簡單鏈接或僅是一個「進入」鏈接或無任何提示;
8、Flash型:其實這與封面型結構是類似的,採用了目前非常游戲行的Flash,與封面型不同的是,由於Flash強大的功能,頁面所表達的信息更豐富,其視覺效果及聽覺效果如果處理得當,絕不差於傳統的多媒體;
9、變化型:即上面幾種類型的結合與變化,但所實現的功能的實質是那種上、左、右結構的綜合框架型;
4、怎麼製作一個網頁游戲?
簡單介紹一下製作主頁的過程和方法:
一、准備材料
你首先做一個小計劃,准備在主頁上告訴人家什麼?比如介紹三個方面:自我介紹,我的愛好,我的工作,那你就先起一個總目錄(文件夾,比如d:\\\\html),來放你的所有文件,然後再在這個目錄建立三個子目錄:myself,interest,job。文件名你可以任意,但最好全部小寫,因為有的主機要認大小寫。然後將你的材料copy進相應的子目錄。比如你要在你的主頁里展示你的靚照,那就將你的照片掃描成jpg格式的文件,放在myself的目錄下.
要注意,網上只能使用jpg和gif兩種圖象格式,其他諸如bmp和tif等很通用的格式都不能用在網上,因為它們太大了,但你可以用圖象軟體進行轉換,比如office
97的照片編輯器。把你准備在你主頁上出現的圖象放進相應的目錄里後,你就可以開始製作了。
二、開始製作
你無須去記復雜的html語言,你可以用netscape4.0或者word7.0,我用的是frontpage.打開netscape,在file菜單里選edit
page,便可以製作了.文字的處理基本跟word沒什麼兩樣,關鍵是插入圖片和產生鏈接.我們先做關於你自我介紹的一頁,你先寫上「大家好,我是superboy,下面是我的照片:」這時要放圖片了,只須點擊insert菜單,選取image,在choosefile里選取你的圖象文件即可,然後把這個文件保存為myself.html文件,放在myself的目錄下。好,現在必須做封面了,你在封面寫:「歡迎來到superboy的主頁」以下是「自我介紹,我的愛好,我的工作」。你的自我介紹要鏈接到下一頁去,你只須用滑鼠選「自我介紹」後按滑鼠右鍵
,再選create
link,然後再選你myself目錄下的myself.html,就將「自我介紹」鏈接到下一頁了,以後在瀏覽器中一按,就可以跳到鑲有你靚照的頁面啦。
在你的封面做好了所有鏈接和圖片後,記住你必須將這一頁保存為index.htm(有的主機要求必須為index.html),因為網頁默認的主頁名稱是index.製作主頁其實很簡單,只要多實際製作,工多藝熟。還可以拿來主義,在網上看到什麼好的主頁,用另存為功能保存為.html格式的文件,細細研究人家是如何做的。還可以借用網頁模版來搞,我的就是~~~~~~
三、將你製作好的安放在網上
要在網上安你自己的家,你必須先申請一個主頁空間,即向某一個主機申請一快硬碟空間。現在有較多的主機提供免費主頁空間,具體見實用鏈接欄目。這些主機不僅提供免費個人主頁空間,並且還提供留言簿、計數器等很有用的功能。只要到有關站點申請即可,具體方法,參考相關題目。申請完成以後用ftp將你所有的主頁文件上傳至主機指定的目錄就可以了!
需要注意的是,一定要保持網頁的相對位置,否則會看不到網頁的。
5、在橙光游戲的網頁版橙光製作工具裡面,那些框架怎麼弄的?(圖片)
這是讀取或保存,不用動的
6、網頁游戲UI設計包括哪些課程
這是中關村@匯眾的課程體系
網頁游戲UI設計必須學習的課程:
UED概述:UE、UI、IXD的基本概念,用戶體驗的基本原則,用戶體驗案例分析,Axure RP原型設計軟體應用。
GUI設計基礎:Photoshop軟體應用,Illustrator軟體應用,平面設計的知識和理論。
網頁UI設計:網頁的設計布局和配色、門戶網站的頁面設計、電子商務網站的網頁設計、企業網站的頁面設計
軟體UI設計:PC端應用界面設計,iOS應用界面設計,Android應用界面設計,WindowsPhone應用界面。
游戲UI設計:游戲UI概述,游戲按鈕設計,游戲圖標設計,游戲logo、icon設計,游戲框架、界面設計,移動端游戲UI設計。
7、網頁設計的布局有哪幾種
網頁設計的布局有哪幾種?
1.「國」字型:
2.拐角型:
3.標題正文型:
4.左右框架型:
5.上下框架型:
6.綜合框架型:
7.封面型:
8.Flash型:網頁設計
9.變化型:網頁設計
8、java網頁游戲開發使用的框架有哪些?
LGame是Loonframework框架的一部分,也是針對Java2D游戲開發而設計的「一攬子」項目,它的創立初衷在於構建一個高效且完善的Java2D游戲開發體系。關於LGame的簡要介紹:
LGame代碼高度向下兼容,jre1.4及以上版本皆可以正常運行。
LGame 是一個高通用性的游戲框架,作為支持Java桌面游戲以及網頁游戲開發的全功能引擎,LGame無論對畫面繪制、精靈碰撞、特效渲染、窗體組件,還是 XML操作,文本資料庫操作,HTTP操作,日誌操作等都提供有完善的內部解決方案,避免了多包配置的繁瑣與不便,同時也降低了用戶的學習曲線。出於效率 與程序體積兩方面考慮,LGame中所有組件皆不依賴Swing,完全採取AWT繪制而成,因此它可以將自身的運行環境壓縮到最小,一個壓縮後不足4MB 的精簡JRE,已足夠支持它的運行,也就是與RMXP或吉里吉里2的運行庫大小相彷彿,但功能卻更多。
LGame 內置有視頻解碼器,支持mp4視頻文件播放(在LGame-Simple-0.3.0中將支持flv,在0.6-0.7版本中將以可選組件方式引入jmc 支持,以爭取可播放視頻種類的最大化),內置音頻解碼器支持mid、mod、mp3、ogg、wav、au、aiff、aac、rmf等音頻播放,以上解 碼器皆不依賴於本地資源,只要擁有jre1.4或以上環境即可正常運行。
就目前階段而言,LGame圖形渲染依賴於Java2D,這雖然保證了 LGame可以運行於所有獲得JRE支持的桌面系統與瀏覽器,但在處理復雜圖形時效果始終不算理想。因此,後續版本將對此進行改進,預計將於 0.3-0.4版中提供jogl與lwjgl支持(即opengl支持),將於0.4-0.5版中對現有 Graphics2D對象進行特殊強化,爭取最大程度上解決Java桌面應用的效率問題。
應該說,LGame並不是開發某種特定游戲類型時採用的游戲引擎,而是一個游戲開發框架,一個Java的桌面游戲開發解決方案。因此,所有你能想到的2D游戲類型,都可以採用LGame進行開發。
理論上講,只要您能夠熟練操作LGame,世界上根本沒有任何一款2D游戲是您所無法快速實現的。
PS:目前LGame尚未推出正式版 本,LGame-Simple版為前瞻性測試及吸收反饋意見使用,此時LGame框架的基本架構尚未最終確定,因此無法保證不同版本間的兼容性。 LGame-Simple以每版+0.5的方式跳躍式升級,當LGame-Simple更新到1.0版本時,既推出LGame-0.1正式版 本,LGame正式版推出後將始終保持新版與舊版間的兼容性。
Spring Framework 【Java開源 J2EE框架】
Spring是一個解決了許多在J2EE開發中常見的問題的強大框架。 Spring提供了管理業務對象的一致方法並且鼓勵了注入對介面編程而不是對類編程的良好習慣。Spring的架構基礎是基於使用JavaBean屬性的Inversion of Control容器。然而,這僅僅是完整圖景中的一部分:Spring在使用IoC容器作為構建完關注所有架構層的完整解決方案方面是獨一無二的。 Spring提供了唯一的數據訪問抽象,包括簡單和有效率的JDBC框架,極大的改進了效率並且減少了可能的錯誤。Spring的數據訪問架構還集成了Hibernate和其他O/R mapping解決方案。Spring還提供了唯一的事務管理抽象,它能夠在各種底層事務管理技術,例如JTA或者JDBC事務提供一個一致的編程模型。Spring提供了一個用標准Java語言編寫的AOP框架,它給POJOs提供了聲明式的事務管理和其他企業事務--如果你需要--還能實現你自己的aspects。這個框架足夠強大,使得應用程序能夠拋開EJB的復雜性,同時享受著和傳統EJB相關的關鍵服務。Spring還提供了可以和IoC容器集成的強大而靈活的MVC Web框架。【SpringIDE:Eclipse平台下一個輔助開發插件】.
Struts 【Java開源 Web框架】
Struts是一個基於Sun J2EE平台的MVC框架,主要是採用Servlet和JSP技術來實現的。由於Struts能充分滿足應用開發的需求,簡單易用,敏捷迅速,在過去的一年中頗受關注。Struts把Servlet、JSP、自定義標簽和信息資源(message resources)整合到一個統一的框架中,開發人員利用其進行開發時不用再自己編碼實現全套MVC模式,極大的節省了時間,所以說Struts是一個非常不錯的應用框架。【StrutsIDE:用於Struts輔助開發的一個Eclipse插件】
Hibernate 【Java開源 持久層框架】
Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱資料庫。 Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序實用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成數據持久化的重任。Eclipse平台下的Hibernate輔助開發工具:【Hibernate Synchronizer】【MiddlegenIDE】
9、簡單的web游戲開發框架有哪些
LGame是Loonframework框架的一部分,也是針對Java2D游戲開發而設計的「一攬子」項目,它的創立初衷在於構建一個高效且完善的Java2D游戲開發體系。關於LGame的簡要介紹:
LGame代碼高度向下兼容,jre1.4及以上版本皆可以正常運行。
LGame 是一個高通用性的游戲框架,作為支持Java桌面游戲以及網頁游戲開發的全功能引擎,LGame無論對畫面繪制、精靈碰撞、特效渲染、窗體組件,還是 XML操作,文本資料庫操作,HTTP操作,日誌操作等都提供有完善的內部解決方案,避免了多包配置的繁瑣與不便,同時也降低了用戶的學習曲線。出於效率 與程序體積兩方面考慮,LGame中所有組件皆不依賴Swing,完全採取AWT繪制而成,因此它可以將自身的運行環境壓縮到最小,一個壓縮後不足4MB 的精簡JRE,已足夠支持它的運行,也就是與RMXP或吉里吉里2的運行庫大小相彷彿,但功能卻更多。
LGame 內置有視頻解碼器,支持mp4視頻文件播放(在LGame-Simple-0.3.0中將支持flv,在0.6-0.7版本中將以可選組件方式引入jmc 支持,以爭取可播放視頻種類的最大化),內置音頻解碼器支持mid、mod、mp3、ogg、wav、au、aiff、aac、rmf等音頻播放,以上解 碼器皆不依賴於本地資源,只要擁有jre1.4或以上環境即可正常運行。
就目前階段而言,LGame圖形渲染依賴於Java2D,這雖然保證了 LGame可以運行於所有獲得JRE支持的桌面系統與瀏覽器,但在處理復雜圖形時效果始終不算理想。因此,後續版本將對此進行改進,預計將於 0.3-0.4版中提供jogl與lwjgl支持(即opengl支持),將於0.4-0.5版中對現有 Graphics2D對象進行特殊強化,爭取最大程度上解決Java桌面應用的效率問題。
應該說,LGame並不是開發某種特定游戲類型時採用的游戲引擎,而是一個游戲開發框架,一個Java的桌面游戲開發解決方案。因此,所有你能想到的2D游戲類型,都可以採用LGame進行開發。
理論上講,只要您能夠熟練操作LGame,世界上根本沒有任何一款2D游戲是您所無法快速實現的。
PS:目前LGame尚未推出正式版 本,LGame-Simple版為前瞻性測試及吸收反饋意見使用,此時LGame框架的基本架構尚未最終確定,因此無法保證不同版本間的兼容性。 LGame-Simple以每版+0.5的方式跳躍式升級,當LGame-Simple更新到1.0版本時,既推出LGame-0.1正式版 本,LGame正式版推出後將始終保持新版與舊版間的兼容性。
Spring Framework 【Java開源 J2EE框架】
Spring是一個解決了許多在J2EE開發中常見的問題的強大框架。 Spring提供了管理業務對象的一致方法並且鼓勵了注入對介面編程而不是對類編程的良好習慣。Spring的架構基礎是基於使用JavaBean屬性的Inversion of Control容器。然而,這僅僅是完整圖景中的一部分:Spring在使用IoC容器作為構建完關注所有架構層的完整解決方案方面是獨一無二的。 Spring提供了唯一的數據訪問抽象,包括簡單和有效率的JDBC框架,極大的改進了效率並且減少了可能的錯誤。Spring的數據訪問架構還集成了Hibernate和其他O/R mapping解決方案。Spring還提供了唯一的事務管理抽象,它能夠在各種底層事務管理技術,例如JTA或者JDBC事務提供一個一致的編程模型。Spring提供了一個用標准Java語言編寫的AOP框架,它給POJOs提供了聲明式的事務管理和其他企業事務--如果你需要--還能實現你自己的aspects。這個框架足夠強大,使得應用程序能夠拋開EJB的復雜性,同時享受著和傳統EJB相關的關鍵服務。Spring還提供了可以和IoC容器集成的強大而靈活的MVC Web框架。【SpringIDE:Eclipse平台下一個輔助開發插件】.
Struts 【Java開源 Web框架】
Struts是一個基於Sun J2EE平台的MVC框架,主要是採用Servlet和JSP技術來實現的。由於Struts能充分滿足應用開發的需求,簡單易用,敏捷迅速,在過去的一年中頗受關注。Struts把Servlet、JSP、自定義標簽和信息資源(message resources)整合到一個統一的框架中,開發人員利用其進行開發時不用再自己編碼實現全套MVC模式,極大的節省了時間,所以說Struts是一個非常不錯的應用框架。【StrutsIDE:用於Struts輔助開發的一個Eclipse插件】
Hibernate 【Java開源 持久層框架】
Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱資料庫。 Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序實用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成數據持久化的重任。Eclipse平台下的Hibernate輔助開發工具:【Hibernate Synchronizer】【MiddlegenIDE】