查看: 2228|回复: 2

[已经解决] 【我是猹】修改战斗场景出现了奇怪的错误

[复制链接]
梦石
0
星屑
55
在线时间
84 小时
注册时间
2009-1-30
回帖
142
发表于 2015-1-11 17:12:25 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
刚会写精灵场景,就来写了一发,结果出现了奇怪的错误求指点
现在碰到的问题是
1、那个奇怪的错误
2、怎么调用插进去的这个东西[pre lang="ruby" line="1"]#encoding:utf-8
#==============================================================================
# ■ Scene_Test
#------------------------------------------------------------------------------
#  插入战斗场景的
#==============================================================================

class Scene_Battle
  #--------------------------------------------------------------------------
  # ● 准备
  #--------------------------------------------------------------------------
  def prepare(data)
    @data=data
    @time_max=data.size * 60
    @time=data.size * 60
  end
  #--------------------------------------------------------------------------
  # ● 开始处理
  #--------------------------------------------------------------------------
  def start
    super
    # * 逻辑数据初始化
    @index=0
    # * 渲染部分初始化
    #背景
    create_background
     # 时间条精灵
    @sp_time = Sprite.new
    @sp_time.x = (Graphics.width-300)/2
    @sp_time.y = 60
    @sp_time.z = 5000
    @sp_time.bitmap = Bitmap.new(300,20)
    #时间条皮肤
    @sp_time_skin = Sprite.new
    @sp_time_skin.x = @sp_time.x - 10
    @sp_time_skin.y = @sp_time.y
    @sp_time_skin.z = @sp_time.z + 1
    @sp_time_skin.bitmap = Bitmap.new("Graphics/System/jindutiao")
   
   
    # 字母精灵组
    @data=[] if @data.nil?
    @sp_data=[]
    @data.size.times{|i|
      @sp_data=Sprite.new
      @sp_data.x=(Graphics.width-400)/2+i*32
      @sp_data.y=100
      @sp_data.bitmap=Bitmap.new(32,35)
      @sp_data.bitmap.draw_text(0,0,50,50,@data,1)
      @sp_data.z=500
    }
    # 指针精灵
    @sp_index=Sprite.new
    @sp_index.x=80
    @sp_index.y=150
    @sp_index.z=500
    @sp_index.bitmap=Bitmap.new("Graphics/System/zhizhen")
   # @sp_index.bitmap.fill_rect(0,0,50,50,Color.new(255,0,0))
  end
   #--------------------------------------------------------------------------
  # ● 生成背景
  #--------------------------------------------------------------------------
  def create_background
    @background_sprite = Sprite.new
    @background_sprite.bitmap = SceneManager.background_bitmap
    @background_sprite.color.set(16, 16, 16, 64)
  end
  #-------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
  alias :old_update :update

  def update
    old_update
    # 判断按键
    # 循环判断所有键是否被按下
    Kboard::KEYS.each{|k,v|
    if Kboard.keyboard(v)# 如果有键被按下
      if v==Kboard::KEYS[@data[@index]]#判断是否是正确的
        @index+=1
      else
        @index=0
      end
    end
    }
    @Time -= 1 # 一秒-60
    # 判断超时
    $game_switches[1] = true if @index == @data.size
    return_scene if @index >= @data.size
    return_scene if @time <= 0
    # 渲染刷新
    # 时间
    rate =  @time.to_f / @time_max
    #p rate
    @sp_time.bitmap.fill_rect(0,0,300,30,Color.new(255,0,255))
    @sp_time.bitmap.fill_rect(0,0,300*rate,30,Color.new(0,255,255))
    # 指针
    #@sp_data.x= @sp_data.x - @index*32
    @sp_index.x=(Graphics.width-400)/2+[@index,@data.size-1].min*32 + 8
    # 刷新一下
    @sp_time.update
    @sp_index.update
    @sp_data.each{|i|i.update}
  end
end
[/pre]

默认脚本中的Scene_Battle出错的几行是
[pre lang="ruby" line="94" file="默认的"]  #--------------------------------------------------------------------------
  # ● 等待信息显示的结束
  #--------------------------------------------------------------------------
  def wait_for_message
    @message_window.update
    update_for_wait while $game_message.visible
  end[/pre]
错.png
梦石
0
星屑
55
在线时间
84 小时
注册时间
2009-1-30
回帖
142
 楼主| 发表于 2015-1-11 17:15:46 | 显示全部楼层
另附工程,有需要的话自行下载喔~~对了,是测试战斗时候出的错。

打字母.rar

1.43 MB, 下载次数: 65

点评

我不过就是想在战斗时满足某个条件就暂停战斗然后弹出一个东西来让你按。。。结果好坑啊QAQ,一开始战斗就弹出来了  发表于 2015-1-11 18:41
prepared在输入数据的地方调用了。。。  发表于 2015-1-11 18:13
回复

使用道具 举报

无限の剣制

梦石
0
星屑
10450
在线时间
5019 小时
注册时间
2013-2-28
回帖
4942

开拓者贵宾

发表于 2015-1-11 17:23:22 | 显示全部楼层
本帖最后由 VIPArcher 于 2015-1-11 17:35 编辑

start 这么公厕的方法你不 alias 一下?

另外prepare方法你定义了没看到你调用它。

顺便我觉得你这个可以自己写一个类/模块去管理他,然后给个建议不要用old_xxx 这么低级的别名
然后我没测试

点评

已解决,确实是start的问题。。。谢谢版主大大~~~  发表于 2015-1-12 10:51
战斗场景都被你动成这样了,你居然告诉我你没动=_=  发表于 2015-1-11 18:30
alias后还是不行,我都没动战斗场景怎么也出问题。。。。  发表于 2015-1-11 18:05

评分

参与人数 1梦石 +1 收起 理由
taroxd + 1 认可答案

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部