【发布时间】:2015-08-10 06:20:02
【问题描述】:
我正在为我的游戏创建一个虚拟游戏手柄,它有一个带有圆形图像的主 SKSpriteNode 和四个带有图像的子节点(上、下、左、右)。当我使用默认大小时,它看起来很完美,但它的大小很大,当我尝试调整主圆 SKSpriteNode 的大小时,它的所有子节点都比它的父节点大,我无法计算适合每个人的子节点的大小条件(主节点大小不同)。
-(id)initWithJoystickImage:(NSString *)baseImage
upImage:(NSString *)upImage downImage:(NSString *)downImage leftImage:(NSString *)leftImage rightImage:(NSString *)rightImage
{
if((self = [super initWithImageNamed:baseImage]))
{
SKSpriteNode *up = [[SKSpriteNode alloc] initWithImageNamed:upImage];
up.position = CGPointMake(0, up.frame.size.height/2);
[self addChild:up];
SKSpriteNode *down = [[SKSpriteNode alloc] initWithImageNamed:downImage];
down.position = CGPointMake(0, -down.frame.size.height/2);
[self addChild:down];
SKSpriteNode *right = [[SKSpriteNode alloc] initWithImageNamed:rightImage];
right.position = CGPointMake(right.frame.size.width/2, 0);
self.size.height/2.5);
[self addChild:right];
SKSpriteNode *left = [[SKSpriteNode alloc] initWithImageNamed:leftImage];
left.position = CGPointMake(-left.frame.size.width/2, 0);
self.size.height/2.5);
[self addChild:left];
}
return self;
}
使用默认尺寸时
根据设备大小调整大小时
编辑1:添加操纵杆和调整大小代码
Joystick *joystick = [[Joystick alloc] initWithJoystickImage:@"cricle.png" upImage:@"up.png" downImage:@"down.png" leftImage:@"left.png" rightImage:@"right.png"];
joystick.size=CGSizeMake(DeviceHeight/3, DeviceHeight/3);
joystick.position=CGPointMake(DeviceWidth/2-joystick.frame.size.width/2, -DeviceHeight/2+joystick.frame.size.height/2);
【问题讨论】:
-
如何调整节点的大小?
[SKAction scaleTo]?
标签: ios objective-c sprite-kit skspritenode