Project1

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

作者: Forever火    时间: 2015-8-20 09:03
标题: 关于taroxd半成品QTE教程的若干疑问
在下的疑问是
第26行的trigger if hit? && @frame.abs <= TOLERENCE中的@frame.abs是什么龟
第40行的@when_triggered.call又是什么龟
关键代码如下
RUBY 代码复制
  1. # 技能公式范例:
  2. # Taroxd::QTE.set { b.add_state 1 }; a.atk * 4 - b.def * 2
  3.  
  4. module Taroxd end
  5.  
  6. class << Taroxd::QTE = Object.new
  7.  
  8.   WAITING = 60  # 执行 set 到触发时间的帧数
  9.  
  10.   SCREEN_WAITING = WAITING + 60 # 执行 set 时画面等待的帧数
  11.  
  12.   TOLERENCE = 1 # 准许误差的帧数
  13.  
  14.   # key 为 nil 时表示没有 QTE 设置
  15.   # when_triggered: QTE 触发时执行的脚本
  16.   def set(key = :C, &when_triggered)
  17.     @frame = WAITING
  18.     @key = key
  19.     @when_triggered = when_triggered
  20.   end
  21.  
  22.   def update
  23.     return unless @key
  24.     @frame -= 1
  25.     return terminate if @frame < -TOLERENCE
  26.     trigger if hit? && @frame.abs <= TOLERENCE
  27.   end
  28.  
  29.   def pos
  30.     @key && 1 - @frame.fdiv(WAITING)
  31.   end
  32.  
  33.   private
  34.  
  35.   def hit?
  36.     Input.trigger?(@key)
  37.   end
  38.  
  39.   def trigger
  40.     @when_triggered.call
  41.     terminate
  42.   end
  43.  
  44.   def terminate
  45.     @key = nil
  46.   end
  47. end

作者: 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! X3.1