HTML5 kanvasını kullanarak basit bir JavaScript oyunu üzerinde çalışıyorum. Bazı x/y konumlarını ve benzeri kurulum görevlerini tüm çizer kanvas drawImage resim çizmiyor
- init() nesneleri başlatır playfield kullanılacak fonksiyonu: Bu içeren çok tipik oyun döngü düzmece Bu proje dokümanına ben init() fonksiyonunun sonunda setInterval çağrısını iken her 25 milisaniyede
çizmek aramaya
Onlar gibi bir kaç kez çalıştırın() çizmek izin verirsek hale yapmak ...
var previewDraw = setInterval(draw, 25);
var stopPreviewDraw = function() { clearInterval(previewDraw) }
setTimeout(stopPreviewDraw, 100)
... ama o kadar aptal görünüyor. Neden tek bir çağrı yapmak için() çalışır? Nesneleri Chrome ve Firefox konsollarında kaydettim ve onlar hakkındaki her şey iyi görünüyor; zaten uygun img src yollarına sahipler ve x/y değerlerini başlatmak için kullanılabilecek yeni Image() 'e atamak ve sonra benim canvas.2dcontext.drawImage() yöntemini kullanarak çağırmak için kullanılabilir.
Bunu giderken Chrome 6 ve Firefox 3.6.10'da test ediyorum ve ikisi de bu davranışla beni şaşırtıyor. Herhangi bir hata veya sorunlar Chrome'un konsolunda göstermek ama Firefox bu atmak sadece bir kez berabere() çağırarak denerseniz:
yakalanmamış istisna: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIDOMCanvasRenderingContext2D: [İstisna ... "Bileşen hata kodu döndürdü. drawImage]" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" konum: "JS çerçeve :: http://localhost/my-game-url/ :: DrawItem :: hat 317" veriler: no] My Google o hata arar
bozuk bir resim önermek, ancak Hepsi önizleme ve Photoshop'ta sorunsuz açılır.
DUH ... hayır, bu bir uygulama projesi olduğu için ve öğrendiğim yeni şeylere odaklandığımdan beri, bariz olanı tamamen unutmuştum (sadece sayfanın alt kısmında satır içi çalışıyordum). Çok sayıda resim varlıkları olmadığından ve bunların hepsi küçük olduğundan, window.onload öğesinde init() işlevi bu işlemi halleder. Çok teşekkürler Jakub. – RwwL
Nihayetinde, tüm harici görüntüleri, yine de Veri URL'leriyle değiştireceğim. – RwwL