Tile map now pans to chosen tile, instead of "flashing" there - makes the map feel more connected and helps you understand where you are IMHO
This commit is contained in:
parent
a9c181f314
commit
0fab01e393
4 changed files with 20 additions and 3 deletions
Binary file not shown.
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 2 KiB |
Binary file not shown.
Before Width: | Height: | Size: 864 KiB After Width: | Height: | Size: 864 KiB |
|
@ -5,6 +5,7 @@ import com.badlogic.gdx.math.Vector2
|
|||
import com.badlogic.gdx.scenes.scene2d.Actor
|
||||
import com.badlogic.gdx.scenes.scene2d.Group
|
||||
import com.badlogic.gdx.scenes.scene2d.InputEvent
|
||||
import com.badlogic.gdx.scenes.scene2d.actions.FloatAction
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.ScrollPane
|
||||
import com.badlogic.gdx.scenes.scene2d.utils.ActorGestureListener
|
||||
import com.unciv.UnCivGame
|
||||
|
@ -245,12 +246,25 @@ class TileMapHolder(internal val worldScreen: WorldScreen, internal val tileMap:
|
|||
val tileGroup = tileGroups.values.first { it.tileInfo.position == vector }
|
||||
selectedTile = tileGroup.tileInfo
|
||||
worldScreen.bottomBar.unitTable.tileSelected(selectedTile!!)
|
||||
|
||||
val originalScrollX = scrollX
|
||||
val originalScrollY = scrollY
|
||||
|
||||
// We want to center on the middle of TG (TG.getX()+TG.getWidth()/2)
|
||||
// and so the scroll position (== filter the screen starts) needs to be half a screen away
|
||||
scrollX = tileGroup.x + tileGroup.width / 2 - worldScreen.stage.width / 2
|
||||
val finalScrollX = tileGroup.x + tileGroup.width / 2 - worldScreen.stage.width / 2
|
||||
|
||||
// Here it's the same, only the Y axis is inverted - when at 0 we're at the top, not bottom - so we invert it back.
|
||||
scrollY = maxY - (tileGroup.y + tileGroup.width / 2 - worldScreen.stage.height / 2)
|
||||
updateVisualScroll()
|
||||
val finalScrollY = maxY - (tileGroup.y + tileGroup.width / 2 - worldScreen.stage.height / 2)
|
||||
|
||||
addAction(object : FloatAction(0f,1f,0.4f){
|
||||
override fun update(percent: Float) {
|
||||
scrollX = finalScrollX*percent + originalScrollX * (1-percent)
|
||||
scrollY = finalScrollY*percent + originalScrollY*(1-percent)
|
||||
updateVisualScroll()
|
||||
}
|
||||
})
|
||||
|
||||
worldScreen.shouldUpdate=true
|
||||
}
|
||||
|
||||
|
|
3
extraImages/LibGdx token.txt
Normal file
3
extraImages/LibGdx token.txt
Normal file
|
@ -0,0 +1,3 @@
|
|||
a156c2bf-1745-41ce-9f4a-669ff23f2996
|
||||
|
||||
For editing the endty in the LibGDX website
|
Loading…
Reference in a new issue