子弹定义 (<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。这种结构使得子弹的动画和显示具有高度的灵活性。