使用 iwyu 幫忙整理 include 檔案

故事是這個樣子的,寫 C/C++ 必定會遇到的就是每個檔案開頭的 #include,這可以帶入其他人寫好的程式碼,最後連結的時候再連結函式庫完成整個程式。
不過大家都知道,程式不是寫完就算了,是會長大跟更新,這時候 include 就會慢慢過時,可能本來需要的 include 現在不需要了,但通常我們不會意識到這點。
另外,在一些 project 上,會出現所謂的組合的標頭檔,例如 Qt 會有 QtGui 標頭檔,內含幾乎所有 Qt 元件的標頭, 不管需要什麼 Qt Widget 只要有 QtGui 都能搞定,但問題就是 include 一個標頭檔會帶進標頭檔裡所有程式碼,巨大的標頭檔如 QtGui 會顯著拖慢編譯速度; 如果只是一兩個檔案當然沒什麼,但在大 project 上,例如我之前改的 qucs , 我把裡面的 QtGui 全部換成專屬的 Qt Widget 之後,單核心編譯時間從原本的344秒加速到245秒,提速 29 %。

...

 October 31, 2020 |    c , cpp  |    c , cpp  | 2208 字  |  YodaLee

影評:星際效應 Interstellar

still

總評:

10/10

浪費時間
看看就好
值得一看
非看不可

...

第一次當 MOPCON 講者就上手

故事這樣子的,在經歷了 2018 年的澇賽跟 2019 年打醬油之後,這周末終於達成了人生成就,在 MOPCON 當講者。
這一路走來真的是一路坎坷,不若強者我同學在尼德蘭大殺四方的 qcl 大大,在四年前 YAHOO 技驚四座時就在 MOPCON 達成三場聯播的成就。

...

 October 25, 2020 |    LifeRecord  |    blog  | 1015 字  |  YodaLee

使用 Amethyst Engine 實作小行星遊戲 - 12 更多的狀態

這章我們要一口氣新增兩個新的狀態:StateMenu 跟 StateOver,基本上因為不同的 state 都分到不同的檔案,所以多幾個 state 也沒差。
這章其實沒有太多需要介紹的,只有在 state 轉換上面多費點功夫,這部分可以先畫一個狀態圖讓整體更清楚:
stateflow

...

使用 Amethyst Engine 實作小行星遊戲 - 11 事件

上一篇我們做了兩個 state:遊戲進行和暫停的 state,理論上整個遊戲還需要更多的 state:像是遊戲結束、遊戲選單等等,但在這之前我們要先介紹 amethyst 的 event channel。
先前我們在 state 間切換是透過按下鍵盤的事件,但遊戲進行間可能有些場景的轉換是由遊戲內的事件發動的, 例如我們的太空船被隕石砸到,要從遊戲狀態切到遊戲結束,這時候就要透過 event channel 來發送事件了; 同時,用了 EventChannel 可以讓我們改寫一些之前的程式碼,把不同功用的程式分到不用的 system 裡,不用全塞在一起。

...

使用 Amethyst Engine 實作小行星遊戲 - 10 暫停狀態

因為搬家(詳見上一篇 )的關係好久沒有更新了;現在搬完家終於可以回來繼續寫 amethyst 的文章啦, 現在寫文章插 code 根本是一種享受,跟 blogger 那種鳥編輯器完全不一樣。
到目前為止,我們討論的範圍都不脫 ECS 的範疇,這兩章我們會實作更多有關 state 的部分, 我覺得寫到這邊我比較有感受到 amethyst 整體的架構是怎麼實作的,但也只是個人的感覺就是。

我們這章先來實作一個小小的功能,就是按下 esc 鍵的時候,能讓遊戲暫停下來, 對應 amethyst 的文件是第十章的 controlling system execution

...

blogger 搬到 hugo 全記錄

工程師如何搬家,給工程師一個死線,時間到了家就搬好了

簡單來說,搬家基本上來說可以分成三步驟:

  1. 找到新家
  2. 把舊家的東西搬出來
  3. 把東西放到冰箱新家
...

從 blogger 轉換到靜態網頁生成

看到這個標題大概就知道發生什麼事了……。
是的,經過十年 blogger 寫作,我終於決定要搬家了。

...

 August 20, 2020 |    LifeRecord  |    blog  | 1145 字  |  YodaLee

使用 Amethyst Engine 實作小行星遊戲 - 9 UI

現在讓我們來建 UI,我覺得建 UI 是目前掌握度比較低的部分,我也在想怎麼做才是對的。
本篇目標是加上一個計分用的文字:

...

影評:星際終結者 Independence day

still

總評:

8/10

浪費時間
看看就好
值得一看
非看不可

...