自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

梦幻DUO的游戏开发之路

“学者们都是很单纯的,如果他们不单纯的话,戏剧般的灵感就不会造访他们了。” ——东野圭吾

  • 博客(19)
  • 资源 (6)
  • 收藏
  • 关注

原创 Lua 在Lua中调用C函数

首先能够被Lua调用的C函数要满足如下声明://ctypedef int (*lua_CFunction) (lua_State *L);例如: 由于Lua有局部栈,所以参数在栈中的位置永远是1开始。并且函数返回后会自动清理栈。//cstatic int l_sin (lua_State *L) { double d = luaL_checknumber(L, 1); lua_

2016-01-28 17:11:33 568

原创 Lua 在C程序中调用Lua函数

调用Lua函数的步骤为: 获得函数并压入栈 按顺序压入参数 调用lua_pcall,该函数的第二个参数是参数个数,第三个参数是返回个数,第四个参数是异常处理函数 示例程序://c/* call a function 'f' defined in Lua */double f (lua_State *L, double x, double y) { int isnu

2016-01-28 16:10:53 983

原创 Lua 在C程序中进行Lua表操作

为了表示RGB颜色,假设在C程序中需要用三个0~255数字,在Lua由于是实数就用0~1表示。在lua中你可以用一个表来写:--luabackground = {r=0.30, g=0.10, b=0}你也就可以这样使用预定义颜色:--luaBLUE = {r=0, g=0, b=1.0}<other color definitions>background = BLUE一、获取表信息 在

2016-01-28 15:18:51 1373

原创 Lua 配置文件示例

void load (lua_State *L, const char *fname, int *w, int *h) {if (luaL_loadfile(L, fname) || lua_pcall(L, 0, 0, 0)) error(L, "cannot run config. file: %s", lua_tostring(L, -1)); lua_getglobal(L

2016-01-27 21:54:39 897

原创 Lua 从C程序获得Lua变量值

无论你何时想要从Lua 请求一个值(比如一个全局变量的值),调用Lua,被请求的值将会被压入栈。无论你何时想要传递一个值给Lua,首先将这个值压入栈,然后调用Lua(这个值将被弹出)。 Lua 以一个严格的LIFO 规则(后进先出;也就是说,始终存取栈顶)来操作栈。当你调用Lua 时,它只会改变栈顶部分。你的C代码却有更多的自由;更明确的来讲,你可以查询栈上的任何元素,甚至是在任何一个位置插入和删

2016-01-27 21:12:50 1364

原创 Lua 简单Lua解释器源码分析

#include <stdio.h>#include <string.h>#include "lua.h"#include "lauxlib.h"#include "lualib.h"int main (void) {char buff[256];int error;lua_State *L = luaL_newstate(); /* 创建Lua环境 */luaL_openlibs

2016-01-27 18:47:57 2235

原创 lua 编译、执行和错误

一、编译 1. loadfile 只编译文件,不运行。 2. dofile 编译文件并运行。function dofile (filename)local f = assert(loadfile(filename))return f()endload(5.1以上改为loadstring) 编译字符f = load("i = i + 1")i = 0f(); print(i)

2016-01-27 11:12:07 376

原创 Lua 迭代器

7.1 Iterators and ClosuresIn Lua, we typically represent iterators by functions: each time we call the function, it returns the “next” element from the collection.function values (t) local i =O

2016-01-27 10:17:41 381

原创 Lua 关于函数的更多内容

一、匿名函数 Lua中的函数其实都是匿名函数,我们定义函数的时候:function foo (x) return 2*x end等价于foo = function (x) return 2*x end这里foo只是保存匿名函数的变量。1.lua的函数是一种 First-Class Value 的东西, 到底是啥? 就是它们与传统类型的变值没啥区别, 可以 存到一个变量中, 可以 存到ta

2016-01-23 23:51:33 390

原创 photoshop CS6 AMD独立显卡不兼容导致笔记本蓝屏

1.用360驱动大师两个显卡升级到最新2.配置可交换显卡,全局强制省电3.安装PS4.进入安全模式,将Adobe启动项关闭,疑难解答中将图形加速关闭5.配置可交换显卡,将PS设为强制省电6.进入PS,首选项关闭

2016-01-23 13:41:22 2901

原创 Lua 函数

Lua中的函数参数如果是string或表构造器,则圆括号可以忽略掉。print "Hello World" <--> print("Hello World")dofile 'a.lua' <--> dofile ('a.lua')print [[a multi-line <--> print([[a multi-linemessage]]

2016-01-20 09:52:06 492

原创 Lua 语句

Lua的语句支持赋值、控制结构、程序调用、多重赋值和局部变量声明。一. 赋值 跟C语言等编程语言一样的语法,不再多说。二. 多重赋值 下面这段代码分别给a赋值10,给b赋值20a, b = 10, 20 因为多重赋值是先取值后赋值,通过多重赋值可以方便地实现交换值:x, y = y, x当要赋的值的个数比变量多,那么后面多余的会省略。 当要赋的值的个数比变量少,那么缺乏的将会由nil。还有一个

2016-01-18 13:32:30 737

原创 Lua 表达式

算术操作符 Lua中的常用算术操作符有:+、-、*、/、^、%和-(符号)。%是取余数,结果跟第二个操作数符号一致。关系操作符 Lua中的关系操作符有:<、>、<=、>=、==和~=(不等符号) 次序比较操作符(<、>、<=、>=)只能用于数字和字符串。为了避免数字和字符串次序比较混淆,这已经提升到错误层次。 而表的比较,只能是指向同一个表的才是相等的。逻辑操作符 lua的逻辑操作符有an

2016-01-13 21:32:58 668

原创 Lua 类型和值

Lua是动态类型语言,它有如下的类型:nil, boolean, number, string, userdata, function, thread, 和 table。 type函数用于输出类型名:print(type("Hello world")) --> stringprint(type(10.4*3)) --> numberprint(type(print)) --> function

2016-01-13 19:29:27 693

原创 Lua 独立解释器

在命令行运行Lua脚本的参数的格式是这样的: lua [options] [script [args]]-e 编辑(edit)参数可以直接在命令行参数输入语句:% lua -e "print(math.sin(12))" --> -0.53657291800043-i是在运行脚本后进入交互模式。-l则为在运行脚本前载入lib库:% lua -i -llib -e "x = 10"在交互模式,你可以

2016-01-12 15:51:46 2591 1

原创 Lua 全局变量

Lua的变量无需先声明(定义)才能使用,如果你要使用某个变量,直接使用就可以了。 未赋值的变量的值是nil。print(b) --> nilb = 10print(b) --> 10如果你将一个变量手动赋值为nil,则会对该变量进行内存回收。b = nilprint(b) --> nil

2016-01-12 15:15:25 937

原创 Lua 命名规范

Lua和C一样,支持字符、下划线和数字(数字不能在开头)。 除此之外,lua有些特殊的要求,如:下划线后面不能接一个或多个大写单词,这是lua有特殊用途的。 下面这些是lua保留的关键字,也不能使用: and break do else elseif end false goto for function if in local nil not or repeat retu

2016-01-12 15:09:53 3002

原创 Lua chunk(程序块)

Lua里面一条语句或一块语句称之为chunk(程序块)。 Lua无需;语句结束符,但是你可以加上去。多条语句可以写在同一行而不加;,但是加上;会更清晰。示例:a = 1b = a*2a = 1;b = a*2;a = 1; b = a*2a = 1 b = a*2 -- ugly, but valid

2016-01-12 14:53:33 1648

原创 Lua 运行你的第一个HelloWorld

windows下安装配置:下载LuaForWindows后进行安装,非常简单。如何输入并运行代码? 方法一: 在桌面上打开安装好的Lua控制台交互界面,可以输入语句代码直接运行。 (另外,你也可以在cmd命令行中输入 lua -i来进入lua控制台交互界面)。方法二: 将代码保存在文本,后缀名保存为.lua。然后在cmd命令行,输入 lua + lua文件名 即可。测试用例测试用例1:p

2016-01-12 14:47:30 4078

win7 64位汇编开发环境合集

集成了所有win7 64位下的汇编开发环境的程序,包括了DOSBOX、edit、masm、link、debug。使用说明可以见本人博文:《win7 64 汇编开发环境搭建》: http://blog.csdn.net/sinat_24229853/article/details/50133741

2015-12-01

DirectX11程序初始化

DirectX11程序初始化,出自龙书,本人博客有DirectX11学习笔记:http://blog.csdn.net/sinat_24229853

2015-09-28

泡泡堂 DirectX11 Demo

本程序是模仿泡泡堂游戏功能的Demo,使用DirectX11图形库和C++语言,在VS2010环境下编译。4500行左右。更多内容见本人博客:http://blog.csdn.net/sinat_24229853

2015-09-06

C++实现状态驱动智能体设计——消息功能

设计精度的游戏趋向于事件驱动。即当一个事件发生了(武器发射了子弹等),事件被广播给游戏中的相关的对象。这样它们可以恰当地做出反应。而这个消息可以是立即执行,也可以设定多久后才执行。更多详情参见本人博客:http://blog.csdn.net/sinat_24229853

2015-08-17

有限状态机(FSM)

游戏人工智能,状态驱动智能体设计——有限状态机(FSM),编译环境:VS2010。本人博客:http://blog.csdn.net/sinat_24229853

2015-08-17

C++控制台网络聊天室源代码

用C++和socket编程、多线程技术组成的控制台网络聊天室,1000行之内。之所以在控制台运行而不是用MFC等图形库是为了方便从底层理解socket编程和多线程,只有从深入理解技术原理后才能在实际应用如鱼得水。本人大一学生,我的CSDN博客是http://blog.csdn.net/sinat_24229853

2015-04-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除