头条文章模拟中国移动“熊掌门转转”抽奖

来源:趣玩责编:网络时间:2024-10-26 18:58:38

(1)奖牌设计:设计16枚奖牌,将每枚奖牌图形从所选奖牌开始按顺时针方向命名为“shp_prize_1——shp_prize_16”,样式如下。

图1 16枚奖牌设计

(2) 设计一个可立即滑过奖牌的滑块,并将该图形命名为“”。如下图

图2 奖牌滑块设计

(3)设计中心“开始抽奖”图形按钮:在如下图形样式中插入图形修改,并将其图形名称设置为“抽奖开始按钮”

图3 开始抽奖按钮设计

2、彩票模拟器功能代码实现

(1)ThisWorkbook内部初始化工作代码如下:

私有子工作簿_Open()

设置shp_Start_Lottery=Sheets(1).Shapes('彩票开始按钮')

Resume_Start_Lottery_Button_With_FormerlyColor shp_Start_Lottery '恢复开始抽奖按钮颜色

shp_Start_Lottery.OnAction='Start_Lottery' '为开始彩票按钮分配一个运行宏

Lottery_Times=3 '抽奖次数初始化为3次

flag=True '将运行状态标志设置为true

FontSize=shp_Start_Lottery.TextFrame2.TextRange.Font.Size '记录开始抽奖图形按钮文字的初始大小

Do While flag '当运行状态标志为true时,设置开始抽奖图形按钮的缩放动画效果

shp_Start_Lottery.ScaleWidth 1.1, msoFalse, msoScaleFromMiddle '从中心开始,将图形宽度扩大1.1倍

shp_Start_Lottery.ScaleHeight 1.1, msoFalse, msoScaleFromMiddle '从中心开始,将图形高度扩大1.1倍

shp_Start_Lottery.TextFrame2.TextRange.Font.Size=FontSize * 1.1 '将图形文本大小扩大1.1倍

延迟0.3'延迟0.3秒

shp_Start_Lottery.ScaleWidth 1/1.1, msoFalse, msoScaleFromMiddle '从中心开始,减少图形宽度1/1.1 倍

shp_Start_Lottery.ScaleHeight 1/1.1, msoFalse, msoScaleFromMiddle '从中心开始,减少图形高度1/1.1 倍

shp_Start_Lottery.TextFrame2.TextRange.Font.Size=FontSize '恢复图形文本大小

延迟0.3'延迟0.3秒

shp_Start_Lottery.ScaleWidth 1, msoFalse, msoScaleFromMiddle '为了稳定图形的初始尺寸,将图形宽度缩放1x

shp_Start_Lottery.ScaleHeight 1, msoFalse, msoScaleFromMiddle '为了稳定图形的初始尺寸,将图形高度缩放1x

环形

(2)模块1内具体抽奖工作代码如下:

Public Lottery_Times As Integer '定义公共全局变量Lottery_Times为抽奖次数

Public shp_Start_Lottery As Shape '定义公共全局变量shp_Start_Lottery为彩票图形按钮

Public FontSize, flag As Boolean 'FontSize为抽奖图形按钮文字初始大小,flag为抽奖图形按钮动画运行状态标志

Sub Start_Lottery() '开始抽奖

If Lottery_Times 0 then '如果抽奖剩余次数大于0,则进行抽奖

Lottery_Times=Lottery_Times - 1 '每抽奖一次,剩余抽奖次数就会减少。

调暗shp 作为形状,shp_prize 作为形状

设置shp=Sheets(1).Shapes('Scoll_Block')

标签1:

n=sjs(1, 48) '生成一个1 到48 之间的随机数作为要滑过的奖牌数量

如果n 16 则'共有16 张彩票卡,必须至少旋转一次才能确认具体抽出的奖牌。

t=Int(n/16) 't 表示要完成的圈数

Do While t=1 '首先让滑块至少旋转一次,模拟真实的抽奖效果。

对于i=1 到16

Set shp_prize=Sheets(1).Shapes('shp_prize_' i) '分配shp_prize每次应涉及的奖牌

Fill_Shape_With_RedColor shp_prize '将当前时刻滑过的奖章文字填充为红色

'以下是强制显示滑块shp 并与当前时刻滑动的奖牌对齐。

shp.Visible=msoTrue

shp.Left=shp_prize.Left

shp.Top=shp_prize.Top

头条文章模拟中国移动“熊掌门转转”抽奖

delay 0.05 '瞬时延迟设置为0.05秒

Fill_Shape_With_Deep_GreyBlueColor shp_prize '将奖牌颜色恢复为深灰蓝色

shp.Visible=msoFalse '滑块瞬间滑过去,被迫变得不真实(暂时隐藏)

下一个

t=t - 1 '转一圈后,转数减一

环形

'下面是执行整圈结束后实际剩余分数奖牌数,并进行抽奖。

k=n Mod 16 'k 是要转移的奖牌数。

对于i=1 至k

'下面的解释与上面相同

设置shp_prize=Sheets(1).Shapes('shp_prize_' i)

Fill_Shape_With_RedColor shp_prize

shp.Visible=msoTrue

shp.Left=shp_prize.Left

shp.Top=shp_prize.Top

延迟0.05

Fill_Shape_With_Deep_GreyBlueColor shp_prize

shp.Visible=msoFalse

下一个

如果i k 则'i k 表示确认的奖牌已抽出,应立即处理抽签的善后事宜。

get_prize_result=IIf(shp_prize.TextFrame2.TextRange.Text='感谢您的参与', '可惜没中奖,下次再来!', '恭喜您中奖了'' shp_prize.TextFrame2.TextRange.Text ' “')

keep_times=IIf(Lottery_Times=0, '', Chr(10) '剩余' Lottery_Times '抽奖机会')

MsgBox get_prize_result keep_times, vbInformation, '抽奖结果提示'

退出子'结束进程

别的

转到标签1:

else '否则,如果抽奖次数用完,善后处理如下

MsgBox '今天3次抽奖已用完,明天再来! ', vbInformation, '提示'

Fill_Start_Lottery_Button_With_GrayColor shp_Start_Lottery '设置开始抽奖按钮的文字颜色为灰色

shp_Start_Lottery.OnAction='' '取消指定运行开始抽奖按钮的宏

标志=假

退出子程序

Sub Fill_Shape_With_Deep_GreyBlueColor(sh As Shape) '用深灰蓝色填充形状

使用sh.TextFrame2.TextRange.Font.Fill

.Visible=msoTrue

.ForeColor.ObjectThemeColor=msoThemeColorAccent5 '蓝色

.ForeColor.TintAndShade=0

.ForeColor.Brightness=-0.25 '深灰蓝色

.透明度=0。坚硬的

Sub Fill_Shape_With_RedColor(sh As Shape) '用红色填充形状

使用sh.TextFrame2.TextRange.Font.Fill

.Visible=msoTrue

.ForeColor.RGB=RGB(255, 0, 0) '红色

.透明度=0。坚硬的

Sub Fill_Start_Lottery_Button_With_GrayColor(sh As Shape) '将开始抽奖文本按钮填充为灰色

使用sh.TextFrame2.TextRange.Font.Fill

.Visible=msoTrue

.ForeColor.ObjectThemeColor=msoThemeColorBackground1

头条文章模拟中国移动“熊掌门转转”抽奖

.ForeColor.TintAndShade=0

.ForeColor.Brightness=-0.25 '灰色

.透明度=0。坚硬的

Sub Resume_Start_Lottery_Button_With_FormerlyColor(sh As Shape) '恢复开始抽奖文本按钮为白色

使用sh.TextFrame2.TextRange.Font.Fill

.Visible=msoTrue

.ForeColor.ObjectThemeColor=msoThemeColorBackground1

.ForeColor.TintAndShade=0

.ForeColor.Brightness=0 '白色

.透明度=0。坚硬的

函数sjs(n1, n2)

如果n1 n2 那么

sjs='错误!'

退出功能

别的

sjs=Int(Rnd * (n2 - n1 + 1)) + n1

子延迟(t As Single)

暗淡t1 作为单一

t1=定时器

举办活动

Loop While 定时器-t1 t

sub let_scoll_block_display() '恢复奖章上移动滑块的显示

调暗形状

设置shp=Sheets(1).Shapes('Scoll_Block')

shp.Visible=msoTrue

shp.Left=0

shp.Top=0

3、熊掌转转彩票模拟器运行效果测试

(1)点击动态效果按钮“开始抽奖”:发现抽奖正式进入抽奖状态,滑块继续滑过每枚奖牌。如下图

图4 点击开始抽奖,然后进入抽奖

(2)第一期抽奖结果显示:可以看到随机滑动到某个奖牌停止,并显示抽奖结果。如下图

图5展示了第一次抽签的结果

(3)显示第二次抽奖结果:可以看到随机滑动到某个奖牌停止,并显示抽奖结果。如下图

图6 第二次抽奖结果

(4)显示第三次抽奖结果:可以看到随机滑动到某个奖牌停止,并显示抽奖结果。如下图

图7第三次抽奖结果

(5)当再次点击“开始抽奖”按钮时,会提示“3次抽奖机会已用完”,“开始抽奖”按钮将变成灰色并禁用。如下图

图8 最后一次点击“开始抽奖”时,提示3次机会已用完。

单击上述对话框中的“确定”按钮后,立即将“开始抽奖”按钮更改为灰色禁用状态。

图9 “开始抽奖”按钮最终被禁用

4、核心技术亮点总结

(1)使“开始抽奖”按钮产生动态缩放效果:技术代码截图如下:

图10 “开始抽奖”按钮生成动态缩放效果代码

(2)彩票滑块随机旋转动态特效技术。特效代码如下:

图11 滑过奖牌旋转特效代码

(3) 为了编辑滑块图形,强制显示隐藏的滑块并将其显示在左上角。代码如下截图

用户评论

伤离别

这也太好玩了!每次都激动得心跳加速。

    有18位网友表示赞同!

淡淡の清香

玩着玩着就忘记时间了,感觉自己就是个小老板!

    有9位网友表示赞同!

不识爱人心

真的挺考验运气的,希望能下次运气更好中大奖!

    有14位网友表示赞同!

执笔画眉

模拟游戏做得超级逼真,好沉浸感!

    有16位网友表示赞同!

厌归人

这个“转转转”的玩法简直太有意思了,让人忍不住循环播放。

    有13位网友表示赞同!

冷眼旁观i

中国移动这次的营销活动太赞了,玩儿着就感觉自己参与到公司发展中来了!

    有14位网友表示赞同!

情如薄纱

游戏简单易上手,老少皆宜!

    有20位网友表示赞同!

纯真ブ已不复存在

希望能加入更多不同的抽奖内容,增加趣味性!

    有6位网友表示赞同!

打个酱油卖个萌

这个熊掌门形象好好笑哦,充满萌趣!

    有15位网友表示赞同!

慑人的傲气

喜欢这种结合生活和游戏的玩法,既能放松身心又能感受到乐趣!

    有18位网友表示赞同!

微信名字

玩游戏抽奖也是一件很有趣的事,期待这次可以中大奖!

    有5位网友表示赞同!

◆残留德花瓣

这款游戏的界面设计很用心,画面清晰,音乐也很棒!

    有20位网友表示赞同!

致命伤

希望以后还能推出更多类似的主题游戏,这样就可以不断挑战和体验不同的人生旅程!

    有10位网友表示赞同!

糖果控

朋友们都玩着这个游戏,一起互动聊天更精彩了!

    有6位网友表示赞同!

代价是折磨╳

这款游戏让我感受到了中国移动对用户服务的重视,很贴心!

    有15位网友表示赞同!

念安я

玩过很多次抽奖游戏,但这款的游戏玩法还是很有新鲜感!

    有20位网友表示赞同!

素衣青丝

如果能加入一些社交功能,比如和朋友组队参与抽奖,会更加有趣!

    有17位网友表示赞同!

看我发功喷飞你

总而言之,这是一款非常棒的趣味性模拟游戏,强烈推荐给喜欢轻松玩游戏的玩家们!

    有8位网友表示赞同!

别在我面前犯贱

我觉得这是一个很有创意的营销活动,可以让用户更了解中国移动的服务和产品!

    有19位网友表示赞同!

神经兮兮°

我一直在关注中国移动的新产品和服务,这款游戏也让我对他们在互联网行业的布局更加了解!

    有10位网友表示赞同!

猜你喜欢
最新游戏更多
热门专题更多
最新资讯更多