jQuery+PHP实现的掷色子抽奖游戏实例

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了jQuery+PHP实现的掷色子抽奖游戏实例脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

本文实例讲述了jquery+PHP实现的掷色子抽奖游戏详细步骤。分享给大家供大家参考。具体分析如下:

该游戏是以大富翁游戏为背景,综合运用jQuery和PHP知识,设计出以掷色子点数来达成抽奖的效果,当然抽奖概率是可控的,开发者可以将本实例稍作修改即可运用到网站中的抽奖活动场景中。效果图如下:

jQuery+PHP实现的掷色子抽奖游戏实例

完整实例代码点击此处

HTML部分:

首先我们需要准备两粒色子和奖品素材,这些作者已经打包上传了,请大家放心下载。我们将在html页面中写下如下的html结构代码,.wrap用来放置色子和提示信息,#PRize则是用来放置奖品的。

代码如下:@H_502_10@
@H_502_10@
@H_502_10@ @H_502_10@
  • 开始
  • 现金100元
  • 泰迪熊宝宝
  • 谢谢参与
  • iphone 5s
  • 笔记本电脑
  • 谢谢参与
  • 单反相机
  • 轿车
  • 谢谢参与
@H_502_10@ @H_502_10@

CSS部分:

我们要用CSS技来将页面布局合理规范化,我们将奖品围成一个矩形,共10个位置,将两粒色子定位在矩形的中央,抽奖时可以直接点击中间的色子。这些我们可以用CSS的定位技术来实现页面布局。

代码如下:@H_502_10@
502_10@

jQuery部分:

我们使用jQQuery来完成前端动作,包括掷色子动画,仿大富翁奖品逐步运动动画,其中有重复点击知识、ajax交互知识,动画提示知识。整个 操作流程可简单概括为:点击色子->向dice.PHP发送ajax请求->完成掷色子动画->提示点数->逐步运动动画到最终 奖品位置停止->完成抽奖。

代码如下:@H_502_10@
@H_502_10@');//加遮罩 VAR dice1 = $('#dice1'); var dice2 = $('#dice2'); $.getJSON('dice.PHP',function(json){ var num1 = json[0]; var num2 = json[1]; diceroll(dice1,num1);//掷色子1动画 diceroll(dice2,num2);//掷色子2动画 var num = parseint(num1)+parseInt(num2); $('#msg').css('top','-10px').fadeIn(500).text(num+'点').aniMATE({top:'-50px'},'1000').fadeOut(500); roll(0,num);//逐步运动动画 }); }); }); @H_502_10@

函数diceroll()是一个色子运动动画,在本站前面的文章中已讲解过,就是通过jQuery的animate()实现的位移、延时、变化背景样式来实现的动画效果

代码如下:@H_502_10@
502_10@

函数roll()至关重要,通过setInterval()设置一个间隔动画,每隔0.5秒时间执行一次。参数i代表初始位置,参数step代表需要执行 的步数,在本例中就是色子的点数,即需要走的步数。我们根据i给当前奖品加上.mask,当i的值与step相等时,停止动画,并且移除色子的遮罩(防止 重复点击)。

代码如下:@H_502_10@
9){ var t = i - 10; $('#d_'+t).apPEnd('
@H_502_10@'); $('#d_'+(t-1)+' .mask').remove(); } $('#d_'+i).append('
@H_502_10@'); $('#d_'+(i-1)+' .mask').remove();

if(i==step){
clearInterval(time); //如果到达指定位置则停止
$('#dicemask').remove();//移除遮罩
}
i++;//继续前进
},500);
}
@H
502_10@

PHP部分:

dice.PHP要做的事情有:根据配置好的奖品概率,得到总点数,根据总点数进行两粒色子的点数分配,最后返回给前端页面两粒色子的点数。

代码如下:@H_502_10@
array('id'=>2,'v'=>10), '3' => array('id'=>3,'v'=>20), '4' => array('id'=>4,'v'=>5), '5' => array('id'=>5, '6' => array('id'=>6, '7' => array('id'=>7,'v'=>2), '8' => array('id'=>8,'v'=>3), '9' => array('id'=>9, '10' => array('id'=>10,'v'=>0), '11' => array('id'=>11, '12' => array('id'=>12, );

foreach ($prize_arr as $key => $val) {
$arr[$val['id']] = $val['v'];
}

$sum = getRand($arr); //根据概率获取奖项id,得到总点数

//分配色子点数
$arrs = array(
'2' => array(array(1,1)),
'3' => array(array(1,2)),
'4' => array(array(1,3),array(2,
'5' => array(array(1,4),3)),
'6' => array(array(1,5),array(3,
'7' => array(array(1,6),7),4)),
'8' => array(array(2,array(4,
'9' => array(array(3,5)),
'10' => array(array(4,array(5,
'11' => array(array(5,6)),
'12' => array(array(6,6))
);

$arr_rs = $arrs[$sum];
$i = array_rand($arr_rs);//随机取数组
$arr_a = $arr_rs[$i];
shuffle($arr_a);//打乱顺序
echo json_encode($arra);
@H
502_10@

函数getRand()用来计算概率

代码如下:@H_502_10@

//概率数组的总概率精度
$proSum = array_sum($proArr);

//概率数组循环
foreach ($proArr as $key => $proCur) {
$randNum = mtrand(1,$proSum);
if ($randNum <= $proCur) {
$result = $key;
break;
} else {
$proSum -= $proCur;
}
}
unset ($proArr);
return $result;
}
@H
502_10@

希望本文所述对大家的PHP@R_360_2474@有所帮助。

本图文内容来网友网络收集整理提供,作为学习参考使用,版权属于原作者。

猜你在找的PHP相关文章

@L_406_81@
php中有以下五种方法来检测变量是否为空,那么这五种方法之间有什么区别呢?下面我们就来一起看看吧。1、isset功能:判断变量是否被初始化说明:它并不会判断变量是否为空,可以用来判断数组中元素是否被定义过。
字符串函数 strlen:获取字符串的长度,获取的是字符串的字节长度 字符:一个完整的符号,a,中 字节:由8位组成 一个字符最少等于一个字节:ASCII码,a,b,通常英文字符都是占用一个字节 中文在gbk或者gb2312编码里,占用两个字节 中文在utf-8里最少占用3个字节,有可能是4个字节 substr:截取字符串,以字节为单位截取 string sub...
数据的操作无外乎就是对数据的增删改查增加数据基本方式:insert into 表名 [(字段列表)] values (值列表);主键冲突:在插入数据的时候,主键值已经存在了,但是要求是必须使用该主键字段 实现目标:如果该主键不存在那么就增加记录,如果存在,就修改部分字段的值1.使用主键冲突方式语法:insert into 表名 values(值列表) on dup...
范式:Normal Format规定的一种设计方式范式特点:范式有很多,从低级到高级有六级左右,低级往高级一级比一级要求严格。关系型数据库通常设计只需要满足其中一,满足第三范式即可。满足第三范式必须先满足第二范式,第二范式又必须先满足第一范式。第一范式:1NF数据表的设计的字段中,每个字段都不能再分,每个字段都必须是最小的不可分割的单位(原子性) 讲师代课表 要知...
在字段类型之后,用于对当前字段进行一系列的约束的内容(限制内容的情况) 字段属性:null/not null,Primary key,auto_increment,unique key,comment,defaultnull表示字段的值可以为空(在进行数据插入的时候,该字段可以不给数据),not null表示不能为空,必须要给定值(不能是null)default默...
MySQL中也分为三大数据类型:数值型,字符型,时间日期型 数值型数值型分为整数型和小数型(包含小数部分的数据类型)整型mySQL中光整数型数据类型就有五种:tinyint,smallint,mediumint,int,Bigint tinyint:迷你整型,占用1个字节保存数据,能够表示256个数值 smallint:小整型,占用2个字节保存数据,能够表示6...
校对集就是数据库数据进行比较的时候所采用的比较方式。 A =======&amp;amp;gt; 01000001 =======&amp;gt; 65 a =======&amp;gt; 01100001 ========&amp;gt; 97校对集有三种比较方式 _bin:使用二进制进行比较(区分大小写) _ci:(case insensITive),大小写不敏感,不区分大小写(将某个字符转变成...
1.mytable1存储的数据是utf8字符集(在创建表的时候,指定了表的数据存储字符集为utf8)2.cmd控制台只能是gbk格式的数据:说明cmd下只能输入和显示gbk格式的数据3.set names gbk的功能 客户端与服务端进行不同编码的通信的原理 了解数据库的字符集 查看数据库支持哪些字符集?show character set; mysql支持39种字...

脚本宝典总结

以上是脚本宝典为你收集整理的jQuery+PHP实现的掷色子抽奖游戏实例全部内容,希望文章能够帮你解决jQuery+PHP实现的掷色子抽奖游戏实例所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。