查看: 2799|回复: 6

[已经解决] 怎么让text在某个窗口居中 【已解决】

[复制链接]
梦石
0
星屑
878
在线时间
576 小时
注册时间
2010-6-26
回帖
709
发表于 2017-9-7 16:04:15 来自手机 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 sq333333 于 2017-9-9 16:25 编辑

小白自己尝试修改了一下脚本,
不知道文字在窗口居中效果怎么写,
或者让窗口的宽度根据文字长度自动变化…
还有怎么让显示的窗口能变成系统对话框那种暗色背景的。
请大神多多指点!




梦石
0
星屑
6375
在线时间
1473 小时
注册时间
2015-7-25
回帖
609

极短25参与开拓者

发表于 2017-9-8 18:27:40 | 显示全部楼层
第一种情况:使用显示文字
1.打几个空格就行了
2.
[pre lang="ruby"]class Window_Message < Window_Base
  def fiber_main
    update_width
    $game_message.visible = true
    update_background
    update_placement
    loop do
      process_all_text if $game_message.has_text?
      process_input
      $game_message.clear
      @gold_window.close
      Fiber.yield
      break unless text_continue?
    end
    close_and_wait
    $game_message.visible = false
    @fiber = nil
  end
  def update_width
    self.width = $game_message.texts[0].size * 30
  end
end[/pre]
3.选择暗色背景

第二种情况:自己写窗口
1.
[pre lang="ruby"]text = "哈哈哈哈哈"
draw_text(x, y, width, line_height, text,1)[/pre]
也同样可以自己打空格
2.
[pre lang="ruby"]self.width = text.size * 30[/pre]
3.
[pre lang="ruby"]def create_back_bitmap
    @back_bitmap = Bitmap.new(width, height)
    rect1 = Rect.new(0, 0, width, 12)
    rect2 = Rect.new(0, 12, width, height - 24)
    rect3 = Rect.new(0, height - 12, width, 12)
    @back_bitmap.gradient_fill_rect(rect1, back_color2, back_color1, true)
    @back_bitmap.fill_rect(rect2, back_color1)
    @back_bitmap.gradient_fill_rect(rect3, back_color1, back_color2, true)
  end
  def back_color1
    Color.new(0, 0, 0, 160)
  end
  def back_color2
    Color.new(0, 0, 0, 0)
  end
  def create_back_sprite
    @back_sprite = Sprite.new
    @back_sprite.bitmap = @back_bitmap
    @back_sprite.visible = true
    @back_sprite.z = z - 1
  end
  def dispose
    super
    @back_bitmap.dispose
    @back_sprite.dispose
  end[/pre]

如果是第二种情况(自己写窗口),上面已经说了大概的思路
这里还是举个例子:
[pre lang="ruby"]class A < Window_Base
  def initialize
    super(0,0,544,120)
    create_back_bitmap
    create_back_sprite
    self.opacity = 0
    refresh
  end
  def refresh
    text = "哈哈哈哈哈"
    self.width = text.size * 30
    draw_text(x, y, width, line_height, text,1)
  end
  def create_back_bitmap
    @back_bitmap = Bitmap.new(width, height)
    rect1 = Rect.new(0, 0, width, 12)
    rect2 = Rect.new(0, 12, width, height - 24)
    rect3 = Rect.new(0, height - 12, width, 12)
    @back_bitmap.gradient_fill_rect(rect1, back_color2, back_color1, true)
    @back_bitmap.fill_rect(rect2, back_color1)
    @back_bitmap.gradient_fill_rect(rect3, back_color1, back_color2, true)
  end
  def back_color1
    Color.new(0, 0, 0, 160)
  end
  def back_color2
    Color.new(0, 0, 0, 0)
  end
  def create_back_sprite
    @back_sprite = Sprite.new
    @back_sprite.bitmap = @back_bitmap
    @back_sprite.visible = true
    @back_sprite.z = z - 1
  end
  def dispose
    super
    @back_bitmap.dispose
    @back_sprite.dispose
  end
end[/pre]

评分

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

查看全部评分

笨肉包的游戏讨论群932812135 (实时更新) 喜欢的话欢迎加入~
目前的坑
??? #像素风OC游戏 准备中 短篇-约5小时
花城梦之心 #像素风OC游戏 系统开发+素材绘制中
【不可思议的迷宫】幽灵契约外传:歌莉娅 v0.4 游戏文件已更新
同时更新中~ (沉迷摸鱼中~更新速度较慢请见谅w)
这是属于笨肉包一个人的旅行~(这只肉包又在摸鱼!
旅途的最终目标~ ???(保密~
回复

使用道具 举报

梦石
0
星屑
878
在线时间
576 小时
注册时间
2010-6-26
回帖
709
 楼主| 发表于 2017-9-8 18:57:05 来自手机 | 显示全部楼层
魔法丶小肉包 发表于 2017-9-8 18:27
第一种情况:使用显示文字
1.打几个空格就行了
2.

谢谢肉包大神,一直在帮我们小白。 真舍不得6R和你们这些大神呀。不知道将来论坛会搬去哪里……

点评

大神不敢当,我只是个萌新...或许这是最后一次帮忙了吧...=w=...除非以后有新论坛开放...  发表于 2017-9-8 19:33
回复

使用道具 举报

梦石
0
星屑
878
在线时间
576 小时
注册时间
2010-6-26
回帖
709
 楼主| 发表于 2017-9-8 21:31:23 来自手机 | 显示全部楼层
本帖最后由 sq333333 于 2017-9-8 21:33 编辑

这个图片是我自己修改的显示技能名,因为技能名字有长有短,所以有时无法正常显示,我还是不会举一反三(完全没有基础…)。所以…还请大神在这个基础上加以修改,使窗口可以适应技能名字长短并且始终居中显示,或者直接改成暗色背景居中显示技能名呢?(有点得寸进尺的感觉……)
IMG_20170908_212445.jpg

点评

嗯....不好意思才看到,话说你这个图片太模糊了吧?=w=  发表于 2017-9-9 09:59
回复

使用道具 举报

梦石
0
星屑
878
在线时间
576 小时
注册时间
2010-6-26
回帖
709
 楼主| 发表于 2017-9-9 16:25:10 | 显示全部楼层
魔法丶小肉包 发表于 2017-9-8 18:27
第一种情况:使用显示文字
1.打几个空格就行了
2.

谢谢肉包,已经解决啦!
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部