js編程模擬器(js作戰模擬器中文版)

本文目錄一覽:

請問如何拿javascript製作類似WOW那樣的天賦模擬器?

這該從何說起

1。先建立一些基礎數據,比如名稱,天賦點數,等級限制等

2.建立天賦關係樹,也就是它的繼承關係

3.陳列出來

4.寫對應的事件,觸發函數介面

如何在iOS和Android上選擇一個JavaScript 引擎進行應用開發

在我開始使用OpenAphid-Engine的時候,已經有幾種類似的iOS/Android 項目.這些商業項目或者開源項目使用JavaScript實現代碼特性。比如,Titanium 和PhoneGap 允許開發者使用JavaScript開發本地 iOS/Android apps;ngCore 更是可以使用純正的JavaScript構建跨平台的遊戲。JavaScript已經成為了編程語言中的佼佼者,也因為更容易學習吸引了眾多開發者參與到這一領域。

怎樣在IOS/Android上使用JavaScript

主要有兩種方法。一種是使用系統的瀏覽器組件(IOS中的UIWebView和Android中的WebView),另一方法就是使用整合好的JavaScript引擎。

使用系統的瀏覽器組件比較容易實現但是更複雜,效率也低。 WebView提供了 addJavascriptInterface 把Java classes注入到JavaScript文本的方法。但是它只支持最原始的幾種數據類型,因此也局限了API設計。並且在Android 2.3模擬器上不穩定,在真機上也會遇到 issue #12987的問題。在IOS上更糟 UIWebView沒有公共的APIs支持JavaScript到Objective-C的交互(你必須使用似有的APIs才能達到與addJavascriptInterface相同的功能)。

PhoneGap 是基於 UIWebView and WebView的比較出名的項目。開發者被迫使用回調函數從JavaScript APIs得到返回值。這在遊戲上效率極低,也更為複雜。

早期的ngCore同樣依賴UIWebView來支持iOS。但是這個機制由於其糟糕的表現被取代。

為了獲得更好的表現、靈活性、兼容性,嵌入全功能的JavaScript引擎變得更為有效。

選擇JavaScript 引擎

據我所知,iOS 或 android 上能夠運行的JavaScript 引擎有4個: JavaScriptCore, SpiderMonkey, V8 and Rhino.下面這個表格展示各個引擎在iOS 和 Android 的兼容性

當我設計 OpenAphid-Engine 成為一個合適的Javascript的引擎的時候,我主要考量以下指標:

兼容性:同時支持iOS 和 Android 在x86 和 ARM 平台上的 模擬器和 設備。

穩定性. 穩定的運行在對應的平台和CPU的架構上。

擴展性. 能夠很方便的利用本地特性進行擴展。例如OpenAphid-Engine 通過一個橋接層,實現了通過Javascript 進行OpenGL ES 的使用。

性能好:一個快速的Javascript 引擎主要歸結為兩個因素:有效的綁定機制和進行較低的開銷。. OpenAphid-Engine 在渲染一幀頁面的時候通過JavaScript觸發數百個OpenGL ES調用來進行渲染。這點是非常有意義的,如果只是把開銷放到單純的執行JavaScript上進行將會導致渲染很慢,。

體積小.:在內存的佔用上和自身的執行文件上都要比較小。

Rhino和 V8出現的最早,但是不支持iOS。我非常希望可以使用 V8開發 OpenAphid-Engine ,在初次使用時就發現它擁有優雅的代碼結構,良好的表現,但是我非常失望,因為 V8隻能在JIT模式下使用,而IOS不支持。除非你使用jailbroken設備。(詳情請參考 issue #1312)

我在JavaScriptCore和SpiderMonkey間糾結了很久。在成功部署了Android和IOS項目後,我通過實驗找到更好的一個。

SpiderMonkey 容易得到開發許可權,但是在與JavaScriptCore比較時甘拜下風。SpiderMonkey產生了大量的二進位文件 (在ARMv7上大約1.3MB);JavaScript執行得更慢,在JavaScript和C++的橋接表現更為重要。另外一個讓我遠離SpiderMonkey的原因是在iOS模擬器上出現隨機崩潰現象。

JavaScript引擎會受很多東西影響,比如交叉編譯器的版本、引擎的版本和操作系統的種類等。下表列舉了幾種運行在iPod Touch 4上引擎的運行時間。(有興趣請於Google Doc查看精確的時間)

JavaScriptCore 大比分領先。

我沒有找到SpiderMonkey,所以就使用了下面的三種自定義搭建Cocos2d-iPhone-2.1-beta4, Cocos2d-x-2.1-beta3和iMonkey。

所有測試的apps都基於LLVM 4.1版本,所有的引擎都運行在解釋器模式(iOS受限)。

幾種基準的介紹:

1m-js_loop執行空循環一百萬次。

1m-native_function請求調用一百萬次返回undefined的本地函數

1m-js_function跟上面一個相同,只是換成了JavaScript。

fib(30)遞歸的方式計算Fibonacci(30)。

sudoku-5用這裡的演算法解決Sudoku問題。

1m-native_function JavaScriptCore使用可移植的C APIs實現,當然這不是最有效引入本地函數的方法。

SpiderMonkey 在台式電腦上由於高級的JIT追蹤方法運行更快,但是在IOS設備上卻與之相反。

在大部分的基準上,使用iMonkey比SpiderMonkey更快

很明顯的,使用SpiderMonkey將會在iOS上獲得更好的表現。ngCore 1.10在iOS上加入自定義功能,所以要更優於像SpiderMonkey這樣的變體。

對於JavaScript Code 的挑戰

在我專心於 JavaScriptCore之後,我的研究更進了一步:

1. 它在運行 一百萬 次 native_function和 一百萬次Math.abs(0) 的時間六倍於 使用 JavaScriptCore.我觀察到同樣的性能問題出現在通過注入的方式訪問對象的屬性。

2. 利用 C APIs 進行設計雖然開發簡單,但是缺乏靈活的內存管理機制。缺乏一個高級的內部垃圾回收機制很難解決類似於 circular references 的問題。

3. 眾多的 JavaScriptCore 正式版本都是可用的 。 不過 OpenAphid-Engine 是更好的一個,它不但速度快,而且相當小。

我拋棄了原來的使用 C APIs 方案因此解決了 問題 1 和 2. 使用的JSC 版本來自於iOS4.3.3,因為同樣在解析器模式下這個版本相比來自於iOS 5 的版本更快,執行文件更小。

在其他產品上使用的JS引擎

在開發OpenAphid-Engine期間,我一直保持對其他引擎的關注,以下這個表格總結了其他JS引擎的使用情況

如何使用Code IDE調試Cocos2d-JS開發的遊戲

運行、測試遊戲

1. 新建一個名為 CocosJSGame 的 Cocos JavaScript 工程

2. 點擊工具欄上的 debug 按鈕

3. 默認情況下腳本會運行在我們提供的 mac 版本預編譯 runtime 上。為了簡單起見,我們不對默認值進行任何改動。如果你想要在其他我們支持的目標平台上調試程序,可參考下文的「在其它目標平台上調試」

如何調試

斷點支持

可以在 javascript 腳本文件中增加斷點

當斷點被觸發時選擇 「Yes」 打開 Debug Perspective 透視圖,可以看到很多與調試相關的視圖,調用棧、變數和斷點等等。

支持 Step over, Step into, Step out 等調試方式。

代碼熱更新

想更改右下角的 close 按鈕的位置?closeItem.attr 方法是控制該按鈕的顯示位置的。

closeItem.attr({

x: size.width – 20,

y: 20,

anchorX: 0.5,

anchorY: 0.5

});

修改「x」上面的值,把”size.width-20″ 改成 “”size.width/2” 然後保持修改, 你會發現,在沒有重啟的情況下 close 按鈕的位置已經改變了,在屏幕底部的中間!

在其他目標平台上調試

通過工具欄上的打開 Debug Configurations 打開 Debug Configurations 頁面

在頁面的左側,選擇之前我們為你創建的名為CocosJSGame的configuration

在 iOS Simulator 上調試

選擇iOS Simulator單選項

選擇正確的runtime app

點擊 Debug 按鈕,預編譯的 runtime 會被自動安裝到模擬器中

在iOS設備上調試

首先,你需要一個 runtime IPA, 從 1.0.0-rc1 版本開始,你可以通過 Code IDE 自己編譯一個,然後安裝IPA到設備中

在 iOS 設備上啟動 runtime

在 “Debug Configuration” 界面選擇 Remote Debug 單選項

platform 選擇 “iOS”

將設備的 ip 地址填寫在 Device IP 上

最後點擊Debug按鈕

在 Android 設備上使用 ADB 模式調試

在 “Debug Configuration” 界面選擇 Android ADB Mode 單選項

選擇正確的 runtime apk

點擊Debug按鈕

IDE 會自動安裝配置中的 runtime apk 到你的連接設備上並啟動runtime開始調試

在 Android 設備上使用網路模式調試

手動安裝 runtime 到你的設備上,它被存放在 CocosLuaGame/runtime/android 目錄中

手動啟動 runtime,停留在 waiting 頁面

在 “Debug Configuration” 界面選擇 Remote Debug 單選項

platform 選擇 “Android”

將設備的 ip 地址填寫在 Device IP 上

點擊Debug按鈕

如何調試C++

從 1.0.0-rc1 版本開始,支持使用 XCode/Visual Studio 調試 C++ 代碼的同時使用 Cocos Code IDE 調試 C++ 代碼。

以調試 Mac 為例:

如果你還沒有 C++ 代碼,那麼需要先添加(右擊工程,Cocos Tools-Add Native Codes Support…)

使用 Xcode 打開 frameworks/runtime-src/proj.ios_mac 工程,並啟動調試

回到 Cocos Code IDE,打開 “Debug Configuration” 頁面,選擇 Remote Debug 單選項

platfrom 選擇 「Mac」

Target IP 填寫 “127.0.0.1”

點擊Debug按鈕..

搞javascript需要安裝什麼軟體

只要有個網頁瀏覽器以及一個文本編輯器(比如記事本)即可,這些都是操作系統自帶的,所以基本上不需要安裝什麼軟體就能開發JavaScript。

當然,如果需要測試代碼在網站上的實際效果,就要搭建伺服器環境,比如IIS、Apache等等,也可以使用一些輕量級的伺服器模擬器,比如NetBox。

為了考察代碼在不同瀏覽器的兼容性,最好安裝多種不同內核的瀏覽器,比如Chrome、FireFox,IE則要看你的目的受眾範圍而選擇IE6/7/8或者IE9+。

當然,初學者直接用記事本來寫代碼可能會有困難,那麼可以選擇一些支持代碼編寫的高級文本編輯器,比如EditPlus、UltraEdit等。

JavaScript可以應用在哪些領域

Javascript 除了性能略捉雞外基本是全能的,可以應用在以下領域:

1. 網站開發

1.1. 網站前端開發

Javascript 的老本行。用來實現前端邏輯,簡單的比如說點一個按鈕會發生什麼之類的,複雜的你可以用 js 寫個 x86 模擬器再灌個 linux 系統進去。

1.2. 網站後端開發

Node.js 讓程序員可以用 js 自由地寫後端了。

2. 移動開發

2.1. Web app

HTML5 提供了很多 API 支持,可以實現原生應用擁有的大部分功能,但是性能有待提高。像 Firefox OS 就是基於 web app 的移動操作系統。

2.2. 混合式應用開發

把原生應用的一部分用前端技術實現,使原生應用更加靈活。很多應用都會這樣做。PhoneGap 之類平台的出現允許程序員使用 js 來進行移動應用開發。

3. 桌面開發

主要是指 chrome 等瀏覽器能把 js 寫的程序打包成桌面應用。Google 力推的 Chrome OS 也是基於 web app 的操作系統。

4. 插件開發

Javascript 是唯一一種在所有主流平台都被原生支持的編程語言,因此在所有主流平台都可以使用 js 進行插件開發。常見的有瀏覽器插件和擴展程序,同時大部分移動應用的插件平台也是使用 js 進行插件開發的,因為一次開發可以保證跨平台使用。

沒錯,幾乎所有領域都可以使用 js 進行開發,就算現在不能以後也會可以的,所有能用 Javascript 寫的東西最終都會被 Javascript 寫出來。

有沒有比較強大的html+js+css編輯器

推薦Hbuider,個人感覺比eclipse和dreamweaver好用。。

特點:輕量,只有幾M,就算全部插件安裝也只有三百M。

測試方便:可以直接打包成app運行到安卓或蘋果模擬器和真機里。

app配置簡單,上手速度快。

全中文界面。

可以新建mui的相關項目並直接調試。

可以新建HTML5 plus項目並直接調試。

可以新建微信支付寶等各種小程序頁面並直接調試。

反正就是強大,好用。。

HTML項目打包成app也很方便。

使用過程中無廣告全程免費。

軟體啟動快,沒有載入界面讀取界面。雙擊圖標頂多兩秒,編碼窗口就出來了。

軟體響應快,速度快。

原創文章,作者:MBWS,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/146684.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
MBWS的頭像MBWS
上一篇 2024-10-31 15:31
下一篇 2024-10-31 15:32

相關推薦

  • JS Proxy(array)用法介紹

    JS Proxy(array)可以說是ES6中非常重要的一個特性,它可以代理一個數組,監聽數據變化並進行攔截、處理。在實際開發中,使用Proxy(array)可以方便地實現數據的監…

    編程 2025-04-29
  • Python官網中文版:解決你的編程問題

    Python是一種高級編程語言,它可以用於Web開發、科學計算、人工智慧等領域。Python官網中文版提供了全面的資源和教程,可以幫助你入門學習和進一步提高編程技能。 一、Pyth…

    編程 2025-04-29
  • Python中文版下載官網的完整指南

    Python是一種廣泛使用的編程語言,具有簡潔、易讀易寫等特點。Python中文版下載官網是Python學習和使用過程中的重要資源,本文將從多個方面對Python中文版下載官網進行…

    編程 2025-04-29
  • 解析js base64並轉成unit

    本文將從多個方面詳細介紹js中如何解析base64編碼並轉成unit格式。 一、base64編碼解析 在JavaScript中解析base64編碼可以使用atob()函數,它會將b…

    編程 2025-04-29
  • Node.js使用Body-Parser處理HTTP POST請求時,特殊字元無法返回的解決方法

    本文將解決Node.js使用Body-Parser處理HTTP POST請求時,特殊字元無法返回的問題。同時,給出一些相關示例代碼,以幫助讀者更好的理解並處理這個問題。 一、問題解…

    編程 2025-04-29
  • t3.js:一個全能的JavaScript動態文本替換工具

    t3.js是一個非常流行的JavaScript動態文本替換工具,它是一個輕量級庫,能夠很容易地實現文本內容的遞增、遞減、替換、切換以及其他各種操作。在本文中,我們將從多個方面探討t…

    編程 2025-04-28
  • JS圖片沿著SVG路徑移動實現方法

    本文將為大家詳細介紹如何使用JS實現圖片沿著SVG路徑移動的效果,包括路徑製作、路徑效果、以及實現代碼等內容。 一、路徑製作 路徑的製作,我們需要使用到SVG,SVG是可縮放矢量圖…

    編程 2025-04-27
  • 如何使用JS調用Python腳本

    本文將詳細介紹通過JS調用Python腳本的方法,包括使用Node.js、Python shell、child_process等三種方法,以及在Web應用中的應用。 一、使用Nod…

    編程 2025-04-27
  • 如何反混淆美團slider.js

    本文將從多個方面詳細闡述如何反混淆美團slider.js。在開始之前,需要明確的是,混淆是一種保護JavaScript代碼的方法,其目的是使代碼難以理解和修改。因此,在進行反混淆操…

    編程 2025-04-27
  • Python要學JS嗎?

    Python和JavaScript都是非常受歡迎的編程語言。然而,你可能會問,既然我已經學了Python,是不是也需要學一下JS呢?在本文中,我們將圍繞這個問題進行討論,並從多個角…

    編程 2025-04-27

發表回復

登錄後才能評論