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

Project1

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

[有事请教] 如何不改别名在一个脚本里做5个独立精灵

[复制链接]

Lv4.逐梦者

梦石
0
星屑
6291
在线时间
1103 小时
注册时间
2015-8-15
帖子
658
跳转到指定楼层
1
发表于 2023-12-11 13:58:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 金芒芒 于 2023-12-11 14:01 编辑

    cp = $scene.enermy_groups[@character.group-1].captain
    if cp == @character
脚本103这句话可以分5个角色组[@character.group[0]-1][@character.group[1]-1][@character.group[2]-1][@character.group[3]-1][@character.group[4]-1]
如何在一个脚本添加5个独立的精灵我不想做5个脚本加别名序号



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

Lv5.捕梦者

梦石
0
星屑
33188
在线时间
10490 小时
注册时间
2009-3-15
帖子
4756
2
发表于 2023-12-12 12:39:45 | 只看该作者
RUBY 代码复制
  1. @enermy_head_sprite = []
  2. for i in 0...5
  3. @enermy_head_sprite.push(Sprite.new(args[0]))
  4. end
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6291
在线时间
1103 小时
注册时间
2015-8-15
帖子
658
3
 楼主| 发表于 2023-12-14 08:11:31 | 只看该作者
soulsaga 发表于 2023-12-12 12:39
@enermy_head_sprite = []
for i in 0...5
@enermy_head_sprite.push(Sprite.new(args[0]))

他这个是十六进制的脚本这样坐标就是重叠
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33188
在线时间
10490 小时
注册时间
2009-3-15
帖子
4756
4
发表于 2023-12-14 09:41:59 | 只看该作者
金芒芒 发表于 2023-12-14 08:11
他这个是十六进制的脚本这样坐标就是重叠

为什么会重叠?
不是同一个哦
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-28 08:50

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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