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

Project1

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

使用脚本print(xxxxx)的时候不显示提示框

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
28 小时
注册时间
2007-12-22
帖子
102
跳转到指定楼层
1
发表于 2008-8-31 04:09:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
☆窗口脚本☆



  1. #==============================================================================
  2. # ■ Window_Ts
  3. #------------------------------------------------------------------------------
  4. #  显示提示选择的窗口。
  5. #==============================================================================

  6. class Window_Ts < Window_Base
  7.   #--------------------------------------------------------------------------
  8.   # ● 初始化对像
  9.   #--------------------------------------------------------------------------
  10.   def initialize(i)
  11.     super(0, 0, 640, 64)
  12.     self.contents = Bitmap.new(width - 32, height - 32)
  13.     self.z = 99999
  14.     refresh(i)
  15.   end
  16.   #--------------------------------------------------------------------------
  17.   # ● 显示
  18.   #--------------------------------------------------------------------------
  19.   def refresh(i)
  20.     self.contents.clear
  21.     self.contents.font.color = Color.new(0, 0, 0)
  22.     self.contents.draw_text(1, 1, 1000, 32, "#{i}")
  23.     self.contents.font.color = Color.new(255, 255, 255)
  24.     self.contents.draw_text(0, 0, 1000, 32, "#{i}")
  25.   end
  26. end
复制代码



☆调用脚本☆



  1. def print(i)
  2.   # 生成提示窗口
  3.   @ts_window = Window_Ts.new(i)
  4.   @ts_window.back_opacity = 160
  5.   @ts_window.x = 320 - @ts_window.width / 2
  6.   @ts_window.y = 480 / 2 - @ts_window.height
  7.   # 变成不能结束
  8.   $dz = 0
  9.   # 主循环
  10.   loop do
  11.     # 刷新游戏画面
  12.     Graphics.update
  13.     # 刷新输入信息
  14.     Input.update
  15.     # 刷新提示窗口
  16.     @ts_window.update
  17.     # 按下 C 键的情况下
  18.     if Input.trigger?(Input::C)
  19.       # 演奏确定 SE
  20.       $game_system.se_play($data_system.decision_se)
  21.       # 变成可以结束
  22.       $dz = 1
  23.     end
  24.     # 如果画面被切换就中断循环
  25.     if $dz == 1
  26.       break
  27.     end
  28.   end
  29.   # 释放提示窗口
  30.   @ts_window.dispose
  31. end
复制代码



★还是用print(xxxxx)调用★


a.a~

Lv5.捕梦者

梦石
0
星屑
39016
在线时间
5717 小时
注册时间
2006-11-10
帖子
6619
2
发表于 2008-8-31 06:41:19 | 只看该作者
- -....今年 “最鸡肋脚本奖”应该可以发给楼主了.....

在游戏里要显示对话框直接用显示文章就可以了- -,,,,
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
65
在线时间
385 小时
注册时间
2007-7-27
帖子
4106

开拓者

3
发表于 2008-8-31 08:56:42 | 只看该作者
以下引用灯笼菜刀王于2008-8-30 22:41:19的发言:

- -....今年 “最鸡肋脚本奖”应该可以发给楼主了.....

在游戏里要显示对话框直接用显示文章就可以了- -,,,,

不能这么说
有些数据每帧都要监视,用p出现对话框的话,会陷入死循环
RGSS没有调试功能,只能这样画窗口来监视了

不过我习惯自己写OTZ……所以还是KRKR好……有watch变量的功能
吸吸
回复 支持 反对

使用道具 举报

Lv1.梦旅人

炎发灼眼的讨伐者

梦石
0
星屑
50
在线时间
1707 小时
注册时间
2007-8-4
帖子
904
4
发表于 2008-8-31 17:03:47 | 只看该作者
class String
  
  CP_ACP = 0
  CP_UTF8 = 65001
  
  def u2s
    m2w = Win32API.new("kernel32", "MultiByteToWideChar", "ilpipi", "i")
    w2m = Win32API.new("kernel32", "WideCharToMultiByte", "ilpipipp", "i")
   
    len = m2w.call(CP_UTF8, 0, self, -1, nil, 0)
    buf = "\0" * (len*2)
    m2w.call(CP_UTF8, 0, self, -1, buf, buf.size/2)
   
    len = w2m.call(CP_ACP, 0, buf, -1, nil, 0, nil, nil)
    ret = "\0" * len
    w2m.call(CP_ACP, 0, buf, -1, ret, ret.size, nil, nil)
   
    return ret
  end
  
  def u2s!
    self[0, length] = u2s
  end
  
end

module Debug
  
  REPLACE       = true
  
  AllocConsole  = Win32API.new("kernel32", "AllocConsole", "v", "i")
  GetStdHandle  = Win32API.new("kernel32", "GetStdHandle", "l", "l")
  WriteConsole  = Win32API.new("kernel32", "WriteConsole", "lplpp", "i")
  FreeConsole   = Win32API.new("kernel32", "FreeConsole", "v", "i")

  module_function
  
  def init
    AllocConsole.call
    @h = GetStdHandle.call -11
  end

  def free
    FreeConsole.call
    @h = nil
  end

  def validcheck
    raise "必须先调用Debug.init进行初始化!" if @h.nil?
  end
  
  def print(*args)
    validcheck; str = ""
    args.each{|obj| str += obj.is_a?(String) ? obj : obj.inspect}; str.u2s!
    WriteConsole.call @h, str, str.length, nil, nil
  end
  
  def println
    validcheck; WriteConsole.call @h, "\n", 1, nil, nil
  end
  
  def p(*args)
    validcheck
    str = ""; args.each{|obj| str += obj.inspect + "\n"}; str.u2s!
    WriteConsole.call @h, str, str.length, nil, nil
  end
  
  class << self
   
    private :validcheck
   
    alias puts  print

  end
  
  if REPLACE
    self.init if @h.nil?
  end
  
end

module Kernel
  
  if Debug::REPLACE
   
    def print(*args)
      Debug.print *args
    end
   
    def p(*args)
      Debug.p *args
    end
   
  end
  
end

Debug.print "debug test | 调试 测试", 3.1415, Bitmap.new(3,3)
Debug.println
Debug.p 123456789
Debug.puts Sprite
Debug.println
Debug.p "debug test | 调试 测试", 3.1415, Bitmap.new(3,3)

p "replace p"
print "replace print"

while true
  Graphics.update
  Input.update
  break if Input.trigger?(13)
end

Debug.free

exit
RMXP&amp;RMVX通用Web化完成- -|||
回复 支持 反对

使用道具 举报

Lv1.梦旅人

风之塞尔达

梦石
0
星屑
50
在线时间
57 小时
注册时间
2005-10-22
帖子
2492

贵宾

5
发表于 2008-8-31 17:30:27 | 只看该作者
哈...    又是唏哩哗啦一大串{/hx}
在程序里延续塞尔达的传说, 在画板上勾勒塞尔达的轮廓!!
回复 支持 反对

使用道具 举报

Lv2.观梦者

傻♂逼

梦石
0
星屑
374
在线时间
1606 小时
注册时间
2007-3-13
帖子
6562

烫烫烫开拓者

6
发表于 2008-8-31 17:41:45 | 只看该作者
以下引用灼眼的夏娜于2008-8-31 9:03:47的发言:


class String

CP_ACP = 0
CP_UTF8 = 65001

def u2s
   m2w = Win32API.new("kernel32", "MultiByteToWideChar", "ilpipi", "i")
   w2m = Win32API.new("kernel32", "WideCharToMultiByte", "ilpipipp", "i")
   
   len = m2w.call(CP_UTF8, 0, self, -1, nil, 0)
   buf = "\0" * (len*2)
   m2w.call(CP_UTF8, 0, self, -1, buf, buf.size/2)
   
   len = w2m.call(CP_ACP, 0, buf, -1, nil, 0, nil, nil)
   ret = "\0" * len
   w2m.call(CP_ACP, 0, buf, -1, ret, ret.size, nil, nil)
   
   return ret
end

def u2s!
   self[0, length] = u2s
end

end

module Debug

REPLACE       = true

AllocConsole  = Win32API.new("kernel32", "AllocConsole", "v", "i")
GetStdHandle  = Win32API.new("kernel32", "GetStdHandle", "l", "l")
WriteConsole  = Win32API.new("kernel32", "WriteConsole", "lplpp", "i")
FreeConsole   = Win32API.new("kernel32", "FreeConsole", "v", "i")

module_function

def init
   AllocConsole.call
   @h = GetStdHandle.call -11
end

def free
   FreeConsole.call
   @h = nil
end

def validcheck
   raise "必须先调用Debug.init进行初始化!" if @h.nil?
end

def print(*args)
   validcheck; str = ""
   args.each{|obj| str += obj.is_a?(String) ? obj : obj.inspect}; str.u2s!
   WriteConsole.call @h, str, str.length, nil, nil
end

def println
   validcheck; WriteConsole.call @h, "\n", 1, nil, nil
end

def p(*args)
   validcheck
   str = ""; args.each{|obj| str += obj.inspect + "\n"}; str.u2s!
   WriteConsole.call @h, str, str.length, nil, nil
end

class << self
   
   private :validcheck
   
   alias puts  print

end

if REPLACE
   self.init if @h.nil?
end

end

module Kernel

if Debug::REPLACE
   
   def print(*args)
     Debug.print *args
   end
   
   def p(*args)
     Debug.p *args
   end
   
end

end

Debug.print "debug test | 调试 测试", 3.1415, Bitmap.new(3,3)
Debug.println
Debug.p 123456789
Debug.puts Sprite
Debug.println
Debug.p "debug test | 调试 测试", 3.1415, Bitmap.new(3,3)

p "replace p"
print "replace print"

while true
Graphics.update
Input.update
break if Input.trigger?(13)
end

Debug.free

exit

有必要吗?
哎呀,蛋疼什么的最有爱了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

炎发灼眼的讨伐者

梦石
0
星屑
50
在线时间
1707 小时
注册时间
2007-8-4
帖子
904
7
发表于 2008-8-31 17:54:53 | 只看该作者
回楼上:
对于你不需要的脚本来说肯定是没必要的,可对于某些人来说是很有必要的。。。 当你知道用在什么地方之后。。
RMXP&amp;RMVX通用Web化完成- -|||
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-8-15
帖子
142
8
发表于 2008-8-31 20:36:01 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 12:59

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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