查看: 2030|回复: 4

[已经解决] 关于图片做背景周边有“缝隙”的问题

[复制链接]
梦石
0
星屑
723
在线时间
530 小时
注册时间
2010-6-9
回帖
668
发表于 2015-8-20 22:12:18 | 显示全部楼层 |阅读模式

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

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

×
周边的“缝隙”怎么消除,影响(覆盖)到整体布局 QQ截图20150820221255.png
[pre lang="ruby"]#encoding:utf-8
#==============================================================================
# ■ Window_Status
#------------------------------------------------------------------------------
#  状态画面中,显示角色基本信息的窗口。
#==============================================================================
class Window_Status < Window_Selectable
        #--------------------------------------------------------------------------
        # ● 初始化对象
        #--------------------------------------------------------------------------
        def initialize(actor)
                super(0, 0, 544, 412)
                @actor = actor
                refresh
                activate
    self.opacity=0
                @data = []
        end
        #--------------------------------------------------------------------------
        # ● 设置角色
        #--------------------------------------------------------------------------
        def actor=(actor)
                return if @actor == actor
                @actor = actor
                refresh
        end
        #--------------------------------------------------------------------------
        # ● 刷新
        #--------------------------------------------------------------------------
        def refresh
                contents.clear
                draw_block1   (0)
                draw_skill
        end
        #--------------------------------------------------------------------------
        # ● 绘制区域 1
        #--------------------------------------------------------------------------
        def draw_block1(y)
#~     draw_window_backg
                draw_backg
                draw_actor_name(@actor, 4, y)
                draw_actor_class(@actor, 128, y)
                draw_basic_info(136, y)
                draw_parameters(32, y)
                draw_xparameters
                draw_sparameters
                draw_equipments(288, y)
                draw_description(4, y)
        end
        #--------------------------------------------------------------------------
        # ● 绘制水平线
        #--------------------------------------------------------------------------
        def draw_horz_line(y)
                line_y = y + line_height / 2 - 1
                contents.fill_rect(0, line_y, contents_width, 2, line_color)
        end
        #--------------------------------------------------------------------------
        # ● 获取水平线的颜色
        #--------------------------------------------------------------------------
        def line_color
                color = normal_color
                color.alpha = 48
                color
        end
        #--------------------------------------------------------------------------
        # ● 绘制基本信息
        #--------------------------------------------------------------------------
        def draw_basic_info(x, y)
                w=28
                rct_w=32
                rct_h=24
                y_z=160
                x_z=0
                #~  draw_actor_icons(@actor, x, y + line_height * 1)绘制状态图标
                contents.font.size=16
#~                 draw_actor_hp(@actor, 160, 200,width= 100)
#~                 draw_actor_mp(@actor, 160, 224,width= 100)
                draw_icon(6, x_z  , y_z    , enabled = true)
                draw_icon(3, x_z+w  , y_z  , enabled = true)
                draw_icon(4, x_z+w*2  , y_z, enabled = true)
                draw_icon(8, x_z+w*3  , y_z, enabled = true)
                draw_icon(5, x_z+w*4  , y_z, enabled = true)
                draw_icon(10, x_z+w*5  , y_z, enabled = true)

    draw_text(x_z+4 ,y_z+w-8    ,rct_w,rct_h,@actor.m5_20150228_skill_point["红莲"])
                draw_text(x_z+w+4 ,y_z+w-8  ,rct_w,rct_h,@actor.m5_20150228_skill_point["冻牙"])
                draw_text(x_z+w*2+4 ,y_z+w-8,rct_w,rct_h,@actor.m5_20150228_skill_point["闪光"])
                draw_text(x_z+w*3+4 ,y_z+w-8,rct_w,rct_h,@actor.m5_20150228_skill_point["烈空"])
                draw_text(x_z+w*4+4 ,y_z+w-8,rct_w,rct_h,@actor.m5_20150228_skill_point["金刚"])
                draw_text(x_z+w*5+4 ,y_z+w-8,rct_w,rct_h,@actor.m5_20150228_skill_point["修罗"])

                draw_text(x_z+4 ,y_z+w+4    ,rct_w,rct_h,@actor.m5_20150228_skill_point_use["红莲"])
                draw_text(x_z+w+4 ,y_z+w+4  ,rct_w,rct_h,@actor.m5_20150228_skill_point_use["冻牙"])
                draw_text(x_z+w*2+4 ,y_z+w+4,rct_w,rct_h,@actor.m5_20150228_skill_point_use["闪光"])
                draw_text(x_z+w*3+4 ,y_z+w+4,rct_w,rct_h,@actor.m5_20150228_skill_point_use["烈空"])
                draw_text(x_z+w*4+4 ,y_z+w+4,rct_w,rct_h,@actor.m5_20150228_skill_point_use["金刚"])
                draw_text(x_z+w*5+4 ,y_z+w+4,rct_w,rct_h,@actor.m5_20150228_skill_point_use["修罗"])
        end
        #--------------------------------------------------------------------------
        # ● 绘制技能
        #--------------------------------------------------------------------------
        def draw_skill
                dx = 170; dy = 40
                contents.font.size=16
                for skill in @actor.skills
                        next if skill.nil?
                        next unless @actor.added_skill_types.include?(skill.stype_id)
                        draw_item_name(skill, dx, dy)
                        #~  dx = dx == contents.width / 2 + 16 ? 0 : contents.width / 2 + 16
                        dy += line_height #if dx == 0
                        return if dy + line_height > contents.height
                end
        end
        #--------------------------------------------------------------------------
        # ● 绘制普通能力值  
  #def mhp;  param(0);   end    # 最大HP          Maximum Hit Point
  #def mmp;  param(1);   end    # 最大MP          Maximum Magic Point
  #def atk;  param(2);   end    # 物理攻击        ATtacK power
  #def def;  param(3);   end    # 物理防御        DEFense power
  #def mat;  param(4);   end    # 魔法攻击        Magic ATtack power
  #def mdf;  param(5);   end    # 魔法防御        Magic DeFense power
  #def agi;  param(6);   end    # 敏 捷 值        AGIlity
  #def luk;  param(7);   end    # 幸 运 值        LUcK
        #--------------------------------------------------------------------------
        def draw_parameters(x, y)
                contents.font.size=18
    w=24
                rct_w=32
                rct_h=24
                y_z=210
                x_z=0
#~     draw_icon(15, x_z , y_z, enabled = true)
#~                 draw_icon(16, x_z , y_z+w, enabled = true)
#~                 draw_icon(17, x_z , y_z+w*2, enabled = true)
#~                 draw_icon(18, x_z , y_z+w*3, enabled = true)
#~                 draw_icon(19, x_z+70 , y_z, enabled = true)
#~                 draw_icon(10, x_z+70 , y_z+w, enabled = true)
#~                 draw_icon(21, x_z+70 , y_z+w*2, enabled = true)
#~     draw_icon(21, x_z+70 , y_z+w*3, enabled = true)
    draw_actor_param(@actor, x_z, y_z  , 0)
    draw_actor_param(@actor, x_z, y_z + w * 1, 1)
    draw_actor_param(@actor, x_z, y_z + w * 2, 2)
    draw_actor_param(@actor, x_z, y_z + w * 3, 3)
    draw_actor_param(@actor, 74, y_z , 4)
    draw_actor_param(@actor, 74, y_z + w * 1, 5)
    draw_actor_param(@actor, 74, y_z + w * 2, 6)
    draw_actor_param(@actor, 74, y_z + w * 3, 7)
        end
  #--------------------------------------------------------------------------
        # ● 绘制X能力值
        #--------------------------------------------------------------------------
        def draw_xparameters
                x=140
                l=18
                y=Graphics.height-l*10
                contents.font.size=16
                draw_actor_xparam(@actor, x, y+l*1,0 , "物理命中")
                draw_actor_xparam(@actor, x, y+l*2,1 , "物理闪避")
                draw_actor_xparam(@actor, x, y+l*3,2 , "会心一击")
                draw_actor_xparam(@actor, x, y+l*4,3 , "抗会心一击")
                #~  draw_actor_xparam(@actor, x, y+l*5,4 , "技能闪避")
                #~  draw_actor_xparam(@actor, x, y+l*6,5 , "技能反射")
                draw_actor_xparam(@actor, x, y+l*5,6 , "反击")
                draw_actor_xparam(@actor, x, y+l*6,7 , "生命再生")
                draw_actor_xparam(@actor, x, y+l*7,8 , "士气再生")
                #~  draw_actor_xparam(@actor, x, y+l*10,9 , "怒气增长")
        end
  #--------------------------------------------------------------------------
        # ● 绘制S能力值
        #--------------------------------------------------------------------------
        def draw_sparameters
                x=0
                l=18
                y=Graphics.height-l*7
                contents.font.size=16
                draw_actor_sparam(@actor, x, y+l*1, 1,"防御修正")
                draw_actor_sparam(@actor, x, y+l*2, 2,"恢复修正")
                draw_actor_sparam(@actor, x, y+l*3, 3,"治疗修正")
                #~  draw_actor_sparam(@actor, x, y+l*4, 4,"MP消费率")
                #~  draw_actor_sparam(@actor, x, y+l*5, 5,"TP消耗率")
                draw_actor_sparam(@actor, x, y+l*4, 6,"物抗修正")
                #~  draw_actor_sparam(@actor, x, y+l*7, 7,"魔法伤害加成")
                #~  draw_actor_sparam(@actor, x, y+l*8, 8,"地形伤害加成")
                #~  draw_actor_sparam(@actor, x, y+l*9, 9,"经验获得加成")
        end
  #--------------------------------------------------------------------------
        # ● 绘制人物背景
        #--------------------------------------------------------------------------
        def draw_backg
                actor=@actor
                actor_bg(actor.id)
        end
        def actor_bg(file_name)
                bitmap = Cache.picture("/Actor#{file_name}_Status")
                src_rect = Rect.new(0,0,544 ,412)
                contents.blt(0, 0, bitmap, src_rect,255)
        end
  #--------------------------------------------------------------------------
        # ● 绘制窗口背景
        #--------------------------------------------------------------------------
#~         def draw_window_backg
#~                 windowbg = Cache.picture("/windowbg")
#~                 src_rect = Rect.new(0,0,windowbg.width ,windowbg.height)
#~                 contents.blt(0, 0, windowbg, src_rect,125)
#~         end
end[/pre]

梦石
1
星屑
23246
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2015-8-20 22:29:45 | 显示全部楼层
在Scene中创建指定的精灵(sprite)用于显示背景

或者
  1. class Window_Status
  2.   def standard_padding
  3.     return 0
  4.   end
  5. end
复制代码

评分

参与人数 1梦石 +1 收起 理由
taroxd + 1 认可答案

查看全部评分

回复

使用道具 举报

梦石
0
星屑
723
在线时间
530 小时
注册时间
2010-6-9
回帖
668
 楼主| 发表于 2015-8-20 23:11:26 | 显示全部楼层
喵呜喵5 发表于 2015-8-20 22:29
在Scene中创建指定的精灵(sprite)用于显示背景

或者

QQ截图20150820231112.png 感谢,但好像还差点~~,望指教。

点评

感谢,我一直以为是412MAX  发表于 2015-8-21 08:59
脚本第12行:super(0, 0, 544, 416)  发表于 2015-8-20 23:19
回复

使用道具 举报

梦石
0
星屑
9716
在线时间
2775 小时
注册时间
2008-9-5
回帖
3458

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

发表于 2015-8-20 23:19:14 | 显示全部楼层
本帖最后由 cinderelmini 于 2015-8-20 23:20 编辑

【super(0, 0, 544, 412)】
【src_rect = Rect.new(0,0,544 ,412)】
VA窗口默认高度是416。

点评

不是412啊,我错了。  发表于 2015-8-21 08:59

评分

参与人数 1星屑 +200 收起 理由
taroxd + 200 认可答案

查看全部评分

回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
88
在线时间
631 小时
注册时间
2014-8-4
回帖
3243
发表于 2015-8-21 11:39:49 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部