设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1483|回复: 1
打印 上一主题 下一主题

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

[复制链接]

Lv1.梦旅人

梦石
0
星屑
55
在线时间
84 小时
注册时间
2009-1-30
帖子
175
跳转到指定楼层
1
发表于 2014-9-7 18:20:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
XP的,以前自己写的一个脚本,VA脚本不会...窗口类的新特性无法理解
RUBY 代码复制下载
  1. class Scene_My
  2.   def main
  3.     #生成窗口
  4.     @my_window = Window_My.new
  5.     #执行过渡
  6.     Graphics.transition
  7.     # 在这里创建一个Sprite
  8.     @sp_enemy=Sprite.new #这里创建一个Sprite 用途是显示图形 enemy=敌人
  9.     @sp_enemy.x=95
  10.     @sp_enemy.y=5
  11.     #主循环
  12.     loop do
  13.       #刷新游戏画面
  14.       Graphics.update
  15.       #刷新输入信息
  16.       Input.update
  17.       #刷新画面
  18.       update
  19.       #如果画面切换就中断循环
  20.       if $scene != self
  21.         break
  22.       end
  23.     end
  24.     #准备过渡
  25.     Graphics.freeze
  26.     #释放窗口
  27.     @my_window.dispose
  28.     #释放精灵
  29.     @sp_enemy.dispose
  30.   end
  31.  
  32.   def update
  33.     #刷新窗口
  34.     @my_window.update
  35.     #按下B键(ESC)的情况下
  36.     if Input.trigger?(Input::B)
  37.       #演奏取消SE
  38.       $game_system.se_play($data_system.cancel_se)
  39.       #切换的地图画面
  40.       $scene = Scene_Map.new
  41.       return
  42.     end
  43.  
  44.     #按下C键(确定建)的情况
  45.     if Input.trigger?(Input::C)
  46.       #根据窗口光标位置分歧
  47.       case @my_window.index
  48.         when 0
  49.  
  50.          @sp_enemy.bitmap = Bitmap.new("Graphics/Fogs/BJ1")
  51.  
  52.         #end
  53.         when 1
  54.          @sp_enemy.bitmap= Bitmap.new("Graphics/Battlers/076-Devil02")
  55.  
  56.         #end
  57.         when 2
  58.          @sp_enemy.bitmap = Bitmap.new("Graphics/Battlers/077-Devil03")
  59.  
  60.  
  61.         #end
  62.       end
  63.       #end
  64.       return
  65.     end
  66.   end
  67. end


RUBY 代码复制下载
  1. class Window_My < Window_Selectable
  2.   def initialize
  3.     super(0,0,90,640) #(x,y,w,h)
  4.     self.contents = Bitmap.new(width - 32,height - 32)
  5.     @arr=["第1页","第2页","第3页"]
  6.     @item_max = @arr.size #item(项目)max(最大数)=项目总数
  7.     self.index = 0 #光标初始位置,如果为-1不显示
  8.     refresh
  9.   end
  10.  
  11.   def refresh
  12.     self.contents.clear
  13.     for index in [email]0...@arr.size[/email]
  14.       rect = Rect.new(0,32*index,self.contents.width-8,22)
  15.       self.contents.fill_rect(rect,Color.new(255,255,255,0))
  16.       self.contents.draw_text(0,32*index,128,32,"#{@arr[index]}") #(x,y,w,h,"")
  17.     end
  18.   end
  19. end

其实就是调用后可以现实一个窗口,这个窗口能分页现实图片啦

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

2
发表于 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
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-13 10:13

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表