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

Project1

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

[有事请教] 人物立绘左右切换的问题

[复制链接]

Lv2.观梦者

梦石
0
星屑
405
在线时间
56 小时
注册时间
2020-3-27
帖子
34
跳转到指定楼层
1
发表于 2020-4-5 06:27:31 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

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

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

x
我暂时没有用插件和脚本,直接是显示图片来展示人物的立绘,可是运行的时候发现当人物移动到地图的一侧的时候,会被立绘挡住看不见地图。
想请教一下有没有最好不用脚本或者插件就可以实现【当人物在左侧的时候,立绘显示到右边去,人物在右边的时候,立绘显示到左边去】
如果必须要用到脚本插件的话可以请求指点或指路么,谢谢

Lv2.观梦者

梦石
0
星屑
405
在线时间
56 小时
注册时间
2020-3-27
帖子
34
10
 楼主| 发表于 2020-4-6 14:42:43 | 只看该作者
上面说的ScreenX值和“画面X”其实是一个数值,但是实测有效,已附效果图,谢谢各位了

不过话说,新人第一次发帖,不知道怎么把【有事请教】变成【已经解决】啊,还是说不可以变……?

B14J[@X176)}Z(XOD2(%TCY.png (44.04 KB, 下载次数: 38)

B14J[@X176)}Z(XOD2(%TCY.png

`0UC4Y9BE{8LOJAH(F4PJVK.png (1.45 MB, 下载次数: 36)

`0UC4Y9BE{8LOJAH(F4PJVK.png

CY9IOZZ5]11~PRJG0RMDG~C.png (1.46 MB, 下载次数: 34)

CY9IOZZ5]11~PRJG0RMDG~C.png

FJ80))%DN1LJ00$VU1X5PR5.png (47.52 KB, 下载次数: 35)

FJ80))%DN1LJ00$VU1X5PR5.png

点评

等版主看到就会帮你编辑了  发表于 2020-4-6 15:00
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
5331
在线时间
750 小时
注册时间
2018-1-16
帖子
152
9
发表于 2020-4-6 10:36:10 | 只看该作者
Rarian 发表于 2020-4-5 23:32
问题就在于如何判断角色在画面的位置是否接近边界

因为不同大小的地图的ScreenX的最高值是不一样的,想 ...

那你就这样:
你走到立绘的位置,看你走到那个位置会被立绘挡住。
然后用区域(R图块),从上到下标出立绘的位置。
然后公共事件判定当人物走到区域ID的时候,立绘变换位置。

也就是说在立绘刚好挡住人物的地方画区域,这样在你人物被挡住时正好在区域上并执行移动立绘的公共
事件,应该可以实现你的想法,没有试验,你可以自己试试。

点评

噢对,刚才理解错了。理论上来说确实每个地图只有一个区域会被立绘遮蔽  发表于 2020-4-6 13:23
额……大地图移动到边界时屏幕不是固定了吗?区域画在地图上,找到地图与区域重合的地方画应该可以啊。虽然我没有试验……感觉可行,哈哈  发表于 2020-4-6 13:05
这种方法只限于“小房间”形式的地图。大地图屏幕跟着玩家移动这种区域判定就不好使了。  发表于 2020-4-6 12:37
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36591
在线时间
10832 小时
注册时间
2009-3-15
帖子
4817
8
发表于 2020-4-6 10:19:45 | 只看该作者
本帖最后由 soulsaga 于 2020-4-6 10:24 编辑
Rarian 发表于 2020-4-5 23:32
问题就在于如何判断角色在画面的位置是否接近边界

因为不同大小的地图的ScreenX的最高值是不一样的,想 ...


这脚本和地图大小无关..只求出画面位置..

点评

是的,但是这个实际上是和事件页的画面X是一个数值  发表于 2020-4-6 14:34
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
405
在线时间
56 小时
注册时间
2020-3-27
帖子
34
7
 楼主| 发表于 2020-4-5 23:32:56 | 只看该作者
本帖最后由 Rarian 于 2020-4-6 02:07 编辑
soulsaga 发表于 2020-4-5 23:03
var ScreenX = Math.round($gameMap.adjustX($gamePlayer._x) * $gameMap.tileWidth() + $gameMap.tileWid ...


问题就在于如何判断角色在画面的位置是否接近边界

因为不同大小的地图的ScreenX的最高值是不一样的,想要预留空白的话,每张地图的需要判定的ScreenX值都不一样啊
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36591
在线时间
10832 小时
注册时间
2009-3-15
帖子
4817
6
发表于 2020-4-5 23:03:34 | 只看该作者
本帖最后由 soulsaga 于 2020-4-5 23:05 编辑

JAVASCRIPT 代码复制
  1. var ScreenX = Math.round($gameMap.adjustX($gamePlayer._x) * $gameMap.tileWidth() + $gameMap.tileWidth() / 2);
  2. var ScreenY = Math.round($gameMap.adjustY($gamePlayer._y) * $gameMap.tileHeight() + $gameMap.tileHeight());

求得玩家在画面中的坐标

点评

事件脚本也可以吧..我也是在日站找到的..  发表于 2020-4-6 13:27
把这个写成插件就能直接通过得出ScreenX 、Y直接得出相关数值了?  发表于 2020-4-6 12:34
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
405
在线时间
56 小时
注册时间
2020-3-27
帖子
34
5
 楼主| 发表于 2020-4-5 22:40:06 | 只看该作者
Zeldashu 发表于 2020-4-5 20:33
现成这种在地图上显示立绘的插件一般都是大佬们自己写的,目前还没有发现有任何该功能的外流版本。所以基本 ...

请问那个在地图边缘预留空白地带是指在特意在编辑地图属性的时候,把宽和高多设置出一些么
还有多层立绘出现的透明问题是指什么呢,图层顺序会变乱导致上下层显示的时候出现类似穿模的效果吗?

点评

对,编辑地图时额外开出一个边缘区域预留给立绘。透明问题是两张透明度50%的图片叠加在一起透明度不等于50%。  发表于 2020-4-6 12:36
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
405
在线时间
56 小时
注册时间
2020-3-27
帖子
34
4
 楼主| 发表于 2020-4-5 22:11:48 | 只看该作者
本帖最后由 Rarian 于 2020-4-5 22:30 编辑
shantianzu 发表于 2020-4-5 12:15
我觉得是先获得人物坐标,再对比画面坐标,公共事件判定这俩条件,不知道是否正确,只是我瞎猜的。

或者你 ...


人物的坐标倒还好解决,
问题就是如何获得【画面的坐标】

因为画面的x坐标从左到右为0-一千多不等的,假如我把立绘固定到左边还可以大概写出x小于10则透明的,
但是如果放到右边的话就很不好判定,有的地图大一点就x=1500有的x=1300

54416710.png (42.9 KB, 下载次数: 35)

54416710.png

9DEZAGHZ2@0C2(@OXPX$SXT.png (857.3 KB, 下载次数: 30)

9DEZAGHZ2@0C2(@OXPX$SXT.png

UVX$]QPHZIG~K2TIW~DI~HW.png (943.44 KB, 下载次数: 37)

UVX$]QPHZIG~K2TIW~DI~HW.png

点评

变量操作-玩家的地图x,再往下翻一个不就是屏幕XY了吗……  发表于 2020-4-6 12:35
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
22312
在线时间
1060 小时
注册时间
2019-3-5
帖子
1425
3
发表于 2020-4-5 20:33:55 | 只看该作者
现成这种在地图上显示立绘的插件一般都是大佬们自己写的,目前还没有发现有任何该功能的外流版本。所以基本不可能白敬到。
但有以下解决方法,也是一些游戏为了解决立绘遮挡问题而给出的:
1.按照楼上的方法来判定角色在屏幕上的位置,一旦进入立绘范围就执行改变立绘位置或透明的的命令。(缺点很明显,多层叠加的立绘一旦透明会出现透明问题,单张立绘倒是没什么所谓)
2.在地图边缘上额外预留出立绘大小的空白地带,这样就不会发生角色被立绘遮挡的情况。(缺点也很明显)
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
5331
在线时间
750 小时
注册时间
2018-1-16
帖子
152
2
发表于 2020-4-5 12:15:46 | 只看该作者
我觉得是先获得人物坐标,再对比画面坐标,公共事件判定这俩条件,不知道是否正确,只是我瞎猜的。

或者你设置一个按键,按一下显示,再按一下隐藏,比你这样要省事不少。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-24 00:57

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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