lua学习:游戏中的Lua
lua作为一种脚本语言,可以快速地开发游戏的原型。提高游戏的开发效率。
在游戏中,lua可以用来完成下面这些工作:
●编辑游戏的用户界面
●定义、存储和管理基础游戏数据
●管理实时游戏事件
●创建和维护开发者友好的游戏存储和载入系统
●编写游戏游戏的人工智能系统
●创建功能原型,可以之后用高性能语言移植
编辑游戏界面
进行界面布局、管理用户输入并且输出游戏数据。提高了界面设计的灵活性,为程序员节省不少时间。
管理游戏数据
Lua可以让游戏存储系统更为简单,可以令Lua更方便地和数据库交互。方便按照需要修改、增加和缩减游戏数据。Lua本身并没有可以直接访问外部数据库的能力,但可以用C++开发访问数据库的组件,然后再利用LuaGlue函数整合该组件来达到目的。
处理游戏事件
其实就是利用lua与C++交互,在C++开发的事件系统中,用Lua来接收和处理这些事件。
保存和读取游戏状态
利用Lua标准的输入/输出函数,编写一个函数来保存游戏数据到可执行的Lua脚本中是很好的方法。而且还可以利用脚本编译函数来为游戏数据加密。
游戏中的人工智能
这里说的人工智能不是那些对性能要求很好的算法。像路径寻找这些数据运算量很大的工作,计算机需要反复测试可能的路径来寻找最短或者最直接的路径,就需要用到C++这类底层语言来实现。但一些依赖有限的数据集合和参数的人工智能就更适合用Lua来编写了。
快速构建原型
Lua是构建可移植的核心游戏功能原型的不错工具。在游戏开发中,可以先用Lua构建出算法的结构,如果碰到有高性能需求的函数就可以用底层语言来实现。
总结
Lua的优点是可以快速地编写简单的游戏模型,并快速验证和迭代想法。在游戏开发领域,Lua和C++是一个功能十分强大的组合,使游戏开发更加随心所欲。
lua学习:游戏中的Lua的更多相关文章
- 【COCOS2DX-LUA 脚本开发之一】在Cocos2dX游戏中使用Lua脚本进行游戏开发(基础篇)并介绍脚本在游戏中详细用途!
[COCOS2DX-LUA 脚本开发之一]在Cocos2dX游戏中使用Lua脚本进行游戏开发(基础篇)并介绍脚本在游戏中详细用途! 分类: [Cocos2dx Lua 脚本开发 ] 2012-04-1 ...
- 【Lua学习笔记之:Lua环境搭建 Windows 不用 visual studio】
Lua 环境搭建 Windows 不用 visual studio 系统环境:Win7 64bit 联系方式:yexiaopeng1992@126.com 前言: 最近需要学习Unity3d游戏中的热 ...
- Lua学习 2) —— Android与Lua互调
2014-07-09 一.Android类调用lua并回调 Android调用Lua函数,同一时候把类作为參数传递过去.然后再Lua中回调类的函数 调用lua mLuaState = LuaState ...
- lua学习笔记11:lua中的小技巧
lua中的小技巧,即基础lua语言本身的特种,进行一个些简化的操作 一. 巧用or x = x or v 等价于: if not x then x = v end 假设x为nil或false,就给他赋 ...
- lua学习笔记10:lua简单的命令行
前面反复使用的命令行,好学喜欢命令行: 一 格公式 lua [options][script][args] 两 详细命令 -e 直接命令传递一个lua -l 加载文件 -i 进入交互模式 比例如.端子 ...
- lua脚本在游戏中的应用
为什么要在游戏中使用脚本语言? 要解释这个问题首先我们先来了解一下脚本语言的特性: 学习门槛低,快速上手 开发成本低,可维护性强 动态语言,灵活性高 相对于C/C++这类高复杂性.高风险的编译型语言来 ...
- [整理]Unity3D游戏开发之Lua
原文1:[Unity3D]Unity3D游戏开发之Lua与游戏的不解之缘(上) 各位朋友,大家好,我是秦元培,欢迎大家关注我的博客,我地博客地址是blog.csdn.net/qinyuanpei.如果 ...
- Lua与游戏的不解之缘
本文转载自秦元培博客:blog.csdn.net/qinyuanpei 一.什么是Lua? Lua 是一个小巧的脚本语言,巴西里约热内卢天主教大学里的一个研究小组于1993年开发,其设计目的是为了嵌入 ...
- C中调用LUA回调(LUA注册表)
实现原理: 通过将LUA中得回调函数存入LUA注册表中来保存LUA函数,然后在需要回调时从LUA注册表中取出LUA函数进行调用 下面是一些预备知识:(学习两个重要的函数) 原汁原味的英文解释的最透彻, ...
随机推荐
- kafka迁移与扩容
参考官网site: http://kafka.apache.org/documentation.html#basic_ops_cluster_expansion https://cwiki.apach ...
- 使用MFC中的AfxBeginThread创建多线程
创建一个基于对话框的工程,工程名为CreateThreadRect 在CreateThreadRect.cpp中增加一个ThreadProc函数,代码如下 工作者线程的函数必须是全局函数或静态 ...
- jstl表达式
JSTL标签库 1.什么是JSTL JSTL是apache对EL表达式的拓展(也就是说JSTL依赖EL),JSTL是标签语言!JSTL标签使用以来非常方便, 它与JSP动作标签一样,只不过它不是JSP ...
- IOS中导航控制器的代理及隐藏控制器刚出现时的滚动条
一.导航控制器的代理 1.UINavigationController的delegate属性 2.代理方法 1> 即将显示新控制器时调用 /* navigationController : 导航 ...
- &引用的问题
C++中&可以代表引用也代表取地址符. 引用这一方面略微有点头大. 注意: 1)引用的函数可以作为左值 一个简单的作为左值的例子 #include <iostream> using ...
- poj 2661 Factstone Benchmark (Stirling数)
//题意是对于给定的x,求满足n! <= 2^(2^x)的最大的n//两边同取以二为底的对数,可得: lg2(n!) <= 2^x 1. log2(n!) = log2(1) + lo ...
- webpack的学习
什么是webpack? 他有什么优点? 首先对于很多刚接触webpack人来说,肯定会问webpack是什么?它有什么优点?我们为什么要使用它?带着这些问题,我们来总结下如下: Webpack是前端一 ...
- s:iterator标签的使用
1.在说明s:iterator标签的使用前,先了解下struts2中的Value Stack. 这里参考了webwork中对Value Stack的描述,由于struts2是在webwork的基础上进 ...
- Linux 安装JDK7 遇到的问题
Error occurred during initialization of VMjava/lang/NoClassDefFoundError: java/lang/Object 如出现 unpac ...
- bsp tree
http://www.cnblogs.com/dreams/archive/2007/03/25/687267.html http://blog.csdn.net/iduosi/article/det ...