最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網 會員登陸 & 注冊

Algodoo腳本進階教程

2023-08-22 22:48 作者:ozkey__  | 我要投稿

此教程有關再Algodoo用腳本代碼實現(xiàn)更復雜的功能,不適合新手!

Algodoo腳本新手入門可以看:https://tieba.baidu.com/p/8445647943

或者@灰安教主寫的教程:



1、對象指針

使用對象指針可以遠程操縱一個物體,實現(xiàn)方式:

變量 = {e}????(在onSpawn、postStep等函數(shù)里用)

之后用? 變量.this.xxx? 就可以訪問這個物體的xxx屬性


例:

onSpawn= (e)=>{

????Scene.my.marble = {e}

}?

那么這個物體生成的時候就會將自己綁定到Scene.my.marble這個變量上。

示例圖:

將小球顏色變成黃色


2、Reflection.execudeCode()和eval()

這兩個函數(shù)都是將字符串當成代碼執(zhí)行,但是它們的作用域不同:

Reflection.execudeCode是在全局域執(zhí)行,eval是在局部域執(zhí)行。

例:

eval("scene.my.a" + (2*3+1)+ " = " + 114);

相當于執(zhí)行代碼 scene.my.a7 = 114;


3、數(shù)組

眾所周知,Algodoo中的列表(list)是不能像其他編程語言的數(shù)組那樣修改單個元素的,例如pos = [1 , 1] 可以執(zhí)行,但是 pos(0) = 1 不行。

不過我們也有其它方法來實現(xiàn)可以單點修改的數(shù)組:

用a1,a2,······,an來儲存長度為n的數(shù)組a的各個元素。

再添加以下函數(shù)

就可以用scene.my.get("a"+i) 訪問a_%7Bi%7D%20的值,

用scene.my.assign("a"+i, x)?將a_%7Bi%7D%20賦值為x。


4、擴展for循環(huán)

algodoo自帶的for循環(huán)是這樣的:


可以看到是用遞歸來實現(xiàn)的,效率會比較低,而且循環(huán)次數(shù)n還不能太大(70以上就不行了),否則會導致棧溢出。

我們可以改用下面這個for函數(shù):

這個for函數(shù)的運行速度比Algodoo自帶的快得多,而且由于遞歸層數(shù)少(%5Clceil%20%5Clog_2%20n%20%5Crceil%20%2B1? 層),循環(huán)次數(shù)可以很大。

code是帶有一個參數(shù)的函數(shù),這個參數(shù)是循環(huán)變量,從s取到e。

示例:

求1+2+3+4+5

求1+2+3+······+10000


5、隱藏GUI:

在某個物體的update函數(shù)寫上:

就可以在運行的時候隱藏GUI。


附:我現(xiàn)在使用的一些自定義函數(shù):


如果還有其他的不知道怎么用Algodoo腳本實現(xiàn)的功能,可以在評論區(qū)提問,我會在文章中加上。

Algodoo腳本進階教程的評論 (共 條)

分享到微博請遵守國家法律
朝阳区| 兰西县| 鹤山市| 东至县| 新巴尔虎右旗| 哈尔滨市| 衡水市| 微山县| 宜阳县| 武义县| 兖州市| 益阳市| 福海县| 全南县| 莱阳市| 旬邑县| 包头市| 泾阳县| 滕州市| 丁青县| 崇信县| 信阳市| 遂溪县| 多伦县| 云林县| 法库县| 开远市| 楚雄市| 东安县| 成都市| 澳门| 松江区| 济南市| 九龙城区| 乌拉特中旗| 汽车| 淳安县| 阿巴嘎旗| 苍山县| 炎陵县| 南丹县|