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

Project1

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

[已经解决] 【已解决】如何在角色HP变量值<90窗口10的图片透明=0或关...

[复制链接]

Lv4.逐梦者

梦石
0
星屑
6261
在线时间
1100 小时
注册时间
2015-8-15
帖子
657
跳转到指定楼层
1
发表于 2022-11-23 09:24:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 金芒芒 于 2022-11-23 11:19 编辑

RUBY 代码复制
  1. #==============================================================================
  2. # ■ Window_db
  3. #------------------------------------------------------------------------------
  4. #  显示队标动画的窗口
  5. #==============================================================================
  6.  
  7. class Window_db9 < Window_Base
  8.   #--------------------------------------------------------------------------
  9.   # ● 初始化目标
  10.   #--------------------------------------------------------------------------
  11.   def initialize
  12.     super((640-60)/2-16, (480-90)/2-16-64, 60, 90)
  13.     self.contents = Bitmap.new(width - 32, height - 32)
  14.     @count = @kind = 0
  15.     # 隐藏窗口可见度
  16.     self.opacity = 0
  17.     self.z = 350
  18.     refresh
  19.   end
  20.   #--------------------------------------------------------------------------
  21.   # ● 刷新
  22.   #--------------------------------------------------------------------------
  23.   def refresh
  24.     self.contents.clear
  25.     # 队标显示
  26.     refresh_sprite(0, 0, @kind)
  27.   end
  28.   #---------------------------------------------------------------------------
  29.   # ● 刷新人物动态图
  30.   #---------------------------------------------------------------------------
  31.   def update
  32.     super
  33.     self.x = $game_player.screen_x-228
  34.     self.y = $game_player.screen_y+10
  35.  
  36.     @count += 1
  37.     # 设置图片刷新速度
  38.     @count = 0 if @count >= 30
  39.     if @count / 2 != @kind
  40.       @kind = @count / 2
  41.       refresh
  42.     end
  43.   end
  44. end
  45.  
  46. #==============================================================================
  47. # ■ Window_Base
  48. #------------------------------------------------------------------------------
  49. #  游戏中全部窗口的超级类。
  50. #==============================================================================
  51.  
  52. class Window_Base < Window
  53.   #--------------------------------------------------------------------------
  54.   # ● 初始化对像
  55.   #     x      : 窗口的 X 坐标
  56.   #     y      : 窗口的 Y 坐标
  57.   #     width  : 窗口的宽
  58.   #     height : 窗口的宽
  59.   #--------------------------------------------------------------------------  
  60.   def refresh_sprite(x, y, kind)
  61.     bitmap = RPG::Cache.picture("图片显示/动态图/队标")
  62.     w = bitmap.width / 15
  63.     src_rect = Rect.new(kind * w, 0, w, bitmap.height)
  64.     self.contents.blt(x, y, bitmap, src_rect)
  65.   end
  66. end
角色HP值小于90%的时候,窗口10里面的图片透明为零,         角色HP值小于90%的时候,窗口10关闭。


链接: https://pan.baidu.com/s/14RT9XQRitZQaaQU6Yo9DeA?pwd=hvqc 提取码: hvqc

对标.png (47.64 KB, 下载次数: 3)

对标.png

条件判断.png (57.92 KB, 下载次数: 2)

条件判断.png

对雪.png (62.43 KB, 下载次数: 1)

对雪.png

Lv5.捕梦者

梦石
0
星屑
37784
在线时间
5395 小时
注册时间
2006-11-10
帖子
6546
2
发表于 2022-11-23 10:29:40 | 只看该作者
在35行写上  self.visible = (a=($game_party.actors[0] || $game_actors[1])).hp >= a.maxhp * 0.9

评分

参与人数 1星屑 +50 收起 理由
RyanBern + 50 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6261
在线时间
1100 小时
注册时间
2015-8-15
帖子
657
3
 楼主| 发表于 2022-11-23 11:18:46 | 只看该作者
灯笼菜刀王 发表于 2022-11-23 10:29
在35行写上  self.visible = (a=($game_party.actors[0] || $game_actors[1])).hp >= a.maxhp * 0.9

完美 只见清风不见刀的感觉
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6261
在线时间
1100 小时
注册时间
2015-8-15
帖子
657
4
 楼主| 发表于 2022-11-23 11:26:52 | 只看该作者
灯笼菜刀王 发表于 2022-11-23 10:29
在35行写上  self.visible = (a=($game_party.actors[0] || $game_actors[1])).hp >= a.maxhp * 0.9

大神一题多问 当角色装备为盾牌的时候 图片名字=图片名字+1

点评

我没兴趣猜别人想要什么东西, 第一眼无法理解我就不会再看第二眼了, 要问问题请先让人家明白, 你的需求是什么  发表于 2022-11-23 11:30
看不懂, 建议先完成小学毕业在来做游戏  发表于 2022-11-23 11:29
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6483
在线时间
119 小时
注册时间
2020-1-8
帖子
234
5
发表于 2022-11-23 11:31:51 | 只看该作者
不是,我就奇怪,怎么会把 Window对象 当 Sprite对象用啊,“黑米馒头”也这么写。
一般只是显示图像肯定首选Sprite啊,套个Window壳不是浪费吗……
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6261
在线时间
1100 小时
注册时间
2015-8-15
帖子
657
6
 楼主| 发表于 2022-11-23 11:41:10 | 只看该作者
本帖最后由 金芒芒 于 2022-11-23 11:46 编辑
RPGzh500223 发表于 2022-11-23 11:31
不是,我就奇怪,怎么会把 Window对象 当 Sprite对象用啊,“黑米馒头”也这么写。
一般只是显示图像肯定首 ...

  1. #==============================================================================
  2. # ■  RMXP
  3.   #--------------------------------------------------------------------------
  4.   #  作者:刺夜之枪
  5. #==============================================================================
  6. #==============================================================================
  7. # ■ Sprite_Character
  8. #==============================================================================

  9. class Sprite_Character < RPG::Sprite
  10.   #--------------------------------------------------------------------------
  11.   # ● 参数设置 正太君改
  12.   #--------------------------------------------------------------------------
  13.   # 设置图片文件名.不想要底图就让底图完全透明或设置为 ""
  14.   # 图片放在 Graphics/Pictures/ 文件夹下
  15.   TeamTagFileName = "wodeshib"
  16.   # 设置显示友军标记的开关号
  17.   TeamTagBar = 10
  18.   
  19.   #--------------------------------------------------------------------------
  20.   # ● 初始化对像
  21.   #--------------------------------------------------------------------------
  22.   alias hzhj_old_init_make_tag initialize
  23.   def initialize(*args)
  24.     @team_tag_sprite = Sprite.new(args[0])
  25.     @tags_sprites = []
  26.     @tags_sprites << @team_tag_sprite
  27.     @team_tag_sprite.bitmap = RPG::Cache.picture(TeamTagFileName)
  28.    
  29.     @team_flag_sprite = Sprite.new(args[0])
  30.     @team_flag_sprite.bitmap = RPG::Cache.picture("test-flag")
  31.     @tags_sprites << @team_flag_sprite
  32.    
  33.     @count = 0
  34.     @wait_count = 0
  35.    
  36.     hzhj_old_init_make_tag(*args)
  37.   end
  38.   #--------------------------------------------------------------------------
  39.   # ● 释放
  40.   #--------------------------------------------------------------------------
  41.   alias hzhj_old_dispose_make_tag dispose unless $@
  42.   def dispose
  43.     @tags_sprites.each{|sprite|sprite.dispose}
  44.     hzhj_old_dispose_make_tag
  45.   end
  46.   #--------------------------------------------------------------------------
  47.   # ● 获取事件 HP # 正太君改
  48.   #--------------------------------------------------------------------------
  49.   def event_hp
  50.      return 0 if @character.nil?
  51.      return 0 if @character.is_a?(Game_Player)
  52.      return @character.hp
  53.   end
  54. =begin   
  55.   #--------------------------------------------------------------------------
  56.   # ● 判断是否显示队友标记
  57.   #--------------------------------------------------------------------------
  58.   def show_team_tag?
  59.     #under construct
  60.     return false if @character.is_a?(Game_Player)
  61.     return false if $scene.group_lisenter == nil
  62.     selected = $scene.group_lisenter.include?(@character.group)

  63.     if event_hp > 0 and @character.team == 1 and selected and [email protected]
  64.        return $game_switches[TeamTagBar]
  65.     else
  66.       return false
  67.     end  
  68.    
  69.   end
  70. =end
  71.   #--------------------------------------------------------------------------
  72.   # ● 判断是否显示队长旗子
  73.   #--------------------------------------------------------------------------
  74.   def show_team_flag?
  75.     return false if @character.is_a?(Game_Player)
  76.     return false if @character.is_a?(EFS_Hero)
  77.     return false if $scene.group_lisenter == nil
  78.     selected = $scene.group_lisenter.include?(@character.group)
  79.    
  80.     cp = $scene.team_groups[@character.group-1].captain
  81.     if cp == @character
  82.        return $game_switches[TeamTagBar]
  83.     else
  84.       return false
  85.     end  
  86.    
  87.   end
  88.   
  89.   #--------------------------------------------------------------------------
  90.   # ● 判断是否显示队友标记
  91.   #--------------------------------------------------------------------------
  92.   def show_team_tag?
  93.     #under construct
  94.     return false if @character.is_a?(Game_Player)
  95.     return false if $scene.group_lisenter == nil
  96.     @selected = $scene.group_lisenter.include?(@character.group)

  97.     if event_hp > 0 and @character.team == 1 and [email protected] # and selected
  98.        return $game_switches[TeamTagBar]
  99.     else
  100.       return false
  101.     end  
  102.    
  103.   end

  104.   #--------------------------------------------------------------------------
  105.   # ● 更新画面
  106.   #--------------------------------------------------------------------------
  107.   alias hzhj_old_update_make_tag update
  108.   def update
  109.     hzhj_old_update_make_tag
  110.     if [email protected]_a?(EFS_Battler) and [email protected]_a?(Game_Player)
  111.       @tags_sprites.each{|sprite|sprite.visible = false}
  112.     else
  113.       if show_team_flag?
  114.         @team_flag_sprite.visible =  true
  115.       else  
  116.         @team_flag_sprite.visible =  false
  117.       end  
  118.       # 刷新 标记 可见状态
  119.       if show_team_tag?
  120.         
  121.         @team_tag_sprite.visible =  true

  122.         if @selected
  123.           @tags_sprites.each do |sprite|
  124.             
  125.             
  126.           sprite.ox = sprite.bitmap.width / 2
  127.           sprite.oy = sprite.bitmap.height
  128.           sprite.z = z
  129.           sprite.x = @character.screen_x
  130.           #blink_on
  131.           shif = @character.is_cal
  132.           if @character.ammo>0
  133.           sprite.y = shif ? @character.screen_y-92 : @character.screen_y-60
  134.           else
  135.           sprite.y = shif ? @character.screen_y-82 : @character.screen_y-50
  136.           end
  137.           sprite.opacity = 255
  138.           end#loop
  139.         
  140.         else

  141.         # 刷新坐标
  142.         @tags_sprites.each do |sprite|
  143.           #sprite.zoom_y = 1
  144.           sprite.ox = sprite.bitmap.width / 2
  145.           sprite.oy = sprite.bitmap.height
  146.           sprite.z = z
  147.           sprite.x = @character.screen_x
  148.           #blink_on
  149.           shif = @character.is_cal
  150.           if @character.ammo>0
  151.           sprite.y = shif ? @character.screen_y-92 : @character.screen_y-60
  152.           else
  153.           sprite.y = shif ? @character.screen_y-82 : @character.screen_y-50
  154.           end
  155.           sprite.opacity = 125
  156.         end#loop
  157.         
  158.         end #if include
  159.         
  160.       else
  161.         @tags_sprites.each{|sprite|sprite.visible = false}
  162.       end
  163.       
  164.     end
  165.    
  166.    
  167.    
  168.   end
  169.   
  170.   
  171. end
  172. =begin

  173. #==============================================================================
  174. # □ Sprite_Cursor
  175. #==============================================================================
  176. class Sprite_Cursor < Sprite
  177.   def initialize
  178.     super
  179.     self.visible = false
  180.     self.bitmap = RPG::Cache.windowskin("cursor.png")
  181.     self.z = 9999
  182.     @count = 0
  183.     @wait_count = 0
  184.     update
  185.   end
  186.   #--------------------------------------------------------------------------
  187.   # ● 更新画面
  188.   #--------------------------------------------------------------------------

  189.   def update
  190.     super
  191.     if @wait_count == 0
  192.       @count = 0
  193.     elsif @wait_count == 32
  194.       @count = 1
  195.     end
  196.     if @count == 0
  197.       if @wait_count % 4 == 0
  198.         self.ox += 1
  199.       end
  200.       @wait_count += 1
  201.     elsif @count == 1
  202.       if @wait_count % 4 == 0
  203.         self.ox -= 1
  204.       end
  205.       @wait_count -= 1
  206.     end
  207.   end

  208.   #--------------------------------------------------------------------------
  209.   # ● 半透明化
  210.   #--------------------------------------------------------------------------
  211.   def opacitysz(type)
  212.     if type == 0
  213.       self.opacity -= 8 if self.opacity > 180
  214.     else
  215.       self.opacity += 8 if self.opacity < 255
  216.     end
  217.   end
  218. end



  219. =end
复制代码

我是有脚本 只是借题发挥一下  最主要是窗口可以直接过地图
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-24 07:45

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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