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..1e50e6c0 100644 --- a/game.go +++ b/game.go @@ -1066,33 +1066,34 @@ 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) { - p.windowWidth_ = 0 // TODO: need review - p.doWhenSceneStart(p.getCostumeName(), wait != nil && wait[0]) +// 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 + p.doWindowSize() + 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" ]