Project1

标题: 精灵.x=游戏屏幕.x 脚本这么写啊 [打印本页]

作者: 金芒芒    时间: 2023-6-14 16:49
标题: 精灵.x=游戏屏幕.x 脚本这么写啊
精灵x=游戏screen.x   游戏screenx=120+精灵i*87  精灵y=游戏screen.y   游戏screen.y=560  
作者: 企鹅大虾    时间: 2023-6-20 14:44
screen
sprite
game
作者: 金芒芒    时间: 2023-6-21 08:04
企鹅大虾 发表于 2023-6-20 14:44
screen
sprite
game

脚本不成立Sprite_Character.Sprite_Battler.Sprite_Picture.Sprite_Timer.Spriteset_Map。没有对应屏幕显示坐标
作者: soulsaga    时间: 2023-6-21 15:07
你想在哪里搞这个
作者: 金芒芒    时间: 2023-6-21 16:13
本帖最后由 金芒芒 于 2023-6-21 16:43 编辑

RUBY 代码复制
  1.  
soulsaga 发表于 2023-6-21 15:07
你想在哪里搞这个


精灵显示在map上 ,x=显示的x  y=显示的y  精灵=玩家的头像 ,玩家在地图上战斗
我想要玩家的头像跟第2张图地图战斗窗口一样固定在显示器的坐标上
现在的脚本sprite.x = @character.screen_x  我想要改sprite.x = screen_x  不知道用那个精灵

现在用的是角色精灵
class Sprite_Character < RPG::Sprite
  #--------------------------------------------------------------------------
  # ● 参数设置 正太君改
  #--------------------------------------------------------------------------
  # 设置图片文件名.不想要底图就让底图完全透明或设置为 ""
  # 图片放在 Graphics/Pictures/ 文件夹下
  TeamTagFileName = "wodeshib"
  # 设置显示友军标记的开关号
  TeamTagBar = 10
  
  #--------------------------------------------------------------------------
  # ● 初始化对像
  #--------------------------------------------------------------------------
  alias hzhj_old_init_make_tag initialize
  def initialize(*args)
    @team_tag_sprite = Sprite.new(args[0])
    @tags_sprites = []
    @tags_sprites << @team_tag_sprite
    @team_tag_sprite.bitmap = RPG::Cache.picture(TeamTagFileName)
   
    @team_flag_sprite = Sprite.new(args[0])
    @team_flag_sprite.bitmap = RPG::Cache.picture("test-flag")
    @tags_sprites << @team_flag_sprite
   
    @count = 0
    @wait_count = 0
   
    hzhj_old_init_make_tag(*args)
  end
  #--------------------------------------------------------------------------
  # ● 释放
  #--------------------------------------------------------------------------
  alias hzhj_old_dispose_make_tag dispose unless $@
  def dispose
    @tags_sprites.each{|sprite|sprite.dispose}
    hzhj_old_dispose_make_tag
  end
  #--------------------------------------------------------------------------
  # ● 获取事件 HP # 正太君改
  #--------------------------------------------------------------------------
  def event_hp
     return 0 if @character.nil?
     return 0 if @character.is_a?(Game_Player)
     return @character.hp
  end
=begin   
  #--------------------------------------------------------------------------
  # ● 判断是否显示队友标记
  #--------------------------------------------------------------------------
  def show_team_tag?
    #under construct
    return false if @character.is_a?(Game_Player)
    return false if $scene.group_lisenter == nil
    selected = $scene.group_lisenter.include?(@character.group)

    if event_hp > 0 and @character.team == 1 and selected and [email protected]
       return $game_switches[TeamTagBar]
    else
      return false
    end  
   
  end
=end
  #--------------------------------------------------------------------------
  # ● 判断是否显示队长旗子
  #--------------------------------------------------------------------------
  def show_team_flag?
    return false if @character.is_a?(Game_Player)
    return false if @character.is_a?(EFS_Hero)
    return false if $scene.group_lisenter == nil
    selected = $scene.group_lisenter.include?(@character.group)
   
    cp = $scene.team_groups[@character.group-1].captain
    if cp == @character
       return $game_switches[TeamTagBar]
    else
      return false
    end  
   
  end
  
  #--------------------------------------------------------------------------
  # ● 判断是否显示队友标记
  #--------------------------------------------------------------------------
  def show_team_tag?
    #under construct
    return false if @character.is_a?(Game_Player)
    return false if $scene.group_lisenter == nil
    @selected = $scene.group_lisenter.include?(@character.group)

    if event_hp > 0 and @character.team == 1 and [email protected] # and selected
       return $game_switches[TeamTagBar]
    else
      return false
    end  
   
  end

  #--------------------------------------------------------------------------
  # ● 更新画面
  #--------------------------------------------------------------------------
  alias hzhj_old_update_make_tag update
  def update
    hzhj_old_update_make_tag
    if [email protected]_a?(EFS_Battler) and [email protected]_a?(Game_Player)
      @tags_sprites.each{|sprite|sprite.visible = false}
    else
      if show_team_flag?
        @team_flag_sprite.visible =  true
      else  
        @team_flag_sprite.visible =  false
      end  
      # 刷新 标记 可见状态
      if show_team_tag?
        
        @team_tag_sprite.visible =  true

        if @selected
          @tags_sprites.each do |sprite|
            
            
          sprite.ox = sprite.bitmap.width / 2
          sprite.oy = sprite.bitmap.height
          sprite.z = z
          sprite.x = @character.screen_x
          #blink_on
          shif = @character.is_cal
          if @character.ammo>0
          sprite.y = shif ? @character.screen_y-92 : @character.screen_y-60
          else
          sprite.y = shif ? @character.screen_y-82 : @character.screen_y-50
          end
          sprite.opacity = 255
          end#loop
        
        else

        # 刷新坐标
        @tags_sprites.each do |sprite|
          #sprite.zoom_y = 1
          sprite.ox = sprite.bitmap.width / 2
          sprite.oy = sprite.bitmap.height
          sprite.z = z
          sprite.x = @character.screen_x
          #blink_on
          shif = @character.is_cal
          if @character.ammo>0
          sprite.y = shif ? @character.screen_y-92 : @character.screen_y-60
          else
          sprite.y = shif ? @character.screen_y-82 : @character.screen_y-50
          end
          sprite.opacity = 125
        end#loop
        
        end #if include
        
      else
        @tags_sprites.each{|sprite|sprite.visible = false}
      end
      
    end
   
   
   
  end
  
  
end

1354.png (180.27 KB, 下载次数: 37)

1354.png

完成.png (220.89 KB, 下载次数: 35)

完成.png

作者: soulsaga    时间: 2023-6-21 16:47
金芒芒 发表于 2023-6-21 16:13
[/pre]

精灵显示在map上 ,x=显示的x  y=显示的y  精灵=玩家的头像 ,玩家在地图上战斗

显示器的坐标上?
什么意思?
鼠标的坐标吗
作者: 金芒芒    时间: 2023-6-21 17:00
本帖最后由 金芒芒 于 2023-6-21 17:03 编辑
soulsaga 发表于 2023-6-21 16:47
显示器的坐标上?
什么意思?
鼠标的坐标吗

类似事件显示一张图片一样固定在显示窗口上
$game_screen.pictures[number].show(name, origin, x, y, zoom_x, zoom_y, opacity, blend_type)

999.png (55.84 KB, 下载次数: 34)

999.png

作者: soulsaga    时间: 2023-6-21 17:06
金芒芒 发表于 2023-6-21 17:00
类似事件显示一张图片一样固定在显示窗口上
$game_screen.pictures[number].show(name, origin, x, y, zoo ...

那就不要用角色精灵啦
作者: 金芒芒    时间: 2023-6-21 17:13
soulsaga 发表于 2023-6-21 17:06
那就不要用角色精灵啦


那你推荐一个精灵我不知道那个精灵匹配

作者: soulsaga    时间: 2023-6-21 17:14
金芒芒 发表于 2023-6-21 17:13
那你推荐一个精灵

@character.screen_x=XX
作者: 金芒芒    时间: 2023-6-21 17:49
soulsaga 发表于 2023-6-21 17:14
@character.screen_x=XX

不是很明白
作者: soulsaga    时间: 2023-6-22 19:11
本帖最后由 soulsaga 于 2023-6-22 19:14 编辑

精灵x=120+精灵i*87
精灵I是啥?
角色精灵里
sprite.x = 100
基本上就固定了其他自己研究
作者: 金芒芒    时间: 2023-6-23 16:51
本帖最后由 金芒芒 于 2023-6-23 17:21 编辑
soulsaga 发表于 2023-6-21 17:14
@character.screen_x=XX


已经固定了 固定在了地图上  能不能固定在$游戏屏幕x坐标上啊 $game_screen.pictures[number].show(name, origin, x, y, zoom_x, zoom_y, opacity, blend_type)

精灵i是队伍有5个角色5张头像要间隔87.  
RUBY 代码复制
  1. # 刷新坐标
  2.         @tags_sprites.each do |sprite|#@标记精灵。每个do|sprite|
  3.           #sprite.zoom_y = 1
  4.           sprite.ox = sprite.bitmap.width / 2
  5.           sprite.oy = sprite.bitmap.height
  6.           sprite.z = z
  7.           # 精灵.x =   @角色。屏幕_x
  8.        #   sprite.x = shif [email protected]_x : 120+screen_x+160
  9.           sprite.x = 100 #@character.screen_x
  10.           #blink_on
  11.           # 函数键=@角色。是使用权限
  12.           shif = @character.is_cal
  13.  
  14.           if @character.ammo>0#如果@角色。弹药>0\
  15.  
  16.           #精灵y=函数键?@角色屏幕y-92:@角色。屏幕y-60  
  17.           sprite.y = shif ? 500:500 #shif ? @character.screen_y-92 : @character.screen_y-60
  18.           else#否者
  19.  
  20.           #精灵y=函数键?@角色屏幕y-82:@角色。屏幕y-50
  21.           sprite.y = shif ? 500:500#shif ? @character.screen_y-82 : @character.screen_y-50
  22.           end
  23.           sprite.opacity = 125#精灵不透明度=125
  24.         end#loop

作者: soulsaga    时间: 2023-6-23 22:36
本帖最后由 soulsaga 于 2023-6-23 22:44 编辑
金芒芒 发表于 2023-6-23 16:51
已经固定了 固定在了地图上  能不能固定在$游戏屏幕x坐标上啊 $game_screen.pictures[number].show(name ...


游戏屏幕x坐标上?
你说的是事件显示图片的坐标吗?

RUBY 代码复制
  1. self.x = $game_screen.pictures[1].x

作者: 金芒芒    时间: 2023-6-24 08:01
本帖最后由 金芒芒 于 2023-6-24 08:14 编辑
soulsaga 发表于 2023-6-23 22:36
游戏屏幕x坐标上?
你说的是事件显示图片的坐标吗?


sprite.x = $game_screen.x+120+i*87 地图上我方角色可以达到(1-10)位
第一张图是现有的 图片固定的话就图片重叠,我要的效果是第2张的模样固定在游戏屏幕上

1354.png (180.27 KB, 下载次数: 38)

1354.png

完成.png (220.89 KB, 下载次数: 36)

完成.png

作者: 灯笼菜刀王    时间: 2023-6-24 10:20
本帖最后由 灯笼菜刀王 于 2023-6-24 10:32 编辑
金芒芒 发表于 2023-6-24 08:01
sprite.x = $game_screen.x+120+i*87 地图上我方角色可以达到(1-10)位
第一张图是现有的 图片固定的话 ...


如果你提问题的时候这样描述,  这个论坛逛问答区的人至少80%都可以5分钟内给你写出来, 偏偏你要人猜, 花了好几天挂了好几个0回复帖子, 浪费人家2页你解决问题了么?

直接说自己想要啥效果很困难么?   还是你就喜欢有闲人陪着你版聊好几页慢慢猜你想要啥?
作者: 金芒芒    时间: 2023-6-24 11:38
本帖最后由 金芒芒 于 2023-6-24 11:40 编辑
灯笼菜刀王 发表于 2023-6-24 10:20
如果你提问题的时候这样描述,  这个论坛逛问答区的人至少80%都可以5分钟内给你写出来, 偏偏你要人猜, 花 ...


搜索了好久多没有类似地图显示队伍同伴的精灵头像,我又不会表达。只能一点点的问,已经要有最终答案了,真的很抱歉,现在爱好编辑游戏的人越来越少每次回答多是难能可贵的。最后才找到还有个游戏屏幕坐标,就是脚本不知道写,只知道$game_screen.pictures[number].show(name, origin, x, y, zoom_x, zoom_y, opacity, blend_type) 却不能写进脚本




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