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

Project1

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

[有事请教] 如何将if0.....4改为for i in 0...

[复制链接]

Lv4.逐梦者

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

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

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

x
本帖最后由 金芒芒 于 2023-11-29 17:09 编辑

RUBY 代码复制
  1. sprite.x = 643
  2. #          selected = $scene.group_lisenter.include?(@character.group)
  3. #         cp = $scene.enermy_groups[@character.group-1].captain
  4.           if cp = $scene.enermy_groups[@character.group[0]-1].captain
  5.            sprite.x=643
  6.          end
  7.           if cp = $scene.enermy_groups[@character.group[1]-1].captain
  8.            sprite.x=730
  9.          end
  10.           if cp = $scene.enermy_groups[@character.group[2]-1].captain
  11.            sprite.x=817
  12.          end
  13.           if cp = $scene.enermy_groups[@character.group[3]-1].captain
  14.            sprite.x=904
  15.          end
  16.           if cp = $scene.enermy_groups[@character.group[4]-1].captain
  17.            sprite.x=991
  18.           end

Lv4.逐梦者

梦石
0
星屑
14121
在线时间
2142 小时
注册时间
2019-1-24
帖子
1121

R考场第七期纪念奖

2
发表于 2023-11-29 20:45:43 | 只看该作者
本帖最后由 miantouchi 于 2023-11-29 21:29 编辑
  1. for i in 0..4
  2.   if cp = $scene.enermy_groups[@character.group[i]-1].captain
  3.     sprite.x += i*87
  4.   end
  5. end
复制代码

你要的for i 0..4 这个是累加的意思,而你目前的脚本属于选择条件的情况。
刚才发的漏了+号,补上了
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6296
在线时间
1104 小时
注册时间
2015-8-15
帖子
658
3
 楼主| 发表于 2023-11-29 21:17:57 | 只看该作者
本帖最后由 金芒芒 于 2023-11-29 21:23 编辑
miantouchi 发表于 2023-11-29 20:45
你要的for i 0..4 这个是累加的意思,而你目前的脚本属于选择条件的情况。


最终结果 sprite.x =991 一个坐标
  1. #==============================================================================
  2. #==============================================================================
  3. # ■ Sprite_Character
  4. #==============================================================================

  5. class Sprite_Character < RPG::Sprite
  6.   #--------------------------------------------------------------------------
  7.   # ● 参数设置 正太君改
  8.   #--------------------------------------------------------------------------
  9.   # 设置图片文件名.不想要底图就让底图完全透明或设置为 ""
  10.   # 图片放在 Graphics/Pictures/ 文件夹下
  11.   HPBarFileName = "HPBar"
  12.   HPBarBackFileName = "HPBarBack"
  13.   MPBarFileName = "MPBar"
  14.   MPBarBackFileName = "MPBarBack"
  15.   # 设置显示友军血条的开关号
  16.   #TeamHPBarSwitchID = 5
  17.   # 设置显示敌军血条的开关号
  18.   #EnemyHPBarSwitchID = 6
  19.   
  20.   # 设置显示血条的开关号
  21.   HPBarSwitchID = 5
  22.   
  23.   #禁止显示血条 开关
  24.   HPBarDOESNOTSwitchID = 6
  25.   
  26.   
  27.   # 被攻击后血条显示多久
  28.   HPbarTimeDisplay = 60
  29.   
  30.   
  31.   #--------------------------------------------------------------------------
  32.   # ● 初始化对像
  33.   #--------------------------------------------------------------------------
  34. #别名hzhj旧初始化使事件参数栏初始化
  35.   alias hzhj_old_init_make_event_param_bar initialize
  36.   def initialize(*args)#定义初始化(*参数)
  37.     @hp_sprite = Sprite.new(args[0])#@hp精灵=精灵.新(参数[0])
  38.     @hp_back_sprite = Sprite.new(args[0])#@hp后台精灵 = 精灵.新(参数[0])
  39.     @mp_sprite = Sprite.new(args[0])
  40.     @mp_back_sprite = Sprite.new(args[0])

  41.    
  42.     @param_sprites = []#@参数精灵=[]
  43.     @param_sprites << @hp_sprite# @参数精灵 << @hp精灵
  44.     @param_sprites << @hp_back_sprite# @参数精灵=@hp后台精灵
  45.     @param_sprites << @mp_sprite
  46.     @param_sprites << @mp_back_sprite
  47.     #@hp精灵。位图 = RPG::Cache.picture(HPBarFileName)绿色

  48.    
  49.     @hp_sprite.bitmap = RPG::Cache.picture(HPBarFileName)
  50.     #@hp后台精灵.位图= RPG::Cache.picture(HPBarBackFileName)#黑色
  51.     @hp_back_sprite.bitmap = RPG::Cache.picture(HPBarBackFileName)#黑色
  52.     @mp_sprite.bitmap = RPG::Cache.picture(MPBarFileName)
  53.     @mp_back_sprite.bitmap = RPG::Cache.picture(MPBarBackFileName)
  54.     #别名hzhj旧初始化使事件参数栏(*参数)
  55.    
  56.     hzhj_old_init_make_event_param_bar(*args)
  57.   end
  58.   #--------------------------------------------------------------------------
  59.   # ● 释放
  60.   #--------------------------------------------------------------------------
  61.   #别名hzhj旧的布置使事件参数栏布置除非$@
  62.   alias hzhj_old_dispose_make_event_param_bar dispose unless $@
  63.   def dispose#定义可用
  64.     #@参数精灵。每个{|精灵|精灵.释放}
  65.     @param_sprites.each{|sprite|sprite.dispose}
  66.     #hzhj旧的布置生成事件参数栏
  67.     hzhj_old_dispose_make_event_param_bar
  68.   end
  69.   #--------------------------------------------------------------------------
  70.   # ● 获取事件 HP # 正太君改
  71.   #--------------------------------------------------------------------------
  72.   def event_hp#定义事件hp
  73.      return 0 if @character.nil?#如果@角色,则返回0。无
  74.      return @character.hp#返回角色HP
  75.   end
  76.   #--------------------------------------------------------------------------
  77.   # ● 获取事件 MHP # 正太君改
  78.   #--------------------------------------------------------------------------
  79.   def event_mhp#定义事件MHP
  80.     return 0 if @character.nil?#如果@角色,则返回0。无
  81.     return @character.hp_max#返回角色HP最大值
  82.   end
  83.   #--------------------------------------------------------------------------
  84.   # ● 获取事件 MP # 正太君改
  85.   #--------------------------------------------------------------------------
  86.   def event_mp
  87.     return 0 if @character.nil?
  88.     return @character.sp if @character.is_a?(EFS_Hero)
  89.     return @character.ammo
  90.     #return @character.get_group.morale
  91.   end
  92.   #--------------------------------------------------------------------------
  93.   # ● 获取事件 MMP # 正太君改
  94.   #--------------------------------------------------------------------------
  95.   def event_mmp
  96.     return 0 if @character.nil?
  97.     return @character.sp_max if @character.is_a?(EFS_Hero)
  98.     return @character.ammo_max
  99.     #return 100
  100.   end
  101.   #--------------------------------------------------------------------------
  102.   # ● 判断是否显示 HP 条
  103.   #--------------------------------------------------------------------------
  104.   def show_hp_bar?#是否显示hp栏?
  105.     #return false if @character.is_a?(EFS_Hero)
  106.    # 如果$场景,则返回假的。efs故事模式
  107.     return false if $scene.efs_story_mode
  108. #    selected = $scene.group_lisenter.include?(@character.group)
  109.    # cp = $scene.enermy_groups[@character.group[0]-1].captain
  110.    # cp = $scene.team_groups[@character.group[0]-1].captain
  111.      cp = $scene.enermy_groups[@character.group-1].captain
  112.     if cp == @character
  113.     #如果事件hp>0&&@角色已删除  &&表示与,意为同时都要满足。&&逻辑运算符,并且是双目运算符
  114.    # cp = $scene.enermy_groups[@character.group-1].captain
  115.     #if event_hp > 0 && [email protected]
  116.       #返回$游戏开关[HPBarSwitchID]||@角色.hp计数器>0
  117.       return $game_switches[HPBarSwitchID] || @character.hp_counter > 0 #) && ! $game_switches[HPBarDOESNOTSwitchID]
  118.     else #否则
  119.       return false#返回假的
  120.     end  
  121.   end
  122.   #--------------------------------------------------------------------------
  123.   # ● 判断是否显示 MP 条
  124.   #--------------------------------------------------------------------------
  125.   def show_mp_bar?
  126.     #return false if @character.is_a?(EFS_Hero)
  127.      return false if $scene.efs_story_mode
  128.     if event_mmp > 0 && [email protected]
  129.       return $game_switches[HPBarSwitchID] || @character.hp_counter > 0 #) && ! $game_switches[HPBarDOESNOTSwitchID]
  130.     else
  131.       return false
  132.     end  
  133.   end
  134.   #--------------------------------------------------------------------------
  135.   # ● 更新画面
  136.   #--------------------------------------------------------------------------
  137.   #别名hzhj旧更新使事件参数栏更新
  138.   alias hzhj_old_update_make_event_param_bar update
  139.   def update #定义更新
  140.     #hzhj旧更新生成事件参数栏
  141.     hzhj_old_update_make_event_param_bar
  142.     #如果@角色.是_a?(EFS_战斗者)
  143.     if [email protected]_a?(EFS_Battler)
  144.      # @参数精灵。每个{|精灵|精灵.可见=假的}
  145.       @param_sprites.each{|sprite|sprite.visible = false}
  146.     else
  147.       
  148.       # 刷新 HP 可见状态
  149.       if show_hp_bar? #如果显示hp栏?
  150.         #@hp精灵。可见=@hp后台精灵可见=真
  151.         @hp_sprite.visible = @hp_back_sprite.visible = true
  152.        # @hp精灵。bitmap=角色扮演::缓存图片(“HPBar-E”)如果@角色。团队!=1.
  153.         @hp_sprite.bitmap = RPG::Cache.picture("HPBar-E") if @character.team != 1 #wtf you doing
  154.         
  155.         
  156.         #减少计数
  157.        # 除非$游戏切换[HPBarSwitchID]
  158.         unless $game_switches[HPBarSwitchID]
  159.           #如果@角色。hp计数器==hp条形时间显示
  160.           if @character.hp_counter == HPbarTimeDisplay
  161.             @param_sprites.each do |sprite| #@参数精灵。每个做|精灵|
  162.               sprite.opacity = 255 #精灵不透明度=255
  163.             end
  164.             #els if@字符。hp计数器< HPbarTimeDisplay /3
  165.           elsif  @character.hp_counter < HPbarTimeDisplay/3
  166.             @param_sprites.each do |sprite|#@参数精灵。每个做|精灵|
  167.               ##精灵不透明度-=255/(HPbarTimeDisplay/3)
  168.               sprite.opacity -= 255/(HPbarTimeDisplay/3)
  169.             end
  170.           end
  171.           #@性格。hp计数器-=1
  172.           @character.hp_counter -= 1
  173.         else#否则
  174.             @param_sprites.each do |sprite|#@参数精灵。每个做|精灵|
  175.               sprite.opacity = 255#精灵不透明度=255
  176.             end
  177.          
  178.         end
  179.         
  180.         # 刷新坐标
  181.         @param_sprites.each do |sprite|#@参数精灵。每个做|精灵|
  182.           sprite.ox = sprite.bitmap.width / 2#精灵ox=精灵位图宽度/2
  183.           sprite.oy = sprite.bitmap.height#精灵.oy=精灵。位图高度
  184.          # sprite.x = 115
  185.           #sprite.y = y - 52
  186.           for i in 0..4
  187.             if cp = $scene.enermy_groups[@character.group[i]-1].captain
  188.             sprite.x = 643+i*87
  189.           end
  190.         end
  191.           #sprite.opacity = 255
  192.          # shif = @character.is_cal#盖印图层=@角色。是计算函数
  193.           sprite.y = 520 #y - (shif ? 82 : 52)#精灵.y=y-(盖印图层?82:52)
  194.           sprite.z = z#精灵.z = z
  195.         end
  196.         @hp_sprite.z += 1#hp_精灵.z = z
  197.         @mp_sprite.z += 1
  198.         # 计算 HP 显示区域
  199.         #hp宽=(@hp 精灵.位图.宽*1.0*事件hp/事件mhp)。圆形的
  200.         hpw = (@hp_sprite.bitmap.width * 1.0 * event_hp / event_mhp).round
  201.        # hp宽=[hp宽,@hp精灵位图宽度].最小值,0].最大值
  202.         hpw = [[hpw, @hp_sprite.bitmap.width].min, 0].max
  203.         hph = @hp_sprite.bitmap.height#hp高=@hp精灵位图高度
  204.         #@hp精灵。src矩形。集合(0,0,hp宽,hp高)
  205.         @hp_sprite.src_rect.set(0, 0, hpw, hph)
  206.         
  207.         

  208.         
  209.         
  210.         
  211.         
  212.         
  213.         
  214.         # 刷新 MP 可见状态
  215.       
  216.         @mp_sprite.visible = @mp_back_sprite.visible = (show_mp_bar? and event_mmp > 0) # 正太君改
  217.         if show_mp_bar?
  218.           # 修正 HP 坐标
  219.           @hp_sprite.y -= (@mp_sprite.oy + 1)
  220.           @hp_back_sprite.y = @hp_sprite.y
  221.           # 计算 MP 显示区域
  222.           if event_mmp > 0 # 正太君改
  223.             mpw = (@mp_sprite.bitmap.width * 1.0 * event_mp / event_mmp).round
  224.             mpw = [[mpw, @mp_sprite.bitmap.width].min, 0].max
  225.             mph = @mp_sprite.bitmap.height
  226.             @mp_sprite.src_rect.set(0, 0, mpw, mph)
  227.           end
  228.         end
  229.       else
  230.         @param_sprites.each{|sprite|sprite.visible = false}
  231.       end
  232.     end
  233.   end
  234. end
复制代码

111.png (625.56 KB, 下载次数: 5)

111.png
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33193
在线时间
10491 小时
注册时间
2009-3-15
帖子
4756
4
发表于 2023-11-30 12:46:38 | 只看该作者
if cp =
是==不是=
你应该不是第一次犯这种错对吧?
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-29 12:10

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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