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

Project1

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

如何声明全局变量??

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
60
在线时间
6 小时
注册时间
2008-1-9
帖子
109
跳转到指定楼层
1
发表于 2008-3-22 00:00:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
下面这个脚本,我想让自定义X,Y只是角色所在的脚下,但我把$x=0     #自定义窗口X
$y=0     #自定义窗口Y这两个的0值改为$game_player.x,$game_player.y后,却报告没有X和Y的值,我要如何才能声明这两个变量运用到这个脚本中去??



  1. #-------------------------------------------------------------------------
  2. # ● 时间条参数设定
  3. #    设定技巧:可以根据"设定移动速度"来放慢或加快移动
  4. #             如果设置"移动速度"为负数,就会倒退走(必须$minbar<=$maxbar)
  5. #             如果时间条的宽度小,可以把$nextbar设置为小数来放慢速度
  6. #-------------------------------------------------------------------------
  7. #设置时间条初始值
  8. $minbar=0

  9. #设置时间条的最大值,宽度
  10. $maxbar=200

  11. #设置时间条的移动速度可以是"小数"或"整数(负数)"
  12. $nextbar=1

  13. #设置时间条运行和显示的开关,和初始化开关
  14. $show=1 #显示/隐藏时间条
  15. $stop=2 #启动/停止时间条
  16. $init=3 #初始化时间条
  17. $done=4 #到时间之后打开的开关,可以用个自动执行的公共时间调此开关

  18. #设置窗口宽高
  19. $width=$maxbar+114
  20. $height=64

  21. #设置窗口位置
  22. $o=2
  23. #设置参考
  24. #        0-采用$x,$y的自定义设置
  25. #        1-左上角
  26. #        2-正上
  27. #        3-右上角
  28. #        4-正中
  29. #        5-左下角
  30. #        6-正下
  31. #        7-右下角

  32. $x=0     #自定义窗口X
  33. $y=0     #自定义窗口Y

  34. #定义窗口透明程度,0透明,255不透明数值范围0~255
  35. $opacity=0         #设置窗口边框透明度
  36. $back_opacity=0    #设置窗口背景透明度

  37. #------------------------------------------------------------------------
  38. # ● 时间条描绘
  39. #------------------------------------------------------------------------
  40. def draw_time_bar(x, y, width)
  41.   # 边框设定
  42.   self.contents.font.color = system_color
  43.   self.contents.draw_text(x,y,60,32,"时间:")
  44.   self.contents.fill_rect(x-2+60, y+16, width+4,8, Color.new(255, 255, 255, 255))
  45.   self.contents.fill_rect(x-1+60, y+17, width+2,6, Color.new(0, 0, 0, 255))
  46.   # 时间条长度设定
  47.   w = $minbar
  48.   # 时间条颜色设定
  49.   self.contents.fill_rect(x+60, y+18, w,1, Color.new(96,255, 96, 255))
  50.   self.contents.fill_rect(x+60, y+19, w,1, Color.new(0, 255, 0, 255))
  51.   self.contents.fill_rect(x+60, y+20, w,1, Color.new(0, 128, 0, 255))
  52.   self.contents.fill_rect(x+60, y+21, w,1, Color.new(0, 0, 0, 255))
  53. end

  54. #----------------------------------------------------------------------------
  55. # ● 时间窗口描绘
  56. #----------------------------------------------------------------------------
  57. class Window_Timebar < Window_Base
  58. #--------------------------------------------------------------------------
  59. # ● 初始化窗口
  60. #--------------------------------------------------------------------------
  61. def initialize
  62.    super(0, 0, $width, $height)
  63.    self.contents = Bitmap.new(width - 32, height - 32)
  64.    refresh
  65. end
  66. #--------------------------------------------------------------------------
  67. # ● 窗口内容
  68. #--------------------------------------------------------------------------
  69. def refresh
  70.    #判断时间窗口是否可见
  71.    if $game_switches[$show]
  72.      self.visible=true
  73.    else
  74.      self.visible=false
  75.    end
  76.    
  77.    #设置时间窗口透明度
  78.    self.back_opacity=$back_opacity
  79.    self.opacity=$opacity
  80.    
  81.    #设置窗口位置
  82.    case $o
  83.    when 0
  84.      self.x=$x
  85.      self.y=$y
  86.    when 1
  87.      self.x=0
  88.      self.y=0
  89.    when 2
  90.      self.x=320-$width/2
  91.      self.y=0
  92.    when 3
  93.      self.x=640-$width
  94.      self.y=0
  95.    when 4
  96.      self.x=320-$width/2
  97.      self.y=240-$height/2
  98.    when 5
  99.      self.x=0
  100.      self.y=480-$height
  101.    when 6
  102.      self.x=320-$width/2
  103.      self.y=480-$height
  104.    when 7
  105.      self.x=640-$width
  106.      self.y=480-$height
  107.    else
  108.      #防止错误发生
  109.      self.x=0
  110.      self.y=0
  111.    end
  112.    
  113.    #窗口内容
  114.    self.contents.clear
  115.    draw_time_bar(4,0,$maxbar)
  116. end
  117. end

  118. #-----------------------------------------------------------------------------
  119. # ● 地图上显示时间描绘
  120. #-----------------------------------------------------------------------------
  121. class Scene_Map
  122. # 声明别名,以免冲突,主要用于功能追加
  123. alias mohock_main main
  124. def main
  125.   # 生成倒计时窗口
  126.   @time_bar=Window_Timebar.new

  127.   # 调用别名 (具体功能不清楚,但是不调用必定有错误)
  128.   mohock_main
  129.   # 释放倒计时窗口
  130.   @time_bar.dispose
  131. end

  132. # 声明别名,以免冲突,主要用于功能追加
  133. alias mohock_update update
  134. def update
  135.   # 如果初始化开关打开
  136.   if $game_switches[$init]
  137.     # 初始化数值
  138.     $minbar=0
  139.     $game_switches[$init]=false
  140.   end
  141.   # 刷新时间条,增加数值自己改动
  142.   if $game_switches[$stop]
  143.     #判断是否超过最大数值,是则执行任务,不是继续增加
  144.     if $minbar >= $maxbar
  145.      #执行开关设置为真
  146.      $game_variables[$done] = true
  147.     else
  148.      $minbar += $nextbar
  149.     end
  150.   end
  151.    @time_bar.refresh
  152.    # 调用别名 (具体功能不清楚,但是不调用必定有错误)
  153.    mohock_update
  154. end
  155. end
复制代码




----------------版务----------------
如果问题未解决,请继续提问
如果问题已解决,请结贴
若到末贴发贴时间后一周仍未结贴
管理员会自动为你过期帖子、结贴或强行认可答案(好人卡-1)
此贴于 2008-3-26 0:14:53 被版主水迭澜提醒,请楼主看到后对本贴做出回应。

Lv5.捕梦者

御灵的宠物

梦石
12
星屑
8438
在线时间
88 小时
注册时间
2006-12-11
帖子
3148

第2届TG大赛亚军

2
发表于 2008-3-22 00:10:46 | 只看该作者
搜索这两行
self.x= $x
self.y= $y

改成
self.x= $game_player.x
self.y= $game_player.y

你改了以后,后边还在调用$x却又没定义所以就出错了
我的Lofter:http://nightoye.lofter.com/

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
6 小时
注册时间
2008-1-9
帖子
109
3
 楼主| 发表于 2008-3-22 00:16:42 | 只看该作者
晕,那该怎么改???
回复 支持 反对

使用道具 举报

Lv5.捕梦者

御灵的宠物

梦石
12
星屑
8438
在线时间
88 小时
注册时间
2006-12-11
帖子
3148

第2届TG大赛亚军

4
发表于 2008-3-22 00:18:29 | 只看该作者
我不是说了么= =
搜索self.x然后照着改……
我的Lofter:http://nightoye.lofter.com/

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
6 小时
注册时间
2008-1-9
帖子
109
5
 楼主| 发表于 2008-3-22 00:24:22 | 只看该作者
我把WHEN 0下面的
self.x= $x
self.y= $y

改成
self.x= $game_player.x
self.y= $game_player.y

后进度条出现在了左上角。。
然后我把38.39行的
$x=0     #自定义窗口X
$y=0     #自定义窗口Y
删了也是没变化。。。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
6 小时
注册时间
2008-1-9
帖子
109
6
 楼主| 发表于 2008-3-22 00:32:35 | 只看该作者
我有新发现了。。原来这样改是可以的,我当初是想会出现在角色所在位置的脚下,但并不是。
角色脚下的坐标如何计算??
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-29 12:33

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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