真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Android游戲開(kāi)發(fā)十日通(2)-搭建libgdx游戲引擎-創(chuàng)新互聯(lián)

libgdx簡(jiǎn)介

libgdx是一個(gè)跨平臺(tái)的2D/3D的游戲開(kāi)發(fā)框架,它由Java/C/C++語(yǔ)言編寫(xiě)而成。它基于A(yíng)pache License, Version 2.0協(xié)議,對(duì)商業(yè)使用和非商業(yè)使用均免費(fèi)。

創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)公司一直秉承“誠(chéng)信做人,踏實(shí)做事”的原則,不欺瞞客戶(hù),是我們最起碼的底線(xiàn)! 以服務(wù)為基礎(chǔ),以質(zhì)量求生存,以技術(shù)求發(fā)展,成交一個(gè)客戶(hù)多一個(gè)朋友!專(zhuān)注中小微企業(yè)官網(wǎng)定制,網(wǎng)站建設(shè)、成都網(wǎng)站制作,塑造企業(yè)網(wǎng)絡(luò)形象打造互聯(lián)網(wǎng)企業(yè)效應(yīng)。

libgdx兼容Windows、Linux、Max OS X、Java Applet、Javascript/WebGL與Android[4](1.5版本+)平臺(tái)。對(duì)于A(yíng)ndroid平臺(tái)的支持在A(yíng)ndroid陣營(yíng)和相關(guān)市場(chǎng)日益擴(kuò)大的情況下libgdx的使用者越來(lái)越多。另外,基于MonoTouch,可以實(shí)現(xiàn)IOS兼容。


官方網(wǎng)站:http://libgdx.badlogicgames.com/


搭建開(kāi)發(fā)環(huán)境

操作系統(tǒng):Opensuse12.2

開(kāi)始前請(qǐng)確保配置好android開(kāi)發(fā)環(huán)境。jdk最好用1.6的,官網(wǎng)說(shuō)1.7會(huì)有bug。


1)下載libgdx-http://libgdx.badlogicgames.com/download.html

選擇Release Builds。

Android游戲開(kāi)發(fā)十日通(2)-搭建libgdx游戲引擎




下載好之后解壓文件,就像這樣:

Android游戲開(kāi)發(fā)十日通(2)-搭建libgdx游戲引擎


2)自動(dòng)生產(chǎn)開(kāi)發(fā)工程

包中自帶的gdx-setup-ui可以用來(lái)自動(dòng)生成項(xiàng)目工程,免去了繁瑣的初始化配置過(guò)程。

終端進(jìn)入到解壓后的文件夾,運(yùn)行

java -jar gdx-setup-ui.jar

利用工具創(chuàng)建工程,參數(shù)如下:

Android游戲開(kāi)發(fā)十日通(2)-搭建libgdx游戲引擎


注意左下角要選定Generate the desktop project,方便開(kāi)發(fā)調(diào)試。

中間的libGDX要是綠色的才能生成項(xiàng)目,紅色的話(huà)點(diǎn)擊文件夾小圖標(biāo)定位到之前下載好的zip文件。

最后點(diǎn)擊偶下角的Open the generation screen->launch

Android游戲開(kāi)發(fā)十日通(2)-搭建libgdx游戲引擎


在當(dāng)前文件夾下面會(huì)生產(chǎn)三個(gè)對(duì)應(yīng)的目錄,如圖:

Android游戲開(kāi)發(fā)十日通(2)-搭建libgdx游戲引擎


3)導(dǎo)入工程

在eclipse中首先導(dǎo)入游戲工程和desktop工程。

File->import

Android游戲開(kāi)發(fā)十日通(2)-搭建libgdx游戲引擎

選中剛才創(chuàng)建好的test-gdx-game文件夾->finish。

同樣的方法導(dǎo)入test-gdx-game-desktop。

接下來(lái)導(dǎo)入android工程。

eclipse下面Ctrl+n - >Android project from exiting project->選中test-gdx-game-android->finish.

三個(gè)工程導(dǎo)入完成后,還需要修改一些地方。

由于我們創(chuàng)建項(xiàng)目的時(shí)候是同時(shí)創(chuàng)建了android版本和desktop版本,gamecode 其實(shí)都在test-gdx-game中,而資源文件其實(shí)都放在了android項(xiàng)目中asset文件夾中。

直接運(yùn)行desktop項(xiàng)目會(huì)報(bào)錯(cuò),提示找不到資源文件。這里需要在desktop項(xiàng)目中添加一個(gè)鏈接。

右擊test-gdx-game-desktop->project -> Properties -> Java Build Path -> Source tab -> Link Source… -> Browse… -> 定位到 test-gdx-game-android project 的assert文件夾,點(diǎn) Finish。

工程就算建立完成了。

desktop和android都可以直接運(yùn)行,調(diào)用的是test-gdx-game中的代碼。

各自的運(yùn)行結(jié)果如下:

Android游戲開(kāi)發(fā)十日通(2)-搭建libgdx游戲引擎

Android游戲開(kāi)發(fā)十日通(2)-搭建libgdx游戲引擎



項(xiàng)目解析

為了初始化Application必須實(shí)現(xiàn)ApplicationListener這個(gè)接口, 它用來(lái)更新游戲狀態(tài)(即邏輯),渲染出項(xiàng),暫停游戲,保存狀態(tài),釋放資源等。
它也有一個(gè)處理Application 聲明周期事件的地方。每個(gè)應(yīng)用,不管后臺(tái)平臺(tái)版本都必須實(shí)現(xiàn)ApplicationListener 接口。所有平臺(tái)都會(huì)存在并要實(shí)現(xiàn)這個(gè)接口。

看一下項(xiàng)目代碼:

package com.me.testgdxgame;  import com.badlogic.gdx.ApplicationListener; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.GL10; import com.badlogic.gdx.graphics.OrthographicCamera; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.Texture.TextureFilter; import com.badlogic.gdx.graphics.g2d.Sprite; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.graphics.g2d.TextureRegion;  public class TestGdxGame implements ApplicationListener { 	private OrthographicCamera camera; 	private SpriteBatch batch; 	private Texture texture; 	private Sprite sprite; 	 	@Override 	public void create() {		 		float w = Gdx.graphics.getWidth(); 		float h = Gdx.graphics.getHeight(); 		 		camera = new OrthographicCamera(1, h/w); 		batch = new SpriteBatch(); 		 		texture = new Texture(Gdx.files.internal("data/libgdx.png")); 		texture.setFilter(TextureFilter.Linear, TextureFilter.Linear); 		 		TextureRegion region = new TextureRegion(texture, 0, 0, 512, 275); 		 		sprite = new Sprite(region); 		sprite.setSize(0.9f, 0.9f * sprite.getHeight() / sprite.getWidth()); 		sprite.setOrigin(sprite.getWidth()/2, sprite.getHeight()/2); 		sprite.setPosition(-sprite.getWidth()/2, -sprite.getHeight()/2); 	}  	@Override 	public void dispose() { 		batch.dispose(); 		texture.dispose(); 	}  	@Override 	public void render() {		 		Gdx.gl.glClearColor(1, 1, 1, 1); 		Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT); 		 		batch.setProjectionMatrix(camera.combined); 		batch.begin(); 		sprite.draw(batch); 		batch.end(); 	}  	@Override 	public void resize(int width, int height) { 	}  	@Override 	public void pause() { 	}  	@Override 	public void resume() { 	} }

生命周期如下:

Android游戲開(kāi)發(fā)十日通(2)-搭建libgdx游戲引擎



幾個(gè)重要的方法:

create() : 當(dāng)應(yīng)用程序創(chuàng)建時(shí),此方法被調(diào)用一次。

resize(int width,int,height): 每次游戲屏幕重置并且不是暫停狀態(tài)的時(shí)候調(diào)用此方法。在create()后調(diào)用一次。參數(shù)是屏幕被重置后的新狂讀和高度。

render(): 每次渲染發(fā)生時(shí)游戲循環(huán)調(diào)用此方法。游戲更新發(fā)生在繪制之前。意思就是說(shuō)先處理邏輯再處理繪制。

pause(): 在應(yīng)用destroyed()前調(diào)用此方法。在android中Home鍵按下或者重新進(jìn)入程序時(shí)調(diào)用。這是一個(gè)保存游戲狀態(tài)的好地方,在android中的resume不一定會(huì)調(diào)用。

resuem(): 這個(gè)方法愛(ài)盡在android中調(diào)用,當(dāng)應(yīng)用獲得焦點(diǎn)時(shí),桌面應(yīng)用中將不會(huì)調(diào)用此方法。

dispose(): 當(dāng)應(yīng)用destroyed時(shí),調(diào)用此方法,在pause()之后。


創(chuàng)新互聯(lián)www.cdcxhl.cn,專(zhuān)業(yè)提供香港、美國(guó)云服務(wù)器,動(dòng)態(tài)BGP最優(yōu)骨干路由自動(dòng)選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動(dòng)現(xiàn)已開(kāi)啟,新人活動(dòng)云服務(wù)器買(mǎi)多久送多久。


當(dāng)前文章:Android游戲開(kāi)發(fā)十日通(2)-搭建libgdx游戲引擎-創(chuàng)新互聯(lián)
分享地址:http://weahome.cn/article/djejdh.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部