From c81bc8f1a2e0d0e4eb270e77d4ca988fcf4919b5 Mon Sep 17 00:00:00 2001 From: jiepengtan Date: Mon, 27 May 2024 15:19:41 +0800 Subject: [PATCH 1/2] rename spx api from scene => backdrop SceneName -> BackdropName SceneIndex -> BackdropIndex StartScene -> SetBackdrop NextScene -> NextBackdrop PrevScene -> PrevBackdrop OnScene -> OnBackdrop --- event.go | 46 +++++++++++++++++------------------ game.go | 28 ++++++++++----------- test/Bullet/assets/index.json | 2 +- 3 files changed, 38 insertions(+), 38 deletions(-) diff --git a/event.go b/event.go index 8495301c..30ebafbd 100644 --- a/event.go +++ b/event.go @@ -89,23 +89,23 @@ func (p *eventSink) call(wait bool, data interface{}, doSth func(*eventSink)) { // ------------------------------------------------------------------------------------- type eventSinkMgr struct { - allWhenStart *eventSink - allWhenKeyPressed *eventSink - allWhenIReceive *eventSink - allWhenSceneStart *eventSink - allWhenCloned *eventSink - allWhenTouched *eventSink - allWhenClick *eventSink - allWhenMoving *eventSink - allWhenTurning *eventSink - calledStart bool + allWhenStart *eventSink + allWhenKeyPressed *eventSink + allWhenIReceive *eventSink + allWhenBackdropChanged *eventSink + allWhenCloned *eventSink + allWhenTouched *eventSink + allWhenClick *eventSink + allWhenMoving *eventSink + allWhenTurning *eventSink + calledStart bool } func (p *eventSinkMgr) reset() { p.allWhenStart = nil p.allWhenKeyPressed = nil p.allWhenIReceive = nil - p.allWhenSceneStart = nil + p.allWhenBackdropChanged = nil p.allWhenCloned = nil p.allWhenTouched = nil p.allWhenClick = nil @@ -118,7 +118,7 @@ func (p *eventSinkMgr) doDeleteClone(this interface{}) { p.allWhenStart = p.allWhenStart.doDeleteClone(this) p.allWhenKeyPressed = p.allWhenKeyPressed.doDeleteClone(this) p.allWhenIReceive = p.allWhenIReceive.doDeleteClone(this) - p.allWhenSceneStart = p.allWhenSceneStart.doDeleteClone(this) + p.allWhenBackdropChanged = p.allWhenBackdropChanged.doDeleteClone(this) p.allWhenCloned = p.allWhenCloned.doDeleteClone(this) p.allWhenTouched = p.allWhenTouched.doDeleteClone(this) p.allWhenClick = p.allWhenClick.doDeleteClone(this) @@ -189,8 +189,8 @@ func (p *eventSinkMgr) doWhenIReceive(msg string, data interface{}, wait bool) { }) } -func (p *eventSinkMgr) doWhenSceneStart(name string, wait bool) { - p.allWhenSceneStart.call(wait, name, func(ev *eventSink) { +func (p *eventSinkMgr) doWhenBackdropChanged(name string, wait bool) { + p.allWhenBackdropChanged.call(wait, name, func(ev *eventSink) { ev.sink.(func(string))(name) }) } @@ -324,23 +324,23 @@ func (p *eventSinks) OnMsg__1(msg string, onMsg func()) { } } -func (p *eventSinks) OnScene__0(onScene func(name string)) { - p.allWhenSceneStart = &eventSink{ - prev: p.allWhenSceneStart, +func (p *eventSinks) OnBackdrop__0(onBackdrop func(name string)) { + p.allWhenBackdropChanged = &eventSink{ + prev: p.allWhenBackdropChanged, pthis: p.pthis, - sink: onScene, + sink: onBackdrop, } } -func (p *eventSinks) OnScene__1(name string, onScene func()) { - p.allWhenSceneStart = &eventSink{ - prev: p.allWhenSceneStart, +func (p *eventSinks) OnBackdrop__1(name string, onBackdrop func()) { + p.allWhenBackdropChanged = &eventSink{ + prev: p.allWhenBackdropChanged, pthis: p.pthis, sink: func(name string) { if debugEvent { - log.Println("==> onScene", name, nameOf(p.pthis)) + log.Println("==> onBackdrop", name, nameOf(p.pthis)) } - onScene() + onBackdrop() }, cond: func(data interface{}) bool { return data.(string) == name diff --git a/game.go b/game.go index 4a444fc2..d71729fc 100644 --- a/game.go +++ b/game.go @@ -1066,33 +1066,33 @@ func (p *Game) onHit(hc hitContext) (hr hitResult, ok bool) { // ----------------------------------------------------------------------------- -func (p *Game) SceneName() string { +func (p *Game) BackdropName() string { return p.getCostumeName() } -func (p *Game) SceneIndex() int { +func (p *Game) BackdropIndex() int { return p.getCostumeIndex() } -// StartScene func: +// StartBackdrop func: // -// StartScene(sceneName) or -// StartScene(sceneIndex) or -// StartScene(spx.Next) -// StartScene(spx.Prev) -func (p *Game) StartScene(scene interface{}, wait ...bool) { - if p.goSetCostume(scene) { +// StartBackdrop(backdropName) or +// StartBackdrop(backdropIndex) or +// StartBackdrop(spx.Next) +// StartBackdrop(spx.Prev) +func (p *Game) StartBackdrop(backdrop interface{}, wait ...bool) { + if p.goSetCostume(backdrop) { p.windowWidth_ = 0 // TODO: need review - p.doWhenSceneStart(p.getCostumeName(), wait != nil && wait[0]) + p.doWhenBackdropChanged(p.getCostumeName(), wait != nil && wait[0]) } } -func (p *Game) NextScene(wait ...bool) { - p.StartScene(Next, wait...) +func (p *Game) NextBackdrop(wait ...bool) { + p.StartBackdrop(Next, wait...) } -func (p *Game) PrevScene(wait ...bool) { - p.StartScene(Prev, wait...) +func (p *Game) PrevBackdrop(wait ...bool) { + p.StartBackdrop(Prev, wait...) } // ----------------------------------------------------------------------------- diff --git a/test/Bullet/assets/index.json b/test/Bullet/assets/index.json index 287a7156..9f664708 100644 --- a/test/Bullet/assets/index.json +++ b/test/Bullet/assets/index.json @@ -6,7 +6,7 @@ "path": "1.png" } ], - "sceneIndex": 0, + "backdropIndex": 0, "zorder": [ "Bullet" ] From ef742b85f2873ef327903748cf7027685860494f Mon Sep 17 00:00:00 2001 From: jiepengtan Date: Mon, 27 May 2024 15:42:00 +0800 Subject: [PATCH 2/2] Update window size immediately when backdrop changes --- game.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/game.go b/game.go index d71729fc..1e50e6c0 100644 --- a/game.go +++ b/game.go @@ -1082,7 +1082,8 @@ func (p *Game) BackdropIndex() int { // StartBackdrop(spx.Prev) func (p *Game) StartBackdrop(backdrop interface{}, wait ...bool) { if p.goSetCostume(backdrop) { - p.windowWidth_ = 0 // TODO: need review + p.windowWidth_ = 0 + p.doWindowSize() p.doWhenBackdropChanged(p.getCostumeName(), wait != nil && wait[0]) } }