我是cocos2d的新手,我在java中的eclipse中使用cocos2d lib制作游戏。我想做一个像素碰撞。我的游戏是一个2D游戏,一个球在迷宫中运行,我想检测迷宫墙和球之间的碰撞,我不能在CCSprite中使用getpixel。那我该怎么办呢? CCSprite.getpixel并不存在。我只能检查两个精灵之间的边界框碰撞。但是我不知道如何逐点像素比较像素。
public boolean isCollisionDetected(CCSprite maze,CCSprite ball)
{
CGRect bounds1 = maze.getBoundingBox();
CGRect bounds2 = ball.getBoundingBox();
if( CGRect.intersects(bounds1, bounds2) ){
/* i want to do pixel detection in here,actually i want to do something like this
for (int i = collisionBounds.left; i < collisionBounds.right; i++) {
for (int j = collisionBounds.top; j < collisionBounds.bottom; j++) {
int sprite1Pixel = getBitmapPixel(sprite1, i, j);
int sprite2Pixel = getBitmapPixel(sprite2, i, j);
if( isFilled(sprite1Pixel) && isFilled(sprite2Pixel)) {
return true;
}*/
return true;
}
return false;
}
但是Cocos2d,精灵并不支持这种方法。
答案 0 :(得分:0)
当涉及到圆的碰撞检测时,您必须将圆的半径与从圆心到另一个对象的距离进行比较。如果圆的半径等于或小于圆的中心与物体之间的距离,则存在碰撞。
我希望有所帮助。