Saya ingin mengubah latar belakang saya yang gelap dan tertekan menjadi latar belakang yang menyenangkan , secara real-time, sehingga latar belakang yang bahagia ditampilkan dalam radius di sekitar karakter permainan.
Sebuah ForceField kebahagiaan , jika Anda mau.
Bagaimana ini bisa dilakukan dengan kinerja sebaik mungkin ketika merender ke kanvas dalam tampilan kustom?
PEMBARUAN: Inilah cara kerjanya di kepala saya:
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
}
Saya menggunakan canvas.drawArc()
untuk membuat lingkaran, tapi saya pasti kehilangan sesuatu.
Canvas
melakukan sesuatu yang sedikit berbeda dari HTML <canvas>
, yang saya pikir Anda maksud! Saya telah mengedit jawaban saya untuk menjelaskan cara kerja kliping secara umum, dengan beberapa tautan khusus Android dan kode contoh.