`
web3d
  • 浏览: 86375 次
  • 性别: Icon_minigender_1
  • 来自: 南昌
社区版块
存档分类
最新评论

Virtools脚本语言(VSL)教程 - 表达式与运算符

 
阅读更多
<h3>表达式</h3>
<p>表达式是变量、运算符的任意组合,且表达式返回一个单一值。值可以是数字、字符串或逻辑值。</p>
<p>有两种类型的表达式:有些是将值赋给变量,有些则是简单的有一个值。比如表达式 x = 5 用了赋值运算符来将值5赋给x。x = 5 的赋值过程也返回值5。而表达式( 4 + 1)则简单地返回5,它没有执行赋值。</p>
<h3>
<a name="TOC-2"></a>运算符</h3>
<p>VSL中有一些类型的运算符:</p>
<blockquote>
<li>赋值运算符</li>
<li>比较运算符</li>
<li>算术运算符</li>
<li>逻辑运算符</li>
</blockquote>
<h4>
<a name="TOC-3"></a>赋值运算符</h4>
<p>赋值运算符将值赋给它左边的运算对象(operand),基于它右边运算对象的值。<br>等号 (=) 是赋值运算符的基,x = y 意味着将y的值赋给x。</p>
<h5>
<a name="TOC-4"></a>支持的</h5>
<table style="width: 400px;" border="1" cellspacing="0" cellpadding="1"><tbody>
<tr>
<td width="45%" valign="top"><strong>运算符</strong></td>
<td width="55%" valign="top">
<strong>意义</strong><br>
</td>
</tr>
<tr>
<td width="45%" valign="top">x += y</td>
<td width="55%" valign="top">x = x + y</td>
</tr>
<tr>
<td width="45%" valign="top">x -= y</td>
<td width="55%" valign="top">x = x - y</td>
</tr>
<tr>
<td width="45%" valign="top">x *= y</td>
<td width="55%" valign="top">x = x * y</td>
</tr>
<tr>
<td width="45%" valign="top">x /= y</td>
<td width="55%" valign="top">x = x / y</td>
</tr>
</tbody></table>
<h5>
<a name="TOC-5"></a>不支持的</h5>
<table style="width: 180px;" border="1" cellspacing="0" cellpadding="1"><tbody>
<tr>
<td valign="top"><strong>运算符</strong></td>
</tr>
<tr>
<td valign="top">x %= y</td>
</tr>
<tr>
<td valign="top">x &lt;&lt;= y</td>
</tr>
<tr>
<td valign="top">x &gt;&gt;= y</td>
</tr>
<tr>
<td valign="top">x &gt;&gt;&gt;= y</td>
</tr>
<tr>
<td valign="top">x &amp;= y</td>
</tr>
<tr>
<td valign="top">x ^= y</td>
</tr>
<tr>
<td valign="top">x |= y</td>
</tr>
</tbody></table>
<p>实例:</p>
<pre>void main()<br>{<br> int x = 2;<br> int y = 4;<br><br> x += y; <span>// x is equal to 6</span>
x -= 3; <span>// x is equal to 3</span>
x *= y-1; <span>// x is equal to 9</span>
x /= x-y; <span>// x is equal to 1</span>
}

<p><strong>NOTE</strong>赋值运算符表达式在赋值完成后返回它们左边运算对象的值。因此,以下脚本从语法角度是有效的:</p>
<pre>void main()<br>{<br> int x;<br> int y;<br> int z = 10;<br><br> x = y = z; <span>// ok, x and y equal to 10</span>
x += y += z; <span>// ok, x equal to 30 and y to 20</span>
x *= y /= z; <span>// ok. x equal to 60 and y to 2</span>
<span>// ...</span>
}

<h4>
<a name="TOC-6"></a>比较运算符</h4>
<p>比较运算符对它的运算对象进行比较,并返回一个逻辑值,基于比较结果是否为真。这里是VSL支持的比较运算符。</p>
</pre></pre>
<table style="width: 700px;" border="1" cellspacing="0" cellpadding="1"><tbody>
<tr>
<td width="25%" valign="top">
<strong>运算符</strong><br>
</td>
<td width="31%" valign="top">
<strong>意义</strong><br>
</td>
<td width="44%" valign="top"><strong>说明</strong></td>
</tr>
<tr>
<td width="25%" valign="top">==</td>
<td width="31%" valign="top">相等</td>
<td width="44%" valign="top">如果运算对象相等,返回true。</td>
</tr>
<tr>
<td width="25%" valign="top">!=</td>
<td width="31%" valign="top">不等</td>
<td width="44%" valign="top">如果运算对象不相等,返回true。</td>
</tr>
<tr>
<td width="25%" valign="top">&gt;</td>
<td width="31%" valign="top">大于</td>
<td width="44%" valign="top">如果左边运算对象大于右边的,返回true。</td>
</tr>
<tr>
<td width="25%" valign="top">&gt;=</td>
<td width="31%" valign="top">大于等于</td>
<td width="44%" valign="top">如果左边运算对象大于或等于右边的,返回true。</td>
</tr>
<tr>
<td width="25%" valign="top">&lt;</td>
<td width="31%" valign="top">小于</td>
<td width="44%" valign="top">如果左边运算对象小于右边的,返回true。</td>
</tr>
<tr>
<td width="25%" valign="top">&lt;=</td>
<td width="31%" valign="top">小于等于</td>
<td width="44%" valign="top">如果左边运算对象小于或等于右边的,返回true。</td>
</tr>
</tbody></table>
<p>实例:</p>
<pre>void main()<br>{<br> int i = 10;<br> float f = 2.3;<br> bool b1 = i &gt; f; <span>// b1 equal to true</span>
bool b2 = b1 == i; <span>// b2 equal to false</span>
i = b1 != b2; <span>// i equal to 1;</span>
}

<h4>
<a name="TOC-7"></a>算术运算符</h4>
<p>算术运算符将数值作为它们的运算对象并返回一单个数值。</p>
</pre>
<table style="width: 700px;" border="1" cellspacing="0" cellpadding="1"><tbody>
<tr>
<td width="25%" valign="top">
<strong>运算符</strong><br>
</td>
<td width="31%" valign="top"><strong>意义</strong></td>
<td width="44%" valign="top"><strong>描述</strong></td>
</tr>
<tr>
<td width="25%" valign="top">+</td>
<td width="31%" valign="top">加法</td>
<td width="44%" valign="top">二元运算符。让它的两个运算对象相加。运算对象可以为整型或浮点型。</td>
</tr>
<tr>
<td width="25%" valign="top">-</td>
<td width="31%" valign="top">减法</td>
<td width="44%" valign="top">二元运算符。将第一个运算对象减去第二个运算对象。可以为整型或浮点型。</td>
</tr>
<tr>
<td width="25%" valign="top">*</td>
<td width="31%" valign="top">乘法</td>
<td width="44%" valign="top">二元运算符。让它的两个运算对象相乘。</td>
</tr>
<tr>
<td width="2&lt;mce:script type=">
&lt;script src="http://hi.images.csdn.net/js/blog/tiny_mce/plugins/syntaxhl/langs/zh.js" type="text/javascript"&gt;&lt;/script&gt;
5%" valign="top"&gt;/</td>
<td width="31%" valign="top">除法</td>
<td width="44%" valign="top">二元运算符。让第二个运算对象去除第一个运算对象。</td>
</tr>
<tr>
<td width="25%" valign="top">%</td>
<td width="31%" valign="top">取余</td>
<td width="44%" valign="top">二元运算符。返回两个运算对象相除后的整数部分。</td>
</tr>
<tr>
<td width="25%" valign="top">++</td>
<td width="31%" valign="top">增加</td>
<td width="44%" valign="top">一元运算符。将它的运算对象加1。如果是前置运算符(++x),则在加1后返回它的运算对象;如果是后置运算符(x++),则在加1之前返回运算对象的值。</td>
</tr>
<tr>
<td width="25%" valign="top">--</td>
<td width="31%" valign="top">减少</td>
<td width="44%" valign="top">一元运算符。将它的运算对象减1。返回值情况类似增加运算符。</td>
</tr>
<tr>
<td width="25%" valign="top">(Unary) -</td>
<td width="31%" valign="top">一元求负</td>
<td width="44%" valign="top">一元运算符。返回它运算符的负值。</td>
</tr>
</tbody></table>
<p>实例:</p>
<pre>void main()<br>{<br> int i1 = 42;<br> int i2 = 123;<br> float f1 = .2;<br> float f2 = 3567.3623;<br><br> int r1 = i2-i1; <span>// r1 equal 81</span>
float r2 = i2*f1; <span>// r2 equal to 24.6</span>
int r3 = i2/2; <span>// r3 equal to 61</span>
int r4 = f1*f2; <span>// r4 equal to 713</span>
float r5 = f1*f2; <span>/ r5 equal to 713.472473</span>

}

<pre>void main()<br>{<br> int a = 10;<br> a++; <span>// a equal to 11</span>
int b = ++a; <span>// a and b equal to 12</span>
int c = a--; <span>// a equal to 11 and c equal to 12</span>
}

<h4>
<a name="TOC-8"></a>逻辑运算符</h4>
<p>逻辑运算符 与(&amp;&amp;) 和 或 (||),用于将多个关系表达式或等式形式的条件组合起来。</p>
</pre></pre>
<table style="width: 700px;" border="1" cellspacing="0" cellpadding="1"><tbody>
<tr>
<td width="25%" valign="top"><strong>Operator</strong></td>
<td width="31%" valign="top"><strong>Meaning</strong></td>
<td width="44%" valign="top"><strong>Description</strong></td>
</tr>
<tr>
<td width="25%" valign="top">&amp;&amp;</td>
<td width="31%" valign="top">逻辑 与</td>
<td width="44%" valign="top">Returns true if both operands are true, otherwise, returns false.</td>
</tr>
<tr>
<td width="25%" valign="top">||</td>
<td width="31%" valign="top">逻辑 或</td>
<td width="44%" valign="top">Returns true if either operand is true, if both are false, returns false.</td>
</tr>
<tr>
<td width="25%" valign="top">!</td>
<td width="31%" valign="top">逻辑 否</td>
<td width="44%" valign="top">Returns true if operand is false, else returns false.</td>
</tr>
</tbody></table>
<p>实例:</p>
<pre>void main()<br>{<br> Entity3D ent = Entity3D.Cast(bc.GetOwner());<br> if (ent &amp;&amp; ent.CanBeHide()) <span>// if ent is null (false), expression ent.CanBeHide() is not evaluated</span>
{
<span>// ...</span>
}
}
</pre>
分享到:
评论

相关推荐

    Virtools例子----走迷宫(附带max模型、Virtools源文件)

    在压缩包文件"Virtools-走迷宫"中,可能包含了以下内容: 1. Virtools工程文件:这是Virtools项目的主要文件,包含了场景布局、行为脚本、资源引用等所有信息。用户可以使用Virtools软件打开此文件,查看和修改项目...

    Virtools增强现实专用BB-ARToolkit BB

    增强现实技术通过将虚拟信息与现实世界融合,为用户创造了一个全新的交互体验,而Virtools AR Toolkit BB则简化了这一过程,使得开发者能够更高效地创建此类应用。 首先,让我们深入了解Virtools。Virtools是一款...

    virtools基本教材

    - **脚本语言**:Virtools脚本语言(VSL),用于编写自定义行为。 4. **参数** - **概述**:用于控制对象行为的数据值。 - **参数操作**:通过运算符改变参数的值,实现动态调整对象的状态。 5. **属性** - **...

    virtools学习资料

    ### Virtools学习资料:VSL脚本语言入门与实践 #### 一、VSL脚本语言简介 Virtools是一款强大的3D应用开发平台,广泛应用于游戏开发、虚拟现实、建筑可视化等多个领域。Virtools提供了丰富的功能和工具集,其中VSL...

    Virtools的VSL和SDK编程编码规则

    Virtools 是一款强大的交互式3D应用开发工具,它的VSL(Virtools Script Language)是内置的脚本语言,而SDK(Software Development Kit)则提供了更底层的编程接口。为了确保代码的质量、可读性和可维护性,遵循...

    VirTools教程

    VSL是一种专为Virtools设计的脚本语言,允许程序员深入控制交互逻辑。 4. **渲染引擎** 渲染引擎负责将3D场景转化为可视图像,支持实时预览和最终输出。开发者可以通过SDK定制渲染引擎,以满足特定需求。 5. **...

    Virtools播放器去水印Lib-5.0.0.8版

    通过SDK,你可以访问到Virtools的各种内部函数和对象,包括与播放器界面和渲染引擎交互的部分。 在实际操作中,你可能需要将CKKernelInit.lib链接到你的项目中,然后调用相应的API来初始化和控制播放器的行为。这...

    Virtools 中文精华教程PDF

    此外,教程还会涵盖动画系统、脚本语言(LVB)的使用,以及如何与外部程序(如Unity、C++)进行集成。动画系统允许用户制作角色和物体的动态效果,而LVB(Virtools Behavior Language)则为那些希望更深入编程的用户...

    Virtools电子教程 全中文

    本教程全面覆盖了Virtools的基础到高级功能,以全中文的形式呈现,旨在帮助用户克服语言障碍,更好地理解和掌握这款软件的使用。 在本教程中,你将学习到以下关键知识点: 1. **Virtools界面与工作流程**:了解...

    台湾世新大学Virtools中文教程13.阵列应用初步_上_扫描.pdf

    台湾世新大学的Virtools中文教程13章节主要讲解了如何在Virtools中进行阵列应用的初步操作,包括3D Sprite的创建、贴图置换、阵列的基本设定以及使用阵列进行基本的程序设定。以下是对这些知识点的详细解释: 1. **...

    Virtools漫游脚本程序

    Virtools漫游脚本程序是一种基于Virtools软件的高级编程技术,主要用于创建虚拟现实(VR)环境中的交互式漫游体验。Virtools是一款强大的3D创作工具,它为设计师和开发者提供了一个直观的界面,用于构建复杂的3D场景、...

    3DMax导出到Virtools5.0插件(max2009-2011)

    《3DMax与Virtools交互:3DMax导出到Virtools5.0插件的详细解析》 在三维制作领域,3DMax是一款广泛使用的专业3D建模、动画和渲染软件,而Virtools则是一款强大的交互式3D应用程序开发平台。两者结合,能够实现从3D...

    VT资料\virtools教程\Virtools教程

    【Virtools教程】是针对虚拟现实开发平台Virtools的一份详细教学资料,旨在帮助初学者理解和掌握如何在Virtools中创建3D互动场景。Virtools是一个强大的工具,它允许用户无需编程知识就能构建复杂的交互式应用程序,...

    Virtools中文教程pdf

    尽管Virtools强调无代码开发,但其内置的LScript语言提供了更高级的功能,对于复杂逻辑或自定义功能的实现必不可少。 六、交互设计 1. 交互对象:设置对象为交互式,定义其响应何种类型的用户交互。 2. 事件触发:...

    virtools我的最爱

    它提供了多种方式进行交互式体验的创建,包括VSL(Virtools脚本语言)、脚本流程图以及SDK(软件开发工具包)。 VSL,全称为Virtools Script Language,是一种强大的脚本语言,允许开发者深入到Virtools SDK的底层...

    Autodesk Maya exporters for 3DVIA Virtools

    Note: 64-bit 3dsMax/Maya and Virtools On 64-bit systems, Virtools executes as a 32-bit application. Thus, no exporter exists for 3dsMax/Maya 64-bit to Virtools due to compatibility problems. However,...

    virtools入门教程

    ### Virtools入门教程详解 #### 一、Virtools概述与特色 Virtools是一款革命性的实时3D环境虚拟现实编辑软件,旨在将常见的档案格式(包括3D模型、2D图像和音频)无缝集成,用于创建各种3D产品,如网络应用、电脑...

Global site tag (gtag.js) - Google Analytics