用lua实现竖列转盘游戏

Posted on 2019-10-16 21:03  冬眠包子  阅读(385)  评论(0编辑  收藏  举报

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

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

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

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

代码来了!


   1 Game{
 2     row = 5
 3     col = 5
 4     startpos = 300 --列的起始位置
 5     endpos = 150  --列的结束位置,默认图高150
 6     item = {}        --所有图片
 7     itemcol = {}    --所有列节点
 8     colstate = {}   --列状态,1转动,2停止,3即将停止   
 9     speed = 30      --每帧的移动速度
10     stopdelay = 30 --转盘停止的延时参数,也可以用表设置每列停止延时
11 }
12 
13 function Game:Init()
14     for i = 0,self.col - 1 do
15         self.item[i] = {}
16         self.colstate[i] = 2
17         for j = 0,self.row-1 do
18             self.item[i][j].image = randomimage --给所有节点的图片赋值
19         end
20     end
21 end
22 
23 function Game:Update()
24     for i = 0,self.col -1 do
25         if self.colstate[i] == 1 then
26             self.itemcol[i].pos.y = self.itemcol[i].pos.y - vector3(0,speed,0) --列的位置向下移动
27             if self.itemcol[i].pos.y <= self.endpos then
28                 self.itemcol[i].pos.y = self.startpos
29                 for j = self.row -1, 1, -1 do
30                     self.item[i][j].image = self.item[i][j-1].image
31                 end
32                 self.item[i][0].image = randomimage
33                 if self.stopdelay >= 0 then
34                     self.stopdelay = self.stopdelay -1
35                     if self.stopdelay <= 0 then
36                         self.colstate[i] = 3
37                     end
38                 end
39             end
40         else if if self.colstate[i] == 3 then
41             self.itemcol[i].pos.y = self.itemcol[i].pos.y - vector3(0,speed,0) --列的位置向下移动
42             if self.itemcol[i].pos.y <= self.endpos then
43                 self.itemcol[i].pos.y = self.startpos
44                 for j = self.row -1, 1, -1 do
45                     self.item[i][j].image = self.item[i][j-1].image
46                 end
47                 self.item[i][0].image = randomimage
48                 self.colstate[i] = 2
49             end
50        end
    end
51 end

 

Copyright © 2024 冬眠包子
Powered by .NET 9.0 on Kubernetes