游戏开发论坛

 找回密码
 立即注册
搜索
楼主: Miu.C

用脚本来控制自己的游戏怎么样?Afflatus Script Engine 正式

[复制链接]

32

主题

1583

帖子

1589

积分

金牌会员

Rank: 6Rank: 6

积分
1589
发表于 2008-6-22 22:56:00 | 显示全部楼层

Re:用脚本来控制自己的游戏怎么样?Afflatus Script Engine 正



Afflatus正式发布怎么着也得来支持一下!

望Miu继续努力



PS:用代理看到此贴,然后专门借朋友的电信来回帖……我自己机器上GameRes慢死。。

32

主题

1583

帖子

1589

积分

金牌会员

Rank: 6Rank: 6

积分
1589
发表于 2008-6-22 23:08:00 | 显示全部楼层

Re:用脚本来控制自己的游戏怎么样?Afflatus Script Engine 正

话说表达式求值,还是建议Miu稍稍研究下算法,虽然有些枯燥,但是的确是很有帮助的。

构造一个自动机,然后从左向右扫描字符串,根据扫描的字符串进行状态的转换,如果当前状态不能接收当前字符则抛出错误。如果整个字符串扫描完毕都可以接收,那么此字符串是合法的表达式。

在某些状态的转换中构造表达式优先级树,然后按照此树进行处理就行了,至少我目前是这么做的。
构造自动机其实主要就是构造状态转换表,这个出来了就是代码体力活了。

其实编译原理我看起来也比较头疼,不过它的思想还是需要好好借鉴的,VB自己的LIKE运算符不宜用得过多。

32

主题

1583

帖子

1589

积分

金牌会员

Rank: 6Rank: 6

积分
1589
发表于 2008-6-22 23:13:00 | 显示全部楼层

Re:用脚本来控制自己的游戏怎么样?Afflatus Script Engine 正

至于“-”的问题,我认为不管写代码者想要表达什么意思,我只要按照某种规则去套,它合适了就是合法的,不合适就是非法的,套的是“负号”就是负号,套的是“减法”就是减法,如果真存在两种规则都适应的情况,那先套对了哪个算哪个其它的不管了,同时也说明当前编码的设计有问题。

187

主题

6490

帖子

6491

积分

论坛元老

团长

Rank: 8Rank: 8

积分
6491
 楼主| 发表于 2008-6-23 17:58:00 | 显示全部楼层

Re:用脚本来控制自己的游戏怎么样?Afflatus Script Engine 正

谢谢sandy_zc_1的回复,研究看看。

原来的表达式解析做得太差了,今天重新做了个,好多代码要重写.........唉。

不过那心脏病算是解决了,支持多级的代字符串相关函数的解析。回去继续研究。

187

主题

6490

帖子

6491

积分

论坛元老

团长

Rank: 8Rank: 8

积分
6491
 楼主| 发表于 2008-6-23 18:01:00 | 显示全部楼层

Re: Re:用脚本来控制自己的游戏怎么样?Afflatus Script Engine

yjlh1234: Re:用脚本来控制自己的游戏怎么样?Afflatus Script Engine 正式发布。

tokenlist..恩
你试试奇怪但又符合文法的表达式
比如-(-1)
-(-1+1)
等等。。。
然后就是1/(1-1)这种。。。
恩。还有就是小数的处理。。

完成一半的新内核,-(-1)解决,-(-1+1)..........得-2?真离谱。

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
发表于 2008-6-25 18:03:00 | 显示全部楼层

Re:用脚本来控制自己的游戏怎么样?Afflatus Script Engine 正

个人觉得,如果别人想要做这种风格的游戏,他绝对会用 RPG Maker(日本网站的切身经历)所以不理解LZ为什么翻译成日文版

另外,把 VB6 部分代码换成一个脚本语言,我认为这不是脱离硬编码,
因为仍然是代码。只是形式不同。

121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2008-6-28 14:28:00 | 显示全部楼层

Re:用脚本来控制自己的游戏怎么样?Afflatus Script Engine 正

表达式处理其实用递归下降法比较好。

我最近正在准备给我的软件渲染器添加shader语言。
不过肯定不会像楼主一样用解释器执行,也不会自己写语法分析器,就用flex+bison。
然后准备把脚本翻译成C++,然后再编译执行。优化部分就指望C++编译器了。

0

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2008-7-16 12:34:00 | 显示全部楼层

Re:用脚本来控制自己的游戏怎么样?Afflatus Script Engine 正

为什么用分号结束呢?LZ不是用VB的吗?想改行C啊?

还有,发生event的时候不要直接call 脚本函数,因为最坏的情况下会导致间接递归。

11

主题

1238

帖子

1782

积分

金牌会员

Rank: 6Rank: 6

积分
1782
发表于 2008-7-16 13:08:00 | 显示全部楼层

Re:用脚本来控制自己的游戏怎么样?Afflatus Script Engine 正

很棒,很好,LZ终于做出了东西,支持

0

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2008-7-16 14:08:00 | 显示全部楼层

Re:用脚本来控制自己的游戏怎么样?Afflatus Script Engine 正

也可以尝试,LISP这样的syntax:
setq  X ( + 10 ( * 20 5 )  )
相当于 X = 10 + 20 * 5
不要认为这很傻,其实LISP是函数型语言,支持函数抽象(类似于函数指针,不过更方便)
最近MS新出的 F#.net 也是函数型。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-21 22:33

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表