From eda23f5f65ef49eabeb4390b08a65a5f2cdf3e5d Mon Sep 17 00:00:00 2001 From: jianmingyong <jianming1993@gmail.com> Date: Sun, 26 Feb 2017 22:52:11 +0800 Subject: [PATCH] Offset map fix. --- 2.5DHero/2.5DHero/Screens/Screen.vb | 3 +++ 2.5DHero/2.5DHero/World/Level.vb | 23 ++++++++++------------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/2.5DHero/2.5DHero/Screens/Screen.vb b/2.5DHero/2.5DHero/Screens/Screen.vb index b3a499797..07581183f 100644 --- a/2.5DHero/2.5DHero/Screens/Screen.vb +++ b/2.5DHero/2.5DHero/Screens/Screen.vb @@ -118,6 +118,9 @@ Public MustInherit Class Screen Return _globalLevel End Get Set(value As Level) + If _globalLevel IsNot Nothing Then + _globalLevel.StopOffsetMapUpdate() + End If _globalLevel = value End Set End Property diff --git a/2.5DHero/2.5DHero/World/Level.vb b/2.5DHero/2.5DHero/World/Level.vb index 3a66e1736..4a6992cec 100644 --- a/2.5DHero/2.5DHero/World/Level.vb +++ b/2.5DHero/2.5DHero/World/Level.vb @@ -1,3 +1,4 @@ +Imports System.Threading ''' <summary> ''' A class that manages the collection of entities to represent a map. ''' </summary> @@ -29,7 +30,7 @@ Public Class Level Private _offsetMapUpdateDelay As Integer = 50 ' Ticks until the next Offset Map update occurs. ' Map properties: - Private _terrain As Terrain = New Terrain(net.Pokemon3D.Game.Terrain.TerrainTypes.Plain) + Private _terrain As Terrain = New Terrain(Terrain.TerrainTypes.Plain) Private _mapName As String = "" Private _musicLoop As String = "" Private _levelFile As String = "" @@ -686,7 +687,7 @@ Public Class Level Public Sub StopOffsetMapUpdate() Me._offsetTimer.Stop() While Me._isUpdatingOffsetMaps - System.Threading.Thread.Sleep(1) + Thread.Sleep(1) End While Logger.Debug("Stopped Offset map update") @@ -713,7 +714,7 @@ Public Class Level End If ' Create own player entity and OverworldPokémon entity and add them to the entity enumeration: - OwnPlayer = New OwnPlayer(0, 0, 0, {net.Pokemon3D.Game.TextureManager.DefaultTexture}, Core.Player.Skin, 0, 0, "", "Gold", 0) + OwnPlayer = New OwnPlayer(0, 0, 0, {TextureManager.DefaultTexture}, Core.Player.Skin, 0, 0, "", "Gold", 0) OverworldPokemon = New OverworldPokemon(Screen.Camera.Position.X, Screen.Camera.Position.Y, Screen.Camera.Position.Z + 1) OverworldPokemon.ChangeRotation() Entities.AddRange({OwnPlayer, OverworldPokemon}) @@ -797,13 +798,16 @@ Public Class Level If LevelLoader.IsBusy = False Then For i = 0 To Entities.Count - 1 If i <= Entities.Count - 1 Then - If Entities.Count - 1 >= i AndAlso Entities(i).CanBeRemoved = True Then + If Entities.Count - 1 >= i AndAlso Entities(i).CanBeRemoved Then Entities.RemoveAt(i) i -= 1 Else - If Entities(i).NeedsUpdate = True Then + If Entities(i).NeedsUpdate Then Entities(i).Update() End If + + ' UpdateEntity for all entities: + Me.Entities(i).UpdateEntity() End If Else Exit For @@ -811,13 +815,6 @@ Public Class Level Next End If - ' UpdateEntity for all entities: - For i = 0 To Me.Entities.Count - 1 - If i <= Me.Entities.Count - 1 Then - Me.Entities(i).UpdateEntity() - End If - Next - ' UpdateEntity for all floors: For i = 0 To Me.Floors.Count - 1 If i <= Me.Floors.Count - 1 Then @@ -953,7 +950,7 @@ Public Class Level Me.Surfing = Core.Player.startSurfing ' Set the Surfing property after map switch. ' Create player and Pokémon entities: - OwnPlayer = New OwnPlayer(0, 0, 0, {net.Pokemon3D.Game.TextureManager.DefaultTexture}, Core.Player.Skin, 0, 0, "", "Gold", 0) + OwnPlayer = New OwnPlayer(0, 0, 0, {TextureManager.DefaultTexture}, Core.Player.Skin, 0, 0, "", "Gold", 0) OwnPlayer.SetTexture(Core.Player.Skin, usingGameJoltTexture) OverworldPokemon = New OverworldPokemon(Screen.Camera.Position.X, Screen.Camera.Position.Y, Screen.Camera.Position.Z + 1)