溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

引擎ECS框架中system的語法糖是怎么實現的

發布時間:2021-11-23 22:14:37 來源:億速云 閱讀:156 作者:柒染 欄目:大數據

引擎ECS框架中system的語法糖是怎么實現的,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

集(Bevy)引擎ECS框架中system的語法糖是怎么實現的

群集(Bevy)引擎中的system就是普通的Rust函數,這樣的設計及其符合人體工程學,就像作者本人在群集(Bevy)引擎的介紹中說的那樣,目前找不到比群集引擎更符合人體工程學的ECS框架設計了。
推特上有人簡單分析了一下群集引擎中這部分代碼的語法糖是怎么實現的,考慮到不少小伙伴并不能夠隨時訪問推特,在這里我把大概意思搬運過來。
system作為普通的Rust函數,它的參數也就代表了需要訪問的那些組件的查詢。群集提供的主要示例非常引人注目,系統就是函數,組件就是結構體,你不需要實現額外的trait,就能夠讓ECS框架正常運作。
use bevy::prelude::*;
就像上面的示例一樣,只要按照一定的規則寫出函數,在App的構建模式中調用  .system()  方法就可以把函數變成系統。
一個普通的Rust函數在調用  .system()  這個方法之后,將被轉換為一個  Box<dyn System>  ,對于群集支持的兩種系統,采用  IntoForEachSystem  和  IntoQuerySystem  這兩個trait進行轉換。
   
// 具體代碼可以去群集的文檔里看,這里只舉例了IntoQuerySystem這個trait

pub trait IntoQuerySystem<Commands,R,Q> {    fn system(self) -> Box<dyn System>;}
有了trait之后只需要把trait實現給我們可能會調用的函數,一個一個函數的去實現肯定是不可能的,翻看群集的這部分源碼能夠看到大量的使用了宏:
具體的代碼可以去看群集的源碼,總結來說,群集實現的這種及其符合人體工程學的ECS架構,就是基于宏加上trait來實現的。

Rust寫數據可視化的一個小教程

該文用到了  plotly  庫,是一個可以動手實驗的小教程。
教程原文  :https://shahinrostami.com/posts/programming/rust-notebooks/box-plots-at-the-olympics/

OrbTk 0.3.1-alpha3發布了

之前關注過Redox的應該知道OrbTk是他們團隊給該操作系統設計的Gui庫,現在這個庫在crates.io發布了最新的版本,相較于之前性能更好了,也有了新的主題切換引擎可以選擇。還更新了三種UI組件(ProgressBar,NumericBox,TabWidget)。
Read More  :https://github.com/redox-os/orbtk/releases/tag/0.3.1-alpha3

“Rust沒有穩定的ABI”

作者見過GNOME的用戶(通常是在C庫上工作了很長時間的人)表達以下問題:
  1. 編譯的Rust代碼沒有穩定的ABI(應用程序二進制接口)。
  2. 因此,我們不能使用傳統的Linux發行版共享庫。
  3. 同時,Rust還將其整個標準庫與它所編譯的每個二進制文件捆綁在一起,這使得Rust構建的庫非常龐大。
作者是那種認為大部分基礎設施都應該用Rust重寫的人,所以這些問題,也是作者本人非常關注的事。
因此作者寫了一篇關于這個問題文章。
Read More  :https://people.gnome.org/~federico/blog/rust-stable-abi.html

docs.rs 已經更新了文檔覆蓋功能

docs.rs更新了文檔覆蓋功能  

關于構建者模式的一個簡短介紹

一個關于構建者模式的簡短介紹。
以及提供了三個實際項目中的用例。
Read More  :https://matklad.github.io/2020/08/12/who-builds-the-builder.html

This Week in Rust

每周官方都會更新的This Week in Rust又更新了。
這已經是第351期了。
基本上最近有關Rust的動向里面都收集了,個人一直比較關注的是Tooling類的動向吧,rust-analyzer越來越好用了。
其他動向日報基本都涉及過了,這里不再提及,主要說兩個,一個是每月都會更新一次的Rust GameDev,以及最近才更新的區塊鏈相關動向。

關于引擎ECS框架中system的語法糖是怎么實現的問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女