2017-02-07 6 views
0

Я следую учебному курсу по обучению созданию марио, и несколько раз сталкивался с этой проблемой. Я не мог разрешить это в течение недели или около того. Проблема заключается в течение заданного метода, который поставляется в составе LIBGDXLibGDX -no подходящий метод, найденный для setRegion (Objec)

setRegion(walkAnimation.getKeyFrame(stateTime, true)) 

более контекст ниже.

public void update(float dt){ 
    stateTime += dt; 
    setPosition(b2body.getPosition().x - getWidth()/2, b2body.getPosition().y - getHeight()/2); 
    setRegion(walkAnimation.getKeyFrame(stateTime, true)); 

walkAnimation также определен в предыдущем способе.

ошибка от андроида студии

Error:(33, 8) Gradle: error: no suitable method found for setRegion(Object) method TextureRegion.setRegion(Texture) is not applicable (argument mismatch; Object cannot be converted to Texture) method TextureRegion.setRegion(TextureRegion) is not applicable (argument mismatch; Object cannot be converted to TextureRegion)

Кто-нибудь знает, почему этот объект не может быть преобразован? Есть ли другой способ написать это?

Большое спасибо заранее

+0

Можете ли вы показать часть кода, где Вы заявляете/инициализировать walkAnimation? –

+0

Класс анимации был изменен в версии 1.9.5 LibGDX на общий. Чтобы он работал с TextureRegions, укажите его тип. То есть Анимация анимация = новая анимация (// ...); – Tenfour04

+0

Ах, спасибо огромное, я думаю, что мне нужно сделать немного больше информации о использовании области текстуры LibGDX: МОЕ ЗАЯВЛЕНИЕ было следующим: приватная анимационная прогулкаАнимация; затем в виде goomba walkAnimation = новая анимация (0.4f, frames); –

ответ

0

Скорее всего, это будет неправильно использование генериков. Вы должны объявить тип кадра анимацией. getKeyFrame() возвращает тип, указанный вами walkAnimation с - см. the API documentation.

LibGDX documentation (excerpt) От:

// on initialization 
Animation<TextureRegion> walkAnimation = new Animation<TextureRegion>(0.025f, walkFrames); 
// in render method 
TextureRegion currentFrame = walkAnimation.getKeyFrame(stateTime, true); 

setRegion() принимает среди других TextureRegion, как вы можете прочитать в the API