local huamajiangGameStartAnimation = class("huamajiangGameStartAnimation", cc.UIView); function huamajiangGameStartAnimation:ctor () self:initViews(); end function huamajiangGameStartAnimation:initViews () if self.imgText then self.imgText:removeFromParent(); end if self.imgBg then self.imgBg:removeFromParent(); end local visibleSize = cc.Director:getInstance():getVisibleSize(); local imgBg = cc.Sprite:create(); imgBg:setTexture("mj_huamajiang/res/zy_fangjian/anim/gamestart/huamajiang_bg_gamestart.png"); imgBg:setPosition(cc.p(visibleSize.width / 6, visibleSize.height / 2)); imgBg:setOpacity(0); self:addChild(imgBg); self.imgBg = imgBg; local imgText = cc.Sprite:create(); imgText:setTexture("mj_huamajiang/res/zy_fangjian/anim/gamestart/huamajiang_img_gamestart.png"); imgText:setPosition(cc.p(visibleSize.width * 5 / 6, visibleSize.height / 2)); imgBg:setOpacity(0); self:addChild(imgText); self.imgText = imgText; end function huamajiangGameStartAnimation:play () if not (self.imgBg and self.imgText) then return ; end local acMove1 = self:createMoveAction(); local acMove2 = self:createMoveAction(); local acMoveCallback = cc.CallFunc:create(handler(self, self.onMoveFinished)); local acDelay = cc.DelayTime:create(0.7); local acCallback = cc.CallFunc:create(handler(self, self.onPlayAnimFinished)); local acSeq = cc.Sequence:create(acMove2, acMoveCallback, acDelay, acCallback); self.imgBg:runAction(acMove1); self.imgText:runAction(acSeq); end function huamajiangGameStartAnimation:createMoveAction () local visibleSize = cc.Director:getInstance():getVisibleSize(); local acMoveTo = cc.MoveTo:create(0.5, cc.p(visibleSize.width / 2, visibleSize.height / 2)); local acFadeIn = cc.FadeIn:create(0.5); local acSpawn = cc.Spawn:create(acMoveTo, acFadeIn); return acSpawn; end --- huamajiangGameStartAnimation:onMoveFinished 移动完成动画 function huamajiangGameStartAnimation:onMoveFinished () -- 移动完成,可能要显示繁星点点 if not self.imgText then return ; end local size = self.imgText:getContentSize(); math.randomseed(tostring(os.time()):reverse():sub(1, 6)) function createStar () local x = math.random(size.width * 3 /4); local y = math.random(size.height * 3 / 4); local sprite = cc.Sprite:create("mj_huamajiang/res/zy_fangjian/anim/gamestart/huamajiang_img_star1.png"); sprite:setPosition(cc.p(x, y)); sprite:setScale(math.random(15, 25) * 0.1); self.imgText:addChild(sprite); local acRotate = cc.RotateTo:create(0.5, 360); local acFadeIn = cc.FadeIn:create(0.5); local acFadeOut = cc.FadeOut:create(0.5); local acSeq = cc.Sequence:create(acFadeIn, acFadeOut); local acSpawn = cc.Spawn:create(acRotate, acSeq); local acRepeat = cc.RepeatForever:create(acSpawn); sprite:runAction(acRepeat); end for i = 1, 6 do createStar(); end end function huamajiangGameStartAnimation:onPlayAnimFinished( ) self:stop(); end function huamajiangGameStartAnimation:stop () self:setVisible(false); self:removeFromParent(); self = nil; end return huamajiangGameStartAnimation;