正在地图阵列顶部加载播放器
Loading player on top of map array
//getting canvas element and setting context
var canvas = document.getElementById("canvas");
var context = canvas.getContext("2d");
//setting canvas hight & width
canvas.width = 800;
canvas.height = 608;
canvas.style.width = canvas.width + "px";
canvas.style.height = canvas.height + "px";
//Y
//|
//|
//. _ _ X
//
// X Y W H
//map array
var map = [
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1],
[1,2,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1],
[1,2,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1],
[1,2,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1],
[1,2,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1],
[1,2,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1],
[1,2,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1],
[1,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,1],
[1,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,1],
[1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,2,1],
[1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,2,1],
[1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,2,1],
[1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,2,1],
[1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,2,1],
[1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,2,1],
[1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,2,1],
[1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
];
var x = 0;
var y = 0;
var imgSize = 32;
//images
var tiles = new Image();
var player = new Image();
//image source
tiles.src = "images/tileMap.png";
function init() {
drawMap();
drawPlayer();
}
function drawMap() {
for (j = 0; j <= map.length; j++) {
for (i = 0; i < map[1].length; i++) {
if (map[j][i] == 1) {
context.drawImage(tiles,0,0,imgSize,imgSize,x,y,imgSize,imgSize);
} else if (map[j][i] == 2) {
context.drawImage(tiles,imgSize,0,imgSize,imgSize,x,y,imgSize,imgSize);
} else if (map[j][i] == 3) {
context.drawImage(tiles,imgSize*2,0,imgSize,imgSize,x,y,imgSize,imgSize);
}
x = x + imgSize;
}
x = 0;
y = y + imgSize;
}
}
function drawPlayer() {
context.drawImage(tiles,imgSize*3,0,imgSize,imgSize,0,0,imgSize,imgSize);
}
你好!我在这里的地图阵列顶部加载玩家时遇到了问题,不知道是否有人能指出我做错了什么,谢谢!
我在控制台中也有一个错误"未捕获的类型错误:无法读取未定义的属性"0"。
此外,当我在地图工作之前加载播放器时,会发生一些奇怪的事情。我移除了播放的瓷砖,它就出现了。但当我在地图后面加载播放器时,它不会出现。我猜这与错误有关。
您的"未捕获类型错误"出现是因为您这样做:
for (j = 0; j <= map.length; j++) {
map[j][i]...
}
如果您的地图包含3个元素。您可以使用map[0]、map[1]和map[2]访问每个元素,但map[3]将返回undefined。在您的循环中,以我的示例为例,j从0变为3,并尝试访问map[3]。map[3]返回undefined,因此您无法访问undefine的属性[i]。
您必须编写for (j = 0; j < map.length; j++) {
相关文章:
- 单击时选择2(未选中),显示加载微调器javascript
- 正在Ajax调用上加载微调器
- 在引导轮播加载之前显示加载微调器
- 提交youtube播放列表id并从id加载播放列表
- 加载两个脚本块(使用lab.js作为加载管理器)
- 如何在ajax请求中显示加载微调器
- angular未能加载检查器中的资源错误
- UI 路由加载微调器在没有$timeout的情况下不起作用
- 如果在 Chrome 中点击链接,加载微调器将保持打开状态
- 在 jQuery Mobile 1.1 中显示大量处理之前的加载微调器
- 加载微调器在渲染时卡住
- 在谷歌阿贾克斯中显示页面加载微调器
- jQuery 的窗口加载包装器
- 加载微调器上的 AJAX
- 有效的 Adobe Scene7 URL 生成“加载播放器时出错:找不到可播放的源”
- 关于使用YouTube播放器API加载播放列表
- Jwplayer 闪烁“加载播放器时出错:无法加载播放器配置”
- Wordpress音频播放器和平滑状态.在新页面重新加载播放器时调用什么回调函数
- 等待页面加载或等待X秒后再加载播放器
- 正在地图阵列顶部加载播放器