Project1

标题: 画面上这样显示头像(贴图) [打印本页]

作者: 金芒芒    时间: 2023-6-24 13:19
标题: 画面上这样显示头像(贴图)
最好是用精灵表达
RUBY 代码复制
  1. class Sprite_Character < RPG::Sprite
  2.   #--------------------------------------------------------------------------
  3.   # ● 参数设置 正太君改
  4.   #--------------------------------------------------------------------------
  5.   # 设置图片文件名.不想要底图就让底图完全透明或设置为 ""
  6.   # 图片放在 Graphics/Pictures/ 文件夹下
  7.   TeamTagFileName = "大脚"#团队组标记文件名
  8.   # 设置显示友军标记的开关号
  9.   TeamTagBar = 10
  10.  
  11.   #--------------------------------------------------------------------------
  12.   # ● 初始化对像
  13.   #--------------------------------------------------------------------------
  14.   #别名hzhj旧初始化使标记初始化
  15.   alias hzhj_old_init_make_tag initialize
  16.   #定义初始化参数
  17.   def initialize(*args)
  18.    #@团队标记精灵= 精灵新建(参数[0])
  19.     @team_tag_sprite = Sprite.new(args[0])
  20.     @tags_sprites = [] #@标记精灵=[]
  21.     #@标记精灵 << @团队标记精灵
  22.     @tags_sprites << @team_tag_sprite
  23.     # @团队标记精灵位图 = RPG::缓存。图片(团队标记文件名)
  24.     @team_tag_sprite.bitmap = RPG::Cache.picture(TeamTagFileName)
  25.     #队旗精灵=精灵.new(参数[0])
  26.     @team_flag_sprite = Sprite.new(args[0])
  27.     # 团队旗帜精灵位图= RPG::缓存。图片("队标")
  28.     @team_flag_sprite.bitmap =  RPG::Cache.picture("队标")
  29.  
  30.    # @team_flag_sprite.bitmap = RPG::Cache.icon(Figter_data::CHARACTER_NAME)
  31.    # if args == [2]RPG::Cache.icon(Figter_data::CHARACTER_NAME[@selected_units[@index][i]])
  32.    # @team_flag_sprite.bitmap = RPG::Cache.Icons("E_HeavyInfantry")
  33.    # end
  34.    #@标记精灵 << @团队旗帜精灵
  35.     @tags_sprites << @team_flag_sprite
  36.  
  37.     @count = 0 #@计数=0
  38.     @wait_count = 0#@等待计数=0
  39.     #hzhj旧初始化使用标记(*参数)
  40.     hzhj_old_init_make_tag(*args)
  41.   end
  42.   #--------------------------------------------------------------------------
  43.   # ● 释放
  44.   #--------------------------------------------------------------------------
  45.   #别名hzhj旧的布置使标记布置除非$@
  46.   alias hzhj_old_dispose_make_tag dispose unless $@
  47.   def dispose#定义布置
  48.    # @标记精灵。每个{|精灵|精灵.布置}
  49.     @tags_sprites.each{|sprite|sprite.dispose}
  50.     #hzhj旧的布置使用标志
  51.     hzhj_old_dispose_make_tag
  52.   end
  53.   #--------------------------------------------------------------------------
  54.   # ● 获取事件 HP # 正太君改
  55.   #--------------------------------------------------------------------------
  56.   def event_hp#定义事件hp
  57.      return 0 if @character.nil?#如果@角色,则返回0。无
  58.      #如果@角色,则返回0。是a吗?(游戏玩家)
  59.      return 0 if @character.is_a?(Game_Player)
  60.      #返回@角色hp
  61.      return @character.hp
  62.   end
  63. =begin   
  64.   #--------------------------------------------------------------------------
  65.   # ● 判断是否显示队友标记
  66.   #--------------------------------------------------------------------------
  67.   def show_team_tag?
  68.     #under construct
  69.     return false if @character.is_a?(Game_Player)
  70.     return false if $scene.group_lisenter == nil
  71.     selected = $scene.group_lisenter.include?(@character.group)
  72.  
  73.     if event_hp > 0 and @character.team == 1 and selected and [email protected]
  74.        return $game_switches[TeamTagBar]
  75.     else
  76.       return false
  77.     end  
  78.     
  79.   end
  80. =end
  81.   #--------------------------------------------------------------------------
  82.   # ● 判断是否显示队长旗子
  83.   #--------------------------------------------------------------------------
  84.   def show_team_flag?#是否定义显示队长旗子?
  85.     #如果@角色.是_a?则返回假的?(游戏玩家)
  86.     return false if @character.is_a?(Game_Player)
  87.      #如果@角色.是_a?则返回假的?(EFS英雄)
  88.     return false if @character.is_a?(EFS_Hero)
  89.     #如果$场景可以用的队组 == 无     则返回假的
  90.     return false if $scene.group_lisenter == nil
  91.     #挑选选着=$场景。小组成员。包括?(@角色队组)
  92.     selected = $scene.group_lisenter.include?(@character.group)
  93.    # cp队长=场景。小组[@角色.队组-1].队长
  94.     cp = $scene.team_groups[@character.group-1].captain
  95.     if cp == @character #如果队长==@角色
  96.       #返回$游戏开关[TeamTagBar]
  97.        return $game_switches[TeamTagBar]
  98.    else#否则
  99.       return false#返回假的
  100.     end  
  101.    # cp = $scene.team_groups[@character.group-1].captain
  102.    # if cp == @character
  103.    # bitmap = nil
  104.    # @character.id= Figter_data::data_id
  105.    # case @character.id
  106.    # 队长 id 为 2 显示 E_HeavyInfantry
  107.    # when 2 then bitmap = RPG::Cache.Icons("E_HeavyInfantry")
  108.    # end
  109.    # @team_flag_sprite.bitmap = bitmap if bitmap
  110.    # end   
  111.  
  112. end
  113.  
  114.   #--------------------------------------------------------------------------
  115.   # ● 判断是否显示队友标记
  116.   #--------------------------------------------------------------------------
  117.   def show_team_tag?#是否定义显示队友标记?
  118.     #under construct
  119.     #如果@角色.是_a?则返回假的?(游戏玩家)
  120.     return false if @character.is_a?(Game_Player)
  121.     #如果$场景可以用的队组 == 无     则返回假的
  122.     return false if $scene.group_lisenter == nil
  123.     #挑选选着=$场景。小组成员。包括?(@角色队组)
  124.     @selected = $scene.group_lisenter.include?(@character.group)
  125.     #如果事件hp>0且@角色.团队==1且@角色已删除
  126.     if event_hp > 0 and @character.team == 1 and !@character.removed # and selected
  127.       ##返回$游戏开关[TeamTagBar]
  128.       return $game_switches[TeamTagBar]
  129.     else#否者
  130.       return false#返回假的
  131.     end  
  132.  
  133.   end
  134.  
  135.   #--------------------------------------------------------------------------
  136.   # ● 更新画面
  137.   #--------------------------------------------------------------------------
  138.   #别名hzhj旧更新使标记更新
  139.   alias hzhj_old_update_make_tag update
  140.   def update#定义更新
  141.     hzhj_old_update_make_tag#hzhj旧更新标记
  142.     #如果@角色.is_a?(EFS_Battler)和@角色.is_a?(游戏玩家)
  143.     if !@character.is_a?(EFS_Battler) and !@character.is_a?(Game_Player)
  144.       #@标记精灵。每个{|sprite|sprite.可见=false}
  145.       @tags_sprites.each{|sprite|sprite.visible = false}
  146.     else#否则
  147.       if show_team_flag?#如果展示队旗?
  148.        # @队旗精灵。可见=真
  149.         @team_flag_sprite.visible =  true
  150.       else #否则
  151.         @team_flag_sprite.visible =  false # @队旗精灵。可见=假
  152.       end  
  153.       # 刷新 标记 可见状态
  154.       if show_team_tag?
  155.         # @队旗精灵。可见=真
  156.         @team_tag_sprite.visible =  true
  157.  
  158.         if @selected#如果@选定
  159.          # @标记精灵。每个do|精灵|
  160.           @tags_sprites.each do |sprite|
  161.  
  162.  
  163.           sprite.ox = sprite.bitmap.width / 2
  164.           sprite.oy = sprite.bitmap.height
  165.           sprite.z = z
  166.          # 精灵.x =   @角色。屏幕_x
  167.  
  168.           #sprite.x = @character.screen_x
  169.           sprite.x = 100+5*87+3#@character.screen_x
  170.           #blink_on
  171.          # 函数键=@角色。是使用权限
  172.           shif = @character.is_cal
  173.           #sprite.x = shif [email protected]_x : 120+i+160
  174.           if @character.ammo>0#如果@角色。弹药>0
  175.  
  176.           #精灵y=函数键?@角色屏幕y-92:@角色。屏幕y-60  
  177.           sprite.y =shif ? 500:500#shif ? @character.screen_y-92 : @character.screen_y-60
  178.           else#否者
  179.  
  180.            #精灵y=函数键?@角色屏幕y-82:@角色。屏幕y-50
  181.           sprite.y =shif ? 480:480#shif ? @character.screen_y-82 : @character.screen_y-50
  182.           end
  183.           sprite.opacity = 255#精灵不透明度=255
  184.           end#loop
  185.  
  186.         else
  187.  
  188.         # 刷新坐标
  189.         @tags_sprites.each do |sprite|#@标记精灵。每个do|sprite|
  190.           #sprite.zoom_y = 1
  191.           sprite.ox = sprite.bitmap.width / 2
  192.           sprite.oy = sprite.bitmap.height
  193.           sprite.z = z
  194.           # 精灵.x =   @角色。屏幕_x
  195.        #   sprite.x = shif [email protected]_x : 120+screen_x+160
  196.           sprite.x = 100+5*87+3 #@character.screen_x
  197.           #blink_on
  198.           # 函数键=@角色。是使用权限
  199.           shif = @character.is_cal
  200.  
  201.           if @character.ammo>0#如果@角色。弹药>0\
  202.  
  203.           #精灵y=函数键?@角色屏幕y-92:@角色。屏幕y-60  
  204.           sprite.y = shif ? 500:500 #shif ? @character.screen_y-92 : @character.screen_y-60
  205.           else#否者
  206.  
  207.           #精灵y=函数键?@角色屏幕y-82:@角色。屏幕y-50
  208.           sprite.y = shif ? 500:500#shif ? @character.screen_y-82 : @character.screen_y-50
  209.           end
  210.           sprite.opacity = 125#精灵不透明度=125
  211.         end#loop
  212.  
  213.         end #if include
  214.  
  215.       else#否者
  216.         #@标记精灵。每个{|sprite|sprite.可见度=假的}
  217.         @tags_sprites.each{|sprite|sprite.visible = false}
  218.       end
  219.  
  220.     end
  221.  
  222.  
  223.  
  224.   end
  225.  
  226.  
  227. end





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