Project1

标题: 地图移动的问题 [打印本页]

作者: 华华    时间: 2007-7-30 19:34
标题: 地图移动的问题
做了个简单的在地图上显示状态的窗口。可是发觉,当人物快走到地图边缘,地图不会再移动。
于是,主角便走到新窗口下面去了。
这个该怎么解决呢?
(本来想找那个 小地图 脚本来看下,结果找了很久没找到。)
  1. class ShowMoney < Window_Base
  2.   #--------------------------------------------------------------------------
  3.   # ● 类常量定义
  4.   #--------------------------------------------------------------------------
  5.   # 窗口位置设定
  6.   GOLD_X =470      # 矩形左上顶点X坐标
  7.   GOLD_Y = 2       # 矩形左上顶点Y坐标
  8.   GOLD_W = 175     # 矩形宽
  9.   GOLD_H = 145     # 矩形高
  10.   #--------------------------------------------------------------------------
  11.   # ● 初始化状态
  12.   #--------------------------------------------------------------------------
  13.   def initialize
  14.     super(GOLD_X , GOLD_Y, GOLD_W, GOLD_H)
  15.     @actor = $game_party.actors[0]
  16.     # 初始化窗口透明度
  17.     self.back_opacity=0
  18.     self.opacity=0
  19.     self.contents = Bitmap.new(width - 32, height - 32)
  20.     self.contents.font.size=18
  21.     self.contents.font.color=system_color
  22.    
  23.     @nRunTime=0
  24.     #-------------------显示图片------------------------
  25.     backPicture=Bitmap.new("Graphics/Heads/通用_yuhuan_1_0.png")
  26.     cw=backPicture.width
  27.     ch=backPicture.height
  28.     back_picture=Rect.new(0,0,cw,ch)
  29.     self.contents.blt(20,0,backPicture,back_picture)
  30.   end
  31.   def draw_hp
  32.     self.contents.draw_text(20, 90 , 100, 32, "HP:" + @actor.hp.to_s + "/" + @actor.maxhp.to_s , 1)
  33.   end
  34.   
  35. #--------------------------引用自 66《黑暗圣剑传说》--------------
  36.   def draw_actor_hp( x, y, width = 144) #这个用于战斗的描绘
  37.     hp_length = 85*@actor.hp / @actor.maxhp  #HP槽的长度
  38.     hp_lv1_bitmap = Bitmap.new("Graphics/Pictures/bars/HP2_lv1_long.png")
  39.     cw_lv1 = hp_lv1_bitmap.width
  40.     ch_lv1 = hp_lv1_bitmap.height
  41.     src_rect_lv1 = Rect.new(0, 0, cw_lv1, ch_lv1)
  42.     self.contents.blt(x , y , hp_lv1_bitmap, src_rect_lv1)
  43.     #————绘制血————
  44.     hp_lv2_bitmap = Bitmap.new("Graphics/Pictures/bars/HP2_lv2_long(blood).png")
  45.     ch_lv2 = hp_lv2_bitmap.height
  46.     ch_lv2a=hp_lv2_bitmap.width
  47.     src_rect_lv2 = Rect.new(0, 0,  26+hp_length, ch_lv2)
  48.     self.contents.blt(x , y-1 , hp_lv2_bitmap, src_rect_lv2)
  49.   end
  50. end
  51. #---------------------------------------------------------------------


  52. #------------------------------------------------------------------------------
  53. class Scene_Map
  54.   alias smn_mainl main
  55.   def main
  56.     @a_wwPP = ShowMoney.new
  57.     smn_mainl
  58.    
  59.     @a_wwPP.dispose
  60.   end
  61.   
  62.   alias smn_updatel update
  63.   def update
  64.      @a_wwPP.draw_actor_hp(5,90)
  65.      @a_wwPP.draw_hp
  66.     smn_updatel
  67.   end
  68. end
复制代码
[LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: 华华    时间: 2007-7-30 19:34
标题: 地图移动的问题
做了个简单的在地图上显示状态的窗口。可是发觉,当人物快走到地图边缘,地图不会再移动。
于是,主角便走到新窗口下面去了。
这个该怎么解决呢?
(本来想找那个 小地图 脚本来看下,结果找了很久没找到。)
  1. class ShowMoney < Window_Base
  2.   #--------------------------------------------------------------------------
  3.   # ● 类常量定义
  4.   #--------------------------------------------------------------------------
  5.   # 窗口位置设定
  6.   GOLD_X =470      # 矩形左上顶点X坐标
  7.   GOLD_Y = 2       # 矩形左上顶点Y坐标
  8.   GOLD_W = 175     # 矩形宽
  9.   GOLD_H = 145     # 矩形高
  10.   #--------------------------------------------------------------------------
  11.   # ● 初始化状态
  12.   #--------------------------------------------------------------------------
  13.   def initialize
  14.     super(GOLD_X , GOLD_Y, GOLD_W, GOLD_H)
  15.     @actor = $game_party.actors[0]
  16.     # 初始化窗口透明度
  17.     self.back_opacity=0
  18.     self.opacity=0
  19.     self.contents = Bitmap.new(width - 32, height - 32)
  20.     self.contents.font.size=18
  21.     self.contents.font.color=system_color
  22.    
  23.     @nRunTime=0
  24.     #-------------------显示图片------------------------
  25.     backPicture=Bitmap.new("Graphics/Heads/通用_yuhuan_1_0.png")
  26.     cw=backPicture.width
  27.     ch=backPicture.height
  28.     back_picture=Rect.new(0,0,cw,ch)
  29.     self.contents.blt(20,0,backPicture,back_picture)
  30.   end
  31.   def draw_hp
  32.     self.contents.draw_text(20, 90 , 100, 32, "HP:" + @actor.hp.to_s + "/" + @actor.maxhp.to_s , 1)
  33.   end
  34.   
  35. #--------------------------引用自 66《黑暗圣剑传说》--------------
  36.   def draw_actor_hp( x, y, width = 144) #这个用于战斗的描绘
  37.     hp_length = 85*@actor.hp / @actor.maxhp  #HP槽的长度
  38.     hp_lv1_bitmap = Bitmap.new("Graphics/Pictures/bars/HP2_lv1_long.png")
  39.     cw_lv1 = hp_lv1_bitmap.width
  40.     ch_lv1 = hp_lv1_bitmap.height
  41.     src_rect_lv1 = Rect.new(0, 0, cw_lv1, ch_lv1)
  42.     self.contents.blt(x , y , hp_lv1_bitmap, src_rect_lv1)
  43.     #————绘制血————
  44.     hp_lv2_bitmap = Bitmap.new("Graphics/Pictures/bars/HP2_lv2_long(blood).png")
  45.     ch_lv2 = hp_lv2_bitmap.height
  46.     ch_lv2a=hp_lv2_bitmap.width
  47.     src_rect_lv2 = Rect.new(0, 0,  26+hp_length, ch_lv2)
  48.     self.contents.blt(x , y-1 , hp_lv2_bitmap, src_rect_lv2)
  49.   end
  50. end
  51. #---------------------------------------------------------------------


  52. #------------------------------------------------------------------------------
  53. class Scene_Map
  54.   alias smn_mainl main
  55.   def main
  56.     @a_wwPP = ShowMoney.new
  57.     smn_mainl
  58.    
  59.     @a_wwPP.dispose
  60.   end
  61.   
  62.   alias smn_updatel update
  63.   def update
  64.      @a_wwPP.draw_actor_hp(5,90)
  65.      @a_wwPP.draw_hp
  66.     smn_updatel
  67.   end
  68. end
复制代码
[LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: RPG初学者    时间: 2007-7-30 19:37
提示: 作者被禁止或删除 内容自动屏蔽
作者: 华华    时间: 2007-7-30 19:39
我是菜鸟!
不过,这个问题我好像有点会的样子!
就是设置变量度


怎么弄?- -+

作者: 华华    时间: 2007-7-31 03:28
36h 内不能自顶贴
似乎除了老实的偶米多少人遵守啊。。。所以。。。。{/hx}
作者: K’    时间: 2007-7-31 03:49
那是地图的宽度不够吧。。。刚才试了下 把地图改成 40*15没问题。

PS 遵守规矩总不会错 如果怕帖子被冷落可以短信告诉版主。{/wx}


作者: 魔春重楼    时间: 2007-7-31 04:58
提示: 作者被禁止或删除 内容自动屏蔽
作者: 华华    时间: 2007-7-31 05:08
嗯,可是,地图再宽也有走到头的时候啊。
怎么说呢?当角色还没走到地图边缘时,角色在窗口中的坐标位置并没有改变,只是地图在退后,就走不到状态窗口下面去。但是,但角色走到地图边缘附近时,已经没有地图可以移动了,角色就真正地改变了在窗口中的坐标位置。这样的话,角色就可以走到那个用来显示状态的窗口的下面去了。(我是这么理解的。。。。{/wx})
(好象还是没表达清楚{/pz})
这个怎么解决呢?想了好久都不明白呢。(觉得好象没办法解决一样)是不是只能在地图的右上角画一个大房子什么的,这样角色就走不到那去了。。。
作者: K’    时间: 2007-7-31 05:13
你的意思是不让角色走到状态图的底下?

好像没有游戏是这样的吧。。。

最多 把图片的透明度增加一些 不会挡住角色就好。 [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: 华华    时间: 2007-7-31 05:21
这样啊
记得以前玩游戏时没有走到状态窗口下面去过。
可能他们就是用什么东西把角色挡住了,让角色走不到地图最边缘吧
嘿嘿,谢谢啦~~~~~~




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