Está dando erro nas seguintes linhas:
Não está achando os métodos getHolder() , getSurface(), lockCanvas(), e unlockCanvasAndPost();
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Está dando erro nas seguintes linhas:
Não está achando os métodos getHolder() , getSurface(), lockCanvas(), e unlockCanvasAndPost();
Para obter um SurfaceHolder com o metodo getHolder, veja se a sua classe Game é filha de SurfaceView.
Os métodos getSurface, lockCanvas e unlockCanvasAndPost pertencem à essa classe SurfaceHolder.
Já está herdado, mas ainda continua o erro.
Poderia postar a sua classe Game pra eu dar uma olhada?
package br.com.alura.jumper.engine;
import android.content.Context;
import android.graphics.Canvas;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import br.com.alura.jumper.elementos.*;
public class Game extends SurfaceView implements Runnable{
private final SurfaceView holder = (SurfaceView) getHolder();
private boolean isRunning = true;
private Passaro passaro;
public Game(Context context){
super(context);
inicializaElementos();
}
private void inicializaElementos(){
this.passaro = new Passaro();
}
public void run(){
while(isRunning){
if(!((SurfaceHolder) holder).getSurface().isValid())continue;
Canvas canvas = ((SurfaceHolder) holder).lockCanvas();
passaro.desenhoNo(canvas);
passaro.cai();
((SurfaceHolder) holder).unlockCanvasAndPost(canvas);
}
}
public void inicia(){
this.isRunning = true;
}
public void cancela(){
isRunning = false;
}
}
Na primeira linha da sua classe:
private final SurfaceView holder = (SurfaceView) getHolder();
Não precisa fazer esse cast pra SurfaceView. Deixe assim:
private final SurfaceHolder holder = getHolder();
Com isso, você encontrará os métodos, deixando seu código com essa cara:
if(!holder.getSurface().isValid())continue;
Canvas canvas = holder.lockCanvas();
passaro.desenhoNo(canvas);
passaro.cai();
holder.unlockCanvasAndPost(canvas);
lembre-se do SHIFT + CTRL + O
para criar os imports de forma automática sempre selecionando os itens grifados em vermelho.