lua实现一个2048小游戏
来源:互联网 发布:java webp格式转换jpg 编辑:程序博客网 时间:2024/06/05 21:18
用lua写了个在consle上运行的2048,这里简单说下是如何实现的。(源代码地址:http://download.csdn.net/detail/c_boy_lu/9393255)
1.实现一个简单的游戏循环
游戏循环实际上是一个死循环,只有在退出游戏的时候,终止循环。
- 初始化
- 更新
逻辑更新
显示更新
- sleep
代码:
print("=========2048=========")--main loopprint("Direction:Up = 1")print("Direction:Down = 2")print("Direction:Left = 3")print("Direction:Right = 4")--init 初始化createNewCell()show()while (true)do --control print("Please enter a direction:") local direc = tonumber(io.read()) local isUpdata = printInpuInfo(direc) if isUpdata then --logic updataLogic(direc) --show show() end --reset clean times local max = width * height for i = 1,max do cell_clean_times[i] = 0 end --sleep sleep(0.5)end
2.游戏中的逻辑
a. 玩法:游戏开始的时候,会在棋盘上随机产生一个可消除的元素,每次操作后,如果,棋盘上有空余的位置,则产生一个新的可消除的元素。消除的规则是,玩家进行上下左右的操作,棋盘中的元素根据玩家的操作上下左右移动,同时,同一方向上相同的元素消除,组成一个新的元素。
b.逻辑:游戏的逻辑分为三部分:
1)得到玩家发出的指令(上,下,左,右)
2)根据指令进行移动和消除
3)显示当前棋盘的状态
1)读取玩家的输入,得到玩家的操作:
local direc = tonumber(io.read()):读取玩家输入的数字
local isUpdata = printInpuInfo(direc):输出玩家的操作信息,判断是否进行更新(如果,玩家输入的信息是有效信息,则进行操作,否则不进行操作)
2)这里就是游戏所有的逻辑了:根据方向进行移动,消除,创建新的元素:
3)显示棋盘当前的状态
--逻辑更新function updataLogic(direction) print("updata logic") --clean cell if direction == UP then moveUp() cleanUp() moveUp() elseif direction == DOWN then moveDown() cleanDown() moveDown() elseif direction == LEFT then moveLeft() cleanLeft() moveLeft() elseif direction == RIGHT then moveRight() cleanRight() moveRight() end --create new cell createNewCell()end
3)显示棋盘当前的状态
--显示更新function show() print("updata show") showChessBoard()end源代码地址:http://download.csdn.net/detail/c_boy_lu/9393255
0 0
- lua实现一个2048小游戏
- cocos2dx + Lua 实现的2048小游戏
- java小游戏2048实现
- QT实现2048小游戏
- 2048小游戏c++实现
- LabVIEW实现2048小游戏
- pygame实现2048小游戏
- js实现2048小游戏
- Python实现小游戏--2048
- java实现2048小游戏
- javascript实现2048小游戏
- java实现2048小游戏
- js实现2048小游戏
- 使用Cocos2d-X实现一个小游戏PhotoExhibition
- 一个小游戏
- 一个小游戏
- 一个小游戏
- 一个小游戏
- 解密Linux kernel中的内核线程
- JavaScript学习总结(2)——JavaScript数据类型判断
- matlab中max的用法
- 专访DroidPlugin作者张勇:安卓黑科技是怎样炼成的
- linux C语言实现文件锁
- lua实现一个2048小游戏
- SSH秘钥生成
- iOS使用NSMutableAttributedString 实现富文本(不同颜色字体、下划线等)
- linux之sed用法
- NSIS DirectUI界面 nsSkinEngine 插件,让安装包不再枯燥,一键打包!!http://www.aceui.cn/
- iOS各种知识点
- java 实现坦克大战2.1版
- JavaScript学习总结(3)——JavaScript函数(function)
- 文章标题