LZ自学不是很到位哈,先说发现的几个问题,改正就可以了。
1.点击“咔”选项后,生成了一个图片。(在脚本中是变量@wsdx)。场景离开Scene_Title后,这个图片应该被释放。
下面这句应该放到Scene_Title释放那里。
if @wsdx != nil @wsdx.bitmap.dispose @wddx.dispose end
if @wsdx != nil
@wsdx.bitmap.dispose
@wddx.dispose
end
如果LZ是想在Scene_Ka中显示这张图片,请在Scene_Ka对象中生成它,而不是在Scene_Title中生成。当然,生成之后也别忘释放。
2.LZ之所以能看到标题图形和窗口,不是因为它没有释放,而是因为画面处于冻结状态,而处于冻结状态的画面,Graphics.update不起作用。因此,在每个Scene类对象的loop do~end之前,都应该有一句Graphics.transition。这句话是让画面过渡,同时解除画面冻结的状态。
3.loop do~end中应该有三个update(或者至少是两个):Graphics.update,Input.update,update。LZ既然用了输入判断,那么为啥不加Input.update啊?
最后,更改后的Scene_Ka:
class Scene_Ka def main Graphics.transition loop do Graphics.update Input.update shuaxing if $scene != self break end end end def shuaxing if Input.trigger?(Input::Z) $scene = Scene_Title.new end end end
class Scene_Ka
def main
Graphics.transition
loop do
Graphics.update
Input.update
shuaxing
if $scene != self
break
end
end
end
def shuaxing
if Input.trigger?(Input::Z)
$scene = Scene_Title.new
end
end
end
另外Scene_Title那里加个@wsdx的释放,或者把生成图片转移到Scene_Ka中去。
|