iT邦幫忙

2021 iThome 鐵人賽

DAY 25
0

Projucer 支援另一類型的專案——Animated。與一般的 GUI 專案不同處之一是,MainComponent 不再繼承 Component,改繼承 juce::AnimatedAppComponent

juce::AnimatedAppComponent 提供一些與 Animation 有關的函數,用以簡化 Animation 應用程式開發。setFramesPerSecond 設定 AnimatedAppComponent 中的相關函數間隔多久被呼叫。

底下是 Projucer 建立的 Animated 專案中的 MainComponent 程式碼片段:

MainComponent::MainComponent()
{
  setSize (800, 600);
  setFramesPerSecond (60); // This sets the frequency of the update calls.
}

void MainComponent::update()
{
}

void MainComponent::paint (juce::Graphics& g)
{
  g.fillAll (getLookAndFeel().findColour (juce::ResizableWindow::backgroundColourId));
}

MainComponent 建構式先設定以 60 FPS 的頻率更新程式。update 成員函數會在時間到時被呼叫,paint 也是如此。於是,在兩個函數中處理需要被改變的物件,例如更新圖片或移動 Component 位置等,便可達到動態效果。

除此之外,JUCE 另提供了一些類別,也可達到動態效果。例如 ComponentAnimator,提供簡單的介面控制 Component 的外觀。


上一篇
Day 23:優與劣
下一篇
Day 25:獨立販售的音樂類軟體外掛
系列文
JUCE 入門 @ 跨平台應用程式開發使用 C++29
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言