无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

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

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腳本進階教程的評論 (共 條)

分享到微博請遵守國家法律
平潭县| 绥中县| 上犹县| 贵南县| 安多县| 柳林县| 渑池县| 宁城县| 万全县| 锡林郭勒盟| 方城县| 锦屏县| 子长县| 辽宁省| 栾川县| 文登市| 中方县| 平阴县| 深圳市| 大荔县| 清徐县| 慈利县| 乳源| 淮安市| 兰州市| 金湖县| 晋江市| 日照市| 长泰县| 浙江省| 九龙坡区| 高阳县| 兰西县| 南宁市| 科尔| 普兰店市| 繁峙县| 旺苍县| 舟曲县| 黔东| 南开区|