Jadi pada dasarnya apa cara paling efisien untuk melakukan ini dengan Pixi? saya ingin
Terima kasih sebelumnya
buat wadah "Kamera", taruh semuanya di sana.
camera.position.set(renderer.screen.width/2, renderer.screen.height/2);
camera.pivot.copy(player.position);
//EVERY FRAME
var targetPivot = player.position;
//LERP IT, dt is something between 0 and 1.
// i use dt = 1 - Math.exp(-deltaInMillis / 100);
// or you can just assign targetpivot to pivot
camera.pivot.x = (targetPivot.x - camera.pivot.x) * dt + camera.pivot.x;
camera.pivot.y = (targetPivot.y - camera.pivot.y) * dt + camera.pivot.y;
//big square
var mapRect = new PIXI.Rectangle();
mapRect.x = camera.pivot.x - renderer.screen.width/2;
mapRect.y = camera.pivot.x - renderer.screen.height/2;
mapRect.width = renderer.screen.width;
mapRect.height = renderer.screen.height;
mapRect.pad(400,400); // -this line was updated
//every time camera changes position
var newRect = new PIXI.Rectangle();
newRect .x = camera.pivot.x - renderer.screen.width/2;
newRect .y = camera.pivot.x - renderer.screen.height/2;
newRect .width = renderer.screen.width;
newRect .height = renderer.screen.height;
if (newRect.x < mapRect.x || newRect.right > mapRect.right ||
newRect.y < mapRect.y || newRect.bottom > mapRect.bottom) {
mapRect = newRect;
//ADJUST THE BACKGROUND AND STUFF
//CLEAR AND FILL THE TILEMAP: https://github.com/pixijs/pixi-tilemap
}
Seseorang, tolong jadikan itu artikel wiki pixi. Saya pikir saya akan menjelaskan hal itu untuk yang kesepuluh kalinya, kita membutuhkan tutorial tentang hal itu
Terima kasih. Itu melakukan pekerjaan tetapi saya tidak dapat mencapai 2. poin. Hasil mapRect.enlarge (400); adalah NaN. Menurut dokumentasi seharusnya ada persegi panjang lain.
Jika Anda bisa menjelaskannya sedikit lebih detail, itu akan bagus.
Terima kasih.
Oke, gunakan "pad (400.400)" "sebagai gantinya;)
Sepertinya masih ada masalah karena di setiap frame newRect.x akan selalu lebih besar. Saya kehilangan sesuatu yang besar di sini, saya kira :(
@bayu_joo
mapRect = newRect;
mapRect.pad(400,400);
juga pastikan Anda membuat newRect setiap saat. Jika tidak, silakan gunakan "mapRect.copy (newRect);" alih-alih tugas.
Saya menulis pseudo-code. Saya harap Anda menyalin hal-hal itu ke berbagai fungsi seperti gameStart, gameFrame, atau lebih? Itu tidak seharusnya dalam satu fungsi.
Halo yang disana! Menutup masalah ini untuk saat ini karena tidak aktif. Jangan ragu untuk menghubungi kami jika Anda ingin masalah ini dibuka kembali. Terima kasih 👍
Utas ini telah dikunci secara otomatis karena tidak ada aktivitas baru-baru ini setelah ditutup. Silakan buka masalah baru untuk bug terkait.
Komentar yang paling membantu
Seseorang, tolong jadikan itu artikel wiki pixi. Saya pikir saya akan menjelaskan hal itu untuk yang kesepuluh kalinya, kita membutuhkan tutorial tentang hal itu