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

Project1

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

求教窗口脚本的写法。

 关闭 [复制链接]

Lv1.梦旅人

魔王 ⑨

梦石
0
星屑
90
在线时间
379 小时
注册时间
2006-10-16
帖子
4299

贵宾

跳转到指定楼层
1
发表于 2009-1-9 04:27:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
要把Window_Status插入战斗脚本的方法。
以及Window脚本的写法。
报酬自带
菜鸟飞呀飞 该用户已被删除
2
发表于 2009-1-9 04:42:35 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者

神隐的主犯

梦石
0
星屑
373
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

3
发表于 2009-1-9 04:48:21 | 只看该作者
窗口类的写法:

    窗口类脚本通常分成两部分, 不会改变的部分和会改变的部分。

    不会改变的部分通常写在 initialize 里,即 初始化 里。 会改变的部分 通常写在 refresh 里,即 刷新。

    然后调用即可。

    最后就是继承, 有光标的窗口类继承于 Window_Selectable ,其他的继承 Window_Base 。

    没有了~~~~{/hx}

《天空之城 —— 破碎的命运》
回复 支持 反对

使用道具 举报

Lv1.梦旅人

魔王 ⑨

梦石
0
星屑
90
在线时间
379 小时
注册时间
2006-10-16
帖子
4299

贵宾

4
 楼主| 发表于 2009-1-9 06:14:12 | 只看该作者
不是说这个,窗口的格式我也知道七八分了。
就是那个我在Scene_Battle1中调用我新建的一个窗口:
  1. #==============================================================================
  2. # ■ Window_Status
  3. #------------------------------------------------------------------------------
  4. #  显示状态画面、完全规格的状态窗口。
  5. #==============================================================================

  6. class Window_Battleface < Window_Base
  7.   #--------------------------------------------------------------------------
  8.   # ● 初始化对像
  9.   #     actor : 角色
  10.   #--------------------------------------------------------------------------
  11.   def initialize(actor)
  12.     super(0, 0, 640, 120)
  13.     self.contents = Bitmap.new(width - 32, height - 32)
  14.     @actor = actor
  15.     refresh
  16.   end
  17.   #释放
  18.     def dispose
  19.     super
  20.   end
  21.   #--------------------------------------------------------------------------
  22.   # ● 刷新
  23.   #--------------------------------------------------------------------------
  24.   def refresh
  25.     for i in 0...3
  26.     x = i*160
  27.     self.contents.clear
  28.     testname = @actor.name
  29.     bitmap=Bitmap.new("Graphics/battlers/#{testname}")
  30.     src_rect = Rect.new(x, 120, bitmap.width, bitmap.height) #——可自己调整大小
  31.     self.contents.blt(0, y, bitmap, src_rect)
  32.     end
  33.   end
  34.   end
复制代码

这个脚本,然后华丽地报错了。
这是Scene_Battle1的一部分
  1.     # 生成角色命令窗口
  2.     s1 = $data_system.words.attack
  3.     s2 = $data_system.words.skill
  4.     s3 = $data_system.words.guard
  5.     s4 = $data_system.words.item
  6.     @actor_command_window = Window_Command.new(160, [s1, s2, s3, s4])
  7.     @actor_command_window.y = 160
  8.     @actor_command_window.back_opacity = 160
  9.     @actor_command_window.active = false
  10.     @actor_command_window.visible = false
  11.     # 生成其它窗口
  12.     @party_command_window = Window_PartyCommand.new
  13.     @help_window = Window_Help.new
  14.     @help_window.back_opacity = 160
  15.     @help_window.visible = false
  16.     @status_window = Window_BattleStatus.new
  17.     @face_window = Window_BattleFace.new
  18.     @face_window.y = 120
复制代码
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6940
在线时间
1666 小时
注册时间
2008-10-29
帖子
6710

贵宾

5
发表于 2009-1-9 09:51:53 | 只看该作者
玄月你考试完了么{/tp}

华丽的问一下
def refresh 最后的这一个
    self.contents.blt(0, y, bitmap, src_rect)
里面的y是哪里来的
我在def refresh里面好像没有找到其他的y

然后是
  def initialize(actor)
里面的actor
和你生成对象时候的
    @face_window = Window_BattleFace.new
这个.new后面是不是还需要加个参数呢?
如果想不加参数那是不是应该是
  def initialize(actor)的这个actor应该指定一个默认值呢?

那个 def dispose  我个人感觉没特殊情况的话可以省略
我做窗口就不定义那个











你知道得太多了

回复 支持 反对

使用道具 举报

Lv1.梦旅人

魔王 ⑨

梦石
0
星屑
90
在线时间
379 小时
注册时间
2006-10-16
帖子
4299

贵宾

6
 楼主| 发表于 2009-1-10 03:12:24 | 只看该作者
不dipose的话会战斗结束窗口不消失。。。。吧
谢谢关系,刚考完试了。放两天假继续上课。囧~~
回复 支持 反对

使用道具 举报

Lv2.观梦者

神隐的主犯

梦石
0
星屑
373
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

7
发表于 2009-1-10 03:14:37 | 只看该作者
以下引用后知后觉于2009-1-9 1:51:53的发言:
然后是
def initialize(actor)
里面的actor
和你生成对象时候的
   @face_window = Window_BattleFace.new
这个.new后面是不是还需要加个参数呢?
如果想不加参数那是不是应该是
def initialize(actor)的这个actor应该指定一个默认值呢?


new 后面的参数其实就是 initialize 的参数~~~~~

另外,dispose 是在父类里定义的。

《天空之城 —— 破碎的命运》
回复 支持 反对

使用道具 举报

Lv1.梦旅人

魔王 ⑨

梦石
0
星屑
90
在线时间
379 小时
注册时间
2006-10-16
帖子
4299

贵宾

8
 楼主| 发表于 2009-1-10 04:13:23 | 只看该作者
还是说Window_Status不能再战斗中自动显示……
我试过Window_BattleStatus,我开多一个也可以……无奈啊。。。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

魔王 ⑨

梦石
0
星屑
90
在线时间
379 小时
注册时间
2006-10-16
帖子
4299

贵宾

9
 楼主| 发表于 2009-1-10 09:22:41 | 只看该作者
窗口问题已自我解决,然后……
def draw_actor_face(actor, x, y)
    test = actor.name + "_f"
    bitmap = RPG::Cache.picture("face/#{test}")
    cw = bitmap.width
    ch = bitmap.height
    src_rect = Rect.new(0, 0, cw, ch)
    self.contents.blt(x  - cw  , y - ch , bitmap, src_rect)#(x - cw / 2, y - ch, bitmap, src_rect)
  end
这个是什么意思?
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-7-21 14:03

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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