国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

J2ME Snake腳本引擎使用手冊

開發(fā) 前端
本文向大家一起學(xué)習(xí)一下J2ME Snake腳本引擎用法,腳本可以實現(xiàn)游戲邏輯,在不修改主游戲引擎并且花費時間去編譯的前提下,改變了腳本也就改變游戲的玩法和趣味性。

這里和大家分享一下J2ME Snake腳本引擎用法,主要包括高級代碼編寫,低級代碼編寫和腳本虛擬機等內(nèi)容,相信本文介紹一定會讓你有所收獲。

Snake腳本引擎簡介

一、高級代碼編寫:

1,語法類似于C。

2,支持函數(shù)定義,函數(shù)調(diào)用,數(shù)組,表達式,循環(huán),分支。

3,弱類型(lua也是),內(nèi)建類型有string,int,float,boolean
如定義變量varx;可以給x賦的值有x="你好Snake";x=32;x=32.23;x=true;

4,內(nèi)建35個運算符,適用于所有的表達式,如位運算>>邏輯運算&&賦值運算|=等等,運算符優(yōu)先級簡化為4級,由高到低為單目運算>算數(shù)運算>關(guān)系運算>邏輯運算,如果你寫代碼是不確定運算符的優(yōu)先級保險起見加上括號就不會有錯

5,支持轉(zhuǎn)義字符輸入。

6,支持注釋,如行注釋符//及塊注釋符/**/

二、低級代碼編寫:

1,語法類似于8086匯編,但要比它簡單的多,有33種虛擬指令可供選擇,并且可以定義方法

演示一個完整的加法函數(shù)及函數(shù)調(diào)用(分號是行注釋符): 

  1. myAdd()  
  2. {  
  3. paramy;函數(shù)參數(shù)y  
  4. paramx;函數(shù)參數(shù)x  
  5. Addx,y;將y的值與x相加并賦給x  
  6. Mov_RetVal,x;將x值賦給寄存器(只有一個寄存器即_RetVal)  
  7. Ret;方法返回符(可以省略)  
  8. }  
  9. _Main()  
  10. {  
  11. varx;定義局部變量x  
  12. vary;定義局部變量y  
  13. varz;定義局部變量  
  14. Movx,2;將2賦給x  
  15. Movy,3;將3賦給y  
  16. Pushx;將x壓棧,調(diào)用方法需要將參數(shù)壓棧  
  17. Pushy;將y壓棧  
  18. CallmyAdd;調(diào)用方法  
  19. Movz,_RetVal;將寄存器的值賦給z  

判斷和分支的低級代碼我就不給出了,想了解的話可以先寫高代碼,再用編譯器編譯成低級代碼(在編譯器中輸入?yún)?shù)-A)
再參照低級代碼來研究

話說回來,為什么要設(shè)計低級代碼呢,干脆直接寫高級代碼多方便,之所以這樣設(shè)計是由于編譯器編譯跳轉(zhuǎn)分支那部分都非常的精簡,運行速度非常的快,但是編譯表達式就比較繁瑣,雖然在3個星期前我壓根不知道什么叫編譯原理,但是通過寫腳本的詞法分析,語法分析,匯編等程序我才發(fā)現(xiàn)它的難度和復(fù)雜度超出想象好幾倍,當(dāng)前***的編譯器如C++編譯器是用狀態(tài)機進行語法分析,在表達式的編譯上做足了優(yōu)化,可是我才是個初學(xué)者,為了加快研發(fā)速度我使用了半狀態(tài)機半遞歸下降的方式進行編譯,所以在效率上沒有做太多優(yōu)化,所以如果您想寫復(fù)雜表達式求值并需要快速運行的代碼,還是建議用低級代碼編寫,***可以和高級代碼進行合并,用匯編器匯編成二進制。

三、腳本虛擬機(SVM)

1,虛擬機的執(zhí)行是基于字節(jié)碼的,只有一個寄存器_RetVal用來存放返回值,運行時堆棧是用來進行函數(shù)調(diào)用的大小默認是512K,可以自己更改比如在低級代碼上頭部加入關(guān)鍵字SetStackSize1024虛擬機會根據(jù)設(shè)置來修改堆棧大小

2,和主游戲引擎通信是基于方法調(diào)用,需要自己寫方法庫類,這個類需要繼承Lib.class,在自己的方法庫中實現(xiàn)方法,考慮到效率,沒有通信是沒有用到對象,并且也不是基于RTTI機制,所以使用時務(wù)必要注意2點,這兩點寫在測試包里,可以去看一下。

3,錯誤處理也是考慮到效率沒有基于java的異常,而是只打印錯印并且虛擬機會正常運行,可是一旦打印出錯誤,需要做的就是停下運行的程序檢查腳本有沒有,或者是虛擬機的核心執(zhí)行單元有沒有BUG如果不這樣做,那么后面的腳本數(shù)據(jù)已經(jīng)成臟數(shù)據(jù),會對游戲邏輯造成潛在的危險。

4,多線程:腳本引擎能加載多個腳本并發(fā)執(zhí)行,并且每個線程有個優(yōu)先級,優(yōu)先級高的腳本能分到更多的時間片,SVM來管理這些線程的運行,并且主游戲引擎能方便的操作腳本虛擬機加載,暫停,停止,恢復(fù)這些腳本線程。(0.8版提供多線程功能)

5,運行方式:主游戲引擎在while循環(huán)中,每次調(diào)用虛擬機的runScript(inttime)方法,通過傳入時間片來決定虛擬機在這個循環(huán)周期運行多長時間,所以腳本里就可以寫這樣的循環(huán)while(true)也就是腳本有自己的邏輯死循環(huán),但是它不會干擾主引擎的邏輯死循環(huán),因為在傳入的時間片運行完時,腳本引擎會自動跳出來讓主引擎繼續(xù)運行下一個循環(huán),而這些對編程人員都是透明的。

【編輯推薦】

  1. 解析J2ME對話框選擇功能的實現(xiàn)
  2. JS中Array數(shù)組的三大屬性用法揭秘
  3. J2ME應(yīng)用程序內(nèi)存優(yōu)化的三種途徑揭秘
  4. 技術(shù)分享 如何識別控制DHTML和JS中的頁面元素
  5. 深入學(xué)習(xí)JavaScript中Function對象語法 


 

責(zé)任編輯:佚名 來源: blog.163.com
相關(guān)推薦

2010-09-30 11:16:53

J2ME Snake腳

2011-08-29 15:10:19

JAVALua 腳本

2010-09-29 09:13:48

J2ME開發(fā)環(huán)境

2010-09-29 08:57:04

J2ME前景

2010-09-30 13:48:10

J2ME游戲引擎

2011-09-01 16:45:15

J2MELua

2010-09-30 09:56:26

J2ME Polish

2010-09-30 12:53:00

J2MECSS

2010-09-30 11:04:53

J2MERMS

2010-09-29 09:19:39

J2ME開發(fā)工具

2010-10-09 15:58:36

J2ME圖形

2009-06-17 11:27:00

setClip方法J2ME

2009-06-23 11:30:16

RMSJ2ME

2010-09-30 13:28:55

J2ME圖形

2009-03-22 09:38:03

Android移植J2ME

2009-10-26 11:11:33

linux Emacs

2009-06-08 21:34:09

J2EEJ2SEJ2ME

2009-03-12 10:22:27

EclipseJ2MEJDT

2010-09-29 13:50:31

J2MEJ2SE

2010-10-09 15:07:09

J2MEWeb服務(wù)
點贊
收藏

51CTO技術(shù)棧公眾號

av小说在线| 国产在线资源一区| 国产美女视频一区二区三区| 中文文精品字幕一区二区| youjizz.com亚洲| 国产精品久久久久久久久久99| 国产精品白浆| 日韩精品在线免费| 亚洲区欧洲区| 欧美在线观看一二区| 69免费视频| 亚洲欧洲精品一区二区精品久久久 | 亚洲国产欧美在线观看| 亚洲激情视频在线观看| 中文在线字幕免费观看| 欧美xingq一区二区| 激情av在线| 亚洲视频电影图片偷拍一区| 成人美女黄网站| 日韩在线视频观看| 亚洲性视频在线| 日韩av免费看网站| 小处雏高清一区二区三区| 国产亚洲情侣一区二区无 | 精品国产乱码久久久久久蜜柚 | 亚洲7777| 伊人色**天天综合婷婷| 成人夜晚看av| 亚洲第一伊人| 五月天久久综合网| 国产精品系列在线播放| 日本xxxxxxxxxx75| 国产欧美日韩在线观看| 国产一级黄色电影| 2020av在线| 欧美电影影音先锋| av剧情在线观看| 日韩中文视频免费在线观看| 国产成人在线中文字幕| 国产精品美女免费| 亚洲欧美不卡| 日本网站免费在线观看| 亚洲精品成a人| 成全电影播放在线观看国语| 亚洲精品一区二区三区99| 999久久久国产999久久久| 国产福利视频一区二区| 激情久久久久| 日韩欧美视频免费在线观看| 最新不卡av在线| 午夜视频在线免费观看| 一本久久综合亚洲鲁鲁| 国产精品中文字幕制服诱惑| 91免费观看| 成人午夜精品在线| 91精品久久久久久9s密挑| 欧美电影精品一区二区| 国产精品videossex撒尿| 亚洲精品小视频在线观看| 成人福利一区| 国产九色精品| 成人av先锋影音| 在线看片你懂的| 亚洲品质视频自拍网| 欧美视频免费| 国产人妻互换一区二区| 亚洲精品伦理在线| 成人影院在线视频| 国产精品久久网| 国产成人av电影在线播放| 色综合888| 免费91在线视频| 久久午夜精品一区二区| 丁香婷婷激情| 日韩精品在线播放| 亚洲草久电影| 91激情视频在线| 欧美一区二视频| 国产a久久精品一区二区三区| 日韩影院一区| 婷婷开心激情综合| 老司机亚洲精品一区二区| 久久国产欧美精品| 亚洲精品国久久99热| 粉嫩一区二区三区| 国产精品美女诱惑| 最新日韩av在线| 男人皇宫亚洲男人2020| 电影午夜精品一区二区三区| 国产精品拍天天在线| 韩国美女久久| 蜜桃网站成人| 欧美色videos| 天天久久夜夜| 日韩少妇内射免费播放18禁裸乳| 欧美一级黄色片| 日韩精品影视| 99热在线免费观看| 色偷偷偷亚洲综合网另类| 视频一区在线播放| 国产高清视频在线观看| 国产成一区二区| 国产精品美女久久久久久| 国产第一亚洲| 欧美日韩在线免费观看视频| 欧美性猛片aaaaaaa做受| 波多野结衣的一区二区三区 | av中文资源在线| 国产精品一区久久| 国产精品三级视频| 日韩专区视频| 女女同性女同一区二区三区按摩| 欧美日韩成人综合在线一区二区| 成人羞羞视频在线看网址| 国产福利一区视频| 日韩有码在线播放| 国产精品 欧美精品| 中日韩脚交footjobhd| 视频一区国产精品| 日韩一区二区精品| 日韩高清国产一区在线| 欧美黑人xx片| 国产精品无码乱伦| 亚洲人成欧美中文字幕| 韩日av一区二区| 免费观看一级欧美片| 大地资源第二页在线观看高清版| 日韩午夜电影av| 久久 天天综合| 黄色精品视频| www黄色在线| 欧美激情综合亚洲一二区| 国产精品国产馆在线真实露脸 | 亚洲欧美亚洲| 国产私人尤物无码不卡| 国产精品.com| 欧美一级黄色片| 国产一区三区三区| 亚洲色图官网| 成人免费毛片网| 欧洲美女免费图片一区| 亚洲精品国产视频| 中国成人一区| 国产盗摄在线观看| 日本一级黄视频| 高清亚洲成在人网站天堂| 无码av中文一区二区三区桃花岛| 亚洲电影av| 秋霞国产精品| 爆操妹子视频在线观看| 国产精品成人一区二区三区| 精品88久久久久88久久久| 91亚洲精华国产精华精华液| 日韩欧美在线精品| 噜噜噜在线观看播放视频| 热re99久久精品国99热蜜月| 在线电影中文日韩| 国产精品免费av| 欧美国产综合| 亚洲精品动漫| 香艳视频网站| 国产亚洲一区在线播放| 亚洲欧美日韩国产中文| 最新国产成人在线观看| 国产欧美69| 激情视频亚洲| 国产在线观看黄| 91精品国产吴梦梦| 国产999精品久久久| 日韩欧美视频一区| www国产成人免费观看视频 深夜成人网| 农村少妇一区二区三区四区五区 | 国产精品tv| 国产对白叫床清晰在线播放| 成人性做爰片免费视频| 久久久综合av| 欧美日韩国产高清一区二区三区 | 亚洲黄在线观看| 国产精品人人做人人爽人人添| 欧美成人久久| 欧美极度另类| 污网站视频在线观看| 免费cad大片在线观看| 国产精品成人品| 日韩电影中文字幕一区| 亚洲777理论| 不卡的av在线| 亚洲精品一二| 国产日韩三级| 91九色国产在线播放| 在线播放evaelfie极品| www.69av| 国产精品国产三级国产专区53| 中文字幕最新精品| 欧美区在线观看| 亚洲蜜臀av乱码久久精品| 国产乱码一区二区三区| 欧美日韩蜜桃| 亚洲三级性片| 国产精品久久久久久久久久辛辛 |