Quiero cambiar mi fondo oscuro y deprimente a un fondo de hierba feliz , en tiempo real, de modo que el fondo feliz se muestre en un radio alrededor de un personaje del juego.
Un campo de fuerza de la felicidad , por así decirlo .
¿Cómo se puede hacer esto con el mayor rendimiento posible cuando se procesa en un lienzo en una vista personalizada?
ACTUALIZACIÓN: Así es como funciona en mi cabeza:
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
}
Estoy usando canvas.drawArc()
para hacer un círculo, pero definitivamente me falta algo.
Canvas
hace las cosas un poco diferente al HTML <canvas>
, ¡lo que pensé que querías decir! Edité mi respuesta para explicar cómo funciona el recorte en general, con algunos enlaces específicos de Android y código de ejemplo.