如今,咱們要設置開始菜單。這開始菜單會引導咱們進入遊戲場景。app
咱們將使用MainScene做爲咱們的主菜單,從項目模板中刪除的默認生成的標籤和背景圖像。學習
美術提供菜單背景的設計工做在3.5英寸(<= iPhone 4)和4英寸(> = iPhone 5)的屏幕。ui
拖動menubackground.png到屏幕上。經過保持默認錨點(0.5,0.5)和位置將背景圖片設置到屏幕中央,並設置相對父容器位置的 x和y爲父容器的 50%:this
定位Sprite的這種方式確保其始終居中 - 獨立的屏幕尺寸。spa
打開節點庫視圖(Node library View)在左窗格中拖動一個按鈕到舞臺(Stage)。如今你須要修改選擇的按鈕的一些設置。在右側面板的底部,你能夠選擇不一樣的按鈕狀態下的圖片。對於正常狀態和高亮狀態都選擇button.png圖片。不要擔憂,若是該按鈕如今看起來失真,您須要更改其餘設置:首選大小應爲(167.0,152.0)較好的尺寸須要的圖像大小的50%爲視網膜圖像。最後一步,刪除按鈕的「標題」title顯示:.net
咱們但願按下播放按鈕時,咱們的遊戲開始。因此,下面須要一個動做連接到被按下播放按鈕。選擇播放按鈕,打開第二右側面板上的選項卡。設定值selector爲play。是按下按鈕時將調用的方法的名稱。對於target選擇「Document root」。 這將致使這個方法被.CCB文件在根節點上調用:設計
如今在咱們打開XCode添加一些代碼來執行Play按鈕按下的動做以前還有最後一件事要檢查,這個play方法將在該.ccb文件的跟節點執行。因此,讓咱們看看,咱們其實有一個Objective-C類須要連接到這個.CCB文件的根節點。code
在時間軸上選擇根節點的CCNode,而後再次打開右側面板上的第二個選項卡,並檢查值自定義類領域, 該值應爲MainScene。這個值是由SpriteBuilder設置爲默認。orm
總得來講就是:當Play按鈕被按下後,MainScene類裏面的play方法被調用。最後,在SpriteBuilder中發佈此項目,以使更改推送到你的Xcode項目中!對象
如今是時候打開Xcode和實現咱們剛纔連接的方法。打開MainScene.m並添加這個虛擬實現play方法:
- (void)play { CCLOG(@"play button pressed"); }
如今,您已經準備好運行該項目。每當你觸摸回放按鈕,您應該看到「play button pressed」出如今控制檯:
如今,咱們須要建立一個新的場景。這是實際遊戲發生的地方(保持耐心,咱們將在下面實現遊戲的樂趣!)
到你的SpriteBuilder項目。建立名爲「gameplay」的一個新的.ccb文件。選擇Layer做爲根節點的類型。將大小設置爲960x320:
如今,再次打開Xcode和修改MainScene類中play方法。當按下播放按鈕,咱們但願遊戲被加載並顯示爲當前場景(gameplay場景)。使用CCBReader加載遊戲。使用CCDirector裝載並替換當前場景:
- ( void ) play { CCScene * gameplayScene = [ CCBReader loadAsScene: @"Gameplay" ]; [[ CCDirector sharedDirector ] replaceScene: gameplayScene ]; }
保存並運行。如今,當你點擊播放按鈕黑屏應該出現。
原文:
https://www.makegameswith.us/tutorials/getting-started-with-spritebuilder/menus/
趁熱打鐵,讓咱們立刻進入核心遊戲的開發部分!
讓咱們拖動一些美術資源到咱們新添加的Gameplay.ccb文件中,首先拖動background.png到舞臺中,設置位置和錨點爲(0,0),這將確保背景能很好的與場景的邊界對齊。
接下來,讓咱們添加咱們先前建立的熊。Spritebuilder讓你的.ccb文件能包含其餘的.ccb文件。這是一個超級強大的功能,咱們將普遍使用利用它。從節點庫(Node Library)中拖拽一個Sub File節點到舞臺(stage)中,並選擇Bear.ccb爲CCB File:
如今,咱們以前定義的熊精靈(bear sprite)就成了遊戲場景的一部分了!
如今添加ground.png到舞臺中,設置位置和錨點爲(0,0)。
最後拖動catapult.png和catapultarm.png到舞臺中構建彈射車,將投射臂放置在投射車身下面以達到圖層部分遮擋的效果,請注意:你可以經過改變屏幕下方時間軸中對象的順序來改變在場景中對象的Z軸順序。
如今,發佈您的SpriteBuilder項目,並在模擬器中運行它。在擊中播放按鈕後,你應該會看到相似這樣的東西:
咱們首先要實現一個簡單的射擊機制。在cocos2d中,物理對象只能是物理節點的子節點。因爲咱們發射的企鵝將要進行物理模擬,咱們如今要添加一個物理節點到咱們的場景中。
在Spritebuilder:
從節點庫中拖動PhysicsNode到場景中,並設置位置爲(0,0)。咱們將在代碼中實現企鵝的發射機制,因此咱們須要設置一些代碼鏈接。
首先,將Gameplay根節點(CCNode)的自定義類(custom class)屬性設置爲「Gameplay」。而後設置一個CCPhysicsNode的成員變量連接。咱們但願將它分配給文件的根變量(Doc root var)的變量名爲「_physicsNode」。 這就將這個物理節點連接到一個稱爲 「Gameplay」 類的「_physicsNode」變量:
如今,咱們就能夠從代碼中訪問這個物理節點。這使咱們可以將發射的企鵝添加到場景中。
如今,建立另外一個你須要的代碼鏈接,我們但願catapultarm經過一個叫作_catapultArm的變量能夠訪問Gameplay類。
在Xcode:
如今,咱們須要切換到Xcode中來實現發射方法。首先,建立一個Gameplay類,這個類必須是CCNode的子類,必須確保這個類被正確地建立在Sources文件夾下。添加成員變量_physicsNode和_catapultArm到Gameplay.m中:
@implementation Gameplay { CCPhysicsNode *_physicsNode; CCNode *_catapultArm; }
每當玩家觸摸屏時簡單的發射機制將被觸發。咱們將用代碼來實現這個觸摸操控。
添加這三種方法到Gameplay.m中實現激活觸摸操控和發射企鵝:
// is called when CCB file has completed loading - (void)didLoadFromCCB { // tell this scene to accept touches self.userInteractionEnabled = TRUE; } // called on every touch in this scene - (void)touchBegan:(UITouch *)touch withEvent:(UIEvent *)event { [self launchPenguin]; } - (void)launchPenguin { // loads the Penguin.ccb we have set up in Spritebuilder CCNode* penguin = [CCBReader load:@"Penguin"]; // position the penguin at the bowl of the catapult penguin.position = ccpAdd(_catapultArm.position, ccp(16, 50)); // add the penguin to the physicsNode of this scene (because it has physics enabled) [_physicsNode addChild:penguin]; // manually create & apply a force to launch the penguin CGPoint launchDirection = ccp(1, 0); CGPoint force = ccpMult(launchDirection, 8000); [penguin.physicsBody applyForce:force]; }
如今,當您運行您的應用程序,而後觸摸屏,你應該會看到企鵝在場景中飛揚:
原文:
https://www.makegameswith.us/tutorials/getting-started-with-spritebuilder/creating-two-levels/
在下一節中將介紹一個SpriteBuilder中很重要的概念Level(級別),主要講解如何製做Level!轉載請說明出處,wealpan將和您一塊兒學習Spritebuilder!謝謝你們!