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

Project1

 找回密码
 注册会员
搜索

新手菜单第四章的“半身像”错在最后一步,求助。

查看数: 3154 | 评论数: 19 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2015-9-23 21:14

正文摘要:

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

回复

cinderelmini 发表于 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
眼中目之瞳 发表于 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
cinderelmini 发表于 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)
…………
眼中目之瞳 发表于 2015-9-24 12:23:45
tan12345 发表于 2015-9-24 11:32
这一行错误的代码往上看,是不是前一段代码少了逗号、右括号、点之类的符号,或者是你用了中文状态下的符号 ...

按照教程的步骤,横向菜单的脚本做的和教程效果一样,半身像脚本都是复制添加,也就是13楼的截图。在进行最后一步前还是能运行游戏的,但是一旦把“def draw_item(index)”替换掉就会出错。
tan12345 发表于 2015-9-24 11:32:43
这一行错误的代码往上看,是不是前一段代码少了逗号、右括号、点之类的符号,或者是你用了中文状态下的符号?
看提示问题好像出在def draw_actor_HalfBody这个函数里
taroxd 发表于 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:26

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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