Quero mudar meu fundo escuro e deprimente para um fundo gramado feliz , em tempo real, de modo que o plano de fundo feliz seja mostrado em um raio em torno do personagem do jogo.
Um campo de força de felicidade , se você quiser.
Como isso pode ser feito da maneira mais eficiente possível ao renderizar para uma tela em uma exibição personalizada?
UPDATE: Veja como funciona na minha cabeça:
private int hModeX, hModeY;
private float hModeRadius = 0.1f;
private float hModeStart = 0;
happyModeBg = Bitmap.createScaledBitmap(happyModeBg, getWidth(),getHeight(), true);
hModeX = getWidth()/2;
hModeY = getHeight()/2;
private void initHappyMode(Canvas canvas){
hModeRadius = 75 * thread.getDelta();
if(hModeRadius > 500) {
hModeStart = timestep; //What is timestep?
}
//context.arc(x, y, radius, 0, 2 * Math.PI, false); <- your version
canvas.save();
canvas.drawArc(oval, startAngle, sweepAngle, useCenter, paint) // <- my version
//context.clip(); <- dont know what this does or if there is an equivilant
canvas.drawBitmap(happyModeBg, 0, 0, null);
canvas.restore();
//requestAnimationFrame(step); <- dont know what this does since I cant seem to find it for android
}
Estou usando canvas.drawArc()
para fazer um círculo, mas definitivamente estou perdendo alguma coisa.
Canvas
faz as coisas um pouco diferente do HTML <canvas>
, o que achei que você quis dizer! Editei minha resposta para explicar como o recorte funciona em geral, com alguns links específicos para Android e código de exemplo.