本帖最后由 cinderelmini 于 2013-5-3 13:49 编辑
真的需要分上下视窗咩?话说NDS分视窗技术有可能实现咩?(喂……)
由于近期比较忙~于是饭粒工程的话应该做不了了~
以下说说制作思路~
于是脚本实现的话……而且这是在地图对话的时候用出现选项的吧……
那就需要先写两个函数……
(其实就是以前的前辈写的那个把角色的经验值分成当前经验值和升级所需经验值的函数了……)
然后在Scene_Map里加上个显示角色状态的窗口~
(当然为了可怜的FPS,可以把经验值另外用一块Bitmap来显示~)
状态窗口里需要写上并赋值一些可读可写的变量:
♢当前角色等级
♢当前经验值
(这里的两个变量需要在这个窗口脚本里的初始化里面赋值为第一位角色的等级和经验值。)
♢经验值增减量
(这个也可以在Scene_Map里写,用@变量就可以,不过为了统一还是先写在这里了……
然后关于它的赋值,可以用一枚变量来操作,姑且用一号变量吧:$game_variables[1])
然后就是在Scene_Map里面的各种对比~
首先要获取第一个角色的经验值和等级~
也就是:
$game_party.actors[0].level
$game_party.actors[0].当前经验值(喂……节操哪去了……)
然后就是各种对比和实际操作了~
具体在Scene_Map里的update~(因为是需要每帧用到的……)
刷新内容如下:
(由于各种名称的代码前面都说过,以下就用文字了……打代码切换中英文真累……)
(另外变量是可以赋值为负数的……)
if 一号变量 < 0 if 领队角色的当前经验值 > 显示窗口记录的角色经验值变量 + 一号变量 领队角色的当前经验值 -= 1 else 显示窗口记录的角色经验值变量 = 领队角色的当前经验值 end elsif 一号变量 > 0 if 领队角色的当前经验值 < 显示窗口记录的角色经验值变量 + 一号变量 领队角色的当前经验值 += 1 if 领队角色的等级 > 显示窗口记录的角色等级 处理升级的效果 end else 显示窗口记录的角色经验值变量 = 领队角色的当前经验值 end end
if 一号变量 < 0
if 领队角色的当前经验值 > 显示窗口记录的角色经验值变量 + 一号变量
领队角色的当前经验值 -= 1
else
显示窗口记录的角色经验值变量 = 领队角色的当前经验值
end
elsif 一号变量 > 0
if 领队角色的当前经验值 < 显示窗口记录的角色经验值变量 + 一号变量
领队角色的当前经验值 += 1
if 领队角色的等级 > 显示窗口记录的角色等级
处理升级的效果
end
else
显示窗口记录的角色经验值变量 = 领队角色的当前经验值
end
end
这个是主刷新
这之后在下面写上这个显示窗口的update就能做到数字跳动了~
不论增减都能用~
不过降级这种事情还是做不到……
哦对了~
关于显示窗口脚本的内容……
参考XP自带系统的Window_MenuStatus
不过一开始说了~
显示经验值的最好用另一个Bitmap~
不然一直在update里面用refresh的FPS很伤的……
以上~ |