• slot水果机抽奖思路


    创建一个数组,数组里把所有的奖项按顺序里面,这个数组可命名为
    rewardArr,数组里面放每个奖项对应的显示对象。
    根据mvc的思想,所见非所得,每次刚点下抽奖按钮的时候,就给他随机出一个奖品,然后在随机一个转的圈数

    接下来是滚动的显示,滚动就用TweenMax去解决,他里面有各种加速减速曲线,具体在用的时候,
    var rewardArr:Array = [a,b,c,d,e,f.....];
    var redLightArr:Array = [n,n,n,n,n.....];
    var duration:int = 8;//转动的时间
    var rounds:int = 5; //转动的圈数
    var rewardIndex:int = 10;//转完圈数后加10得到抽奖结果
    var lastEndIndex:int = 0;//上次转动停止的点设置为0

    //圈数*页面上奖项的数量+rewardIndex    
    var endIndex:int =rounds *rewardArr.length +rewardIndex   ;//抽奖结果所在的index
    var startIndex:int =lastEndIndex; //从这里开始转


    var sprite:Sprite = new Sprite();//一个无关的但是必须用的变量,每次都new一个吧,
    sprite.x = startIndex;//把这个变量的属性x设成startIndex,因为接下来我们要用tweenMax控制它变化


    //tweenMax里面的参数意义
    //sprite 为当前控制的对象   duration为tweenMax持续时间 {}里面为详细参数,x为要在duration时间内,把sprite 的x属性变为endIndex,onUpdate属性为他每次更改一下sprite x属性的时候执行的一个方法,onupdateparams是onupdate执行的时候,要传入的参数
    TweenMax.to(sprite,duration,{x:endIndex, onUpdate:onUpdateHandle, onUpdateParams :[sprite.x], ease:"easeOut"} );
    function  onUpdateHandle(args:Array):void
    {
         int currentIndex = (int)args[0];
         currentIndex = currentIndex %rewardArr.length;
         target = rewardArr[currentIndex];
         redLightArr[currentIndex];
    }
     
    onUpdateHandle这个方法

    tweenMax在执行的时候,他会去更改我们new出来的那个sprite的x值,他会在duration时间内,把sprite的x改变成我们{}里面写的那个x

    在改变的过程中,他会不断的调用onUpdateHandle()方法,并把当前的sprite的x值传入这个方法

    也就是 target = rewardArr[currentIndex];  这样,就取到了当前移动到的那个位置

    target就是当前选到的那个水果

    在执行tweenMax.To方法的时候,他的这个target就会慢慢的从最开始的,变到最后选中的那个

    而且有减速的效果

    得到target后,再去得到target下面的红点?

    详细解释:我们在创建rewardArr的时候,可以创建一个与他一一对应的数组,叫redLightArr,里面存的每一个元素都是红点

    那么在onUpdate方法里,有了currentIndex,那么我们就可以通过redLightArr[currentIndex]取到红点了
     
     function void onUpdateHandle(args:Array)
    {
         int currentIndex = redBall.x;
         currentIndex = currentIndex %rewardArr.length;
        Displayobject target = rewardArr[currentIndex];
    }

    这段代码,我们可以得到当前要跳到那个节点的index了

    这个就是那个tweenMax,把一个数字变化到另一个数字,变化过程中,每一帧执行的一个update函数

    这个函数会告诉我们,这会儿这个数字变成什么了

    可以用一个全局变量去保存那个红点的sprite

    然后在update的时候,去改变sprite的位置
  • 相关阅读:
    Decimal、 Float、 Double 使用
    jdk1.7的collections.sort(List list)排序问题
    $watch、$digest、$apply
    BeanNameViewResolver
    This system is not registered with RHN
    JNI字段描述符-Java Native Interface Field Descriptors
    服务器端cs文件
    ASP.NET基础(一)
    Android开发日记(七)
    登陆 注册
  • 原文地址:https://www.cnblogs.com/woyaofei303/p/5086925.html
Copyright © 2020-2023  润新知