SpriteKit框架之鴻蒙初辟



SpriteKit框架簡(jiǎn)介


Sprite Kit是一個(gè)從iOS7系統(tǒng)開始提供的一個(gè)2D游戲框架,在發(fā)布時(shí)被內(nèi)置于iOS 7 SDK中.Sprite Kit中的對(duì)象被稱為"材料對(duì)象"(簡(jiǎn)稱Sprite),支持入視頻,濾鏡,遮罩等特效,并且內(nèi)置了物理引擎庫.


SpriteKit框架優(yōu)點(diǎn)和缺點(diǎn)


在iOS平臺(tái)中,通過Sprite Kit制作2D游戲有以下三個(gè)優(yōu)點(diǎn).

  • 沒至于iOS,因此不需要再人外下載類庫也不會(huì)產(chǎn)生外部依賴,他是拼過官方編寫的,所以可以確信它會(huì)被良好支持和持續(xù)更新.
  • 為紋理貼紙集合粒子提供了內(nèi)置的工具.
  • 可以讓你做一些用其他框架河南甚至不可能做到的事情,比如把視頻當(dāng)做Sprite來使用或者實(shí)現(xiàn)很炫的圖片效果和遮罩.
同時(shí),通過Sprite Kit制作2D游戲也有以下三個(gè)缺點(diǎn).
  • 如果使用了Sprite Kit框架,那么游戲就會(huì)被限制在iOS系統(tǒng)上.可能永遠(yuǎn)也不會(huì)知道自己的游戲是否會(huì)在Android平臺(tái)上變成熱門.
  • 因?yàn)镾prite Kit框架剛剛起步,所以,現(xiàn)階段坑你沒有其他框架那么多的釋永信,比如Cocos2D的某些細(xì)節(jié)功能.
  • 不能直接編寫OpenGL代碼.


SpriteKit框架的Hello World


看到上面對(duì)SpriteKit的介紹,我們對(duì)SpriteKit框架有了大體的了解,那么接下來就來進(jìn)行我們的SpriteKit框架的Hello World吧!

首先,打開Xocde.command+Shift + N創(chuàng)建一個(gè)新的Game工程.

設(shè)置一下屏幕支持方向(可不設(shè)置),然后直接command +R運(yùn)行一下看一下運(yùn)行效果.

演示圖

上面只是系統(tǒng)自帶的Hello World,我的世界豈容他人主宰?我們需要自己改造自己的世界.那么首先要改造我們的游戲世界,就要先了解這個(gè)游戲世界的構(gòu)成.main函數(shù)以及AppDelegate就不說了,跟OC其他的一樣.說下游戲的主入口GameViewController這個(gè)類.

首先在GameViewController的.h中導(dǎo)入了SpriteKit的框架.接下來看一下GameViewController的 - (void)viewDidLoad 方法都進(jìn)行了什么操作.如下代碼.注釋都加的很詳細(xì)了,很簡(jiǎn)單就是在方法中顯示FPS的值已經(jīng)精靈個(gè)數(shù),添加上GameScene這個(gè)場(chǎng)景.

- (void)viewDidLoad
{
    [super viewDidLoad];

    SKView * skView = (SKView *)self.view;

    skView.showsFPS = YES;//展示FPS值

    skView.showsNodeCount = YES;//顯示精靈個(gè)數(shù)

    skView.ignoresSiblingOrder = YES;//設(shè)置層次
    
    GameScene *scene = [GameScene nodeWithFileNamed:@"GameScene"];

    scene.scaleMode = SKSceneScaleModeAspectFill;
   
    [skView presentScene:scene];//添加場(chǎng)景
}

了解完GameViewController之后,我們就要著手改造我們的游戲世界了,我們需要?jiǎng)?chuàng)建一個(gè)SKScene對(duì)象(場(chǎng)景),SKScene對(duì)象就類似于OC中的View,是一個(gè)視圖,但是在SpriteKit中叫場(chǎng)景.如圖所示.

創(chuàng)建完成場(chǎng)景之后,我們?cè)贕ameViewController里面添加MainSence,如下代碼.

#import "GameViewController.h"
#import "MainScene.h"

#define KMainHeight self.view.frame.size.height
#define KMainWidth self.view.frame.size.width

@implementation GameViewController

- (void)viewDidLoad
{
    [super viewDidLoad];

    // Configure the view.
    SKView * skView = (SKView *)self.view;
    skView.showsFPS = YES;
    skView.showsNodeCount = YES;
    /* Sprite Kit applies additional optimizations to improve rendering performance */
    skView.ignoresSiblingOrder = YES;
    
    
    MainScene *mainScene = [[MainScene alloc]initWithSize:CGSizeMake(KMainWidth, KMainHeight)];
    
    // Present the scene.
    [skView presentScene:mainScene];
}

模擬器器展示效果如下

上面的場(chǎng)景就是空的白板,現(xiàn)在我們就需要重寫場(chǎng)景中的初始化方法,添加我們的第一個(gè)精靈SKSpriteNode對(duì)象,完成我們的Hello World.

代碼如下.

-(instancetype)initWithSize:(CGSize)size{

    if (self = [super initWithSize:size]) {
        
        self.backgroundColor = [SKColor lightGrayColor];//設(shè)置背景顏色
        
        SKSpriteNode *helloNode = [SKSpriteNode spriteNodeWithImageNamed:@"helloWorld.png"];//用圖片初始化精靈
        
        helloNode.position = CGPointMake(CGRectGetMidX(self.frame),
                                         CGRectGetMidY(self.frame));//設(shè)置精靈的position
        
        [self addChild:helloNode];//把精靈添加到場(chǎng)景上
        
        
    }

    return self;

}

演示效果圖
注意:上面的代碼中設(shè)置場(chǎng)景的背景色用到了SKColor,這其實(shí)是一個(gè)宏,在iOS就對(duì)應(yīng)UIColor,在OS X則對(duì)應(yīng)的是NSColor.


小結(jié)


這篇博客僅僅是SpriteKit游戲開發(fā)的開始,后面我會(huì)對(duì)SpriteKit框架中的技術(shù)點(diǎn)逐一探討,最后附上Demo.完成此次SpriteKit框架的HelloWorld之路.

-->SpriteKit框架HelloWorld的Demo ??
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子计技,更是在濱河造成了極大的恐慌寄猩,老刑警劉巖晃洒,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绪穆,死亡現(xiàn)場(chǎng)離奇詭異林说,居然都是意外死亡恕出,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門嵌施,熙熙樓的掌柜王于貴愁眉苦臉地迎上來饲化,“玉大人,你說我怎么就攤上這事吗伤〕钥浚” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵牲芋,是天一觀的道長撩笆。 經(jīng)常有香客問我,道長缸浦,這世上最難降的妖魔是什么夕冲? 我笑而不...
    開封第一講書人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮裂逐,結(jié)果婚禮上歹鱼,老公的妹妹穿的比我還像新娘。我一直安慰自己卜高,他們只是感情好弥姻,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著掺涛,像睡著了一般庭敦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上薪缆,一...
    開封第一講書人閱讀 50,050評(píng)論 1 291
  • 那天秧廉,我揣著相機(jī)與錄音,去河邊找鬼。 笑死疼电,一個(gè)胖子當(dāng)著我的面吹牛嚼锄,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蔽豺,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼区丑,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了修陡?” 一聲冷哼從身側(cè)響起沧侥,我...
    開封第一講書人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎魄鸦,沒想到半個(gè)月后正什,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡号杏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了斯棒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片盾致。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖荣暮,靈堂內(nèi)的尸體忽然破棺而出庭惜,到底是詐尸還是另有隱情,我是刑警寧澤穗酥,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布护赊,位于F島的核電站,受9級(jí)特大地震影響砾跃,放射性物質(zhì)發(fā)生泄漏骏啰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一抽高、第九天 我趴在偏房一處隱蔽的房頂上張望判耕。 院中可真熱鬧,春花似錦翘骂、人聲如沸壁熄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽草丧。三九已至,卻和暖如春莹桅,著一層夾襖步出監(jiān)牢的瞬間昌执,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留仙蚜,地道東北人此洲。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像委粉,于是被迫代替她去往敵國和親呜师。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容

  • 寫在前面: 游戲開發(fā)菜鳥,本帥哥也是第一次研究SpriteKit,有很多都不懂,另外本文轉(zhuǎn)自王巍老師的博客點(diǎn)擊進(jìn)入...
    CoderZNB閱讀 4,191評(píng)論 4 19
  • Translate form http://www.raywenderlich.com/84434/sprite-...
    CenturyGuo閱讀 2,187評(píng)論 1 11
  • 在iOS中框架是一個(gè)目錄贾节,包含了共享資源庫汁汗,用于訪問該資源庫中儲(chǔ)存的代碼的頭文件,以及圖像栗涂、聲音文件等其他資源知牌。共...
    ch123閱讀 1,776評(píng)論 0 1
  • 轉(zhuǎn)自:iOS框架和服務(wù) 框架簡(jiǎn)介 一、什么是系統(tǒng)框架 在iOS中框架是一個(gè)目錄斤程,包含了共享資源庫角寸,用于訪問該資源庫...
    淇濱杜隆坦閱讀 1,363評(píng)論 0 8
  • 今天的案例也是針對(duì)回答“若寧家育兒群“里的一位媽媽的提問進(jìn)行的解答疚脐。經(jīng)過這位媽媽的同意亿柑,我們將它編寫成案例,...
    張忻閱讀 1,670評(píng)論 0 1