赞 | 6 |
VIP | 4 |
好人卡 | 58 |
积分 | 5 |
经验 | 58579 |
最后登录 | 2024-6-30 |
在线时间 | 1478 小时 |
Lv2.观梦者
- 梦石
- 0
- 星屑
- 508
- 在线时间
- 1478 小时
- 注册时间
- 2011-9-17
- 帖子
- 1316
|
这些都是简单的窗口操作:
算了,教学一下吧:
F11,打开脚本,左边找到Window_NameEdit和Window_NameInput两个代码,
写点开NameEdit,看到19行,
super(X,Y,W,H)(具体的数字我不记得了)
窗口有个原点即它的左上角:它在屏幕中的坐标即是(X,Y)(Y轴以向下为正,X以向右为正)
W,H指的是窗口的宽度与高度
把它改成
运行试试
再看Window_NameInput的51行,类似的改为
至于Window_NameInput上面的一堆假名,你也可以改为汉字~~
这时运行就看到了窗口的变化
(在没有窗口的地方显示为黑色,倘若需要以当前地图为背景(好像你就是这个意思吧),就又有点麻烦了,晚了就不想那个了)
这时发现Window_NameInput内容放不下了,于是把它们字体改小,同时注意布局的变化就够了:
(具体的过程不表述了)
最后的脚本为:(数值最后又进行了调整,最后试了试背景不变换的功能……)
- class Window_NameEdit
-
- def initialize(actor, max_char)
- super(0, 165, 640, 75)
- self.contents = Bitmap.new(width - 32, height - 32)
- @actor = actor
- @name = actor.name
- @max_char = max_char
- # 控制名字在最大字数以内
- name_array = @name.split(//)[0...@max_char]
- @name = ""
- for i in 0...name_array.size
- @name += name_array[i]
- end
- @default_name = @name
- @index = name_array.size
- refresh
- update_cursor_rect
- end
-
- def refresh
- self.contents.clear
- # 描绘名称
- name_array = @name.split(//)
- for i in 0...@max_char
- c = name_array[i]
- if c == nil
- c = "_"
- end
- x = 320 - @max_char * 14 + i * 28
- self.contents.draw_text(x, 5, 28, 32, c, 1)
- end
- # 描绘图形
- draw_actor_graphic(@actor, 320 - @max_char * 14 - 40, 45)
- end
-
- def update_cursor_rect
- x = 320 - @max_char * 14 + @index * 28
- self.cursor_rect.set(x, 5, 28, 32)
- end
-
- end
- class Window_NameInput
-
- def initialize
- super(0, 240, 640, 240)
- self.contents = Bitmap.new(width - 32, height - 32)
- @index = 0
- refresh
- update_cursor_rect
- end
-
- def refresh
- self.contents.font.size = 15
- self.contents.clear
- for i in 0..179
- x = 4 + i / 5 / 9 * 152 + i % 5 * 28
- y = i / 5 % 9 * 20
- self.contents.draw_text(x, y, 28, 20, CHARACTER_TABLE[i], 1)
- end
- self.contents.draw_text(544, 9 * 20, 64, 20, "确定", 1)
- end
-
- def update_cursor_rect
- # 光标位置在 [确定] 的情况下
- if @index >= 180
- self.cursor_rect.set(544, 9 * 20, 64, 20)
- # 光标位置在 [确定] 以外的情况下
- else
- x = 4 + @index / 5 / 9 * 152 + @index % 5 * 28
- y = @index / 5 % 9 * 20
- self.cursor_rect.set(x, y, 28, 20)
- end
- end
-
- end
- #RGSS没有RGSS2好的一个地方就是没有足够的常量定义,以至于经常要重写方法,烦啊
- #吐了个槽
复制代码
效果:
(图中以地图为背景的功能只是当时的想法,纯粹用我的脚本,上方就是黑的,至于我的地图显示的功能有一个BUG,不过现在太晚就不调试了,所以就算了吧,另外半透明效果也不在上面的脚本里) |
评分
-
查看全部评分
|