Я хочу изменить свой темный и удручающий фон на счастливый травяной фон в реальном времени, чтобы счастливый фон отображался в радиусе вокруг игрового персонажа.
ForceField счастья , если вы будете.
Как это можно сделать максимально эффективно при рендеринге на холст в пользовательском представлении?
ОБНОВЛЕНИЕ: Вот как это работает в моей голове:
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
}
Я использую, canvas.drawArc()
чтобы сделать круг, но я определенно что-то упускаю.
Canvas
работает немного иначе, чем HTML <canvas>
, который, как я думал, вы имели в виду! Я отредактировал свой ответ, чтобы объяснить, как работает отсечение в целом, с некоторыми ссылками для Android и примером кода.