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

Project1

 找回密码
 注册会员
搜索

怎么扩展皮肤文件

查看数: 2014 | 评论数: 4 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2014-7-13 20:02

正文摘要:

本帖最后由 鑫晴 于 2014-7-13 20:05 编辑 128x128局限性太大了有木有? http://rpg.blue/thread-374318-1-1.html

回复

kuerlulu 发表于 2014-7-14 10:53:32
嘿LZ
脚本窝也不会写, 但是已经写了个【仅适用本皮肤】的bitmap生成代码, 处理一下就可以应用到窗口上了【不过累得不想写了
其中用到的所有数值都【仅适用本皮肤】
注意: 给出的长宽太小会Error
先上图:
320x240

256x128

先把LZ的图片命名msgbg.png放到Graphics/System里面.
代码在此
RUBY 代码复制
  1. #encoding:utf-8
  2. class Bitmap
  3.   # 应用模版
  4.   # rects 顺序必须如下
  5.   def apply_mask(bitmap, *rects)
  6.     r4 = Rect.new(rects[4].x, rects[4].y, self.width-rects[0].width-rects[1].width, rects[4].height)                  # 顶部横条rect
  7.     r5 = Rect.new(self.width-rects[5].width, rects[1].height, rects[5].width, self.height-rects[1].height-rects[3].height) # 右部纵条rect
  8.     r6 = Rect.new(rects[6].x, self.height-rects[6].height, self.width-rects[2].width-rects[3].width, rects[6].height) # 底部横条rect
  9.     r7 = Rect.new(rects[7].x, rects[7].y, rects[7].width, self.height-rects[0].height-rects[2].height)                # 左部纵条rect
  10.     r8 = Rect.new(rects[7].width, rects[4].height, self.width-rects[5].width-rects[7].width, self.height-rects[4].height-rects[6].height) # 中间背景rect
  11.     # blt(x, y, src_bitmap, src_rect[, opacity])
  12.     self.blt(0, 0, bitmap, rects[0])
  13.     self.blt(self.width - rects[1].width, 0, bitmap, rects[1])
  14.     self.blt(0, self.height - rects[2].height, bitmap, rects[2])
  15.     self.blt(self.width - rects[3].width, self.height - rects[3].height, bitmap, rects[3])
  16.     # tile(r4, bitmap, rects[4]) 因为r4颜色是渐变的所以换方法
  17.     # stretch_blt(dest_rect, src_bitmap, src_rect[, opacity])
  18.     self.stretch_blt(r4, bitmap, rects[4])
  19.     tile(r5, bitmap, rects[5])
  20.     tile(r6, bitmap, rects[6])
  21.     tile(r7, bitmap, rects[7])
  22.     tile(r8, bitmap, rects[8], 1)
  23.   end
  24.   # 在 rect 内用 src_bitmap 平铺
  25.   # align : 0 默认平铺方式, 1 纵向平铺横向拉伸, 2 横向平铺纵向拉伸
  26.   def tile(rect, src_bitmap, src_rect, align = 0)
  27.     bitmap = Bitmap.new(src_rect.width, src_rect.height)
  28.     bitmap.blt(0, 0, src_bitmap, src_rect)
  29.     b = Bitmap.new(rect.width, rect.height)
  30.     ws = (rect.width / bitmap.width) +1
  31.     hs = (rect.height / bitmap.height) +1
  32.     case align
  33.     when 0
  34.       ws.times do |x|
  35.         hs.times do |y|
  36.           b.blt(x*src_rect.width, y*src_rect.height, bitmap, bitmap.rect)
  37.         end
  38.       end
  39.     when 1
  40.       hs.times do |y|
  41.         b.blt(0, y*src_rect.height, bitmap, bitmap.rect)
  42.       end
  43.       b.stretch_blt(b.rect, b, Rect.new(0, 0, src_rect.width, b.height))
  44.     when 2
  45.       ws.times do |x|
  46.         b.blt(x*src_rect.width, 0, bitmap, bitmap.rect)
  47.       end
  48.       b.stretch_blt(b.rect, b, Rect.new(0, 0, b.width, src_rect.height))
  49.     end
  50.     self.blt(rect.x, rect.y, b, b.rect)
  51.   end
  52. end
  53. b0 = Cache.system("msgbg.png")
  54. b1 = Bitmap.new(256, 128)
  55. r0 = Rect.new(0, 0, 147, 57)    # 左上角
  56. r1 = Rect.new(268, 0, 58, 56)   # 右上角
  57. r2 = Rect.new(0, 83, 26, 29)    # 左下角
  58. r3 = Rect.new(215, 72, 111, 40) # 右下角
  59. r4 = Rect.new(147, 0, 120, 56)  # 顶部横条
  60. r5 = Rect.new(300, 56, 26, 12)  # 右部纵条
  61. r6 = Rect.new(26, 83, 190, 29)  # 底部横条
  62. r7 = Rect.new(0, 57, 26, 24)    # 左部纵条
  63. r8 = Rect.new(25, 56, 275, 24)  # 中间背景
  64. b1.apply_mask(b0, r0, r1, r2, r3, r4, r5, r6, r7, r8)
  65. # 修补, 右下角
  66. b1.blt(b1.width-26, b1.height-42, b1, Rect.new(b1.width-26, b1.height-54, 10, 12))
  67. s = Sprite.new
  68. s.bitmap = b1
  69.  
  70. rgss_stop

评分

参与人数 2星屑 +80 梦石 +1 收起 理由
taroxd + 1 认可答案
鑫晴 + 80

查看全部评分

鑫晴 发表于 2014-7-14 08:34:10
本帖最后由 鑫晴 于 2014-7-14 10:49 编辑
VIPArcher 发表于 2014-7-14 02:07
脚本不会写,你何不试试用PS图片拿来做菜单背景呢?把所有菜单透明掉,然后显示一张图片,每个窗口都PS一张 ...


昨天一直在折腾怎么弄成RM的格式,把边框、背景扣了出来,还弄了纹理。

最后...唉~

然后就做成橙光的皮肤了
VIPArcher 发表于 2014-7-14 02:07:51
脚本不会写,你何不试试用PS图片拿来做菜单背景呢?把所有菜单透明掉,然后显示一张图片,每个窗口都PS一张,
多个性,多高大上(雾
虽然麻烦了点,但是对于你提供的这种窗口貌似就只能这么办了

点评

橙光的教我们怎么破  发表于 2014-7-14 07:28

评分

参与人数 2星屑 +133 收起 理由
鑫晴 + 1 囧RZ..如果一个游戏的对话有1000条,要PS10.
taroxd + 132 认可答案

查看全部评分

SherryX 发表于 2014-7-13 20:15:11
如果有欧风的就好了囧VA用的到

点评

答不对问  发表于 2014-7-13 21:38

评分

参与人数 2星屑 0 收起 理由
鑫晴 + 15 回血
VIPArcher -15 被人举报纯水什么的。

查看全部评分

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

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

GMT+8, 2024-11-14 22:47

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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