Project1

标题: 关于taroxd半成品QTE教程的若干疑问 [打印本页]

作者: Forever火    时间: 2015-8-20 09:03
标题: 关于taroxd半成品QTE教程的若干疑问
在下的疑问是
第26行的trigger if hit? && @frame.abs <= TOLERENCE中的@frame.abs是什么龟
第40行的@when_triggered.call又是什么龟
关键代码如下
[pre lang="ruby"]# 技能公式范例:
# Taroxd::QTE.set { b.add_state 1 }; a.atk * 4 - b.def * 2

module Taroxd end

class << Taroxd::QTE = Object.new

  WAITING = 60  # 执行 set 到触发时间的帧数

  SCREEN_WAITING = WAITING + 60 # 执行 set 时画面等待的帧数

  TOLERENCE = 1 # 准许误差的帧数

  # key 为 nil 时表示没有 QTE 设置
  # when_triggered: QTE 触发时执行的脚本
  def set(key = :C, &when_triggered)
    @frame = WAITING
    @key = key
    @when_triggered = when_triggered
  end

  def update
    return unless @key
    @frame -= 1
    return terminate if @frame < -TOLERENCE
    trigger if hit? && @frame.abs <= TOLERENCE
  end

  def pos
    @key && 1 - @frame.fdiv(WAITING)
  end

  private

  def hit?
    Input.trigger?(@key)
  end

  def trigger
    @when_triggered.call
    terminate
  end

  def terminate
    @key = nil
  end
end[/pre]
作者: Forever火    时间: 2015-8-20 11:10
谢谢,已经看懂了
作者: Forever火    时间: 2015-8-20 11:24
标题: 想尝试制作一个战斗用QTE脚本,求大角虫指点下
看了taroxd的QTE半成品教程,虽说已经完全明白核心代码,然而在下对默认的战斗系统并不了解,因此不知如何将脚本嵌入战斗系统,目前只对战斗开始前的处理比较清楚,战斗开始以后在下从battlemanager看不出逻辑(愚钝的我),我的QTE想达到的效果是,如果满足某个条件(如boss剩下1/5的血,虚弱等条件),就触发这个QTE,个人设想是需要在整个战斗里不停的刷新来判断,然后一旦符合条件就暂停战斗,待QTE结束后,施加相应效果再继续。。。请问各位大神,我应该在那些类里面寻找相关的嵌入口
作者: wex256    时间: 2015-8-20 21:05
对于这种,我推荐直接@taroxd




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X5.0