게임용 캔버스에 타일 맵을 그려 넣으려고하는 주 javascript 파일이 있는데 실제로지도 등을 그려 넣는 파일이 포함되어 있지만 Firebug에서이 오류가 발생합니다. 캔버스에 그릴 때 콘솔 오류가 발생했습니다
ctx.drawImage(mapTiles[map[x][y]],x*tilesize, y*tilesize);
내 level.js 파일을 호출 주요 JS
은 다음과 같습니다TypeError: Value could not be converted to any of: HTMLImageElement, HTMLCanvasElement, HTMLVideoElement. [Break On This Error]
$(document).ready(function(){
var canvas = document.getElementById("TBG");
var context = canvas.getContext("2d");
var ui = new Gui();
var level = new Level();
//----------Login/Register Gui --------------
$('#TBG').hide();
$('#load-new').hide();
$('#reg').hide();
$('#login').hide();
//if login_but is clicked do ui.login function
$('#login_but').click(ui.login);
//if reg_but is clicked do ui.register function
$('#reg_but').click(ui.register);
$('#new_but').click(function(){
game_settings("new");
});
$('#load_but').click(function(){
game_settings("load");
});
//if login_sumbit button is clicked do ui.login_ajax function
$("#login_submit").click(ui.login_ajax);
$("#reg_submit").click(ui.register_ajax);
$("#welcome").on("click", "#logout_but", ui.logout);
//____________________________________________
//Initialisation of game
function game_settings(state){
if(state == "load"){
ui.load_game();
//do ajax call to load user last save
//level.level_init(0,1);
draw();
}
else{
//set beginning params
//Change screens
ui.new_game();
alert("new game");
}
}
function draw() {
context.clearRect(0,0,canvas.width,canvas.height);
level.draw(context);
setTimeout(draw, 30);
}
// End Loop
});
및 코드 (level.js)이 라인은 다음과 같습니다 파일 :
function Level(){
var tilesize = 32;
var map = 0;
var mapTiles = [];
// var saved_level = level;
//var saved_location = location;
map = [
[1,1,1,1,1,1,1,1,1,1],
[2,2,2,2,2,2,2,2,2,2]
];
for (x = 1; x <= 256; x++) {
var imageObj = new Image(); // new instance for each image
imageObj.src = "images/prototype/"+x+".jpg";
mapTiles.push(imageObj);
}
this.draw = function(ctx) {
for (var x = 0; x <= 31; x++){
for (var y = 0; y <= 31; y++){
ctx.drawImage(mapTiles[map[x][y]],x*tilesize, y*tilesize);
}
}
};
}
혹시이 오류가 발생 했습니까?
와 나는 문제, 감사 톰를 수정 얼마나
소크라테스 너야? : p 답변 : 우리가 실제로 설정 한 요소의 수를 초과하는지도 배열 요소에 액세스하려고합니다. (추신 : 안녕하세요, Michael Geary, 나는 대학에서 소크라테스 방법을 사용하여 배웠을 정도로 오래되었습니다!) – markE
Plato! 너를 얼마나 기쁘게, 옛 친구. 그렇습니다. 또 다른 방법은 "mapTiles [undefined]'가 평가하는 대상은 무엇입니까?" 그리고 우리 친구 인 Aristotle은 어때? 최근에 그에게서 들었습니까? 저는 스택 오버플로가 무엇을 의미하는지 물어보고 싶었습니다. –
:) .................... – markE