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

Project1

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

[已经解决] 新手菜单第四章的“半身像”错在最后一步,求助。

[复制链接]

Lv2.观梦者

梦石
0
星屑
325
在线时间
252 小时
注册时间
2014-4-11
帖子
265
跳转到指定楼层
1
发表于 2015-9-23 21:14:12 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

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

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

x


之前的帖子犯了理解错误,现在的问题是,在半身像教程前面的步骤都有戏没有影响,但唯独到了最后一步会报错,不太理解“def draw_item(index)部分”指的仅仅是“def draw_item(index)”这一小段,还是指什么……

Lv2.观梦者

梦石
0
星屑
325
在线时间
252 小时
注册时间
2014-4-11
帖子
265
20
 楼主| 发表于 2015-9-24 19:11:35 | 只看该作者
本帖最后由 眼中目之瞳 于 2015-9-24 19:37 编辑
cinderelmini 发表于 2015-9-24 19:04
所以你想要什么效果~
以上的做法完全就是把draw_actorHalfBody描绘了一遍而已~
换种说法,只是把原本的draw ...


应该是成功了,“头像”很明显不是原来的样式了

点评

这应该是描绘半身像方法本身的rect定位问题了。  发表于 2015-9-24 19:44
楼上已更新……  发表于 2015-9-24 19:17
回复 支持 反对

使用道具 举报

Lv4.逐梦者

「Pemercyia」


Urhurrenna

梦石
0
星屑
9397
在线时间
2748 小时
注册时间
2008-9-5
帖子
3543

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

19
发表于 2015-9-24 19:04:50 | 只看该作者
本帖最后由 cinderelmini 于 2015-9-24 19:18 编辑

所以你想要什么效果~
以上的做法完全就是把draw_actorHalfBody描绘了一遍而已~
换种说法,只是把原本的draw_item换个名字而已~
而你本身一开始的做法排除错误之后就是这个效果~

如果我没猜错,你是想要描绘新加的半身像,然后用错了方法。
如果是这样,就不是这种做法,
首先把:
  1.   #--------------------------------------------------------------------------
  2.   # ● 绘制项目
  3.   #--------------------------------------------------------------------------
  4.   def draw_actor_HalfBody(index)
  5.     actor = $game_party.members[index]
  6.     enabled = $game_party.battle_members.include?(actor)
  7.     rect = item_rect(index)
  8.     draw_item_background(index)
  9.     draw_actor_face(actor, rect.x, rect.y, enabled)
  10.     draw_actor_name(actor,rect.x, rect.y+96)
  11.     draw_actor_class(actor,rect.x, rect.y+96+line_height*1)
  12.     draw_actor_icons(actor,rect.x,rect.y+96+line_height*2)
  13.     draw_actor_level(actor,rect.x, rect.y+96+line_height*2)
  14.     draw_actor_hp(actor,rect.x, rect.y+96+line_height*3)
  15.     draw_actor_mp(actor,rect.x,rect.y+96+line_height*5)
  16.     draw_actor_tp(actor,rect.x,rect.y+96+line_height*6)
  17.   end
复制代码
这个改回原来的名字【draw_item】,也就是【def draw_item(index)】
然后把刚搬过来改的draw_all_item删掉或者先注释掉,
然后你需要把你写的:
这两个描绘半身像的方法放到这个脚本里来或者放到Window_Base里,
然后在原本的draw_item方法(也就是上面脚本框里的内容)里面,
在 draw_item_background下面插入一行【draw_actor_HalfBody(actor, rect.x, rect.y, enabled)】,
然后把 draw_actor_face(actor, rect.x, rect.y, enabled)】删掉或者注释掉(如果不需要脸图的话)。
做完之后就是这样。。(替换原来的这个脚本)

点评

所以这个问题一开始的目的就不是改方法名而是添加一个描绘半身像方法进draw_item么……  发表于 2015-9-24 19:13
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
325
在线时间
252 小时
注册时间
2014-4-11
帖子
265
18
 楼主| 发表于 2015-9-24 17:02:07 | 只看该作者
但还是没效果啊……



@cinderelmini
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
325
在线时间
252 小时
注册时间
2014-4-11
帖子
265
17
 楼主| 发表于 2015-9-24 14:57:53 | 只看该作者
cinderelmini 发表于 2015-9-24 14:15
出错是因为方法名的括弧里应该填的是参数名字而不是参数具体的值……
比如:这样是成立的,然后:这样就 ...


改完后效果和“taroxd”所给的“修改方法体“一样不显示头像和血条,但可以点击查看,然后”原本使用draw_item(i)的那里‘指的是哪里?

点评

是的~  发表于 2015-9-24 16:36
把第406行到第411行的“绘制所有项目”复制到“Window_MenuStatus”里,然后将“item_max.times {|i| draw_item(i) }”改成“item_max.times {|i| draw_actor_HalfBody(i) }”?  发表于 2015-9-24 15:32
把draw_all_item方法复制过来改,不要在父类改。  发表于 2015-9-24 15:09
在父类Window_Selectable里面的def draw_all_item里面。。  发表于 2015-9-24 15:09
回复 支持 反对

使用道具 举报

Lv4.逐梦者

「Pemercyia」


Urhurrenna

梦石
0
星屑
9397
在线时间
2748 小时
注册时间
2008-9-5
帖子
3543

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

16
发表于 2015-9-24 14:15:20 | 只看该作者
本帖最后由 cinderelmini 于 2015-9-24 14:35 编辑
眼中目之瞳 发表于 2015-9-24 05:24
#encoding:utf-8
#==============================================================================
#  ...


出错是因为方法名的括弧里应该填的是参数名字而不是参数具体的值……
比如:

  1. def a(x, y)
  2. ...
  3. end
  4. #或者
  5. def a(a = 1, y = 2)
  6. ...
  7. end
复制代码
这样是成立的,然后:
  1. def a(1, 2)
  2. ...
  3. end
复制代码
这样就并不能成立,你写的呢个方法的括弧里面的rect.x和rect.y就相当于上面的1和2,
去看了教程之后发现是教程的问题,无论是改成“【def draw_actor_HalfBody(actor, x = rect.x, y = rect.y, enabled = false)】(←前提是脚本里有一个叫rect的方法而且返回的是Rect),
还是改成【def draw_actor_HalfBody(actor, rect_x, rect_y, enabled】都不会有问题。

然后根据这个方法的内容来看,方法里的参数完全可以不用,
考虑到似乎是用来替代draw_item的,
可以改成这样
  1.   #--------------------------------------------------------------------------
  2.   # ● 绘制项目
  3.   #--------------------------------------------------------------------------
  4.   def draw_actor_HalfBody(index)
  5.     actor = $game_party.members[index]
  6.     enabled = $game_party.battle_members.include?(actor)
  7.     rect = item_rect(index)
  8.     draw_item_background(index)
  9.     draw_actor_face(actor, rect.x, rect.y, enabled)
  10.     draw_actor_name(actor,rect.x, rect.y+96)
  11.     draw_actor_class(actor,rect.x, rect.y+96+line_height*1)
  12.     draw_actor_icons(actor,rect.x,rect.y+96+line_height*2)
  13.     draw_actor_level(actor,rect.x, rect.y+96+line_height*2)
  14.     draw_actor_hp(actor,rect.x, rect.y+96+line_height*3)
  15.     draw_actor_mp(actor,rect.x,rect.y+96+line_height*5)
  16.     draw_actor_tp(actor,rect.x,rect.y+96+line_height*6)
  17.   end
复制代码
然后在原本使用draw_item(i)的那里,
换成draw_actor_HalfBody(i)
…………
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
325
在线时间
252 小时
注册时间
2014-4-11
帖子
265
15
 楼主| 发表于 2015-9-24 12:23:45 | 只看该作者
tan12345 发表于 2015-9-24 11:32
这一行错误的代码往上看,是不是前一段代码少了逗号、右括号、点之类的符号,或者是你用了中文状态下的符号 ...

按照教程的步骤,横向菜单的脚本做的和教程效果一样,半身像脚本都是复制添加,也就是13楼的截图。在进行最后一步前还是能运行游戏的,但是一旦把“def draw_item(index)”替换掉就会出错。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3278
在线时间
1120 小时
注册时间
2009-4-15
帖子
815
14
发表于 2015-9-24 11:32:43 | 只看该作者
这一行错误的代码往上看,是不是前一段代码少了逗号、右括号、点之类的符号,或者是你用了中文状态下的符号?
看提示问题好像出在def draw_actor_HalfBody这个函数里
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
325
在线时间
252 小时
注册时间
2014-4-11
帖子
265
13
 楼主| 发表于 2015-9-24 06:46:02 | 只看该作者
本帖最后由 眼中目之瞳 于 2015-9-24 06:59 编辑
taroxd 发表于 2015-9-24 06:42
我不知道你看的是哪篇教程,所以我只能猜测那篇教程希望让你改方法体,并且用例子告诉你方法体是什么

另 ...


就是图书馆里的“教你修改菜单“Ⅳ

https://rpg.blue/thread-226400-1-1.html

连贴问题以后会注意……


这些是之前步骤里要求添加的脚本,不知是不是这里的错误……


@taroxd  

点评

但按着教程步骤都会出错……  发表于 2015-9-24 07:10
嗯看差了,应该没问题  发表于 2015-9-24 07:04
577行是教程直接复制过来的,没改过啊。  发表于 2015-9-24 07:02
只模仿是很难学会的。建议先看看 Ruby 的基础再来动手改吧  发表于 2015-9-24 07:02
第一张图 577 行别改掉呀……  发表于 2015-9-24 07:00
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

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

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

开拓者贵宾

12
发表于 2015-9-24 06:42:36 | 只看该作者
本帖最后由 taroxd 于 2015-9-24 06:48 编辑
眼中目之瞳 发表于 2015-9-24 05:20
#encoding:utf-8
#==============================================================================
#  ...


我不知道你看的是哪篇教程,所以我只能猜测那篇教程希望让你把 draw_item 的方法体改为 draw_HalfBody 啥啥啥的,并且用例子告诉你方法体是什么

另外我支持教程提供完整源代码,比如说 F1 的实践篇那样

补充内容请尽量用编辑,而不要连贴,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-24 02:36

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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