本帖最后由 1095884734 于 2020-3-18 09:42 编辑
myplane是个对象,Sprite是一个类
由于dispose是一个实例方法,所以不能直接用 类名.实例方法 的方式来调用,应该是 对象.实例方法
所以删除应该是
要在脚本里实现事件效果的话 可以参考Interpreter脚本里的代码
- #--------------------------------------------------------------------------
- # ● 移动图片
- #--------------------------------------------------------------------------
- def command_232
- # 获取图片编号
- number = @parameters[0] + ($game_temp.in_battle ? 50 : 0)
- # 指定方法为 [直接指定] 的情况下
- if @parameters[3] == 0
- x = @parameters[4]
- y = @parameters[5]
- # 指定方法为 [使用变量指定] 的情况下
- else
- x = $game_variables[@parameters[4]]
- y = $game_variables[@parameters[5]]
- end
- # 移动图片
- $game_screen.pictures[number].move(@parameters[1] * 2, @parameters[2],
- x, y, @parameters[6], @parameters[7], @parameters[8], @parameters[9])
- # 继续
- return true
- end
复制代码
我找了一下 事件里移动图片的方法是在Game_Picture里
#-------------------------------------------------------------------------- # ● 移动图片 # duration : 时间 # origin : 原点 # x : X 坐标 # y : Y 坐标 # zoom_x : X 方向放大率 # zoom_y : Y 方向放大率 # opacity : 不透明度 # blend_type : 合成方式 #-------------------------------------------------------------------------- def move(duration, origin, x, y, zoom_x, zoom_y, opacity, blend_type) @duration = duration @origin = origin @target_x = x.to_f @target_y = y.to_f @target_zoom_x = zoom_x.to_f @target_zoom_y = zoom_y.to_f @target_opacity = opacity.to_f @blend_type = blend_type end
#--------------------------------------------------------------------------
# ● 移动图片
# duration : 时间
# origin : 原点
# x : X 坐标
# y : Y 坐标
# zoom_x : X 方向放大率
# zoom_y : Y 方向放大率
# opacity : 不透明度
# blend_type : 合成方式
#--------------------------------------------------------------------------
def move(duration, origin, x, y, zoom_x, zoom_y, opacity, blend_type)
@duration = duration
@origin = origin
@target_x = x.to_f
@target_y = y.to_f
@target_zoom_x = zoom_x.to_f
@target_zoom_y = zoom_y.to_f
@target_opacity = opacity.to_f
@blend_type = blend_type
end
这方法里只是设定了图片移动的末位置什么的 移动图片主要是在update里实现的#-------------------------------------------------------------------------- # ● 刷新画面 #-------------------------------------------------------------------------- def update if @duration >= 1 d = @duration @x = (@x * (d - 1) + @target_x) / d @y = (@y * (d - 1) + @target_y) / d @zoom_x = (@zoom_x * (d - 1) + @target_zoom_x) / d @zoom_y = (@zoom_y * (d - 1) + @target_zoom_y) / d @opacity = (@opacity * (d - 1) + @target_opacity) / d @duration -= 1 end if @tone_duration >= 1 d = @tone_duration @tone.red = (@tone.red * (d - 1) + @tone_target.red) / d @tone.green = (@tone.green * (d - 1) + @tone_target.green) / d @tone.blue = (@tone.blue * (d - 1) + @tone_target.blue) / d @tone.gray = (@tone.gray * (d - 1) + @tone_target.gray) / d @tone_duration -= 1 end if @rotate_speed != 0 @angle += @rotate_speed / 2.0 while @angle < 0 @angle += 360 end @angle %= 360 end end
#--------------------------------------------------------------------------
# ● 刷新画面
#--------------------------------------------------------------------------
def update
if @duration >= 1
d = @duration
@x = (@x * (d - 1) + @target_x) / d
@y = (@y * (d - 1) + @target_y) / d
@zoom_x = (@zoom_x * (d - 1) + @target_zoom_x) / d
@zoom_y = (@zoom_y * (d - 1) + @target_zoom_y) / d
@opacity = (@opacity * (d - 1) + @target_opacity) / d
@duration -= 1
end
if @tone_duration >= 1
d = @tone_duration
@tone.red = (@tone.red * (d - 1) + @tone_target.red) / d
@tone.green = (@tone.green * (d - 1) + @tone_target.green) / d
@tone.blue = (@tone.blue * (d - 1) + @tone_target.blue) / d
@tone.gray = (@tone.gray * (d - 1) + @tone_target.gray) / d
@tone_duration -= 1
end
if @rotate_speed != 0
@angle += @rotate_speed / 2.0
while @angle < 0
@angle += 360
end
@angle %= 360
end
end
还有就是 不知道你在脚本里是怎么写的 一个类(class)里面可以有多个方法的
总的来说可以改成这样
class Fight < Sprite def fight_3 # 显示图片 myplane = Sprite.new myplane.bitmap = RPG::Cache.picture("myplane") myplane.ox = myplane.bitmap.width / 2 myplane.oy = myplane.bitmap.height / 2 myplane.x = $actor_x_ myplane.y = $actor_y_ end def fight_4 #删除 myplane.dispose end end
class Fight < Sprite
def fight_3
# 显示图片
myplane = Sprite.new
myplane.bitmap = RPG::Cache.picture("myplane")
myplane.ox = myplane.bitmap.width / 2
myplane.oy = myplane.bitmap.height / 2
myplane.x = $actor_x_
myplane.y = $actor_y_
end
def fight_4
#删除
myplane.dispose
end
end
|