libgdx部署到html

libgdx我一直都是用desktop測試,在android上運行發佈。突然想運行在網頁上看看,沒學過GWT,所以有點坎坷。下面說一下成功的流程以及我中間遇到的問題。

libgdx html部署:

libgdx項目的創建不用說了吧。我用的IDE是eclipse for javaee,裝了GWT插件,GWT SDK用的2.5.0。在chrome瀏覽器上運行。

eclipse裝GWT教程:http://www.gwtproject.org/download.html。插件要選對版本。我下離線安裝包的。

然後跟着這個教程走:http://www.badlogicgames.com/wordpress/?p=3073。我挑重點的說一下。

用setup-ui創建完項目是這樣的:


(你創建完項目也許html的lib會有個x,拷貝gwt-servlet.jar進去就行,在你的GWT SDK找)

這時候你直接運行html項目或GWT編譯會出現linker的錯誤,需要做一些工作。

首先修改GWT的module也就是GWTDefinition.gwt.xml。改成這樣:

<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit trunk//EN" "http://google-web-toolkit.googlecode.com/svn/trunk/distro-source/core/src/gwt-module.dtd">
<module>
	<inherits name='com.badlogic.gdx.backends.gdx_backends_gwt' />
	<inherits name='MyGdxGame' />
	
	<add-linker name="xsiframe"/>
	<set-configuration-property name='xsiframe.failIfScriptTag' value='FALSE'/>
	<set-configuration-property name="devModeRedirectEnabled" value="true"/>
	
	<entry-point class='com.me.mygdxgame.client.GwtLauncher' />
	<set-configuration-property name="gdx.assetpath" value="../my-gdx-game-android/assets" />
</module>

再添加2個腳本文件到WEB-INF下。


修改Index.html:在head裏添加這2行就行了,注意要按順序。

<script src="soundmanager2-setup.js"></script>  
<script src="soundmanager2-jsmin.js"></script> 

至此對項目的修改成功,下面配置運行的一些東西:

設置code server(將java代碼轉成javascript並上傳到遊戲服務器上的服務器。),我們項目創建完,是默認啓動這個com.google.gwt.dev.DevMode入口類來調試運行我們的html遊戲,但運行這個之前需要確保java已經完成javascript相關編譯,所以要修改一下入口類,修改成代碼轉換的服務器。com.google.gwt.dev.codeserver.CodeServer。

修改運行參數,因爲要讓CodeServer知道你的源項目地址,GWT模型它才能在後臺幫你編譯。


貼上codeServer這個入口類的參數要求:

where 
  -noprecompile  Disables pre-compilation of modules.
  -bindAddress   The ip address of the code server. Defaults to 127.0.0.1.
  -port          The port where the code server will run.
  -workDir       The root of the directory tree where the code server willwrite compiler output. If not supplied, a temporary directorywill be used.
  -src           A directory containing GWT source to be prepended to the classpath for compiling.
and 
  module         The GWT modules that the code server should compile. (Example: com.example.MyApp)
必需的參數:-src:供編譯的代碼地址。module:GWT模型文件名字。

把core項目和html項目的代碼以及庫的地址都寫進去。GWT直接填包名+GWTDefinition。改完ok,運行。


點擊那個地址:

代碼轉換服務器在後臺運行了(先不要關掉這個頁面),你的代碼編譯也已經完成。

接下來是運行遊戲的設置了,改回入口類爲com.google.gwt.dev.DevMode,點擊Run As -> Web Application,然後再Develoment Mode面板中雙擊給的URL,就能打開瀏覽器運行遊戲了。要設置用哪個瀏覽器打開,在那個URL右鍵自己設置就行了,推薦谷歌瀏覽器。可能第一次有點問題會出現下面這樣的:


點擊OK,回到代碼編譯服務器頁面,點擊compile。


然後你的遊戲頁面就正常了。


可能會出現的問題:

JVM內存分配不足,修改運行的JVM參數。例如-Xmx1024m。

在瀏覽器上運行時提示裝插件GWT Developer,我是在CSDN下載的這個插件,至於離線安裝谷歌插件,要解決不是谷歌應用商店的插件不給開啓以及版本問題。把crx後綴名改成zip,然後解壓,修改裏面的manifet.json,增加"manifest_version":2;以及修改background_page爲background,(如果你谷歌瀏覽器版本是1的話就不用改)。然後再谷歌瀏覽器擴展程序設置中勾上開發者,添加插件,選擇你解壓的文件夾,添加插件成功。








發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章