Ich möchte meinen dunklen und deprimierenden Hintergrund in einen ändern in Echtzeit fröhlichen grasbewachsenen Hintergrund , sodass der fröhliche Hintergrund in einem Radius um eine Spielfigur angezeigt wird.
EIN Kraftfeld des Glücks , wenn Sie so wollen.
Wie kann dies beim Rendern auf einer Leinwand in einer benutzerdefinierten Ansicht so performant wie möglich durchgeführt werden?
UPDATE: So funktioniert es in meinem Kopf:
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
}
Ich benutze canvas.drawArc()
, um einen Kreis zu machen, aber mir fehlt definitiv etwas.
Canvas
macht die Dinge ein bisschen anders als HTML <canvas>
, was Sie gemeint haben! Ich habe meine Antwort bearbeitet, um zu erklären, wie das Ausschneiden im Allgemeinen funktioniert, und zwar mit einigen Android-spezifischen Links und Beispielcode.