****************************************************************************
时间:2015-02-01
作者:Sharing_Li
****************************************************************************
在不同游戏中,经常有各种各样抽奖的环节,比如每次登入游戏的免费抽奖,卡牌游戏中的抽不同颜色的卡牌英雄,不同品质的武器抽奖,十连抽等等。今天给大家讲解一下,比较传统的抽奖方式,就是转转盘的抽奖,包含抽奖界面动画的设计和抽奖概率的设计。由于内容稍微有点多,所以分两篇进行讲解,本篇先介绍转盘抽奖方式的界面设计。废话不多说,先上效果图:

(。。。亮瞎了我的钛合金眼!)
来看看大致的功能需求有哪些:
1、一个转盘,一个指针,可以是转盘转,也可以是指针转,本篇是转盘转。
2、转盘在转的时候,速度是先快后慢,然后停止。
3、转盘在转的时候,各种粒子效果的动画,其中包括圆环状的闪光星星,还有以椭圆轨迹运动的小彗星。
4、抽中奖品后,弹出抽中奖品的动画。
看完功能需求,再来看看代码怎么写:
先看简单的初始化代码:
bool LotteryTurnTest::init()
{
if (!Layer::init())
{
return false;
}
auto bgSize = Director::getInstance()->getWinSize();
m_pBg = Sprite::create("LotteryTurn/bg_big.png");
m_pBg->setPosition(Vec2(bgSize.width / 2,bgSize.height / 2));
this->addChild(m_pBg);
//添加标题
auto plabel = Label::createWithTTF("LotteryTurnTest","fonts/Marker Felt.ttf",30);
plabel->setPosition(Vec2(bgSize.width / 2,bgSize.height * 0.9));
m_pBg->addChild(plabel);
//添加转盘
m_turnBg = Sprite::create("LotteryTurn/turn_bg.png");
m_turnBg->setPosition(Vec2(bgSize.width / 2,bgSize.height / 2));
m_pBg->addChild(m_turnBg);
//添加指针
auto arrNor = Sprite::create("LotteryTurn/turn_arrow.png");
auto arrSel = Sprite::create("LotteryTurn/turn_arrow.png");
arrSel->setColor(Color

本文介绍了如何使用cocos2dx实现转盘抽奖的界面和动画效果,包括转盘转动的减速效果、粒子效果、奖品显示动画,以及椭圆轨迹粒子效果的实现。通过创建Action和自定义椭圆路径类,实现了类似真实转盘的抽奖体验。
最低0.47元/天 解锁文章
277

被折叠的 条评论
为什么被折叠?



