用lua实现竖列转盘游戏

 梳理下转盘游戏的流程,点击,开转,停止,出结果,于是重点就在模拟转的过程!

 定数据结构!假设一个转盘有4行,5列,为了视觉效果连贯,我们需要设计一个5行5列的棋盘,(第一行隐藏在棋盘上方)于是共有5*5=25个item,每个item的宽高保持一致,转盘每一列的状态用int控制,1,2,3分别代表转,停和即将停

 当开始转后,每列状态变为1,从第一列开始,每一列整列向下移动,在移动到一个item高度时,整列回归到起始高度,同时除了第一行之外其余列从下到上替换图片,即本行的图片替换为上一行的图片,第一行图片换为随机图,转动时循环这个过程

 在要停的时候,每列状态变为3,此时最后一次循环上面的过程,在该列都回到起始高度时,状态变为2,停止转动

代码来了!

Game=
{
    row = 5,
    col = 5,
    startpos = 300, --列的起始位置
    endpos = 150,  --列的结束位置,默认图高150
    item = {},        --所有图片
    itemcol = {},    --所有列节点
    colstate = {},   --列状态,1转动,2停止,3即将停止   
    speed = 30,      --每帧的移动速度
    stopdelay = 30 --转盘停止的延时参数,也可以用表设置每列停止延时
 }
 
function Game:Init()
    for i = 0,self.col - 1 do
        self.item[i] = {}
        self.colstate[i] = 2
        for j = 0,self.row-1 do
            self.item[i][j].image = randomimage --给所有节点的图片赋值
        end
    end
end
 
function Game:Update()
    for i = 0,self.col -1 do
        if self.colstate[i] == 1 then
            self.itemcol[i].pos.y = self.itemcol[i].pos.y - vector3(0,speed,0) --列的位置向下移动
            if self.itemcol[i].pos.y <= self.endpos then
                self.itemcol[i].pos.y = self.startpos
                for j = self.row -1, 1, -1 do
                    self.item[i][j].image = self.item[i][j-1].image
                end
            self.item[i][0].image = randomimage
            if self.stopdelay >= 0 then
                self.stopdelay = self.stopdelay -1
                if self.stopdelay <= 0 then
                    self.colstate[i] = 3
                end
            end
        else if self.colstate[i] == 3 then
            self.itemcol[i].pos.y = self.itemcol[i].pos.y - vector3(0,speed,0) --列的位置向下移动
            if self.itemcol[i].pos.y <= self.endpos then
                self.itemcol[i].pos.y = self.startpos
                for j = self.row -1, 1, -1 do
                    self.item[i][j].image = self.item[i][j-1].image
                end
                self.item[i][0].image = randomimage
                self.colstate[i] = 2
            end
        end
    end
end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值