首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SKPhysicsBody和位置

SKPhysicsBody和位置
EN

Stack Overflow用户
提问于 2014-07-18 00:34:28
回答 1查看 1.8K关注 0票数 0

为什么我的SKPhysicsBody定位在离它连接的SKSpriteNode很远的地方?这就是我创建物理体的方式:

代码语言:javascript
复制
self.pin = [SKSpriteNode spriteNodeWithImageNamed:[IPGameManager sharedGameData].world.player.ship.type];
self.pin.position = CGPointMake([IPGameManager sharedGameData].world.player.location.xCoordinate, [IPGameManager sharedGameData].world.player.location.yCoordinate);
self.pin.userInteractionEnabled = NO;
NSLog(@"Pin width: %f", self.pin.size.width);
NSLog(@"Pin position: %f %f", self.pin.position.x, self.pin.position.y);
self.pin.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:self.pin.size.width * 0.5 center:self.pin.position];
self.pin.physicsBody.dynamic = YES;
self.pin.physicsBody.allowsRotation = NO;
self.pin.physicsBody.friction = 0.0;
self.pin.physicsBody.linearDamping = 0.0;

通过设置skView.showsPhysics = YES;,它显示了物理体,圆圈远离了SKSpriteNode。知道为什么吗?

EN

回答 1

Stack Overflow用户

发布于 2014-07-18 03:02:28

您正在将physicsBody的中心位置设置为self.pin的CGPoint值,该值是self.pin的父节点坐标空间中的一个点。如果您希望物理实体仅在中心居中,则可以使用0,0位置作为中心(或者根本不使用带中心的方法),或者如果移动了self.pin的锚点位置,则使用偏移点:

代码语言:javascript
复制
[SKPhysicsBody bodyWithCircleOfRadius:self.pin.size.width * 0.5 center:CGPointZero];
//OR
[SKPhysicsBody bodyWithCircleOfRadius:self.pin.size.width * 0.5 ]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24809003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档