所以我正在制作一个简单的 cocos2d 平台游戏,但我遇到了一些奇怪的碰撞。我有它,所以当你跳跃并撞到你上方的一个街区时,它会停止向上的力量,你开始下落。然而,块寄存器的左侧和右侧有很大不同。我已经在双方都加大了命中检测以测试发生了什么。块的右侧总是可以正常工作并响应增加。然而,左侧从不响应增加。这听起来可能令人困惑,所以如果你仍然不确定我的意思,我可以在上面发布一个快速的 youtube 视频并在此处链接。
这是我正在使用的代码:
-(CGPoint) tileCoorForPosition: (CGPoint)position{
int x = floor((position.x + tilesMoved) / 40);
int y = floor((((self.tileMap.mapSize.height * 40) - position.y) / 40));
return ccp(x,y);
}
-(CGPoint) positionForTileCoord:(CGPoint) position{
int x = position.x * 40 - tilesMoved;
int y = (((self.tileMap.mapSize.height - position.y - tilesMovedUp)* 40));
return ccp(x,y);
}
CGPoint tl_playerPosition = [self tileCoorForPosition:ccp(self.character.position.x - self.character.contentSize.width/2, self.character.position.y + self.character.contentSize.height*2)];
CGPoint tr_playerPosition = [self tileCoorForPosition:ccp(self.character.position.x + self.character.contentSize.width/2, self.character.position.y + self.character.contentSize.height*2)];
if(tr_GID || tr_GID || tm_GID || tml_GID || tmr_GID)
{
jumpForce = -1;
jumpForce += gravity;
}