ButtonListener
按钮事件监听器提供了按钮基础功能,它可以添加到任何一个节点上,所以它可以让一段文字或者一个精灵变成按钮。
例如,下面的代码创建了一个点击后退出游戏的按钮
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
auto callback = [](ButtonEvent evt) { if (evt == ButtonEvent::Clicked) { Game::quit(); } };
auto lis = gcnew ButtonListener(callback); sprite->addListener(lis);
lis->ignoreGamePaused();
|
ButtonEvent
是按钮相关事件,它的定义如下
1 2 3 4 5 6 7 8
| enum class ButtonEvent { MouseEntered, MouseExited, Pressed, Clicked, };
|
开关按钮
开关按钮用来实现有 “开” 和 “关” 两种状态的按钮,例如背景音乐的开关等,ToggleButtonListener
开关按钮事件监听器提供了开关按钮功能,它可以添加到任何一个节点上。
例如,下面的代码创建了一个可以控制音乐的播放与停止的按钮
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
auto callback = [](ButtonEvent evt, bool state) { if (evt == ButtonEvent::Clicked) { if (state) { MusicPlayer::resume("music.wav"); } else { MusicPlayer::pause("music.wav"); } } };
auto lis = gcnew ToggleButtonListener(true , callback); sprite->addListener(lis);
lis->ignoreGamePaused();
|