打飞机01-游戏框架的搭建

打飞机01-游戏框架的搭建_第1张图片
游戏界面.gif

游戏框架的搭建

1.游戏背景
2.飞机和喷气动画

一、添加游戏背景

首先要注意的是self.size和self.view.frame.size这两个尺寸是不相同的,以前上课的时候没有分清楚,结果添加的背景总是尺寸不对,为了简便的解决这个问题直接在didMoveToView中添加这样的一行代码

-(void)didMoveToView:(SKView *)view {

    self.size = self.view.frame.size;


    [self backgroundNode];

    [self planeNode];
    
}

接下来设置背景

-(void)backgroundNode {
    SKSpriteNode *bg = [SKSpriteNode spriteNodeWithImageNamed:@"background"];

    //背景图片在最底层,所以设置zPosition = 0
    bg.zPosition = 0;

    //为了防止background.png和屏幕尺寸不同,直接设置图片尺寸和屏幕一样大小
    bg.size = self.size;
    
    //这里设置锚点和bg的坐标都为0点
    bg.position = CGPointZero;
    bg.anchorPoint = CGPointZero;

    [self addChild:bg];
}

附上一张锚点的图片

打飞机01-游戏框架的搭建_第2张图片
锚点图片

二、飞机以及喷气动画

-(void)planeNode {
    
    SKSpriteNode *plane = [SKSpriteNode spriteNodeWithImageNamed:@"hero1"];
    plane.name = @"plane";

    //plane位于背景的上层,所以设置zPosition = 1
    plane.zPosition = 1;
    
    //调整一下飞机的大小和初始位置
    plane.xScale = 0.6;
    plane.yScale = 0.6;
    plane.position = CGPointMake(self.size.width/2, 50);
    
    [self addChild:plane];
    
    
 //喷气动画,因为这里只有两张纹理图片,不超过3张不建议使用for循环,超过3张在后续会提到
    //首先将两张图片转换成纹理图片
    SKTexture *planeTexture1 = [SKTexture textureWithImageNamed:@"hero1"];
    SKTexture *planeTexture2 = [SKTexture textureWithImageNamed:@"hero2"];

    //接着将这两张纹理图片添加到数组
    NSArray *textureArr = [NSArray arrayWithObjects:planeTexture1, planeTexture2, nil];

    //将这个纹理数组转换成每张图片显示0.2s的动作
    SKAction *textureAct = [SKAction animateWithTextures:textureArr timePerFrame:0.2];

    //无限循环这个动作
    SKAction *repeatTexture =[SKAction repeatActionForever:textureAct];

    //然后再让plane执行这个动作就会持续喷气这个动画
    [plane runAction:repeatTexture];
    
}

你可能感兴趣的:(打飞机01-游戏框架的搭建)