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

Project1

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

[已经解决] 初学脚本,错误了

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
23 小时
注册时间
2014-9-26
帖子
24
跳转到指定楼层
1
发表于 2014-9-26 17:40:19 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
  1. class Show_Photo < Sprite
  2.   $Photo_Allow
  3.   #--------------------------------------------------------------------------
  4.   # ● 初始化对像
  5.   #     viewport : 显示端口
  6.   #     picture  : 图片 (Game_Picture)
  7.   #--------------------------------------------------------------------------  
  8.   def initialize(viewport,photo)
  9.     super(viewport)
  10.     [url=home.php?mod=space&uid=75283]@PHOTO[/url] = photo
  11.     update
  12.   end
  13.   
  14.   #--------------------------------------------------------------------------
  15.   # ● 释放
  16.   #--------------------------------------------------------------------------
  17.   def dispose
  18.     if @photo.bitmap != nil
  19.       @photo.bitmap.dispose
  20.     end
  21.     super
  22.   end
  23.   
  24.   def show_photo(name)
  25.     $Photo_Allow = 1
  26.     @photo=Sprite.new
  27.     @photo.name = "Graphics/Pictures/"+name
  28.     @photo.bitmap=Bitmap.new(photo.name)
  29.     @photo.ox = @photo.bitmap.width /2
  30.     @photo.oy = @photo.bitmap.height /2
  31.     @photo.x=272
  32.     @photo.y=208
  33.     loop do
  34.       self.update
  35.       if Photo_Allow ==0 then
  36.         break
  37.       end
  38.     end
  39.     dispose
  40.   end
  41. end
复制代码

Lv1.梦旅人

梦石
0
星屑
50
在线时间
23 小时
注册时间
2014-9-26
帖子
24
19
 楼主| 发表于 2014-9-27 11:57:18 | 只看该作者
taroxd 发表于 2014-9-27 11:45
错误太多,懒得一一列举了。再去好好学习什么是类、什么是方法吧。

对不起,我还是一个人看教程研究好了……给你们添麻烦了

点评

所以说,你现在还没有到可以做这个作业的程度。这个作业要求的是自己原创而不是模仿  发表于 2014-9-27 12:49
但是脚本的学习不就是应该从模仿,找错,吸取经验,改进,继续模仿这样的进程来走的吗……我以前都是这样做的啊……  发表于 2014-9-27 12:15
并不是添麻烦。而是你现在真的,还没有学习到可以做这个作业的程度  发表于 2014-9-27 12:06
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

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

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

开拓者贵宾

18
发表于 2014-9-27 11:45:07 | 只看该作者
繁星千羽 发表于 2014-9-27 11:38
15、16行显示 发生了 SyntaxError

执行脚本


错误太多,懒得一一列举了。再去好好学习什么是类、什么是方法吧。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
23 小时
注册时间
2014-9-26
帖子
24
17
 楼主| 发表于 2014-9-27 11:38:16 | 只看该作者
本帖最后由 繁星千羽 于 2014-9-27 11:39 编辑
RyanBern 发表于 2014-9-27 10:23
大致看了一下,LZ想要的效果类似于事件中的“显示图片”,不过是用脚本的方法。在游戏执行的某个时刻,调用 ...


15、16行显示 发生了 SyntaxError

执行脚本
$photo = Show_Photo.new
$photo.show("reimi.png")
显示
执行脚本时发生ArgumentError。
wrong number of arguments(1 for 0)


#----------------------------------------------
顺带关于那个教程里面水瓶的作业……帮忙看一下
  1. #*********************************************
  2. #练习1
  3. #*********************************************
  4. class Bottle
  5.   def intialize(volume_max)
  6.     @volume_max=volume_max+0
  7.     @volume_now = 0
  8.   end

  9.   def volume(name)
  10.     volume_now = self.volume_now
  11.     print "The "+ name +"'s volume is "+volume_now
  12.   end
  13.   
  14.   def full(name)
  15.     self.volume_now = self.volume_max
  16.   end
  17.   
  18.   def clear(name)
  19.     self.volume_now = 0
  20.   end
  21.   
  22.   #将B倒进A
  23.   def pour(nameA,nameB)
  24.     if nameA.volume_now <nameA.volume_max and nameB.volume_now>0 then
  25.       if nameA.volume_max - nameA.volume_now >nameB.volume_now then
  26.         #假如A瓶的剩余容量大于B瓶现量
  27.         #使A瓶现量+B瓶现量
  28.         #使B瓶现量为0
  29.         nameA.volume_now = nameA.volume_now+nameB.volume_now
  30.         nameB.volume_now = 0
  31.       else
  32.         #否则
  33.         #使B瓶现量减少A瓶剩余量
  34.         #使A瓶现量为满
  35.         nameB.volume_now = nameB.volume_now - (nameA.volume_max-nameA.volume_now)
  36.         nameA.volume_now = nameA.volume_max
  37.       end
  38.     end
  39.   end
  40. end
复制代码
用脚本
$bottle1 = Bottle.new(200)
$bottle1.full
$bottle1.volume

显示
执行脚本时发生ArgumentError。
wrong number of arguments(1 for 0)

点评

好了,万分感谢  发表于 2014-9-27 15:38
对比了一下发现…….....原来除号后面要空格啊……  发表于 2014-9-27 15:34
另外,水瓶的练习可以参考@无脑之人的回帖  发表于 2014-9-27 13:35
改好了,该死的编译器把我的除号当成了正则orz。  发表于 2014-9-27 13:33
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
9532
在线时间
5073 小时
注册时间
2013-6-21
帖子
3580

开拓者贵宾剧作品鉴家

16
发表于 2014-9-27 10:23:57 | 只看该作者
本帖最后由 RyanBern 于 2014-9-27 13:32 编辑

大致看了一下,LZ想要的效果类似于事件中的“显示图片”,不过是用脚本的方法。在游戏执行的某个时刻,调用方法'show_photo'来让照片显示出来。当然显示的时候会有什么淡入淡出效果。
然后就是写这个的思路,你可以建立一个Sprite的子类,然后重写里面的各种方法。不过你这加一个@photo的实例变量是什么意思啊?感觉完全没有必要。然后就是注意方法的调用,如果你定义为一个普通方法,那么一定要用一个该类的对象调用它而不能直接调用它。如果要直接调用,就要把show_photo方法定义到外面去。
废话少说,这个可以拿来参考:
RUBY 代码复制
  1. class Show_Photo < Sprite
  2.   def initialize(viewport = nil)
  3.     super(viewport)
  4.     @picture_name = ""
  5.   end
  6.   def show(picture_name)
  7.     if @picture_name != picture_name
  8.       @picture_name = picture_name
  9.       if self.bitmap != nil
  10.         self.bitmap.dispose
  11.       end
  12.       self.bitmap = RPG::Cache.picture(@picture_name)
  13.     end
  14.     self.opacity = 0
  15.     self.ox = self.bitmap.width / 2
  16.     self.oy = self.bitmap.height / 2
  17.     self.x = 272
  18.     self.y = 208
  19.     16.times do
  20.       self.opacity += 16
  21.       Graphics.update
  22.     end
  23.   end
  24.   def fade
  25.     16.times do
  26.       self.opacity -= 16
  27.       Graphics.update
  28.     end
  29.   end
  30. end

使用方法:可以利用事件脚本进行调用,要借助一个全局变量。
$photo = Show_Photo.new
# 淡入显示"1.png"
$photo.show("1.png")
如果显示结束了,可以利用$photo.fade达到淡出的作用
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
75
在线时间
241 小时
注册时间
2013-3-28
帖子
67
15
发表于 2014-9-27 09:58:36 | 只看该作者
繁星千羽 发表于 2014-9-26 22:24
额额,那么应该怎么做呢?

那要看你想在哪里用这个方法了,你要创建一个Scene然后再调用show_photo
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33488
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

14
发表于 2014-9-27 09:46:45 | 只看该作者
瞎写一下,又没办法测试
  1. class Show_Photo < Sprite
  2.   $Photo_Allow
  3.   #--------------------------------------------------------------------------
  4.   # ● 初始化对像
  5.   #     viewport : 显示端口
  6.   #     picture  : 图片 (Game_Picture)
  7.   #--------------------------------------------------------------------------  
  8.   def initialize(viewport,photo)
  9.     super(viewport)
  10.     [url=home.php?mod=space&uid=75283]@PHOTO[/url] = photo
  11.     update
  12.   end
  13.   
  14.   #--------------------------------------------------------------------------
  15.   # ● 释放
  16.   #--------------------------------------------------------------------------
  17.   def dispose
  18.     if self.bitmap != nil
  19.       self.bitmap.dispose
  20.     end
  21.     super
  22.   end
  23.   
  24.   def show_photo(name)
  25.     $Photo_Allow = 1
  26.     self.bitmap = Bitmap.new("Graphics/Pictures/#{name}")
  27.     self.ox = self.bitmap.width /2
  28.     self.oy = self.bitmap.height /2
  29.     self.x=272
  30.     self.y=208
  31.   end
  32.   
  33.   def update
  34.     super
  35.     if Photo_Allow == 0
  36.       dispose
  37.       return
  38.     end
  39.     self.x=272
  40.     self.y=208
  41.   end
  42.   
  43. end
复制代码

评分

参与人数 1梦石 +1 收起 理由
︶ㄣ牛排ぶ + 1 认可答案

查看全部评分

xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
23 小时
注册时间
2014-9-26
帖子
24
13
 楼主| 发表于 2014-9-26 22:24:27 | 只看该作者
你欠抽吧 发表于 2014-9-26 21:57
艾玛……合着你是在事件页里面直接调用一个Scene类里的方法……这个方法不是全局的啊 ...

额额,那么应该怎么做呢?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
75
在线时间
241 小时
注册时间
2013-3-28
帖子
67
12
发表于 2014-9-26 21:57:41 | 只看该作者
繁星千羽 发表于 2014-9-26 21:46
……加上双引号后找不到reimi的错误没了,取而代之的是

执行脚本时发生NoMethodError。

艾玛……合着你是在事件页里面直接调用一个Scene类里的方法……这个方法不是全局的啊
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
23 小时
注册时间
2014-9-26
帖子
24
11
 楼主| 发表于 2014-9-26 21:46:58 | 只看该作者
……加上双引号后找不到reimi的错误没了,取而代之的是

执行脚本时发生NoMethodError。
undefined method 'show_photo' for #<Interpreter:0x279caf8>

点评

置顶不是说可以举报吗……不过,知道了!  发表于 2014-9-29 14:10
去回复手动认可贴,别举报啊喂  发表于 2014-9-27 19:37
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-27 10:23

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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