Je veux changer mon arrière-plan sombre et déprimant en un arrière - plan herbeux joyeux , en temps réel, de sorte que l'arrière-plan joyeux soit affiché dans un rayon autour d'un personnage de jeu.
Un champ de force de bonheur , si vous voulez.
Comment cela peut-il être réalisé de manière aussi performante que possible lors du rendu sur un canevas dans une vue personnalisée?
MISE À JOUR: Voici comment cela fonctionne dans ma tête:
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
}
J'utilise canvas.drawArc()
pour faire un cercle, mais il me manque définitivement quelque chose.
Canvas
fait les choses un peu différemment du HTML <canvas>
, ce que je pensais que vous vouliez dire! J'ai édité ma réponse pour expliquer le fonctionnement de l'écrêtage en général, avec des liens spécifiques à Android et un exemple de code.