查看: 1783|回复: 1

[已经过期] 一个简单的XP脚本转换成VA的

[复制链接]
梦石
0
星屑
55
在线时间
84 小时
注册时间
2009-1-30
回帖
142
发表于 2014-9-7 18:20:02 | 显示全部楼层 |阅读模式

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

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

×
XP的,以前自己写的一个脚本,VA脚本不会...窗口类的新特性无法理解
[pre lang="ruby" line="1" file="Scene_My"]
class Scene_My
  def main
    #生成窗口
    @my_window = Window_My.new
    #执行过渡
    Graphics.transition
    # 在这里创建一个Sprite
    @sp_enemy=Sprite.new #这里创建一个Sprite 用途是显示图形 enemy=敌人
    @sp_enemy.x=95
    @sp_enemy.y=5
    #主循环
    loop do
      #刷新游戏画面
      Graphics.update
      #刷新输入信息
      Input.update
      #刷新画面
      update
      #如果画面切换就中断循环
      if $scene != self
        break
      end
    end
    #准备过渡
    Graphics.freeze
    #释放窗口
    @my_window.dispose
    #释放精灵
    @sp_enemy.dispose
  end
  
  def update
    #刷新窗口
    @my_window.update
    #按下B键(ESC)的情况下
    if Input.trigger?(Input::B)
      #演奏取消SE
      $game_system.se_play($data_system.cancel_se)
      #切换的地图画面
      $scene = Scene_Map.new
      return
    end
   
    #按下C键(确定建)的情况
    if Input.trigger?(Input::C)
      #根据窗口光标位置分歧
      case @my_window.index
        when 0
        
         @sp_enemy.bitmap = Bitmap.new("Graphics/Fogs/BJ1")
      
        #end
        when 1
         @sp_enemy.bitmap= Bitmap.new("Graphics/Battlers/076-Devil02")
         
        #end
        when 2
         @sp_enemy.bitmap = Bitmap.new("Graphics/Battlers/077-Devil03")
        
        
        #end
      end
      #end
      return
    end
  end
end
      
[/pre]

[pre lang="ruby" line="1" file="Windon_My"]class Window_My < Window_Selectable
  def initialize
    super(0,0,90,640) #(x,y,w,h)
    self.contents = Bitmap.new(width - 32,height - 32)
    @arr=["第1页","第2页","第3页"]
    @item_max = @arr.size #item(项目)max(最大数)=项目总数
    self.index = 0 #光标初始位置,如果为-1不显示
    refresh
  end
  
  def refresh
    self.contents.clear
    for index in 0...@arr.size
      rect = Rect.new(0,32*index,self.contents.width-8,22)
      self.contents.fill_rect(rect,Color.new(255,255,255,0))
      self.contents.draw_text(0,32*index,128,32,"#{@arr[index]}") #(x,y,w,h,"")
    end
  end
end
[/pre]
其实就是调用后可以现实一个窗口,这个窗口能分页现实图片啦

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2014-9-7 18:29:28 | 显示全部楼层
本帖最后由 taroxd 于 2014-9-7 18:31 编辑

https://rpg.blue/thread-315743-1-1.html

我简单看了一下你的代码,XP和VA在场景和窗口还是有很多改进的。

首先,VA场景切换不是通过 $scene ,而是通过 SceneManager
然后,VA的 Window_Selectable 也不是用你的方式工作的。同时,也不需要你手动设定 contents —— 这在 Window_Base 已经为你实现

最后一个小问题,你的 bitmap 忘了释放

点评

确实很人性化。窗口类和场景类其实不怎么需要学,只要学好了Ruby这些自然就懂了  发表于 2014-9-7 20:35
刚开始看到这些感觉还很人性化。。。但是后面就发现不知道怎么弄才能达到原来的效果了,赶脚窗口类场景类都白学了TAT  发表于 2014-9-7 20:09
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部