查看: 2890|回复: 20

[有事请教] 精灵.x=游戏屏幕.x 脚本这么写啊

[复制链接]
梦石
0
星屑
7296
在线时间
1244 小时
注册时间
2015-8-15
回帖
473
发表于 2023-6-14 16:49:00 | 显示全部楼层 |阅读模式

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

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

×
精灵x=游戏screen.x   游戏screenx=120+精灵i*87  精灵y=游戏screen.y   游戏screen.y=560  
梦石
0
星屑
95
在线时间
94 小时
注册时间
2021-4-23
回帖
37
发表于 2023-6-20 14:44:18 | 显示全部楼层
screen
sprite
game
回复

使用道具 举报

梦石
0
星屑
7296
在线时间
1244 小时
注册时间
2015-8-15
回帖
473
 楼主| 发表于 2023-6-21 08:04:59 | 显示全部楼层

脚本不成立Sprite_Character.Sprite_Battler.Sprite_Picture.Sprite_Timer.Spriteset_Map。没有对应屏幕显示坐标
回复

使用道具 举报

梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2023-6-21 15:07:13 | 显示全部楼层
你想在哪里搞这个
回复

使用道具 举报

梦石
0
星屑
7296
在线时间
1244 小时
注册时间
2015-8-15
回帖
473
 楼主| 发表于 2023-6-21 16:13:23 | 显示全部楼层
本帖最后由 金芒芒 于 2023-6-21 16:43 编辑

[pre lang="ruby"][/pre]
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 !@character.removed
       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 !@character.removed # 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 !@character.is_a?(EFS_Battler) and !@character.is_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
完成.png
回复

使用道具 举报

梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2023-6-21 16:47:53 | 显示全部楼层
金芒芒 发表于 2023-6-21 16:13
[/pre]

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

显示器的坐标上?
什么意思?
鼠标的坐标吗
回复

使用道具 举报

梦石
0
星屑
7296
在线时间
1244 小时
注册时间
2015-8-15
回帖
473
 楼主| 发表于 2023-6-21 17:00:09 | 显示全部楼层
本帖最后由 金芒芒 于 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
回复

使用道具 举报

梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2023-6-21 17:06:30 | 显示全部楼层
金芒芒 发表于 2023-6-21 17:00
类似事件显示一张图片一样固定在显示窗口上
$game_screen.pictures[number].show(name, origin, x, y, zoo ...

那就不要用角色精灵啦

点评

终于问到点上了  发表于 2023-6-21 17:16
回复

使用道具 举报

梦石
0
星屑
7296
在线时间
1244 小时
注册时间
2015-8-15
回帖
473
 楼主| 发表于 2023-6-21 17:13:17 | 显示全部楼层
soulsaga 发表于 2023-6-21 17:06
那就不要用角色精灵啦


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

使用道具 举报

梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2023-6-21 17:14:06 | 显示全部楼层
金芒芒 发表于 2023-6-21 17:13
那你推荐一个精灵

@character.screen_x=XX
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部