Chcę zmienić moje ciemne i przygnębiające tło na szczęśliwe tło trawiaste w czasie rzeczywistym, tak aby wesołe tło było wyświetlane w promieniu wokół postaci z gry.
Pole sił szczęścia , jeśli chcesz.
Jak można to zrobić tak wydajnie, jak to możliwe podczas renderowania na kanwie w widoku niestandardowym?
AKTUALIZACJA: Oto jak to działa w mojej głowie:
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
}
Używam canvas.drawArc()
do tworzenia koła, ale zdecydowanie czegoś brakuje.
Canvas
działa trochę inaczej niż HTML <canvas>
, o którym myślałem, że masz na myśli! Zredagowałem swoją odpowiedź, aby wyjaśnić, jak ogólnie działa obcinanie, z niektórymi linkami specyficznymi dla Androida i przykładowym kodem.