だから私は単純な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;
}