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

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

funkytree的使用(簡單飛機(jī)復(fù)雜的代碼怎么寫)

2022-08-06 19:27 作者:昊天dhtv587  | 我要投稿

在游玩簡單飛機(jī)的時(shí)候,

大多數(shù)同學(xué)肯定想過,

有沒有什么辦法,可以在可操作部件上實(shí)現(xiàn)多種不同的復(fù)雜的指令和操作

舉些例子

====在一個(gè)轉(zhuǎn)軸上,可接受不同的指令,比如既可roll又可pitch,

===比如輪子的只能在空中的條件下收回,地面不允許收回

==延遲啟動(dòng)艙門,延遲關(guān)閉艙門

=飛機(jī)的飛控

等等等等。。。。。。


funky tree 這種工具,或者書寫的規(guī)則,可以幫助玩家實(shí)現(xiàn)很多復(fù)雜的操作,來完成我們不同情況的需求

那么應(yīng)該如何了解?

我們先在百度搜索funkytree,找到這個(gè)帖子,里面是關(guān)于funkytree代碼名詞解釋代碼工具的使用方法(應(yīng)該是,好久沒看了)

不過一開始最重要的,是如何書寫這些代碼?,以實(shí)現(xiàn)我們想做出來的復(fù)雜功能。


先從最簡單的說起

一個(gè)轉(zhuǎn)軸上同時(shí)可以roll和pitch

如下圖所示,打開簡飛,選中部件,打開從右到左第三個(gè)圖標(biāo),(記得激活兩個(gè)mod,在游戲進(jìn)入界面的mods可以找到,分別是overload和fineturner,并激活,否則找不到這個(gè)圖標(biāo)喔)

頂部換到InputController欄,并找到input選項(xiàng),里面輸入Pitch+Roll??注意大小寫,?加號(hào)這樣的符號(hào)也分中文和英文的版本,是英文版本,不要寫錯(cuò)了)。

你就可以看到這個(gè)轉(zhuǎn)軸同時(shí)實(shí)現(xiàn)了Pitch和Roll兩個(gè)操作


如果roll或者pitch需要反轉(zhuǎn)怎么辦?

直接乘以-1或者減法就行,

比如Pitch*-1+Roll或者Pitch-Roll

可以看到,要實(shí)現(xiàn)這樣的操作很簡單,就是直接使用名詞加減乘除就行

其實(shí)我們可以看到,就是簡單的加減乘除而已,如果還要加上yaw軸就直接輸入+Yaw就行了

funkytree的書寫就是用加減乘除和括號(hào)把這些名次和代碼工具組成的工具像積木一樣把它們拼接在一起


再對這些常用的部件如何運(yùn)作的原理做一些解釋

其實(shí)我們使用操作的時(shí)候,比如轉(zhuǎn)軸里的Pitch上下,其實(shí)就是從1到-1過程,你不動(dòng)它,就是0,它門是跟著數(shù)字的大小改變的

如果我們把Pitch乘以2,也就是Pitch*2,就會(huì)發(fā)現(xiàn)其動(dòng)作的幅度也變成了之前的兩倍,

又或者不輸入Pitch*2,就只在轉(zhuǎn)軸里輸入個(gè)1,你就會(huì)發(fā)現(xiàn)轉(zhuǎn)軸就一直固定在一個(gè)位置,這就是1的位置,也就是正常拉到頂的位置,你輸入-1就會(huì)發(fā)現(xiàn)轉(zhuǎn)軸固定在剛才相反的位置了)

其他很多操作也是從一到負(fù)一的過程,

我們在操作飛機(jī)的時(shí)候下面不是有12345678那些按鈕嗎,你按下這些按鈕,它所表達(dá)的數(shù)據(jù)就會(huì)一瞬間從-1變成1(當(dāng)然按鈕8是相反的)。什么TRIM?VTOL也是從1到-1的過程


接下來我就直接介紹比較常用的幾個(gè)代碼工具了,前面的東西我相信摸索一會(huì)兒都能懂

代碼工具如下? ? 代碼工具不需要大寫,小寫就可以

1 限制代碼

clamp(里面填東西)

用途是限制大小,比如尾翼轉(zhuǎn)軸里面輸入Pitch+Roll,我們可以發(fā)現(xiàn)當(dāng)Pitch和Roll都是-1的時(shí)候,這個(gè)代碼兩個(gè)相加就是-2了,這架飛機(jī)的尾翼如果轉(zhuǎn)的角度就會(huì)翻一倍,這么大的角度可能尾翼就直接碰到地面了,所以需要對尾翼進(jìn)行限制到只能動(dòng)作1的幅度,這時(shí)候就可以用到clamp這個(gè)工具↓↓↓↓↓↓↓↓↓↓

clamp(Pitch+Roll,-1,1)? ? ??

括號(hào)里分別是?你想要的動(dòng)作,逗號(hào)1表示分割,-1表示最小多少,逗號(hào)2表示分割,1表示最大多少

2 判斷代碼

clamp01(里面填東西)

用途是判斷數(shù)據(jù),這個(gè)代碼在符合條件時(shí)輸出1,不符合條件時(shí)輸出0比如判斷速度大于10m/s關(guān)閉座艙蓋? ?↓↓↓↓↓↓↓↓↓↓

clamp01(TAS>10)

注意大于等于之類的這樣書寫>=,比如clamp01(TAS>=10)


3 調(diào)速代碼

smooth這里填要填的東西數(shù)字即速度的大小

在一些場景是需要部件緩慢運(yùn)行的,比如按下數(shù)字1這個(gè)按鈕,它會(huì)一瞬間從-1變成1,這個(gè)變化太急促了,需要對它進(jìn)行降速,就可以寫↓↓↓↓↓↓↓↓↓↓

smooth(Activate1,0.5)

逗號(hào)代表隔斷,0.5代表速度


4自動(dòng)控制(PID)注意PID三個(gè)字母是需要大寫的

PID(目標(biāo)值,當(dāng)前值,P比例,I積分,D微分)

PID自動(dòng)控制是一種可以精細(xì)控制的算法,剛接觸的同學(xué)可能不清楚它需要使用的場景,

比如我要設(shè)置一個(gè)懸停的火箭,這個(gè)火箭想要停留在10米的高度

是不是就必須不斷精細(xì)控制推力大小

所以就可以用PID算法,它會(huì)自動(dòng)根據(jù)當(dāng)前值追趕目標(biāo)值,

不過不同的場景所需要調(diào)整的幅度都是的,所以后面三個(gè)值P比例,I積分,D微分,就是用來調(diào)節(jié)的參數(shù)(根據(jù)我自己的經(jīng)驗(yàn),一般只需要調(diào)節(jié)P比例和D微分兩個(gè)就行了,I積分就不用管了具體怎么調(diào)節(jié)各位同學(xué)自己找資料學(xué)習(xí)吧,up就懶得學(xué)了,我直接用trim和vtol根據(jù)手感進(jìn)行調(diào)節(jié))P比例,I積分,D微分,怎么寫如下↓↓↓↓↓↓↓↓↓↓

PID(10,AltitudeAgl,0.1,0,0.1)


上面這些就是最主要的funkytree代碼工具,基本可以覆蓋百分之八十五的使用場景,學(xué)會(huì)使用這寫代碼工具,其他肯定也看得懂學(xué)得會(huì)


最后解釋下延遲代碼的原理

延遲啟動(dòng)的原理就是利用↓↓↓↓↓↓↓↓↓↓這倆代碼工具

smooth()調(diào)速代碼?

clamp01() 判斷代碼

首先

按下起落架按鈕的時(shí)候

其代碼的值是不是瞬間1變成了0?(有點(diǎn)忘了起落架是不是從0到1了,先這樣寫了)

這個(gè)時(shí)候我們先使用smooth()調(diào)速代碼,將其減速

舉個(gè)形象的例子,一個(gè)球從桌子左邊緩慢移動(dòng)到右邊(因?yàn)檎{(diào)速的原因,本來是瞬移到右邊的,現(xiàn)在變成緩慢移動(dòng)了)

然后我們這時(shí)候clamp01() 判斷代碼就起作用了

設(shè)置它判斷除非球在最右邊,否則不輸出1,輸出0

因?yàn)?span id="s0sssss00s" class="color-pink-03 font-size-20">球是緩慢到右邊的,而判斷條件是球在最右邊時(shí)才輸出1,所以“延遲啟動(dòng)”


延遲關(guān)閉則相反,

還是一樣的情況,

但是變成了判斷只要球往右邊移動(dòng)一點(diǎn)點(diǎn),就輸出1

在最左邊才輸出0,

這就變成了,部件一按即啟動(dòng),

但是關(guān)閉,因?yàn)樾枰@個(gè)“球”需要緩慢移動(dòng)到最左邊,所以就“延遲關(guān)閉”


另外由于up主本人并沒有系統(tǒng)學(xué)習(xí)過funkytree,以上均為up自己摸索得出的經(jīng)驗(yàn),不一定就是對的,大家自行參考







funkytree的使用(簡單飛機(jī)復(fù)雜的代碼怎么寫)的評論 (共 條)

分享到微博請遵守國家法律
蒙阴县| 高雄市| 乳山市| 阳曲县| 秦安县| 霍邱县| 青浦区| 卢龙县| 德州市| 锦屏县| 扎兰屯市| 枝江市| 福泉市| 延庆县| 铁力市| 清河县| 晋江市| 满洲里市| 宜昌市| 南郑县| 甘肃省| 和顺县| 黄浦区| 延安市| 瑞丽市| 新龙县| 海丰县| 菏泽市| 神农架林区| 西藏| 从化市| 金堂县| 平安县| 南江县| 庄河市| 孟津县| 荆门市| 天气| 阿拉尔市| 萨嘎县| 府谷县|