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

Project1

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

[已经解决] 菜單頭像大小的修改(9樓新問題0920)

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
57 小时
注册时间
2014-9-16
帖子
29
跳转到指定楼层
1
发表于 2014-9-19 10:53:14 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 月歌子 于 2014-9-20 21:56 编辑

不好意思麻煩大家解惑!!

這邊使用的是Code Crush網站提供的素材
想要詢問的地方是:
1.菜單主架構使用的是和風介面,而角色頭像希望更改成像這個一樣大張一點,請問我該如何改和風介面顯示的角色頭像大小呢?(顯示順序希望依然是和風介面的從右到左)
2.希望在點選角色時跳轉的介面是對應的角色介紹圖(介紹圖是另外製作的),可能嗎?

由於不清楚該網站的圖能不能外連,因此用連結的方式,還請大家見諒!
實力不足研究了好久也看過了圖書館,但還是不曉得該怎麼做,兩邊的代碼也移動和更改但可能放錯位置所以沒有作用,請大家指導了,非常感謝!

评分

参与人数 1星屑 +100 收起 理由
VIPArcher + 100 认真努力的奖励,好好加油。

查看全部评分

Lv1.梦旅人

梦石
0
星屑
50
在线时间
57 小时
注册时间
2014-9-16
帖子
29
2
 楼主| 发表于 2014-9-19 10:53:36 | 只看该作者

(不小心重覆發帖,版主看到請幫忙謝謝)

本帖最后由 月歌子 于 2014-9-19 11:01 编辑

不小心重覆發帖了,不知道該怎麼刪除貼子,對不起QQ
回复 支持 反对

使用道具 举报

Lv2.观梦者

会吐槽的画师

梦石
0
星屑
782
在线时间
3431 小时
注册时间
2011-6-10
帖子
6535
3
发表于 2014-9-19 10:56:01 | 只看该作者
连贴の作死法则
长名公主玩家群:372588926 攻略娱乐应有尽有
了解更多新RM游戏,游戏制作请加入RPGmaker支援群:113622890
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
57 小时
注册时间
2014-9-16
帖子
29
4
 楼主| 发表于 2014-9-19 11:02:58 | 只看该作者
本帖最后由 月歌子 于 2014-9-19 11:04 编辑

@taroxd @熊喵酱 @VIPArcher
呼叫版主協助處理刪帖,對不起新手不懂使用(發帖時說用戶名稱不正確所以以為沒有發帖成功又多按了一次,給大家添麻煩了...
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

无限の剣制

梦石
0
星屑
10074
在线时间
5020 小时
注册时间
2013-2-28
帖子
5030

开拓者贵宾

5
发表于 2014-9-19 11:08:02 | 只看该作者
本帖最后由 VIPArcher 于 2014-9-19 12:00 编辑

嗯,不是很理解你的意思。
你把这段插到Window_Base里
  1. class Window_Base < Window
  2. #--------------------------------------------------------------------------
  3.   # ● アクターの立ち絵描画
  4.   #--------------------------------------------------------------------------
  5.   def draw_actor_menu_picture(actor, x, y, width, height, enabled = true)
  6.     bitmap = Cache.picture(actor.m_picture)
  7.     xx = (bitmap.width  > width)  ? ((bitmap.width - width) / 2) : 0
  8.     ww = (bitmap.width  > width)  ? width : bitmap.width
  9.     yy = (bitmap.height > height) ? ((bitmap.height - height) / 2) : 0
  10.     hh = (bitmap.height > height) ? height : bitmap.height
  11.     rect = Rect.new(xx, yy, ww, hh)
  12.     xx = (bitmap.width  < width)  ? ((width - bitmap.width) / 2) : x
  13.     yy = (bitmap.height < height) ? ((height - bitmap.height) / 2) : y
  14.     contents.blt(xx, yy, bitmap, rect, enabled ? 255 : translucent_alpha)
  15.     bitmap.dispose
  16.   end
  17. end
复制代码
然后在你的菜单界面(和风)绘制角色脸图的draw_actor_face( actor, x+(width-96)/2, y + line_height * 1, width)改成用
draw_actor_menu_picture
未测试,甚至连参数到底是啥,我都没看过

评分

参与人数 1梦石 +1 收起 理由
taroxd + 1 我很赞同

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
57 小时
注册时间
2014-9-16
帖子
29
6
 楼主| 发表于 2014-9-19 11:33:21 | 只看该作者
VIPArcher 发表于 2014-9-19 11:08
嗯,不是很理解你的意思。
你把这段插到Window_Base里然后在你的菜单界面(和风)绘制角色脸图的draw_actor ...

謝謝版主的處理和回覆

說明不清楚的地方我用圖解


希望達成的效果如上圖所示
目前糾結的部分就是和風介面腳本素材是我想要的縱向排版,而該站主的另一個腳本素材是我想要的頭像大小,但是不曉得該如何將這樣的頭像大小顯示套用到和風介面使用

提供的方法我回家後測試看看!!謝謝
回复 支持 反对

使用道具 举报

Lv3.寻梦者

闇吼者の災悪眷族
不気味存在締造者

梦石
0
星屑
1366
在线时间
2881 小时
注册时间
2014-7-29
帖子
6491
7
发表于 2014-9-19 11:55:27 | 只看该作者
本帖最后由 三途亚梦 于 2014-9-19 13:43 编辑

Code Crush的这个啊

首先menu再定义的那个脚本中显示的不是人物头像,而是新增的人物立绘
会从你设置的图中截取一个预设好的高宽度,作为menu中的立绘图像。

首先你找到和风界面的大概第 370 行
RUBY 代码复制
  1. draw_actor_face( actor, x+(width-96)/2, y + line_height * 1, width)

这句的意思是描绘人物的脸图

把它改成
RUBY 代码复制
  1. draw_actor_menu_picture( actor, x, y, width ,height,)

这句的意思是描绘人物的立绘

如果不覆盖掉的话就会同时显示脸图和立绘了

然后把 メニュー再定義 中的
下面这段复制到和风界面的大概第 377 和 378行,那2个 end 之间
它的意思是新定义一个描绘指定立绘的图的方法
RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● アクターの立ち絵描画
  3.   #--------------------------------------------------------------------------
  4.    def draw_actor_menu_picture(actor, x, y, width, height, enabled = true)
  5.     bitmap = Cache.picture(actor.m_picture)
  6.     xx = (bitmap.width  > width)  ? ((bitmap.width - width) / 2) : 0
  7.     ww = (bitmap.width  > width)  ? width : bitmap.width
  8.     yy = (bitmap.height > height) ? ((bitmap.height - height) / 2) : 0
  9.     hh = (bitmap.height > height) ? height : bitmap.height
  10.     rect = Rect.new(xx, yy, ww, hh)
  11.     xx = (bitmap.width  < width)  ? ((width - bitmap.width) / 2) : x
  12.     yy = (bitmap.height < height) ? ((height - bitmap.height) / 2) : y
  13.     contents.blt(xx, yy, bitmap, rect, enabled ? 255 : translucent_alpha)
  14.     bitmap.dispose
  15.   end


再把下面这段复制到 刚才那2个 end 之后
它的意思是新定义实例变量能够读取人物对应的立绘图
RUBY 代码复制
  1. class Game_Actor < Game_Battler
  2.   #--------------------------------------------------------------------------
  3.   # ● 公開インスタンス変数
  4.   #--------------------------------------------------------------------------
  5.   attr_accessor :m_picture             # menu立ち絵
  6.   #--------------------------------------------------------------------------
  7.   # ● セットアップ
  8.   #--------------------------------------------------------------------------
  9.   alias setup_menu_picture setup
  10.   def setup(actor_id)
  11.     setup_menu_picture(actor_id)
  12.     @m_picture = "Actor#{actor_id}"
  13.   end
  14. end


至于立绘该如何命名如何改变,你需要参考  メニュー再定義 中的注释部分

然后基本上就可以了,如果你觉得立绘描绘的高度和宽度不太符合需要你需要再自己改一改アクターの立ち絵描画中的各项参数。

你可能会发现人物立绘覆盖了人物名字,把
RUBY 代码复制
  1. draw_actor_name( actor, x, y + 4, width)
  2. draw_actor_menu_picture( actor, x, y, width ,height,)

这两句的位置调换一下,让系统先描绘立绘,再描绘人物名字就行啦。

如果你想进一步像 メニュー再定義 一样文字下面还描绘一个暗色的背景
把下面这些写到 # ● MP の描画 的end 下面
RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 背景色の取得
  3.   #--------------------------------------------------------------------------
  4.   def back_color
  5.     Color.new(0, 0, 0)
  6.   end
  7.   #--------------------------------------------------------------------------
  8.   # ● ステータス背景描画
  9.   #--------------------------------------------------------------------------
  10.   def draw_status_back(rect)
  11.     b = Bitmap.new(rect.width, rect.height)
  12.     r = Rect.new(0, 0, rect.width, rect.height)
  13.     b.fill_rect(r, back_color)
  14.     contents.blt(rect.x, rect.y, b, r, 128)
  15.     b.dispose
  16.   end


再把这些替换掉   ● シンプルなステータスの描画 <縦パターン> 的
@jmode = false @jmode = true之间的内容
RUBY 代码复制
  1. draw_actor_menu_picture(actor, x, y + line_height / 2, width, height - (y + line_height / 2))
  2.     draw_status_back(Rect.new(x, y + 4, width, line_height))
  3.     draw_actor_name( actor, x, y + 4, width)
  4.     draw_actor_icons_r(actor, x + 52, y + 4 + line_height * 1, 72)
  5.     y = height - line_height * 4 - 4
  6.     draw_status_back(Rect.new(x, y, width, line_height * 4 + 4))
  7.     draw_actor_level(actor, x, y + 96 + line_height * 2)
  8.     draw_actor_hp(   actor, x+4, y + line_height * 1, width - 8)
  9.     draw_actor_mp(   actor, x+4, y + line_height * 2, width - 8)

点评

好詳盡的解說!!!非常感謝,回家立刻來試試看QQ  发表于 2014-9-19 12:38

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
57 小时
注册时间
2014-9-16
帖子
29
8
 楼主| 发表于 2014-9-19 23:44:06 | 只看该作者
三途亚梦 发表于 2014-9-19 11:55
Code Crush的这个啊

首先menu再定义的那个脚本中显示的不是人物头像,而是新增的人物立绘

成功了!!!真是太感謝你了,一邊修改一邊註記,覺得自己學到了不少
等級還無法給分數,只能表達謝意了,真的很感謝QQ!!!

点评

嗯,好好努力。期待你的游戏,做完记得来6R发布哦。  发表于 2014-9-19 23:56
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
57 小时
注册时间
2014-9-16
帖子
29
9
 楼主| 发表于 2014-9-20 20:38:24 | 只看该作者
本帖最后由 月歌子 于 2014-9-20 21:57 编辑

不好意思又來向大家求問了!!
如果希望讓和風介面的存檔部分也一樣顯示立繪,又該如何做呢?
原以為只是將類似的方法同樣貼到存檔設定的畫面,再依照自己的需求調整大小高低,但看來是我太天真了
想要描繪人物立繪卻總是出現以下訊息,不曉得是不是牽涉到存檔所以有儲存的部分沒有設定才會出錯""


出錯的腳本放在11樓
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

10
发表于 2014-9-20 20:46:40 | 只看该作者
月歌子 发表于 2014-9-20 20:38
不好意思又來向大家求問了!!
如果希望讓和風介面的存檔部分也一樣顯示立繪,又該如何做呢?
原以為只是將類 ...

插在下面试试看。不保证成功

RUBY 代码复制
  1. class SaveActor
  2.   attr_reader :m_picture
  3.   alias m_picture_init initialize
  4.   def initialize(actor)
  5.     m_picture_init(actor)
  6.     @m_picture = actor.m_picture
  7.   end
  8. end
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-10-8 22:45

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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