From edb2c0e21f0d905f4651784a5d94788f8bf8010f Mon Sep 17 00:00:00 2001 From: kercylan98 Date: Thu, 27 Apr 2023 10:49:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B8=B8=E6=88=8F=E7=8E=A9=E6=B3=95=E6=B8=B8?= =?UTF-8?q?=E6=88=8F=E7=BB=93=E6=9D=9F=E7=89=B9=E6=80=A7=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game/builtin/gameplay_over.go | 27 +++++++++++++++++++++++++++ game/gameplay_over.go | 14 ++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 game/builtin/gameplay_over.go create mode 100644 game/gameplay_over.go diff --git a/game/builtin/gameplay_over.go b/game/builtin/gameplay_over.go new file mode 100644 index 0000000..3b2b6c8 --- /dev/null +++ b/game/builtin/gameplay_over.go @@ -0,0 +1,27 @@ +package builtin + +import ( + "minotaur/game" +) + +func NewGameplayOver() *GameplayOver { + return &GameplayOver{} +} + +type GameplayOver struct { + gameplayOverEventHandles []game.GameplayOverEventHandle +} + +func (slf *GameplayOver) GameOver() { + slf.OnGameplayOverEvent() +} + +func (slf *GameplayOver) RegGameplayOverEvent(handle game.GameplayOverEventHandle) { + slf.gameplayOverEventHandles = append(slf.gameplayOverEventHandles, handle) +} + +func (slf *GameplayOver) OnGameplayOverEvent() { + for _, handle := range slf.gameplayOverEventHandles { + handle() + } +} diff --git a/game/gameplay_over.go b/game/gameplay_over.go new file mode 100644 index 0000000..b60e864 --- /dev/null +++ b/game/gameplay_over.go @@ -0,0 +1,14 @@ +package game + +type GameplayOver interface { + // GameOver 游戏玩法结束 + GameOver() + + // RegGameplayOverEvent 游戏玩法结束时将立即调用被注册的事件处理函数 + RegGameplayOverEvent(handle GameplayOverEventHandle) + OnGameplayOverEvent() +} + +type ( + GameplayOverEventHandle func() +)