我试图在我的画布游戏中实现像素完美碰撞检测,但是我似乎无法从我的精灵中获取像素信息。从画布精灵获取图像像素数据
我需要精灵的每个像素的x和y值,并且从我读过的内容中我使用getImageData()
方法来做到这一点。
然而,这不起作用:
this.sprite = new Image();
this.sprite.src = 'img/player.png';
console.log(this.sprite.getImageData());
我是否可能使用了错误类型的精灵?因为我在控制台收到此错误:
Uncaught TypeError: Object # has no method 'getImageData'
'getImageData()'是一种用于画布的方法,而不是图像。 “从我的精灵中获取像素信息”是什么意思? – romainberger 2013-03-13 20:03:25
框检测并不困难 - 基于像素形状的检测可能会非常耗费流程。 请参阅:http://stackoverflow.com/questions/8017541/javascript-canvas-collision-detection和:http://stackoverflow.com/questions/4871669/collision-detection-in-javascript-game – 2013-03-13 20:08:39
啊,我认为它可能是。我的意思是我想知道画布上x和y坐标的每个像素在我的精灵中。 @Diodeus,没有你想象的那么多。虽然它可以带有很多对象,但我一次只能在画布上放置几个精灵。此外,由于精灵不是矩形,因此盒检测对于此目的不够好。 – 2013-03-13 20:11:05