這裏的第一次海報,但絕對不是第一次讀者。HTML 5帆布圖像渲染
我的問題直接針對這部分代碼。目前我正在學習HTML 5的畫布是如何工作的,並正在爲大學項目設計自己的RPG風格遊戲。環顧四周後,我在這個傢伙的博客上發現了一些很好的教程,我已經遵循了他的代碼,並且三重檢查了它,但圖像現在顯示出來了。
我試圖在drawMap()函數中調用圖像之前和之後放置alert()。它在繪製圖像之前起作用,但不在之後,導致我相信這是與我的圖像渲染有關。有人可以檢查我的代碼,看看發生了什麼?這讓我瘋狂!
<canvas id="game-viewport" width="760" height="440"></canvas>
<script>
window.onload = init;
var map = Array([0,0],[0,0],[0,0],[0,0]);
var tileSize = 40;
tileTypes = Array("grass.png");
tileImage = new Array();
var loaded = 0;
var loadTimer;
function loadImage(){
for(i = 0; i < tileTypes.length; i++){
tileImage[i] = new Image();
tileImage[i].src = "./game/lib/icons/own_icons/" + tileTypes[i];
tileImage[i].onload = function(){
loaded++;
}
}
}
function loadAll(){
if(loaded == tileTypes.length){
clearInterval(loadTimer);
drawMap();
}
}
function drawMap(){
var mapX = 80;
var mapY = 10;
for(i = 0; i < map.length; i++){
for(j = 0; j < map[i].length; j++){
var drawTile = map[i][j];
var xPos = (i - j) * tileSize;
var yPos = (i + j) * tileSize;
ctx.drawImage(tileImage[drawTile], xPos, yPos);
}
}
}
function init(){
var canvas = document.getElementById('game-viewport')
var ctx = canvas.getContext('2d');
loadImage();
loadTimer = setInterval(loadAll, 100);
}
</script>
是否引發任何異常? (在Chrome中,選擇扳手 - >工具 - > Javascript控制檯。在Firefox中,使用工具 - > Web控制檯) – 2012-02-13 00:00:27