- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式的脚本语言PAWN的使用教程
导言 e- e- H$ p/ ZPawn是一种可嵌入, (几乎) 无类型, 被虚拟机编译的易于使用的脚本语言. AMX Mod X 使用Pawn制作脚本控制Half-Life引擎, 使用Pawn虚拟机和Metamod(Pawn用C语言编写, Metamod用C++编写). 你可以在文本编辑器中编写 Pawn 脚本, 但是脚本必须被quot;Compilerquot;编译, 且针对AMX Mod X的. AMX Mod X 团队发布了一个专用的 Pawn编译器.; l y+ e6 x/ A. c0 ^: _; z$ ZPawn中的脚本程序编写相对简单, 一般应用的话对于其他语言的一些概念是不必要的, 如指针, 向量, 结构, 层次, 定位, 等等. q- y6 B7 K9 z1 F. p q, ` ]! x/ C9 M* O! K) z8 k语言规范
Pawn曾经叫做quot;Smallquot;来强调这种语言的规格. 这种语言相对现代语言来说牺牲了很多的用途来实现简单和速度, w这是嵌入式语言所必需的. . n2 _2 Z C) |) F! P) N8 a y* G$ t N
[li]没有数据类型[/li]
[li]Pawn只有一种数据类型 -- quot;单元quot;. 这是处理器的完整指针 (32位处理器为4字节, 64位处理器为8字节). 这有两个重大影响 - Pawn的字节代码由处理器决定, 指针可以装入一个单元.[/li][li]标签 - Pawn让你创减弱的静态类型quot;标签quot;, 可以关联变量用于运算符超载. 例如, Pawn没有浮点型(只有整形). 相反地, 运算符对于浮点超载: 标签将定向到新的函数. 标签检查只执行一个警告.[/li][li]由于Pawn只有一个数据类型, 它不支持结构体, 记录, 对象, 或是其他的东西.[/li][li]Pawn不支持矩阵单元, 像C语言风格的字符串.[/li]
[li]没有垃圾回收机制[/li][li]Pawn没有quot;heapquot;的内建分配. 所有的变量都储存在堆栈或在数据段. 因此, 没有垃圾回收机制是必须的并且内存溢出也不可能仅由语言书写造成.[/li][li]程序[/li]
[li]Pawn是完全由单一的, 非嵌套子程序的. 没有lambda函数, 成员函数, 构造, 等等. 函数既可以在内部 (在脚本中) 也可以在公共部分 (让虚拟机用名称调用, 像是C语言的quot;externquot;).[/li]
[li]没有线程安全[/li]
[li]Pawn主要面向单线程实例.[/li]
功能
li]跨平台兼容的编译器, 调试输入字节码和debug浏览信息.[/li][li]跨平台兼容的虚拟机(VM), 支持debug浏览, 停止/停止执行, 并从C/C++脚本中交互库.[/li][li]IA32 JIT编译器大大提高脚本的执行时间.[/li]
6 B( ?1 N: y) k X# J$ {由于VM和JIT的踪迹是如此的小, Pawn是一个理想的游戏内部需要简单且高速的事件系统, 嵌入式设备或应用和实时系统.4 M$ V; @* L6 p) t5 T3 I) z5 G# o9 S) `) |5 s( l授权许可
Pawn被ZLib/libpng_License授权许可
变量
是一个在你的脚本运行的整个时间内带有数据的独立结构. M+ Y4 m F. R: y q1 f- @类型,
Pawn的变量声明只有三种数据类型. 默认的变量类型是一个普通的数字或整数. 一个变量的名字, 为了向下兼容, 应该有19个字符或是更少, 并且必须由字母开头. 可以包含A-Z, a-z, 0-9, 和下划线(quot;_quot;). 重要的是变量名区分大小写 - quot;myvarquot;, quot;MyVaRquot;, 和quot;MYVARquot;是三个独立的变量.4 ]# ?4 F1 e2 L/ G* w6 H0 R1 s! T整数型
Pawn中最简单的数据类型是quot;integerquot;. 整型是整数. 声明一个新的整型应该这样, 像这样使用quot;newquot; 运算符:
new a //声明空的变量quot;aquot;
new b=5 //声明变量quot;bquot;并设定值为5.
new c=5.0 //这是无效的, 因为它不是一个整数!
new d=quot;helloquot; //quot;helloquot;也不是一个数字, 这是无效的.
//Y你也可以在一行中声明多个变量:
new e,f,g,h
new x=7, y=3
new z = 1_000_000 //
文档评论(0)