8818513 发表于 2025-7-30 13:38:15

TXT实战课程,天赋系统

<h1><a href="https://fanm37t2tx.feishu.cn/minutes/obcnx3f331r1ge6n8bq5k6v4?from=from_copylink">视频课程</a></h1>
<h3>《传奇游戏引擎脚本开发——天赋系统设计与实现》教案</h3>
<hr />
<h4>​<strong>​课程名称​</strong>​:传奇游戏引擎脚本开发(八)——天赋系统设计与实现</h4>
<p>​<strong>​适用对象​</strong>​:传奇引擎(如996引擎)脚本开发学习者<br />
​<strong>​课时​</strong>​:2课时(90分钟)</p>
<hr />
<h3>​<strong>​一、教学目标​</strong>​</h3>
<ol>
<li>​<strong>​知识目标​</strong>​:掌握天赋系统的核心组件(按钮界面、CSV表格、循环逻辑、属性组)的设计原理与引擎实现方法;理解天赋等级限制、属性动态添加的脚本逻辑。</li>
<li>​<strong>​能力目标​</strong>​:能独立完成“天赋系统界面创建→按钮循环布局→CSV数据读取→属性动态绑定”的全流程脚本开发;能调试并解决天赋系统常见错误(如坐标错位、属性未持久化)。</li>
<li>​<strong>​情感目标​</strong>​:通过实操任务,培养学生对游戏功能模块化设计的理解,提升逻辑思维与问题解决能力,为后续复杂系统(如技能系统、装备系统)开发奠定基础。</li>
</ol>
<hr />
<h3>​<strong>​二、教学重点与难点​</strong>​</h3>
<ul>
<li>​<strong>​重点​</strong>​:
<ul>
<li>天赋界面的创建(按钮添加、坐标计算与循环布局);</li>
<li>CSV表格的数据结构设计(天赋名称、等级要求、属性参数);</li>
<li>循环逻辑的实现(变量控制、坐标换行计算);</li>
<li>属性组的动态绑定(天赋开启后属性永久生效)。</li>
</ul>
</li>
<li>​<strong>​难点​</strong>​:
<ul>
<li>循环中坐标换行的计算逻辑(按钮横向/纵向排列的坐标推导);</li>
<li>属性组的持久化存储(登录触发时加载已开启的天赋属性);</li>
<li>天赋等级限制的条件判断(结合角色等级与CSV表格数据)。</li>
</ul>
</li>
</ul>
<hr />
<h3>​<strong>​三、教学方法​</strong>​</h3>
<ul>
<li>​<strong>​演示法​</strong>​:通过引擎可视化编辑器(控制台+F11)演示天赋界面创建、按钮循环布局、属性组绑定等操作,直观展示关键步骤。</li>
<li>​<strong>​任务驱动法​</strong>​:布置“天赋系统开发”实操任务(含界面设计、脚本编写、测试调试),引导学生分步骤完成。</li>
<li>​<strong>​问题解决法​</strong>​:针对学生实操中常见问题(如按钮错位、属性未生效),现场调试并讲解解决方案。</li>
</ul>
<hr />
<h3>​<strong>​四、教学过程​</strong>​</h3>
<h4>​<strong>​(一)课程导入(10分钟)​</strong>​</h4>
<p>通过回顾上午内容(属性组、CSV表格),引出下午主题:“今天我们将开发一个‘天赋系统’——玩家每升一级可获得天赋点,自由选择天赋方向(如攻击、防御、技能伤害),天赋开启后可永久提升角色属性。掌握这一功能,能让你的游戏更具成长感与策略性。”</p>
<hr />
<h4>​<strong>​(二)新授内容(50分钟)​</strong>​</h4>
<h5>​<strong>​1. 天赋界面设计与按钮添加(10分钟)​</strong>​</h5>
<ul>
<li>​<strong>​界面定位​</strong>​:将天赋按钮添加至装备栏(界面ID=3,“角色外框”区域),确保玩家操作便捷。</li>
<li>​<strong>​按钮创建​</strong>​:
<ul>
<li>新建自定义按钮,命名为“天赋按钮”,设置尺寸(宽105px,高30px),调整坐标至装备栏右上方(初始坐标X=317,Y=167)。</li>
<li>绑定点击事件:<code>LINK AT 天赋界面</code>,跳转至天赋选择界面。</li>
</ul>
</li>
<li>​<strong>​循环布局​</strong>​:
<ul>
<li>使用循环逻辑(<code>MOV N0 0</code>至<code>N0 &lt; 16</code>),动态生成16个天赋按钮(对应CSV表格中的16行数据)。</li>
<li>坐标计算:横向排列(X坐标递增110px),若X&gt;200则换行(Y坐标递增40px),避免按钮重叠。</li>
</ul>
</li>
</ul>
<hr />
<h5>​<strong>​2. CSV表格设计与数据读取(12分钟)​</strong>​</h5>
<ul>
<li>​<strong>​表格结构​</strong>​:创建<code>天赋系统.CSV</code>,包含列:<code>天赋名称</code>、<code>开启等级</code>、<code>属性类型</code>(如攻击/防御)、<code>属性值</code>(如+10攻击)。
<pre><code>天赋名称,开启等级,属性类型,属性值
力量强化,30,攻击,+10
敏捷强化,35,防御,+5
技能精通,40,技能伤害,+8
...(共16行)
</code></pre>
</li>
<li>​<strong>​数据加载​</strong>​:
<ul>
<li>使用<code>LOAD TABLE</code>指令加载CSV表格(<code>天赋系统</code>),通过<code>GET TABLE VALUE</code>读取指定行/列数据(如<code>N0</code>行<code>第2列</code>为开启等级)。</li>
</ul>
</li>
</ul>
<hr />
<h5>​<strong>​3. 循环逻辑与天赋开启(15分钟)​</strong>​</h5>
<ul>
<li>​<strong>​循环框架​</strong>​:
<pre><code>MOV N0 0          // 初始化循环变量N0(天赋索引)
WHILE N0 &lt; 16 DO// 循环16次(对应16个天赋)
    // 读取当前天赋数据(名称、等级要求、属性)
    GET TABLE VALUE(天赋系统, N0, 0, S1)// S1=天赋名称
    GET TABLE VALUE(天赋系统, N0, 1, S2)// S2=开启等级
    GET TABLE VALUE(天赋系统, N0, 2, S3)// S3=属性类型
    GET TABLE VALUE(天赋系统, N0, 3, S4)// S4=属性值

    // 创建按钮并绑定参数(N0为索引)
    ADD BUTTON(天赋按钮, N0)// 按钮ID=N0
    SET BUTTON TEXT(天赋按钮, N0, S1)// 按钮显示天赋名称

    // 绑定点击事件(传递参数N0)
    LINK AT 选择天赋, N0
    MOV N0 (N0 + 1)// 循环变量+1
ENDWHILE
</code></pre>
</li>
<li>​<strong>​天赋开启判断​</strong>​:
<ul>
<li>点击按钮时,传递参数<code>N0</code>(天赋索引),读取<code>S2</code>(开启等级),判断角色等级是否≥<code>S2</code>。</li>
<li>若满足条件,执行<code>SET ATTR</code>添加属性(如<code>SET ATTR(攻击, ATTR_攻击 + S4)</code>);否则提示“等级不足”。</li>
</ul>
</li>
</ul>
<hr />
<h5>​<strong>​4. 属性组绑定与持久化(10分钟)​</strong>​</h5>
<ul>
<li>​<strong>​属性组动态添加​</strong>​:
<ul>
<li>天赋开启时,通过<code>ADD ATTR_GROUP</code>指令绑定属性组(如<code>天赋一</code>对应攻击+10),避免使用<code>ADD ATTR</code>(临时属性,重启失效)。</li>
<li>示例:
<pre><code>IF 天赋一已开启 THEN
    ADD ATTR_GROUP(&quot;天赋一&quot;, &quot;=&quot;, 10)// 攻击+10(永久生效)
ENDIF
</code></pre>
</li>
</ul>
</li>
<li>​<strong>​登录触发持久化​</strong>​:
<ul>
<li>在<code>登录触发</code>脚本中,读取<code>T141</code>变量(存储已开启的天赋主键),通过<code>GET KEY VALUE</code>获取已开启天赋列表,重新绑定属性组。</li>
<li>示例:
<pre><code>ON LOGIN BEGIN
    LOAD TABLE(天赋系统)// 服务器启动时已加载
    MOV N0 0
    WHILE N0 &lt; 16 DO
      GET KEY VALUE(T141, N0, S5)// S5=天赋开启状态(0/1)
      IF S5 == 1 THEN
            ADD ATTR_GROUP(&quot;天赋&quot;&amp;N0, &quot;=&quot;, S4)// S4=属性值(来自CSV)
      ENDIF
      MOV N0 (N0 + 1)
    ENDWHILE
ENDON
</code></pre>
</li>
</ul>
</li>
</ul>
<hr />
<h4>​<strong>​(三)课堂练习(20分钟)​</strong>​</h4>
<ol>
<li>​<strong>​任务1:完善天赋界面​</strong>​
<ul>
<li>要求:调整按钮坐标(横向排列,间距10px),添加“天赋灰度”效果(未开启时按钮变灰),点击后显示“已开启”提示。</li>
<li>提示:使用<code>SET BUTTON COLOR</code>(灰度=247,黄色=251)与<code>SET BUTTON TEXT COLOR</code>(未开启=灰色,已开启=黄色)。</li>
</ul>
</li>
<li>​<strong>​任务2:添加天赋等级限制​</strong>​
<ul>
<li>要求:在CSV表格中增加“开启等级”列(如天赋1=30级,天赋2=35级),脚本中判断角色等级是否达标,未达标时禁用按钮并提示。</li>
<li>提示:使用<code>CHECK LEVEL</code>指令(如<code>CHECK LEVEL &gt;= S2</code>)。</li>
</ul>
</li>
<li>​<strong>​任务3:测试属性持久化​</strong>​
<ul>
<li>要求:小退后重新登录,验证已开启的天赋属性是否保留(如攻击+10)。</li>
<li>提示:检查<code>登录触发</code>脚本是否正确读取<code>T141</code>变量并绑定属性组。</li>
</ul>
</li>
</ol>
<hr />
<h4>​<strong>​(四)总结与作业(10分钟)​</strong>​</h4>
<ul>
<li>​<strong>​总结​</strong>​:
<ul>
<li>天赋系统的核心是“界面布局+数据驱动+循环逻辑+属性持久化”;</li>
<li>CSV表格是数据存储的关键,需规范列名与数据类型;</li>
<li>循环变量<code>N0</code>需与按钮索引、CSV行号严格对应,避免错位。</li>
</ul>
</li>
<li>​<strong>​作业​</strong>​:
<ol>
<li>完善“天赋系统”脚本,添加16个天赋的完整数据(覆盖攻击、防御、技能伤害等属性)。</li>
<li>实现“天赋预览”功能(鼠标悬停按钮显示天赋详细信息,如“力量强化:30级开启,攻击+10”)。</li>
<li>思考:如何结合“套装系统”实现“套装激活后解锁额外天赋”?</li>
</ol>
</li>
</ul>
<hr />
<h3>​<strong>​五、教学反思​</strong>​</h3>
<p>(课后补充:需关注学生对循环逻辑中坐标计算的掌握情况,针对性辅导错位问题;部分学生可能混淆<code>LOAD TABLE</code>与<code>GET TABLE VALUE</code>的使用场景,需通过示例对比讲解;实操环节需加强巡视,及时解决引擎未重载、变量未初始化等问题。)</p>
页: [1]
查看完整版本: TXT实战课程,天赋系统