大富翁Google Earth.docx
《大富翁Google Earth.docx》由会员分享,可在线阅读,更多相关《大富翁Google Earth.docx(35页珍藏版)》请在冰豆网上搜索。
大富翁GoogleEarth
大富翁@GoogleEarth
学生:
杨雨璇、陈韦达指导教授:
陈宗和博士
国立嘉义大学资讯工程学系
中文摘要
大富翁游戏不仅是台湾最有名的棋盘游戏之一,更是全世界最畅销的游戏之一,从传统的纸上游戏发展成PCGame,进而又结合网际网路演进成OnlineGame的模式让世界各地的玩家可同时进行游戏。
而电子地图的兴起,让越来越多人使用电子地图,较常见的电子地图有GoogleMaps[2,6,10]、UrMap、Yahoo!
Map与MicrosoftVirtualMap。
近来Web2.0的网页平台结合电子地图的应用盛行,较广为人知的电子地图应用平台有:
地图日记[3]、Picasa[4]、oBuy全买网[5]等分享平台。
而Google在近年推出3D的GoogleEarth[1],不仅增加电子地图的功能性,更提升使用电子地图的乐趣。
由于大富翁游戏的背景是地图模式,目前市面上的大富翁游戏大多是旧式的棋盘式地图,没办法让使用者感到新奇且无法给予使用者实用的生活资讯。
本专题提出一套结合GoogleEarth的电子地图与大富翁游戏的Web2.0网页平台来打破目前旧有的游戏形式。
我们的创意在于,使用者可以透过我们所提供的Web2.0网页平台进行以GoogleEarth电子地图为背景的大富翁游戏,让使用者在游戏过程中可以得知实际的天文与地理相关资讯,例如探索陆地、海洋与星空,甚至可探索月球与火星等地球之外的宇宙。
达到让使用者感到耳目一新的同时,更可获得实用的资讯。
关键词:
GoogleEarth、Web2.0、大富翁游戏。
RichMan@GoogleEarth
Students:
Yu-HsuanYang,Wei-DaChenAdvisor:
Tzung-HerChen
DepartmentofComputerScienceandInformationEngineering
NationalChiayiUniversity
Abstract
MonopolygameisnotonlytheoneofthemostfamousboardgameinTaiwan,butalsooneoftheworld'sbest-sellinggames.MonopolygameisdevelopmentfromthetraditionalpaperintothePCGame,whichinturnevolvedintoacombinationofInternetOnlineGame.GoogleMaps,UrMap,Yahoo!
MapandMicrosoftVirtualMaparecommonelectronicmappresently.RecentlyWeb2.0platformcombinewithelectronicmaptodevelopapplications.Thefamousshareplatformsareatlaspost,Picasa,oBuyandsoon.Inrecentyears,Googlelaunched3D-GoogleEarth,notonlyincreasethefunctionalityofelectronicmaps,butalsoenhancetheuseofelectronicmapsoffun.ButtraditionMonopolygameisnowaytoallowuserstofeelfreshandnotgivetheuserusefulinformationaboutdailyliving.ThistopiciscombinedtheGoogleEarthandMonopolygametobuildWeb2.0platformtobreaktheoldstyle.Ourcreativityis,theusercanplaytheMonopolygamewhichthebackgroundisGoogleEarth,sothatuserscanknowtheastronomicalandgeographicalinformation,suchastheexploringland,seaandstarsandeventoexploretheMoonandMarsandotherextraterrestrialuniversewhentheyplaying.Itcanallowusersfeelfreshandnewatthesametime.Besides,usecanaccessmoreusefulinformation.
Keywords:
GoogleEarth,Web2.0,Monopolygame.
目录
中文摘要i
Abstractii
目录iii
图表目录vi
第一章绪论1
1.1研究动机1
1.2目前的问题4
1.2.1实用性4
1.2.2方便性4
1.2.3娱乐性4
1.2.4创新性4
1.3解决方案5
1.4研究方向5
1.4.1采用GoogleEarth作为显示的电子地图5
1.4.2采用PHP作为程序架构6
1.4.3使用AJAX技术实时更新数据库6
1.4.4电子地图的动态环绕路径呈现6
1.4.5游戏数据库设计7
1.4.6使用AJAX技术做多人联机7
第二章相关研究8
2.1GoogleMaps8
2.2GoogleEarthPlugin8
2.3PHP11
2.4MySQL13
2.5JavaScript14
2.6AJAX15
第三章实作方法16
3.1实作步骤16
3.1.1设计数据库16
3.1.2设计平台接口呈现方式17
3.1.3撰写主要游戏程序17
3.1.4增加会员功能17
3.1.5测试17
3.2系统架构18
3.3操作流程19
3.4程序代码说明20
3.4.1PHP20
3.4.2JavaScript22
3.5系统功能24
第四章结果与讨论25
4.1成果图25
4.2系统特色29
4.2.1创新性29
4.2.2实用性29
4.3系统优点29
4.3.1上传者30
4.3.2浏览者30
4.3.3玩家30
4.3.4商业方面30
4.4未来发展31
附录32
参考文献33
图表目录
圖1.1:
地圖日記1
圖1.2:
任天堂大富翁紙上棋盤遊戲2
圖1.3:
GoogleEarthPlugin3
图2.1:
申请Key网页19
图2.2:
申请Key网页29
图2.3:
GoogleEarthAPI提供嵌入于网页的程序代码10
图2.4:
网页上嵌入GoogleEarth的范例10
图3.1:
MySQL数据库接口16
图3.2:
专题架构流程图18
图3.3:
网页操作流程图19
图4.1:
成果图一25
图4.2:
成果图二25
图4.3:
成果图三26
图4.4:
成果图四26
图4.5:
成果图五27
图4.6:
成果图六27
图4.7:
成果图七28
图4.8:
成果图八28
第一章绪论
1.1研究动机
Web2.0技术成熟,让网页内容不再是由单一或少数人提供,而是达到「人人可编写,人人可使用」。
日前地图日记(Atlaspost)在美国创新产品大展DEMOConference大会上拿下DEMO展的全球首奖,其原理为结合Web2.0与GoogleMaps提供使用者上传多媒体数据,其核心技术并不复杂,但新颖的想法、有趣的应用是它成功的关键。
图1.1:
地图日记
近年来大富翁游戏一直不断在进化,由最早的纸上版本演化成PC单机版本,进而又蜕变成OnlineGame版本,加上电子地图的崛起,电子地图的应用渐成为趋势,因此我们研究方向为发挥我们的创意,以使用者角度来设计一套包含大富翁游戏、Web2.0技术以及GoogleMaps和GoogleEarth网页技术的系统。
图1.2:
任天堂大富翁纸上棋盘游戏
Google于2005年推出GoogleEarth的应用程序,让许多人感到惊奇不已,GoogleEarth可说是个超炫的3D地球仪加全世界地图,只要输入你想找的地标关键词,GoogleEarth就会带你飞到当地上空,让你立刻以3D视角找到你要去的地方,就像坐喷射机直接飞到目的地上空一样。
除了3D空照图外,也整合了许多地理数据。
你可以勾选要在地图上显示的对象类型,例如道路、旅馆、餐厅、边界等等,甚至还可以自己为某些地点加上标示,或计算从甲地到乙地的距离。
甚至还能以3D模型绘出建筑物的相对高度,让你对当地的地形更加有概念。
有了GoogleEarth,坐在计算机前面就可以让你畅游全球!
2009年初更推出GoogleEarthPlugin,GoogleEarthPlugin是一个浏览器外挂程序,其释放出的GoogleEarthAPI,可供开发人员使用,使其可嵌入于网页平台上,让使用者在使用浏览器(例如IE、FireFox或GoogleChrome)时,可以看到GoogleEarth一般的3D立体环境。
GoogleEarthAPI是GoogleEarth外挂程序及其JavaScriptAPI可让您将GoogleEarth嵌入到网页中。
您可以使用此API来绘制标记和线条、在地表上加入图片、新增3D模型或加载KML档案,以建置复杂的3D地图应用程序。
如果您已经有GoogleMaps网站,您可以利用少至一行的程序代码将网页立体化。
而近期Google推出GoogleEarth5Plugin,其中比较重要改变的是:
新版Plugin支持游览kmz档在线播放、支持照片重迭(PhotoOverlay)、支持有时间属性的kml(time-basedKML)。
图1.3:
GoogleEarthPlugin
1.2目前的问题
1.2.1实用性
以往的大富翁游戏中的地图,无论是最早的纸上棋盘式地图,抑或是PC单机和Online版的路径式地图,都是由设计者所自订的,即使地名与真实地名相同,也无法知道真正的地理位置信息,所以只是单纯在玩游戏并没有从中得到任何实用的价值。
1.2.2方便性
最早的纸上棋盘式大富翁游戏中的道具,无论是骰子、纸牌、纸钞、房屋道具等都缺一不可,少了一样就玩不起来;而PC单机或Online版的大富翁游戏,必须要在计算机上安装软件,且随着版本进化对计算机配置要求也越来越高,而且运行游戏需占用一定的空间,需消耗一定的硬件配备,很难同时进行其它工作或娱乐。
1.2.3娱乐性
现有的电子地图应用,大多只能在地图上呈现静态的信息,提供使用者所需要的信息,无法让使用者在使用这些应用的同时达到寓教于乐的效果。
1.2.4创新性
目前市面上的大富翁游戏大多是旧式的棋盘式地图,只提供固定的游戏地图供使用者选择,无法让使用者自行编辑游戏地图。
1.3解决方案
专题初期致力于开发结合GoogleMaps的Web2.0网页平台,利用Google所提供免费的GoogleMapsAPI来建置大富翁游戏的地图,GoogleMaps可提供真实的地理位置信息,以达到改善缺乏实用性的问题;利用Web2.0的技术让整个游戏全部在WebBrowser进行,仅需要使用Browser就可以在任何时间任何地点进行游戏,不需要下载任何软件,使用者就可以在进行其它工作或娱乐的同时,进行大富翁游戏,以达到改善缺乏方便性的问题;将大富翁游戏与电子地图结合,不仅能在地图上呈现动态的信息,也能增加电子地图应用的娱乐性,以及可供使用者自行编辑游戏地图,达到创新的目的。
我们将以改善上述之四大问题来提供使用者更加实用、方便且娱乐的网页平台。
专题中期由于Google释放出GoogleEarthAPI,因为GoogleMapsAPI和GoogleEarthAPI皆是使用JavaScript嵌入网页平台,GoogleEarth几乎可涵盖GoogleMaps的所有功能,且比原有GoogleMaps的功能更加强大,在求新求变的情况下将建置于GoogleMaps的大富翁游戏移植到GoogleEarth,有别于GoogleMaps的平面的地图,GoogleEarth提供3D视角的立体旋转地图以及更丰富的功能,例如:
探索陆地、海洋与星空,甚至可探索月球与火星等地球之外的宇宙。
不仅依然仍解决原有的四大问题,更能提供给使用者耳目一新的感觉。
1.4研究方向
1.4.1采用GoogleEarth作为显示的电子地图
如今较广为人知的电子地图有GoogleMaps、UrMap、Yahoo!
Map与MicrosoftVirtualMap,目前GoogleEarthPlugin是Google最新推出的可嵌式网页电子地图。
而Google提供免费的GoogleEarthAPI让使用者自行开发程序。
因此选择GoogleEarth作为大富翁游戏网页平台显示的主要接口。
1.4.2采用PHP作为程序架构
PHP[7,9](PHP:
HypertextPreprocessor)是一种在计算机上执行的脚本语言,主要是用途在于处理动态网页,也包含了命令列执行接口(commandlineinterface),或者产生图形使用者接口(GUI)程序,大多行在网页服务器上,透过执行PHP程序代码来产生使用者浏览的网页。
PHP可以在多数的服务器和操作系统上执行,而且使用PHP完全是免费的。
所以采用PHP作为程序主要架构并与数据库沟通,由此获得数据库的内容或更新数据库的信息。
1.4.3使用AJAX技术实时更新数据库
AJAX[8]全名为「AsynchronousJavaScriptandXML」(异步JavaScript和XML),是一种创建交互式网页应用的网页开发技术。
其最大的优点,就是能在不更新整个页面的前提下维护数据库,这使得Web应用程序更为迅速地响应用户的动作,并避免了在网络上发送那些没有改变过的讯息。
采用AJAX技术来更新玩家状态与地图信息,减少WebServer的处理时间及让使用者不必重载页面即可透过AJAX技术更新数据库部分的数据。
1.4.4电子地图的动态环绕路径呈现
为了打破使用者目前所局限的固定式地图标志,及让使用者可以享受环游世界的乐趣,利用JavaScript语法呼叫GoogleEarthAPI所提供的函式,开发出动态环绕路径的呈现方式。
1.4.5游戏数据库设计
一个好的数据库设计力求正规化,正规化是在数据库中组织数据的程序。
其中包括建立数据表,以及在这些数据表之间根据规则建立关联性,这些规则的设计目的是:
透过删除重复性和不一致的相依性,保护数据并让数据库更有弹性。
配合大富翁游戏的需求,事前详细规画数据库的架构,其中主要包含玩家信息(含游戏金额、土地与房屋信息、地理信息、道具信息等)、玩家的游戏状态、机会命运信息以及实时接收的天气和股票等相关信息。
MySQL是一个开放源码的小型关系型数据库管理系统,开发者为瑞典MySQLAB公司。
目前MySQL被广泛地应用在Internet上的中小型网站中。
由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
加上PHP语法拥有大量的内建函式库支持MySQL,于是我们专题采用MySQL来制作本游戏的数据库。
1.4.6使用AJAX技术做多人联机
因多人联机需用到Socket技术,但PHP的Socket技术尚未纯熟,无法达到两人以上同时联机的效果,在积极的搜寻相关资料的情况下,发现AJAX的技术可以透过类似Lock的原理来控制玩家的游戏进行,以达成多人联机的功能。
游戏进行的方式大略如下,当其中一位玩家拿到主控权,会同步更新数据库信息,其它玩家也透过AJAX立即获得同步的信息,目前拥有主控权的玩家之所有行为会透过游戏画面呈现在其它玩家面前,直到拥有主控权的玩家结束回合后,系统会将主控权自动转移至下一个玩家,以此类推,直到有玩家破产才宣告游戏结束。
第二章相关研究
2.1GoogleMaps
GoogleMaps可说是Ajax(AsynchronousJavaScriptandXML)技术的应用,Ajax最大优点在于可进行不需要等待服务器响应的『异步』请求。
以往同步通讯,在每次应用程序需要与服务器进行通讯时,浏览器就必须停止与使用者的互动,等待服务器响应,而使用者在等待时间不能进行任何动作;相对地,使用『异步』通讯,浏览器不会停止与使用者之间的互动,可以继续作业。
GoogleMaps上可用鼠标拖曳来移动地图便是Ajax功能展示。
GoogleMaps不仅只能在Google网站上浏览,还可免费设置在自己的网页,并且利用Google所提供的GoogleMapsAPI(ApplicationProgramInterface)来增加更多功能。
要使用GoogleMapsAPI必须先上Google网址注册,登入后便可以申请一组Key,将Key嵌入自己的网页,即可使用GoogleMapsAPI。
2.2GoogleEarthPlugin
GoogleEarth和GoogleMaps一样都是Ajax(AsynchronousJavaScriptandXML)技术的应用,使用者就可选择显示3D信息,同时还可检视地势、地形及GoogleEarth的其它众多功能。
GoogleEarth最早只能安装应用程序,在PC上执行,现在不仅只在Google网站上浏览,还可免费嵌入在自己的网页,并且利用Google所提供的GoogleEarthAPI(ApplicationProgramInterface)来增加更多功能。
要使用GoogleEarthAPI也必须先上Google网址注册,登入后便可以申请一组Key,将Key嵌入自己的网页,即可使用GoogleEarthPlugin。
图2.1:
申请Key网页1
图2.2:
申请Key网页2
图2.3:
GoogleEarthAPI提供嵌入于网页的程序代码
图2.4:
网页上嵌入GoogleEarth的范例
2.3PHP
PHP是personalhomepage的缩写(官方全名hypertextpreprocessor),是一种内崁于HTML档案裡的script语言,完全免费,可以任意拷贝、列印或者赠送完整的原始程序代码与說明文件,而且对于程序散播也没有限制。
PHP结合程序语言与应用程序服务器,真正的价值在于能当做应用程序服务器,程序永远在Web服务器上执行,不需要编译,可以把程序代码混合HTML撰写。
PHP的程序代码在HTML档案裡撰写,当服务器送出网页时,会先直译执行PHP程序代码,而使用端(client)所能看到的只有PHP的输出,而输出也必须符合HTML语法的规范。
较传统网页不同的是,PHP的主要用途是在网站服务器(WebServer)的网页开发,程序设计师透过程序的控制,让网站与访客互动,进而设计出迷人的动态网页(DynamicHomepage)。
PHP深深吸引着网站程序设计师目光的是下列的优点:
(1)绝佳的安全性:
访客浏览的网页内容,是PHP程序执行存放在服务器裡的认证过程资料之后,送出的结果。
传统的HTML网页程序内容,不具安全性,可以利用「检视原始档」的方式取得。
PHP有其专属的保护方式,网页裡的PHP程序代码,是绝对保密的,浏览网站的访客,是无法浏览PHP程序,只能看到单纯的HTML码。
(2)百分百的互动性:
许多的无人管理系统,是将客户的资料存放在服务器裡,藉由用户与服务器间的互动,利用PHP程序在服务器端执行的特性來完成。
(3)与其它语言水乳交融:
PHP是一套可以独立执行的程序,其可以和HTML、Java、XML、ASP相处融洽的兼容性,是最为人称赞的最大特色。
学习PHP并不需要放弃其它语言的学习,因为可以藉由其它程序的辅助,让PHP更为茁壮、更富变化。
许多程序设计师将以PHP视为网站的基底程序,以Java、XML为辅來搭配,让PHP发挥得淋漓尽致。
(4)简单易懂的语法:
PHP在与法上非常浅显易懂,在使用上则优越于传统的C语言,省去许多繁琐的宣告,而其优越的内建函式,则是程序设计师最爱PHP的原因之一。
(5)支持最多操作系统:
PHP是一套跨平台的服务器程序,其支持的操作系统有:
UNIX、Windows9x/NT/2000、LINUX、FreeBSD等。
PHP程序不論是以哪一个平台來撰写,都适用于各种操作系统,即使以后更换、升级操作系统,都不会花太多的时间。
(6)支援各种资料库:
PHP是一套支持多套资料库的网站程序,其支持的资料库有:
Adadas-D、customODBClibrary、DBase、FilePRO、IODBC、mSOL、MySQL、OpenLinkODBC、Oracle、PostgreSQL、Soild、Sybase、Sybase-CT、UnifiedODBC、Velocis等。
虽然PHP支持许多资料库,但最常与PHP搭配使用的则是MySQL,因为其存取方式简单、执行效率良好,是全世界公认的最佳搭配。
(7)执行效率高:
PHP因为单纯、没有包袱,不像其它程序,包装着许多用不到的程序、類别(Class),因此较其它Script來的有效率。
(8)开放原始程序代码:
PHP完全免费,可于其官方网站(程序之原始程序代码,可以透过细部修改让程序更贴近使用者的需求。
2.4MySQL
MySQL是一套小型、精简、易使用的资料库服务器,是一个SQL主从式关聯式资料库管理系统,支持各种UNIX平台、WindowsNT和Windows95/98,而且同时有二进制与原始文件形成,及适用于中小型应用程序。
MySQL内含有一个SQLserver用來存取server的客户端程序、管理工具及一个用來撰写程序的程序接口。
MySQL是可携式的而且可以在个人计算机上及商业操作系统上执行,在一般的使用情况是免费的。
MySQL资料库具有下列吸引人的特质:
(1)速度:
MySQL是最快速的资料库系统。
(2)容易使用:
MySQL是个高效能且易于使用的资料库系统,相对于大型的系统而言,MySQL的安装程序并不繁琐。
(3)费用:
MySQL在大部份的使用场合下,不論在何种平台上,客户端程序及链接库都是免费的。