【移動應(yīng)用開發(fā)技術(shù)】【v2.x OGE-example 第一節(jié)】 繪制實體_第1頁
【移動應(yīng)用開發(fā)技術(shù)】【v2.x OGE-example 第一節(jié)】 繪制實體_第2頁
【移動應(yīng)用開發(fā)技術(shù)】【v2.x OGE-example 第一節(jié)】 繪制實體_第3頁
【移動應(yīng)用開發(fā)技術(shù)】【v2.x OGE-example 第一節(jié)】 繪制實體_第4頁
【移動應(yīng)用開發(fā)技術(shù)】【v2.x OGE-example 第一節(jié)】 繪制實體_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

【移動應(yīng)用開發(fā)技術(shù)】【v2.xOGE-example第一節(jié)】繪制實體

前言:

OGE即

OGEngine,是由橙子游戲開發(fā)的基于Java支持跨平臺的開源游戲引,從12年4月項目成立至今已經(jīng)有2年多的發(fā)展歷程。在此期間基于OGEngine開發(fā)的項目已經(jīng)有很多成功投放市場。從正式開源開始,好多開發(fā)者開始加入OGEngine的行列,同時在官網(wǎng)、論壇、Q群、看到有好多的問題,大部分是一些新手的問題,經(jīng)常會被重復(fù)的提問。有些是之前用過AndEngine的,對OGEngine的使用會有些出入,開發(fā)時不是很順手。為此今天開始寫一個OGE-Example;大家在學(xué)習(xí)OGEengine時可參考這些例子,應(yīng)該會更容易上手些。

正文:

首先,先講解一下這個OGE-example的思路框架,這些案例都會放到一個項目里,用list顯示,會分兩級菜單,從最簡單開始,后續(xù)會隨著引擎的發(fā)展在加入一些例子,也都會放在這個項目里邊,方便大家學(xué)習(xí)和使用。一、導(dǎo)入OGE-example注意事項:1.先學(xué)習(xí)想要運行平臺下的環(huán)境搭建android搭建:/forum.php?mod=viewthread&tid=629&extra=page%3D1,或ios搭建:/forum.php?mod=viewthread&tid=631&extra=page%3D1;2.OGE-example項目現(xiàn)支持兩個平臺運行(android和ios),這些案例會用到一些圖片和字體,需要把這些資源加載到對應(yīng)的啟動器里邊(android和ios啟動器);放在Android啟動器下:

放在IOS啟動器下:

OGE-example

項目結(jié)構(gòu):

第一章第一節(jié):實體的繪制

線條Line:Line(float

pX1,

float

pY1,

float

pX2,

float

pY2,

float

pLineWidth,

VertexBufferObjectManager

pVertexBufferObjectManager)pX1,pY1線條起點位置pX2,pY1線條終點位置pLineWidth:線條寬度setColor(float

pRed,

float

pGreen,

float

pBlue)線條顏色

pRed紅色pGreen綠色pBlue藍(lán)色顏色值最小是0最大是1,平時輸入具體的顏色值可以這樣輸入

setColor(204/255,4/255,201/255)VertexBufferObjectManager頂點緩存對象管理

/**

*

畫出100條直線,位置、顏色隨機(jī)

*/private

void

drawingLine()

{final

long

RANDOM_SEED

=

1234567890;//隨機(jī)數(shù)種子final

Random

random

=

new

Random(RANDOM_SEED);for

(int

i

=

0;

i

<

100;

i++)

{final

float

x1

=

random.nextFloat()

*

300;//線x起點

隨機(jī)0-300final

float

x2

=

random.nextFloat()

*

300;//線x終點

隨機(jī)0-300final

float

y1

=

random.nextFloat()

*

480;//線y起點

隨機(jī)0-480final

float

y2

=

random.nextFloat()

*

480;//線y終點

隨機(jī)0-480final

float

lineWidth

=

random.nextFloat()

*

5;//線的寬度

隨機(jī)0-5

final

Line

line

=

new

Line(x1,

y1,

x2,

y2,

lineWidth,getVertexBufferObjectManager());//畫線

line.setColor(random.nextFloat(),

random.nextFloat(),random.nextFloat());//設(shè)置顏色值

范圍0-1

this.attachChild(line);//加入本場景

實體只有加入場景后才會被繪制和更新狀態(tài)}矩形:Rectangle(float

pX,

float

pY,

float

pWidth,

float

pHeight,

VertexBufferObjectManager

pVertexBufferObjectManager)

pX,

pY

矩形位置

pWidth,pHeight

矩形寬高VertexBufferObjectManager

頂點緩存對象管理

/**

*

畫出4個矩形

*/private

void

drawingRectangle()

{//

紅色矩形Rectangle

rectangle0

=

new

Rectangle(300,

120,

100,

100,getVertexBufferObjectManager());//繪制矩形,位置x300,位置y120,寬100,高100rectangle0.setColor(1,

0,

0);//設(shè)置為紅色

紅Red:1

即255/255this.attachChild(rectangle0);//加入本場景

實體只有加入場景后才會被繪制和更新狀態(tài)//

綠色矩形Rectangle

rectangle1

=

new

Rectangle(400,

120,

100,

100,getVertexBufferObjectManager());//繪制矩形,位置x400,位置y120,寬100,高100rectangle1.setColor(0,

1,

0);//設(shè)置為綠色

綠Green:1this.attachChild(rectangle1);//加入本場景

實體只有加入場景后才會被繪制和更新狀態(tài)//

藍(lán)色矩形Rectangle

rectangle2

=

new

Rectangle(300,

220,

100,

100,getVertexBufferObjectManager());//繪制矩形,位置x300,位置y220,寬100,高100rectangle2.setColor(0,

0,

1);//設(shè)置為藍(lán)色

藍(lán)Blue:1this.attachChild(rectangle2);//加入本場景

實體只有加入場景后才會被繪制和更新狀態(tài)//

***矩形Rectangle

rectangle3

=

new

Rectangle(400,

220,

100,

100,getVertexBufferObjectManager());//繪制矩形,位置x400,位置y220,寬100,高100rectangle3.setColor(1,

1,

0);//設(shè)置為紅色

紅Red:1,綠色

綠Green:1

相加后為***this.attachChild(rectangle3);//加入本場景

實體只有加入場景后才會被繪制和更新狀態(tài)}圖片精靈AnimatedSprite(float

pX,

float

pY,

String

pTextureRegionName,

VertexBufferObjectManager

pVertexBufferObjectManager)pX,

pY,精靈位置pTextureRegionName

圖片名稱/**

*

畫圖片精靈

*/private

void

drawingPic()

{//

畫一個精靈AnimatedSprite

pea

=

new

AnimatedSprite(600,

30,

Regions.PEA,getVertexBufferObjectManager());//繪制一個圖片精靈

位置x

600

,位置y

30,

圖片名稱引用Regions.PEAthis.attachChild(pea);//加入本場景

實體只有加入場景后才會被繪制和更新狀態(tài)

}

動畫畫精靈AnimatedSprite(float

pX,

float

pY,

String

pTextureRegionName,

VertexBufferObjectManager

pVertexBufferObjectManager)pX,

pY,精靈位置pTextureRegionName

圖片名稱animate(long

pFrameDurationEach)動畫精靈的幀速

/**

*

畫飛機(jī)精靈

*/private

void

drawingPlane()

{//

畫一個動畫精靈

AnimatedSprite

plane

=

new

AnimatedSprite(610,

140,

Regions.PLANE,getVertexBufferObjectManager());//繪制動畫精靈,

位置x

610

,位置y

140,

圖片名稱引用Regions.PLANEthis.attachChild(plane);//加入本場景

實體只有加入場景后才會被繪制和更新狀態(tài)//

播放幀速

,

每幀的持續(xù)時間

以毫秒為單位計算plane.animate(180);plane.setIgnoreTouch(false);//設(shè)置阻止觸摸為false}Entity:attachChild(IEntity

pEntity);attachChild加入一個實體detachChild(IEntity

pEntity);detachChild刪除一個實體

/**

*

精靈刪除

*/private

void

removingSprite()

{ButtonSprite

btnSprite

=

new

ButtonSprite(610,

200,

Regions.BACK_BTN,getVertexBufferObjectManager());//繪制一個按鈕精靈

位置x

610

,位置y

200,

圖片名稱引用Regions.BACK_BTNthis.attachChild(btnSprite);//加入本場景

實體只有加入場景后才會被繪制和更新狀態(tài)btnSprite.setOnClickListener(new

OnClickListener()

{//注冊按鍵監(jiān)聽@Overridepublic

void

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論