2017-08-19 128 views
1

我有一個字母類是這樣的:libGDX無法執行操作

class Letter : Label { 
    val char: Char 
    var interactable = true 
    constructor(char: Char) : super(""+char, H.letterStyle()) { 
     this.char = char 
    } 

    fun animateSelect() { 
     addAction(Actions.scaleTo(3.0f, 3.0f, 0.5f)) 
    } 
    fun animateUnselect() { 
     addAction(Actions.scaleTo(3.0f, 3.0f, 0.5f)) 
    } 
} 

在我的觸動聽者,我有這樣的:

override fun touchDown(event: InputEvent?, x: Float, y: Float, pointer: Int, button: Int): Boolean { 

     var currentInteractingLetter: Letter? = null 
     for (letter in letterList) { 
      if (letter.bound.contains(x, y)) { 
       currentInteractingLetter = letter 
       break 
      } 
     } 

     if (currentInteractingLetter == null) { 

     } else { 
      selectedLetters.add(currentInteractingLetter) 
      currentInteractingLetter.animateSelect() 
      currentInteractingLetter.interactable = false 
     } 

     return true 
    } 

的邏輯非常簡單。當用戶觸摸任何一個letter時,我會調用animateSelect()函數。 當我運行它時,animateSelect確實被調用,但沒有scaleUp的影響。我試圖清除addAction之前的所有操作,但仍然是相同的。

回答

1

標籤不直接支持縮放。

解決此問題的簡單方法是將標籤放在容器上的Container,setTransform(true)中,然後將縮放操作添加到Container

val container= Container<Label>().apply { 
    isTransform=true 
    actor=label   // Set your Label to container 
} 

container.addAction(Actions.scaleTo(3.0f, 3.0f, 0.5f))