【发布时间】:2014-07-08 13:54:21
【问题描述】:
我正在尝试为游戏画一个基本的基础,让我的精灵在上面运行。 不过好像占了屏幕高度的1/3,但是地面太短了。
我的 GameScene.sks 已更改为 568x320(横向,iPhone 5/5S)
这是我当前的代码
func initMainGround() {
let gSize = CGSizeMake(self.size.width/4*3*2, 120);
let ground = SKSpriteNode(color: SKColor.brownColor(), size: gSize);
ground.name = gName; //Ground
ground.position = CGPointMake(0, 0);
ground.physicsBody = SKPhysicsBody(rectangleOfSize: gSize);
ground.physicsBody.restitution = 0.0;
ground.physicsBody.friction = 0.0;
ground.physicsBody.angularDamping = 0.0;
ground.physicsBody.linearDamping = 0.0;
ground.physicsBody.allowsRotation = false;
ground.physicsBody.usesPreciseCollisionDetection = true; //accurate collision
ground.physicsBody.affectedByGravity = false;
ground.physicsBody.dynamic = false;
ground.physicsBody.categoryBitMask = gBitmask; // 0x1 << 0
ground.physicsBody.collisionBitMask = pBitmask; //0x1 << 1 playerCategoryBitmask
self.addChild(ground);
}
NSLog(String(self.size.height)) 返回320.0 这很好。
但是为什么SKSpriteNode画错了呢?
将地面高度设置为320 仅占屏幕的一半,尽管横向屏幕的高度为 320。
【问题讨论】:
-
CGPointMake(0, 0) 是场景的左下角。 CGPointMake(CGRectGetMidX(self.frame),CGRectGetMidY(self.frame)) 是场景的中心。 developer.apple.com/library/ios/documentation/GraphicsAnimation/…
-
这个函数只是在开始时添加一个地面供玩家奔跑,之后会出现更多地面供玩家跳跃。不需要放在中间
标签: ios swift sprite-kit