<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                一,CCActionManager 管理所有節點動作的對象 來看看打飛機里面的一個onEnter 方法 ~~~ - (void)onEnter { [super onEnter]; //一定要注意添加此方法,否則將停留在開始界面 CGSize winSize = [[CCDirector sharedDirector] winSize]; [CCMenuItemFont setFontSize:20]; [CCMenuItemFont setFontName:@"Arial"]; CCMenuItemFont *startItem = [CCMenuItemFont itemWithString:@"開始游戲" block:^(id sender) { _isGameStarted = YES; CCMenuItem *item = (CCMenuItemFont*)sender; item.visible = NO; //6.spawn enemy after 1.0 sec [self performSelector:@selector(spawnEnemy) withObject:nil afterDelay:1.0f]; //7.enable accelerometer self.isAccelerometerEnabled = YES; //9.enable touch self.isTouchEnabled = YES; }]; startItem.position = ccp(winSize.width / 2, -winSize.height / 2); _startGameMenu = [CCMenu menuWithItems:startItem, nil]; _startGameMenu.position = CGPointZero; [self addChild:_startGameMenu]; //7 基本動作 從原來的位置移動到新的位置 id moveBy = [CCMoveBy actionWithDuration:1.0 position:ccp(0, winSize.height)]; //位置的移動 [_startGameMenu runAction:moveBy]; //開始移動 //8 和位置有關的基本動作 //1 CCActionManager [[[CCDirector sharedDirector] actionManager ] pauseTarget:_startGameMenu];//暫停 [self schedule:@selector(resumeStartMenuAction:) interval:1.0]; //等待十秒之后才能開始移動 //2CCAction 抽象類,幾乎所有的類都繼承該類 //3.CCFiniteTimeAction 該類為有限時間動作,包含CCActionInstant 瞬時動作 和CCActionInterval 區間動作,他們包含了很多不同的動作 //4 CCRepaeatForever 無限重復的動作 //5跟隨節點的動作CCFollow .可以替代Camera //6 CCSpeed 更還節點動作的速度。 // 7CCOrbitCamera 繼承與CCActionCamera 。使用球坐標系圍繞屏幕中心旋轉攝像機的視角 } - (void)resumeStartMenuAction:(ccTime)dt { [self unschedule:_cmd]; //停止當前動作 [[[CCDirector sharedDirector]actionManager] resumeTarget:_startGameMenu]; } ~~~ 二,基本動作:和位置相關的基本動作 ~~~ CGSize winSize = [[CCDirector sharedDirector] winSize]; CCSprite *plane = [CCSprite spriteWithFile:@"hero_1.png"]; plane.position = ccp(winSize.width/2, winSize.height/2); [self addChild:plane]; //2 moveBy 讓節點對象在一定時間內移動一定的像素值 ,這個是相對于原位置的 [plane runAction:[CCMoveBy actionWithDuration:3 position:ccp(50, 0)]]; //3 CCjumpTo [plane runAction:[CCJumpTo actionWithDuration:4 position:ccp(winSize.width, winSize.height) height:40 jumps:3]]; //4CCJumpBy 相對于原位置的移動 ,相對于原位置的偏移量為 100,0 [plane runAction:[CCJumpBy actionWithDuration:3 position:ccp(100, 0) height:100 jumps:4]]; //5CCBezier TO ccBezierConfig c = {ccp(300, 100),ccp(50, 50),ccp(-50, -50)}; //1.參數一 相對于原位置的偏移,2,3分別是貝塞爾曲線的兩個控制點 [plane runAction:[CCBezierTo actionWithDuration:3 bezier:c]]; //6 CCplace 將對象直接放到指定的位置 [plane runAction:[CCPlace actionWithPosition:ccp(10, 10)]]; ~~~ 三,和大小相關的基本動作 ~~~ //二 和大小相關的基本動作 // 1 CCScale TO、放大為原來的兩倍 [plane runAction:[CCScaleTo actionWithDuration:2 scale:2]]; //2 CCScale By 縮小相應的倍數 [plane runAction:[CCScaleBy actionWithDuration:3 scale:3]]; [plane runAction:[CCScaleBy actionWithDuration:3 scaleX:0.5 scaleY:0.5]]; //對象的高度和寬度的縮小 ~~~ 四:和旋轉有關的基本動作 ~~~ //三 和旋轉有關的動作 //1 CCRotate To ,by ,超過180逆時針旋轉,《180.順時針旋轉 [plane runAction:[CCRotateTo actionWithDuration:2 angle:290]]; ~~~ 五,和顯示有關的基本動作 ~~~ //四 和顯示有關的動作 //1 CCSHOW [plane runAction:[CCShow action]]; //2CCHide [plane runAction:[CCHide action]]; //3 切換uixiang的可視屬性 [plane runAction:[CCToggleVisibility action]]; //4 閃動一定的次數 [plane runAction:[CCBlink actionWithDuration:5 blinks:10]]; ~~~ 六,和透明度有關的基本動作 ~~~ //五 和透明度有關的動作 //1 CCFadeIn 透明度從0 -》 255 [plane runAction:[CCFadeIn actionWithDuration:8]]; //2 CCFadeOut 透明度 從255 - 》0 [plane runAction:[CCFadeOut actionWithDuration:5]]; //3 CCFadeto [plane runAction:[CCFadeTo actionWithDuration:4 opacity:90]]; ~~~ 七,和色彩有關的基本動作 ~~~ //六 和色彩有關的動作 //1 CCTintTO 在一定時間內將節點著色到某個特定的RGB值 [plane runAction:[CCTintTo actionWithDuration:3 red:100 green:0 blue:1]]; //2 CCTintBy 大致相同 ~~~ 八和翻轉相關的基本動作 ~~~ //七 和翻轉有關的動作 //1 CCFlipX ,CCFlipY [plane runAction:[CCFlipX actionWithFlipX:YES]]; ~~~ 2.組合動作 一,組合動作的類 ~~~ //八 組合動作 //1 Spawn 動作數據, [plane runAction:[CCSpawn actions:[CCFadeOut actionWithDuration:4],[CCScaleTo actionWithDuration:3 scale:2], nil]]; // 2 CCSequence 該組合可以按順序執行多個動作,也可以包含多個組合動作 //九 Ease 動作 使用ease動作修改的是節點內部動作的速度,而不是動作的執行時間 id easeAction = [CCEaseBackOut actionWithAction:[CCMoveTo actionWithDuration:2 position:ccp(100+winSize.width/2, winSize.height/2)]]; id action = [CCSequence actions:easeAction,[CCScaleTo actionWithDuration:2 scale:2], nil]; [plane runAction:action]; ~~~ 二,一個飛機俯沖的組合動作的代碼 ~~~ #pragma mark - private methods -(void) spawnEnemy{ //1. CGSize winSize = [CCDirector sharedDirector].winSize; CCSprite *enemySprite = [self getAvailableEnemySprite]; enemySprite.visible = YES; enemySprite.position = ccp( arc4random() % (int)(winSize.width - enemySprite.contentSize.width) + enemySprite.contentSize.width/2 , winSize.height + enemySprite.contentSize.height + 10); //2. float durationTime = arc4random() % 4 + 1; id moveBy = [CCMoveBy actionWithDuration:durationTime position:ccp(0,-enemySprite.position.y-enemySprite.contentSize.height)]; int choice = arc4random() % 4 + 1; id easeMoveBy = nil; switch (choice) { case 1: easeMoveBy = [CCEaseIn actionWithAction:moveBy]; break; case 2: easeMoveBy = [CCEaseExponentialIn actionWithAction:moveBy]; break; case 3: easeMoveBy = [CCEaseBounceIn actionWithAction:moveBy]; break; case 4: easeMoveBy = [CCEaseBackIn actionWithAction:moveBy]; break; default: break; } id callback = [CCCallBlockN actionWithBlock:^(id sender) { CCSprite *sp = (CCSprite*)sender; sp.visible = NO; sp.position = ccp(0,winSize.height + sp.contentSize.height + 10); CCLOG(@"reset enemy plane!"); }]; id action = [CCSequence actions:easeMoveBy,callback, nil]; CCLOG(@"enemySprite x = %f, y = %f",enemySprite.position.x, enemySprite.position.y); [enemySprite runAction:action]; //3. [self performSelector:_cmd withObject:nil afterDelay:arc4random()%3 + 1]; } ~~~ 三,延遲動作 ~~~ //十 延遲動作 id action = [CCSequence actions:[CCDelayTime actionWithDuration:3],[CCMoveTo actionWithDuration:2 position:ccp(100 + winSize.width/2, winSize.height)], nil]; [plane runAction:action]; ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看