Project1

标题: 如何在屏幕中某一位置以12号字体全角字符显示某变量的数值 [打印本页]

作者: shua1125    时间: 2010-12-20 03:04
标题: 如何在屏幕中某一位置以12号字体全角字符显示某变量的数值
本帖最后由 shua1125 于 2010-12-20 03:06 编辑

不太想用大型的脚本,只想知道如果在事件里写脚本的话,应该怎么写……
首先问题是在屏幕某一位置显示某变量的数值,其次是12号字体,再其次是全角字符。
不是在对话框中,是以X、Y坐标指定位置。
先在此谢谢了!!!
(怎么感觉我这标题长的蛋疼………)
作者: 雪流星    时间: 2010-12-20 05:19
本帖最后由 雪流星 于 2010-12-19 15:37 编辑

創建時
  1. $wv = Window_Base.new(窗口X座標, 窗口Y座標, 窗口寬度, 窗口高度)
  2. $wv.contents.draw_text(文字X座標, 文字Y座標, 文字寬度, 文字高度, 文字字符串)
复制代码
刷新時(每次變數改變時就需要插入下面的代碼)
  1. $wv.contents.clear
  2. $wv.contents.draw_text(文字X座標, 文字Y座標, 文字寬度, 文字高度, 文字字符串)
复制代码
釋放時
  1. $wv.dispose
复制代码
一個關於Window腳本的教程
http://rpg.blue/forum.php?mod=viewthread&tid=110411
作者: shua1125    时间: 2010-12-20 07:49
回复 雪流星 的帖子

完全不想要窗口呢?
是不是就不用输入窗口那个脚本?
作者: 雪流星    时间: 2010-12-20 08:26
shua1125 发表于 2010-12-19 17:49
回复 雪流星 的帖子

完全不想要窗口呢?

完全不想要窗口,只想顯示數字的話,在創建後加上
  1. $wv.opacity = 0
复制代码

作者: shua1125    时间: 2010-12-20 08:50
回复 雪流星 的帖子

呃……
写进去之后每次都出现“RGSS执行中发生 NoMethodError 错误”
“undefined method ‘contents’ for nil : NilClass”
这个是怎么回事……
我写在事件里的是这样的:
  1. $wv.contents.draw_text(20,20,24,24,$game_variables[10])
  2. $wv.opacity = 0
复制代码
是不是写法有什么错误?
作者: 雪流星    时间: 2010-12-20 08:55
shua1125 发表于 2010-12-19 18:50
回复 雪流星 的帖子

呃……

你少了最前面的
$wv = Window_Base.new(窗口X座標, 窗口Y座標, 窗口寬度, 窗口高度)

這句不能少
作者: shua1125    时间: 2010-12-20 09:03
回复 雪流星 的帖子

加上这句也是提示错误:
“RGSS ' Window_Base ' 的 45 行 RGSSError 发生错误。”
“failed to create bitmap  ”
是不是我弄了别的脚本发生冲突了……
作者: 雪流星    时间: 2010-12-20 09:08
你的窗口寬高多大?
寬高度不能低於 32
作者: shua1125    时间: 2010-12-20 09:25
本帖最后由 shua1125 于 2010-12-20 09:37 编辑

回复 雪流星 的帖子

呃……
正好32也会出问题么……
我改成200,于是成功了……
感激的内牛满面啊~~
————————————————————
字号问题无视吧,明白该怎么调了……
于是又出现了字体问题……
如果要临时改成别的字体该怎么办……
作者: 雪流星    时间: 2010-12-20 09:53
shua1125 发表于 2010-12-19 19:25
回复 雪流星 的帖子

呃……

類似刷新那樣寫
$wv.contents.clear
$wv.contents.font.name = "字體名稱"
$wv.contents.draw_text(文字X座標, 文字Y座標, 文字寬度, 文字高度, 文字字符串)

作者: shua1125    时间: 2010-12-20 10:05
回复 雪流星 的帖子

非常的感谢!!!
但是也非常的对不住!还想再问个问题……
如果要改字体颜色怎么做……
(顺便还是想问怎么改成全角字符……)
作者: 雪流星    时间: 2010-12-20 10:18
修改字體顏色
$wv.contents.font.color = Color.new(R, G, B)

至於全角字符...你是說英數字符都要變成全形的嗎?
作者: shua1125    时间: 2010-12-20 10:25
回复 雪流星 的帖子

就是数字占一整格这样的:123abcABC
作者: 雪流星    时间: 2010-12-20 11:23
本帖最后由 雪流星 于 2010-12-19 21:51 编辑

插入在 Window_Base 裡面
  1. class Window_Base  < Window
  2.   def draw_fullshape(text, x, y)
  3.     text = text.to_s if text.is_a?(Numeric)
  4.     stext = text.clone
  5.     tx = x
  6.     while ((c = stext.slice!(/./m)) != nil)
  7.       cFS = get_fullshape(c)
  8.       c_width = self.contents.text_size(cFS).width
  9.       self.contents.draw_text(tx, y, c_width, WLH, cFS, 0)
  10.       tx += c_width
  11.     end
  12.    
  13.   end
  14.   def get_fullshape(c)
  15.     return c if /\w/!~c
  16.     text = text.to_s if text.is_a?(Numeric) # 確使數字變成字符串
  17.     alphanumericFS = {
  18.     "0"=>"0", "1"=>"1", "2"=>"2", "3"=>"3", "4"=>"4",
  19.     "5"=>"5", "6"=>"6", "7"=>"7", "8"=>"8", "9"=>"9",
  20.     "A"=>"A", "B"=>"B", "C"=>"C", "D"=>"D", "E"=>"E",
  21.     "F"=>"F", "G"=>"G", "H"=>"H", "I"=>"I", "J"=>"J",
  22.     "K"=>"K", "L"=>"L", "M"=>"M", "N"=>"N", "O"=>"O",
  23.     "P"=>"P", "Q"=>"Q", "R"=>"R", "S"=>"S", "T"=>"T",
  24.     "U"=>"U", "V"=>"V", "W"=>"W", "X"=>"X", "Y"=>"Y", "Z"=>"Z",
  25.     "a"=>"a", "b"=>"b", "c"=>"c", "d"=>"d", "e"=>"e",
  26.     "f"=>"f", "g"=>"g", "h"=>"h", "i"=>"i", "j"=>"j",
  27.     "k"=>"k", "l"=>"l", "m"=>"m", "n"=>"n", "o"=>"o",
  28.     "p"=>"p", "q"=>"q", "r"=>"r", "s"=>"s", "t"=>"t",
  29.     "u"=>"u", "v"=>"v", "w"=>"w", "x"=>"x", "y"=>"t", "z"=>"z"
  30.     }
  31.     return alphanumericFS.has_key?(c) ? alphanumericFS[c] : c
  32.   end
  33. end
复制代码
然後在要顯示全形的地方使用
$wv.draw_fullshape(文字字符串, 文字X座標, 文字Y座標)
而不是
$wv.contents.draw_text(文字X座標, 文字Y座標, 文字寬度, 文字高度, 文字字符串)
作者: shua1125    时间: 2010-12-20 11:31
本帖最后由 shua1125 于 2010-12-24 18:39 编辑

回复 雪流星 的帖子

太感谢了!!!
激动的我不知道该说什么了~~
我一定会把此脚本作为人参第一个收到的脚本好好珍藏的……





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1