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

Project1

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

[已经解决] 怎么让实现事件显示在图片的前面?

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1117
在线时间
882 小时
注册时间
2012-6-28
帖子
1082
跳转到指定楼层
1
发表于 2013-9-4 00:14:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 没是的人 于 2013-9-5 20:27 编辑

正常情况下,显示图片会盖住事件,
如何让部分或者全部是事件显示在图片的前面(换句话说就是事件的行走图优先级比图片高)
比如用脚本实现:
1.事件里含有特定符号。比如“#商店npc”,在事件名称前+#号的事件会显示在图片的上面
2.部分地图id的事件,行走图会在图片上面
要求:
不要发双远景脚本什么的。。我有。。。
最好是外挂脚本,插入就能用的那种,实现的途径也最好是上面两种
报酬:
我自己来塞糖拉,@管理来给分拉,龙骑士还是比较可观的,谢谢肯帮忙的大师了
不追求华丽的商业素材;不依赖与自己运用能力不符的外挂脚本;不搞华而不实的无用噱头。
                    修改,使用最朴实的素材,融入自己的智慧做最好的游戏!
                                    点这里!暂不设加入门槛
         
                               我觉得我的优点是,会认真的画每一张地图。

Lv1.梦旅人

梦石
0
星屑
136
在线时间
1050 小时
注册时间
2006-5-3
帖子
774
2
发表于 2013-9-4 14:04:33 | 只看该作者
很简单,把图片的Z值调低, 或者加一个Z值的控制变量
漏夏同人
《咱的夏天》
下载地址:http://tieba.baidu.com/p/2681607456
人员招募:http://rpg.blue/thread-339747-1-1.html
回复 支持 反对

使用道具 举报

Lv2.观梦者 (暗夜天使)

梦石
0
星屑
266
在线时间
2355 小时
注册时间
2009-3-13
帖子
2309

贵宾

3
发表于 2013-9-4 14:09:56 | 只看该作者
首先是 Viewport 的Z值决定该 Viewport 里的所有精灵的优先级,在同一个 Viewport 里的话就是按精灵的Z值决定显示优先级了
你说的情况需要修改图片精灵的 Viewport ,让它们使用地图的那个
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
79 小时
注册时间
2007-6-23
帖子
154
4
发表于 2013-9-4 20:22:25 | 只看该作者
临时写了一个脚本,如有bug请指出~~
脚本的第3和第6行可以自行修改,用来调整显示的优先度
RUBY 代码复制
  1. #==============================================================================
  2. # 设置不会被图片覆盖的地图id
  3. NON_COVERED_MAP_ID = [1, 2, 3, 4]
  4.  
  5. # 设置不会被图片覆盖的事件名字前缀
  6. NON_COVERED_EVT_NAME_PREF = "#"
  7. #==============================================================================
  8.  
  9. #==============================================================================
  10. class Game_Event < Game_Character
  11.   #--------------------------------------------------------------------------
  12.   # ● 获取事件名
  13.   #--------------------------------------------------------------------------
  14.   def name
  15.     @event.name
  16.   end
  17. end
  18.  
  19. #==============================================================================
  20. class Game_Pictures
  21.   #--------------------------------------------------------------------------
  22.   # ● 获取图片列表的尺寸
  23.   #--------------------------------------------------------------------------
  24.   def size
  25.     @data.size
  26.   end
  27. end
  28.  
  29. #==============================================================================
  30. class Sprite_Character < Sprite_Base
  31.   #--------------------------------------------------------------------------
  32.   # ● 更新位置
  33.   #--------------------------------------------------------------------------
  34.   alias non_covered_update_position update_position
  35.   def update_position
  36.     non_covered_update_position
  37.     if NON_COVERED_MAP_ID.index($game_map.map_id) ||
  38.       self.character.is_a?(Game_Event) &&
  39.       self.character.name.index(NON_COVERED_EVT_NAME_PREF) == 0
  40.       self.z += $game_map.screen.pictures.size + 1
  41.     end
  42.   end
  43. end
  44.  
  45. #==============================================================================
  46. class Sprite_Picture < Sprite
  47.   #--------------------------------------------------------------------------
  48.   # ● 更新位置
  49.   #--------------------------------------------------------------------------
  50.   alias non_covered_update_position update_position
  51.   def update_position
  52.     non_covered_update_position
  53.     self.z += 100
  54.   end
  55. end
  56.  
  57. #==============================================================================
  58. class Spriteset_Map
  59.   #--------------------------------------------------------------------------
  60.   # ● 更新图片精灵
  61.   #--------------------------------------------------------------------------
  62.   def update_pictures
  63.     $game_map.screen.pictures.each do |pic|
  64.       @picture_sprites[pic.number] ||= Sprite_Picture.new(@viewport1, pic)
  65.       @picture_sprites[pic.number].update
  66.     end
  67.   end
  68. end

评分

参与人数 1星屑 +30 收起 理由
没是的人 + 30

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1117
在线时间
882 小时
注册时间
2012-6-28
帖子
1082
5
 楼主| 发表于 2013-9-4 22:00:22 | 只看该作者
fangyc 发表于 2013-9-4 20:22
临时写了一个脚本,如有bug请指出~~
脚本的第3和第6行可以自行修改,用来调整显示的优先度
#============== ...

有点小bug,拥有优先级的图块也会跑到图片的上方去,而且不受地图id的限制

点评

我也不知道设置了优先级的图块,z变成多少了  发表于 2013-9-4 22:34
不追求华丽的商业素材;不依赖与自己运用能力不符的外挂脚本;不搞华而不实的无用噱头。
                    修改,使用最朴实的素材,融入自己的智慧做最好的游戏!
                                    点这里!暂不设加入门槛
         
                               我觉得我的优点是,会认真的画每一张地图。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
79 小时
注册时间
2007-6-23
帖子
154
6
发表于 2013-9-5 07:44:21 | 只看该作者
恩…这个问题好像有点矛盾…设了优先级的图块本来就是显示在事件前面的吧?
要保证图块显示在事件上面,图片显示在事件下面,这貌似用同一个显示端口是没法实现的……
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1117
在线时间
882 小时
注册时间
2012-6-28
帖子
1082
7
 楼主| 发表于 2013-9-5 09:22:49 | 只看该作者
fangyc 发表于 2013-9-5 07:44
恩…这个问题好像有点矛盾…设了优先级的图块本来就是显示在事件前面的吧?
要保证图块显示在事件上面,图 ...


你说的这个我明白,但是一个比较严重的问题是:
没有写到NON_COVERED_MAP_ID里的id的地图也出现了这种情况
也就是说,我不想用这个脚本的地图,里面的图块设置了优先级也会跑到图片的上面去。
希望大神再帮我改改,谢谢

另外。如果能改成提高事件z值来实现而不是降低图片z值的话就没这个问题
(虽然事件会跑到优先级图块的上面。但是我应用的场合里无所谓的)
不追求华丽的商业素材;不依赖与自己运用能力不符的外挂脚本;不搞华而不实的无用噱头。
                    修改,使用最朴实的素材,融入自己的智慧做最好的游戏!
                                    点这里!暂不设加入门槛
         
                               我觉得我的优点是,会认真的画每一张地图。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
79 小时
注册时间
2007-6-23
帖子
154
8
发表于 2013-9-5 09:39:25 手机端发表。 | 只看该作者
有最后一句话可能就好办了…
设了优先级的图块的Z值是多少似乎是内部定义好的,从脚本里看不到
你可以试着分别增加40行和53行的Z值,原来已经加上的值不要变,然后再往上增加
比如都再各加50看看是不是有效
这两行加的值必须是一样的
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1117
在线时间
882 小时
注册时间
2012-6-28
帖子
1082
9
 楼主| 发表于 2013-9-5 09:45:56 | 只看该作者
fangyc 发表于 2013-9-5 09:39
有最后一句话可能就好办了…
设了优先级的图块的Z值是多少似乎是内部定义好的,从脚本里看不到
你可以试着 ...

好的,我能用家里电脑的时候试试,或者尝试把XXXX.z的值p出来

另外,第一个问题怎么解决呢?为什么会在不需要使用这个脚本的地图里也出现错位呢?

点评

突然想到是不是要把37行的||改成&&(手头没pc工具无法测试)  发表于 2013-9-5 09:48
不追求华丽的商业素材;不依赖与自己运用能力不符的外挂脚本;不搞华而不实的无用噱头。
                    修改,使用最朴实的素材,融入自己的智慧做最好的游戏!
                                    点这里!暂不设加入门槛
         
                               我觉得我的优点是,会认真的画每一张地图。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
79 小时
注册时间
2007-6-23
帖子
154
10
发表于 2013-9-5 10:13:06 手机端发表。 | 只看该作者
没是的人 发表于 2013-9-5 09:45
好的,我能用家里电脑的时候试试,或者尝试把XXXX.z的值p出来

另外,第一个问题怎么解决呢?为什么会在 ...

那是因为图片的显示端口从原来的viewport2改到跟事件同一层的viewport1了,否则不管怎么改z,veiwport2的图像永远都会显示在viewport1前。
解决第一个问题的话应该只要判断一下如果不在地图id列表里的话图片还是使用viewport2就行了,但是同样事件名前加了#的事件也会失效。
不过如果通过刚才说的改z值能解决的话,我觉得第一个问题不改也没关系…
现在手头没有工具,等我晚上回家再看看吧……
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-8 21:47

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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