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

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: zxc3824
打印 上一主题 下一主题

[已经解决] 怎样让一个图片又在状态兰显示又在战斗图显示?

 关闭 [复制链接]

Lv4.逐梦者

「Pemercyia」


Urhurrenna

梦石
0
星屑
9397
在线时间
2748 小时
注册时间
2008-9-5
帖子
3543

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

11
发表于 2011-8-7 17:53:35 | 只看该作者
话说LZ...
直接无视了6楼吗...

你已经有写出了这个显示头像的脚本了,
如果显示不出来的话,
排除了坐标的问题,
就可能是同名类重叠了吧~
试试全局搜索"Window_BattleStatus"(别告诉我不知道什么是全局搜索)
然后选最底下的那个结果,
再在refresh方法里加上调用显示头像的句子...

话说要显示的图片的名字的定义已经在6楼里说了...
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
558
在线时间
256 小时
注册时间
2010-8-25
帖子
371
12
 楼主| 发表于 2011-8-7 20:10:07 | 只看该作者
cinderelmini 发表于 2011-8-7 17:53
话说LZ...
直接无视了6楼吗...

不是无视,因为试过了没用啊。


zxc3824于2011-8-8 21:22补充以下内容:
  1. #==============================================================================
  2. # ■ Window_BattleStatus
  3. #------------------------------------------------------------------------------
  4. #  显示战斗画面同伴状态的窗口。
  5. #==============================================================================

  6. class Window_BattleStatus < Window_Base
  7.   #--------------------------------------------------------------------------
  8.   # ● 初始化对像
  9.   #--------------------------------------------------------------------------
  10.   def initialize
  11.     super(0, 320, 640, 160)
  12.     self.contents = Bitmap.new(width - 32, height - 32)
  13.     @level_up_flags = [false, false, false, false]
  14.     refresh
  15.   end
  16.   #--------------------------------------------------------------------------
  17.   # ● 释放
  18.   #--------------------------------------------------------------------------
  19.   def dispose
  20.     super
  21.   end
  22.   #--------------------------------------------------------------------------
  23.   # ● 设置升级标志
  24.   #     actor_index : 角色索引
  25.   #--------------------------------------------------------------------------
  26.   def level_up(actor_index)
  27.     @level_up_flags[actor_index] = true
  28.   end
  29.   #--------------------------------------------------------------------------
  30.   # ● 刷新
  31.   #--------------------------------------------------------------------------
  32.   def refresh
  33.     draw_battle_actor(actor,actor_x,132)  # 添加了
  34.     self.contents.clear
  35.     @item_max = $game_party.actors.size
  36.     for i in 0...$game_party.actors.size
  37.       actor = $game_party.actors[i]
  38.       actor_x = i * 160 + 4
  39.       draw_actor_name(actor, actor_x, 0)
  40.       draw_actor_hp(actor, actor_x, 32, 120)
  41.       draw_actor_sp(actor, actor_x, 64, 120)
  42.       if @level_up_flags[i]
  43.         self.contents.font.color = normal_color
  44.         self.contents.draw_text(actor_x, 96, 120, 32, "LEVEL UP!")
  45.       else
  46.         draw_actor_state(actor, actor_x, 96)
  47.       end
  48.     end
  49.   end
  50.   #--------------------------------------------------------------------------
  51.   # ● 刷新画面
  52.   #--------------------------------------------------------------------------
  53.   def update
  54.     super
  55.     # 主界面的不透明度下降
  56.     if $game_temp.battle_main_phase
  57.       self.contents_opacity -= 4 if self.contents_opacity > 191
  58.     else
  59.       self.contents_opacity += 4 if self.contents_opacity < 255
  60.     end
  61.   end
  62. end
复制代码
是 这样 吗?怎么不行的?

点评

请试试11楼后半部分的办法..  发表于 2011-8-7 22:22
回复

使用道具 举报

Lv4.逐梦者

「Pemercyia」


Urhurrenna

梦石
0
星屑
9397
在线时间
2748 小时
注册时间
2008-9-5
帖子
3543

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

13
发表于 2011-8-8 22:49:36 | 只看该作者
啊呀..这样竟然没报错...神奇了...
  1. #--------------------------------------------------------------------------
  2.   # ● 刷新
  3.   #--------------------------------------------------------------------------
  4.   def refresh
  5.     draw_battle_actor(actor,actor_x,132)  # 添加了
  6.     self.contents.clear
  7.     @item_max = $game_party.actors.size
  8.     for i in 0...$game_party.actors.size
  9.       actor = $game_party.actors[i]
  10.       actor_x = i * 160 + 4
  11.       draw_actor_name(actor, actor_x, 0)
  12.       draw_actor_hp(actor, actor_x, 32, 120)
  13.       draw_actor_sp(actor, actor_x, 64, 120)
  14.       if @level_up_flags[i]
  15.         self.contents.font.color = normal_color
  16.         self.contents.draw_text(actor_x, 96, 120, 32, "LEVEL UP!")
  17.       else
  18.         draw_actor_state(actor, actor_x, 96)
  19.       end
  20.     end
  21.   end
复制代码
两种可能吧~一是用了容错脚本(容错脚本能强大到如此地步吗)
二时在全动画战斗里还有重写了一个
Window_BattleStatus  类
如果是第二种情况,
那这里不报错就能理解了...
话说要把
    draw_battle_actor(actor,actor_x,132)  # 添加了
写在:
draw_actor_sp(actor, actor_x, 64, 120)
下面...啊鲁..也就是说...
必须在for的循环里..
不然没有actor的定义,
没有actor_x的定义,
凭空写了个
    draw_battle_actor(actor,actor_x,132)  # 添加了
正常情况下100%出错..
不过既然没报错,如果没有用容错脚本的话,
即使这样写了也是不会显示的.

没报错的具体原因不清楚,
要么自己找,
要么传工程...

如果真的是在全动画战斗里还有重写了一个
Window_BattleStatus  类的话...
我是不是可以认为LZ你果真无视了之前的帖了...

点评

我回去再试一次,要是不行我只能说你很久没碰RM,或者你没有测试过,纸上谈兵  发表于 2011-8-9 20:55
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
558
在线时间
256 小时
注册时间
2010-8-25
帖子
371
14
 楼主| 发表于 2011-8-9 20:44:18 | 只看该作者
本帖最后由 zxc3824 于 2011-8-9 20:46 编辑
cinderelmini 发表于 2011-8-8 22:49
啊呀..这样竟然没报错...神奇了...两种可能吧~一是用了容错脚本(容错脚本能强大到如此地步吗)
二时在全动画 ...


好,按照你的方法:
先把
def draw_battle_actor(actor, x, y)
    bitmap=Bitmap.new("Graphics/battlers/#{actor.battler_name}")
    cw = bitmap.width
    ch = bitmap.height
    src_rect = Rect.new(0, 0, cw, ch)
    self.contents.blt(x - cw/20, y - ch, bitmap, src_rect)
  end
这个定义里的
self.contents.blt(x - cw/20, y - ch, bitmap, src_rect)
改一下...坐标都不对了,这个坐标是针对行走图的似乎,
改成x和y就好了,也就是
self.contents.blt(x, y, bitmap, src_rect)

在Window_BattleStatus的def refresh后draw_battle_actor(actor,actor_x,132)
Y改成0看看...

把:
bitmap=Bitmap.new("Graphics/battlers/#{actor.battler_name}")
(这句其实是用角色战斗图的名字命名)
改成:
bitmap=Bitmap.new("Graphics/battlers/#{actor.name}")

按照你的方法做了一次,不行啊,连个范例都不行
回复

使用道具 举报

Lv4.逐梦者

「Pemercyia」


Urhurrenna

梦石
0
星屑
9397
在线时间
2748 小时
注册时间
2008-9-5
帖子
3543

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

15
发表于 2011-8-9 22:12:28 | 只看该作者
好吧~
既然如此,就当我是纸上谈兵好了~这没必要争~

总之,这种问题要解决也不是一两句的事,
如果想知道那段Window_BattleStatus
里的def refresh错在哪里,
把添加上去的战斗系统暂时去掉就能知道了.

最后说一句:工程放上来,3分钟内包解决.
回复

使用道具 举报

Lv1.梦旅人

虱子

梦石
0
星屑
121
在线时间
1782 小时
注册时间
2010-6-19
帖子
3597
16
发表于 2011-8-9 22:25:41 | 只看该作者
LZ在这个refresh里弄个
  1. p 1
复制代码
看看这段有没有被重置先吧

点评

没有  发表于 2011-8-10 14:03

http://rpg.blue/thread-175056-1-2.html
PVZ型塔防物一个
http://rpg.blue/thread-155199-1-2.html
RMXP技术讨论区手动认可帖,得到答案请认可
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
558
在线时间
256 小时
注册时间
2010-8-25
帖子
371
17
 楼主| 发表于 2011-8-10 14:06:19 | 只看该作者
cinderelmini 发表于 2011-8-9 22:12
好吧~
既然如此,就当我是纸上谈兵好了~这没必要争~

工程已经上传
真移位 物品动画.zip (1.78 MB, 下载次数: 21)

改过以后希望能够说明一下,你修改了哪里,谢谢
回复

使用道具 举报

Lv1.梦旅人

虱子

梦石
0
星屑
121
在线时间
1782 小时
注册时间
2010-6-19
帖子
3597
18
发表于 2011-8-10 14:39:43 | 只看该作者
zxc3824 发表于 2011-8-10 14:06
工程已经上传

真移位 物品动画.rar (1.85 MB, 下载次数: 14)
搜索louse可以找到增加部分
另外我随便在battlers放了两张图片来测试

http://rpg.blue/thread-175056-1-2.html
PVZ型塔防物一个
http://rpg.blue/thread-155199-1-2.html
RMXP技术讨论区手动认可帖,得到答案请认可
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
558
在线时间
256 小时
注册时间
2010-8-25
帖子
371
19
 楼主| 发表于 2011-8-10 15:48:54 | 只看该作者
Wind2010 发表于 2011-8-10 14:39
搜索louse可以找到增加部分
另外我随便在battlers放了两张图片来测试

添加倒是添加了,如果这张图片没有进行半透明处理的话,根本就不能看见HP和SP的数值

点评

好吧在Window_Base的新建的方法的blt描绘图片的数据最后面可以加个透明度  发表于 2011-8-10 17:35
那设置就行了- -  发表于 2011-8-10 16:10
回复

使用道具 举报

Lv4.逐梦者

「Pemercyia」


Urhurrenna

梦石
0
星屑
9397
在线时间
2748 小时
注册时间
2008-9-5
帖子
3543

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

20
发表于 2011-8-10 18:29:58 | 只看该作者
呃...已经好了..
放了两张图做测试,
在那个后面打了三角符号的Window_BattleStatus脚本里搜索"NATSU",
找到添加的地方...
另外,说一句吧,描画的时候有顺序区分,
先描画的项目会被后描画的项目盖住...

========工程=====
真移位 物品动画.rar (1.87 MB, 下载次数: 21)
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-26 16:46

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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