赞 | 342 |
VIP | 10 |
好人卡 | 8 |
积分 | 262 |
经验 | 235776 |
最后登录 | 2024-9-23 |
在线时间 | 2387 小时 |
Lv5.捕梦者 (版主) 遠航の猫咪
- 梦石
- 3
- 星屑
- 23186
- 在线时间
- 2387 小时
- 注册时间
- 2005-10-15
- 帖子
- 1166
|
本帖最后由 SailCat 于 2022-11-27 10:27 编辑
这东西我以前用XP做过,纯事件,适用于可访问地点数不到48的游戏
前置要求:
1. 世界地图制作完成后,导出一张图片,假设你的世界地图是256x256的大小(MV最大好像只有这么大),那么可以让世界地图显示为512x512,每个像素对应世界地图的2个单位,这一步只要让世界地图不要超过MV显示的大小就行了。
此处可以计算出,世界地图如果居中显示,应该是从((816-512)/2,(624-512)/2)的左上坐标(102,56)处开始显示,不过我个人更建议直接将图片做成816x624的大小,该透明透明该加框加框,自己记住地图的左上角坐标是哪个点(x, y)就行了。
2. 世界地图上,用连续的n个事件(n<48)表示可以进入的城镇,然后用连续的n个变量来记录这些城镇的到访信息,这里假设事件编号是a, a+1...a+n-1,预留的变量编号是b, b+1...b+n-1,注意,一定要连续!!!
每次进入城镇时,在场所移动前,都执行一个公共事件:
变量操作:[上次进入] = b+this.id-a
条件分歧:$gameVariables[$[gameVariables[上次进入]] == 0
脚本:$gameVariables[$[gameVariables[上次进入]] = ($gamePlayer.x << 9) + $gamePlayer.y + 1
分歧结束
这样一旦进入过某个城镇,对应的预留变量的值就会记录下这个城镇在世界地图上的坐标(我不清楚MV里面取本事件ID是不是用this.id啊,清楚的确认一下)。没有进入的话,变量的值就是默认的0。而变量“上次进入”会记录你上次进了哪个城镇。
3. 制作一个“光标”图标和一个“城镇”图标,这些素材连同1中的世界地图都放在Pictures文件夹里
开始制作:
传送卷挂接公共事件(以下脚本是ruby转js,如有不符语法之处自行调整)
注释:初始化显示界面
显示图片:世界地图 #1 @ (102, 56) 左上 100% 不透明
变量操作:[当前城镇编号]=b
循环
条件分歧:脚本:$gameVariables[$gameVariables[当前城镇编号]] > 0
注释:访问过城镇的情况下
变量操作:[城镇 X 坐标] = (($gameVariables[$gameVariables[当前城镇编号]] - 1) >> 9)
变量操作:[城镇 Y 坐标] = (($gameVariables[$gameVariables[当前城镇编号]] - 1) & 511)
变量操作:[屏幕 X 坐标] = $gameVariables[城镇 X 坐标] * 2 + 102
变量操作:[屏幕 Y 坐标] = $gameVariables[城镇 Y 坐标] * 2 + 56
显示图片:城镇 #当前城镇编号-b+2 @(屏幕X坐标, 屏幕Y坐标) 左上 100% 不透明 //这里其实是要转换成脚本来操作的,因为要用变量值来指定图片编号,但我对MV脚本不熟悉,就仿写成了事件的形式
分歧结束
变量操作:[当前城镇编号] += 1
条件分歧:[当前城镇编号] = b + n
中断循环
分歧结束
以上反复
显示图片:光标 #50 @(0, 0) 左上 100% 透明
注释:指向性选择操作
开关操作:[移动位置] = ON
变量操作:[当前城镇编号]=[上次进入]
循环
条件分歧:开关:[移动位置] == ON
变量操作:[城镇 X 坐标] = (($gameVariables[$gameVariables[当前城镇编号]] - 1) >> 9)
变量操作:[城镇 Y 坐标] = (($gameVariables[$gameVariables[当前城镇编号]] - 1) & 511)
变量操作:[屏幕 X 坐标] = $gameVariables[城镇 X 坐标] * 2 + 107
变量操作:[屏幕 Y 坐标] = $gameVariables[城镇 Y 坐标] * 2 + 61
移动图片:#50 @(屏幕X坐标, 屏幕Y坐标) 左上 100% 不透明
开关操作:[移动位置] = OFF
分歧结束
条件分歧:当 上 被按下时
循环
变量操作:[当前城镇编号] -= 1
条件分歧:[当前城镇编号] == b-1
变量操作:[当前城镇编号] = b+n-1
分歧结束
条件分歧:$gameVariables[$gameVariables[当前城镇编号]] > 0
开关操作:[移动位置] = ON
中断循环
分歧结束
以上反复
分歧结束
条件分歧:当 下 被按下时
循环
变量操作:[当前城镇编号] += 1
条件分歧:[当前城镇编号] == b+n
变量操作:[当前城镇编号] = b
分歧结束
条件分歧:$gameVariables[$gameVariables[当前城镇编号]] > 0
开关操作:[移动位置] = ON
中断循环
分歧结束
以上反复
分歧结束
条件分歧:当 C 被按下时
场所移动:[世界地图ID][城镇 X 坐标][城镇 Y 坐标] 就这样 不淡出
跳转:事件结束
中断事件处理
分歧结束
条件分歧:当 B 被按下时
跳转:事件结束
分歧结束
等待 1 帧
以上反复
标签:事件结束
图片消失 #1
图片消失 #2
……
图片消失 #50
|
评分
-
查看全部评分
|