子弹定义 (<BulletDef>)
功能说明
子弹定义主要用于描述游戏中的投射物或子弹的特性。这些定义通常由远程武器引用,以指定武器发射物的行为、外观和属性。子弹不仅包含基本的名称和描述,还能够定义自身的移动速度、生命值等属性,以及在不同状态下显示的纹理。
可用参数
| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
defName | 字符串 | 无 | 必需。该子弹定义的唯一标识符。 |
label | 字符串 | (空) | 可选。该子弹在游戏中显示的名称。 |
description | 字符串 | (空) | 可选。该子弹在游戏中的详细描述。 |
attributes | 定义 | (匿名定义默认值) | 定义子弹具体的战斗属性,如生命值、移动速度等。可以是引用或匿名定义。详见下文**attributes 字段**。 |
drawingOrder | 定义 | (空) | 定义子弹在不同状态和方向下的纹理绘制顺序。这是一个匿名嵌套定义。详见下文**drawingOrder 字段**。 |
示例
这是一个定义名为“yellowBullet”的子弹的例子,展示了属性和绘制顺序的嵌套定义:
<Define>
<!-- 子弹纹理定义 -->
<ImageDef>
<defName>yellowBullet</defName>
<path>Resources\Item\YellowBullet_down.png</path>
<pixelsPerUnit>64</pixelsPerUnit>
</ImageDef>
<!-- 子弹定义 -->
<BulletDef>
<defName>yellowBullet</defName>
<label>黄色子弹</label>
<description>一颗黄色的子弹</description>
<!-- 嵌套定义属性 -->
<attributes>
<health>1</health>
<moveSpeed>20</moveSpeed>
<attack>1</attack> <!-- 子弹也可以有自己的攻击力 -->
</attributes>
<!-- 嵌套定义纹理绘制顺序 -->
<drawingOrder>
<!-- 闲置向下状态的纹理 -->
<idle_down>
<textures>
<li>yellowBullet</li>
</textures>
</idle_down>
<!-- 行走向下状态的纹理 -->
<walk_down>
<textures>
<li>yellowBullet</li>
</textures>
</walk_down>
</drawingOrder>
</BulletDef>
</Define>
复杂参数说明
attributes 字段 (子弹属性定义)
- 说明:定义子弹的具体属性,如生命值、移动速度、攻击力等。可以是一个对预定义的
<AttributesDef>的defName引用,也可以是当前位置的匿名定义。 - 引用方式:
<attributes>AttributesDef的defName</attributes> - 匿名定义方式:
<attributes> <health>1</health> <moveSpeed>20</moveSpeed> <attack>1</attack> <defense>0</defense> <attackSpeed>1</attackSpeed> <attackRange>1</attackRange> <attackTargetCount>1</attackTargetCount> </attributes>
drawingOrder 字段 (纹理绘制顺序定义)
- 说明:这是一个匿名嵌套定义,用于指定子弹在不同游戏状态(如
idle_down,walk_down等)下所使用的纹理。drawingOrder下的每个子元素(例如<idle_down>)都代表一个具体的动画状态或方向组,其内部可以定义该状态下的纹理列表。 - 匿名定义方式:
<drawingOrder> <!-- 状态/方向名称 (例如:idle_down) --> <状态名称> <textures> <li>ImageDef的defName1</li> <li>ImageDef的defName2</li> <!-- ...更多纹理引用 --> </textures> <!-- 还可以添加其他与该状态相关的属性 --> </状态名称> <!-- ...可以定义更多状态/方向 --> </drawingOrder> - 示例:
请注意,<drawingOrder> <idle_down> <textures> <li>yellowBullet</li> </textures> </idle_down> <walk_down> <textures> <li>yellowBullet</li> </textures> </walk_down> <!-- 如果子弹有其他方向或动画,可以在此处添加 --> <idle_up> <textures> <li>yellowBullet_up</li> </textures> </idle_up> </drawingOrder><textures>元素中包含的是一系列<li>元素,每个<li>引用一个已定义的<ImageDef>的defName。这种结构使得子弹的动画和显示具有高度的灵活性。