怎樣制作一款頁游?
時間:2024-01-19 19:30:01 | 來源:網(wǎng)站運(yùn)營
時間:2024-01-19 19:30:01 來源:網(wǎng)站運(yùn)營
怎樣制作一款頁游?:一一一、、、、簡單的程序框架簡單的程序框架簡單的程序框架簡單的程序框架。。。。 webgame程序構(gòu)成:
三大部分。 第一是數(shù)據(jù)流程。第二是程序。第三是美術(shù)。 其中,數(shù)據(jù)流程包括了功能。也只有在功能中才能體現(xiàn)數(shù)據(jù)流程。
數(shù)據(jù)流程相當(dāng)?shù)穆闊竺嬖儆懻摗?比如最簡單的賣買產(chǎn)品。 要實(shí)現(xiàn)這個功能。 那么需要有產(chǎn)品基礎(chǔ)表、產(chǎn)品詳細(xì)表、商店表、背包表。如果擴(kuò)展性更強(qiáng),
相應(yīng)的雙表是少不不了的。 表的問題都簡單了。關(guān)鍵是這個物品有什么用。這樣物品的來源,一大堆數(shù)據(jù),物品的走向,又是一大堆數(shù)據(jù)。 最后,這些數(shù)據(jù)得繞成一個圈。
繞圈是一件困難的事情。特別是功能和道具多了起來的時候。難度是2的n次方。 在繞圈之前,如果你比較熟練設(shè)計模式。那么這個過程可以簡化。難度由2的n次方變?yōu)?。只需要有控制器、事件工廠、抽象道具工廠這三個虛類;再加上定時器,任務(wù)編輯器,這兩個通用類。即可以構(gòu)建一個健壯、高擴(kuò)展的webgame。
在webgame里控制器幾乎可以等同于頁面。隨便采用一種模板技術(shù)即能很方便的處理。 事件工廠是一個抽象類,所有的事件,如打工、戰(zhàn)斗、移動等都由事件工廠的生產(chǎn)。
并且接口相同,方便控制器控制。工廠模式。 抽象道具工廠是一個抽象類,所有的道具,如城市、地圖、裝備等,都由抽象道具工廠生產(chǎn)。并且接口相同。工廠模式。
事件與道具的結(jié)合又是一個橋接模式。 美術(shù): UI。簡潔漂亮的界面總會有好處。 小圖標(biāo)。道具,地圖,裝備。一類至少10個吧?大體上百把個是需要的。
程序分5個部分: 服務(wù)器定時器。(C語言或自己設(shè)定服務(wù)器)定時循環(huán)執(zhí)行某一段代碼。而這段代碼主要是根據(jù)數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行更新。這個可以找個C語言程序員來做。
對于C語言程序員來講,這個功能是相當(dāng)?shù)暮唵巍.?dāng)然,具體的處理數(shù)據(jù)的判斷和操作數(shù)據(jù)庫,需要你自己寫。讓C語言程序員給你段標(biāo)準(zhǔn)代碼就行了。完全支持
sql語句的。 php的話,可以配置corn實(shí)現(xiàn)。但是不管是什么操作系統(tǒng),配置的時間最低是1分鐘。
所以,如果你要處理1秒鐘刷新一次的情況。你還需要專門的定時器程序來處理,或者被定時執(zhí)行的php需要包含sleep().
當(dāng)然,即使有即時交互,可以不管服務(wù)器端。只處理交互的雙方的客戶端。js和ajax實(shí)現(xiàn)。 功能頁面、功能函數(shù)。
主要就是數(shù)據(jù)存取,判斷,數(shù)據(jù)走向。 用上抽象類,會比較輕松。不過子類的爆炸是少不了的了。 ajax函數(shù)。(可選)某些需要偽即時的功能要用到。
為了讓游戲看起來酷一點(diǎn)。用吧。javascript函數(shù)。(可選)模擬客戶端的
數(shù)據(jù)計算。也就是webgame的與時間相關(guān)的數(shù)據(jù)。
分為兩部分。一部分是真實(shí)數(shù)據(jù),是由服務(wù)器端的定時器計算的。另一部分是只有初始值,客戶端顯示用的。不需要即時同步,僅僅需要模擬同步就行。
這里還包括一些漂亮的UI特效。畢竟是游戲。 數(shù)據(jù)庫。一大堆基礎(chǔ)數(shù)據(jù)表和詳細(xì)數(shù)據(jù)表?;A(chǔ)數(shù)據(jù)表:比如等級1到等級100的用戶的屬性初始值。
詳細(xì)數(shù)據(jù)表:每個用戶的具體屬性。 數(shù)據(jù)庫上,盡量優(yōu)化。結(jié)構(gòu)上能用1字節(jié)的就別用2字節(jié)。
二二二二、、、、一個詳細(xì)的例子一個詳細(xì)的例子一個詳細(xì)的例子一個詳細(xì)的例子。。。。 單純的討論數(shù)據(jù)流程是件痛苦的事情。討論程序而不給代碼也是比較痛苦。 這里用的是php+mysql的。同時,這個例子沒有用到類。
如果時間充足的話,今年年底,我會提供一個帶即時交互的簡單webgame代碼和核心類來說明使用了設(shè)計模式的好處。
那就按一個超簡單的webgame的方式來討論。配上適當(dāng)?shù)拇a。應(yīng)該有所幫助。不足的地方也請大家指出,對我個人也是幫助。
我們不去考慮游戲的可玩性,數(shù)值平衡等等問題。我的實(shí)現(xiàn)。 那么一個webgame的基本內(nèi)容需要些什么呢?
數(shù)據(jù)庫:玩家、地圖、城市、建筑、武器、士兵。 功能:登陸、升級、個人戰(zhàn)斗、士兵之間的戰(zhàn)斗、與城市的戰(zhàn)斗、修建建筑、打造武器、買賣道具。(注意:每一個功能,必然對應(yīng)1個或多個數(shù)據(jù)表。上面數(shù)據(jù)庫中所列的只是基礎(chǔ)中的基礎(chǔ)。) 首先是地圖、城市、建筑。
這里認(rèn)為,地圖可以有多張,城市在地圖上,建筑在城市內(nèi)。
地圖表 Map :Map_ID ,X坐標(biāo), Y坐標(biāo),City_ID(城市ID),描述。
其中Map_ID是指地圖的id。不是自動編號。一張地圖就是一個Map_ID,可以重復(fù)。
城市表 City:City_ID,城市名字,城市所有人,城市等級,城市資源,描述。 建筑表 Build:ID,City_ID,建筑名稱,建筑等級,建筑功能。
其中,地圖表確定城市的位置,城市表確定城市的相關(guān)數(shù)據(jù)以及所有人,建筑表內(nèi)的多條信息屬于某一個城市。 建表后,顯示出來。 一個for循環(huán)。把地圖表整個取出來就ok。 跟普通網(wǎng)站的新聞列表沒太大區(qū)別。不同的是,你需要取得X坐標(biāo)和Y坐標(biāo)定位??梢杂胻abel也可以用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 "