Project1

标题: 显示图片不会覆盖角色行走图 [打印本页]

作者: ☆流星☆~~~    时间: 2009-4-27 18:09
提示: 作者被禁止或删除 内容自动屏蔽
作者: tommay    时间: 2009-4-27 18:11
1.用行走图的方式显示图片,勾选允许穿透
2.在事件中用脚本写显示图片,然后调一下z值
作者: ☆流星☆~~~    时间: 2009-4-27 18:18
提示: 作者被禁止或删除 内容自动屏蔽
作者: ☆流星☆~~~    时间: 2009-4-28 01:10
提示: 作者被禁止或删除 内容自动屏蔽
作者: 凌辰    时间: 2009-4-28 02:20
调Z值是最好的了……
作者: ☆流星☆~~~    时间: 2009-4-28 02:21
提示: 作者被禁止或删除 内容自动屏蔽
作者: 凌辰    时间: 2009-4-28 02:23
以下引用☆流星☆~~~于2009-4-27 18:21:49的发言:
虾叫Z值啊?
我可不可以说其实我也不清楚> <
总之大概是优先度一类的东西……
作者: tommay    时间: 2009-4-28 03:04
请问LZ是想所有图片都在角色下面,还是可以自行调整角色和图片的遮挡关系?
作者: 紫苏    时间: 2009-4-28 06:00
以下引用tommay于2009-4-27 19:04:02的发言:

请问LZ是想所有图片都在角色下面,还是可以自行调整角色和图片的遮挡关系?

前者的话直接在 Spriteset_Map 里面:
    # 生成角色活动块
    @character_sprites = []
    for i in $game_map.events.keys.sort
      sprite = Sprite_Character.new(@viewport2, $game_map.events)
      @character_sprites.push(sprite)
    end
    @character_sprites.push(Sprite_Character.new(@viewport2, $game_player))
[LINE]1,#dddddd[/LINE]系统信息:本贴由本区版主认可为正确答案,66RPG感谢您的热情解答~
作者: tommay    时间: 2009-4-28 06:04
然后事件中直接显示图片吗?为什么我改了之后还是图片能挡住角色呢?
作者: 紫苏    时间: 2009-4-28 06:19
以下引用tommay于2009-4-27 22:04:48的发言:

然后事件中直接显示图片吗?为什么我改了之后还是图片能挡住角色呢?

奇怪,我刚才在家测试的时候没有被挡住啊~事件和主角都被挡住?
作者: 亿万星辰    时间: 2009-4-28 06:20
Spriteset_Map中

    # 生成显示端口
    @viewport1 = Viewport.new(0, 0, 640, 480)
    @viewport2 = Viewport.new(0, 0, 640, 480)
    @viewport3 = Viewport.new(0, 0, 640, 480)
    @viewport2.z = 200
    @viewport3.z = 5000

没写的 @viewport1 的z值默认为0

      sprite = Sprite_Character.new(@viewport1, $game_map.events)
注意,@viewport1

      @picture_sprites.push(Sprite_Picture.new(@viewport2,$game_screen.pictures))
注意,@viewport2

改Z值么?
把@viewport1的z改到比@viewport2大?

那么……
    @tilemap = Tilemap.new(@viewport1)
    @panorama = Plane.new(@viewport1)
    @fog = Plane.new(@viewport1)

@viewport1比@viewport2的z大了以后最直接的效果就是,无论是地图元件、远景、雾、事件、角色都会挡住图片~ [LINE]1,#dddddd[/LINE]版主对此帖的认可:『正确解答,补上悬赏积分,感激你的热情帮助...』,积分『+350』。
作者: tommay    时间: 2009-4-28 06:30
抱歉,现在行了,看来是脚本被我改乱了,orz

多谢两位大大!
作者: 亿万星辰    时间: 2009-4-28 06:34
当然不行了啊,我只是给了个思路引导一下而已啊{/fd}
作者: tommay    时间: 2009-4-28 06:39
那我顺藤摸瓜一下:
如何能够让玩家自行决定图片的z值呢?就是可以再事件页的脚本中写下一句脚本,然后实现图片不同的叠放次序,有些遮挡主角,有些被主角遮住之类的效果呢?
作者: 亿万星辰    时间: 2009-4-28 06:57
给Game_Picture追加个方法就好了,默认图片的z值是根据图片的编号来的,但图片显示部分是放在viewport2里的,而地图远景雾人物事件这些都是放在viewport1里的,所以即使你把图片本身的z值改的再小,也会因为viewport2的z值本身就比viewport1大而始终显示在角色上方。

想要让角色遮挡到图片,首先要把图片显示放到和角色一起的viewport1里,接着就是要让图片的z值根据角色的z值来发生一些改变,而不是默认的编号
self.z = $game_player.screen_z

这样就出现一个好玩的现象,首先在我们要显示出图片的区域放置一个有行走图的事件,接着我们会发现,每当角色走到这个图片的下方时,这个图片的显示都会有比较显著的变化。

今天的废话就到此为止了,各位同学明天见~
作者: tommay    时间: 2009-4-28 07:03
以下引用亿万星辰于2009-4-27 22:57:51的发言:

给Game_Picture追加个方法就好了,默认图片的z值是根据图片的编号来的,但图片显示部分是放在viewport2里的,而地图远景雾人物事件这些都是放在viewport1里的,所以即使你把图片本身的z值改的再小,也会因为viewport2的z值本身就比viewport1大而始终显示在角色上方。

想要让角色遮挡到图片,首先要把图片显示放到和角色一起的viewport1里,接着就是要让图片的z值根据角色的z值来发生一些改变,而不是默认的编号
self.z = $game_player.screen_z

这样就出现一个好玩的现象,首先在我们要显示出图片的区域放置一个有行走图的事件,接着我们会发现,每当角色走到这个图片的下方时,这个图片的显示都会有比较显著的变化。

前面的都能看个大概,最后一段那个现象看不懂。。。能否麻烦做个范例呢?
如果没时间就无视吧,先谢谢前辈了!
作者: 紫苏    时间: 2009-4-28 08:00
我那样的话就是把角色放到图片的 viewport2 中,原理是一样的~

self.z = $game_player.screen_z 是让图片的 z 次序随时保持和角色行走图的 z 次序相同,而角色行走图的 z 次序是随着 y 坐标变化而变化的——地图最南边最高,最北边最低——为了建立事件角色之间的遮挡关系~

所以当角色在事件北方时,z 次序比事件小,图片被事件挡住;当角色在事件南方时,z 次序超过了事件,事件被图片挡住……
作者: 亿万星辰    时间: 2009-4-28 15:05
以下引用紫苏于2009-4-28 0:00:36的发言:

我那样的话就是把角色放到图片的 viewport2 中,原理是一样的~

self.z = $game_player.screen_z 是让图片的 z 次序随时保持和角色行走图的 z 次序相同,而角色行走图的 z 次序是随着 y 坐标变化而变化的——地图最南边最高,最北边最低——为了建立事件角色之间的遮挡关系~

所以当角色在事件北方时,z 次序比事件小,图片被事件挡住;当角色在事件南方时,z 次序超过了事件,事件被图片挡住……

都放到viewport2里,viewport2本身的z值就比viewport1的z值高,那viewport2里所有的东西都会在viewport1上面,包括你放到里面的所有事件和角色行走图,那么你会看到事件永远都保持一个“总在最前”的效果,压着地图元件、远景、雾。
作者: 紫苏    时间: 2009-4-28 16:39
以下引用亿万星辰于2009-4-28 7:05:36的发言:

都放到viewport2里,viewport2本身的z值就比viewport1的z值高,那viewport2里所有的东西都会在viewport1上面,包括你放到里面的所有事件和角色行走图,那么你会看到事件永远都保持一个“总在最前”的效果,压着地图元件、远景、雾。

对啵,疏忽了,感谢指点~{/hx}
作者: swl19880916    时间: 2009-4-29 06:20
因为我没有办法回答你们的问题,简直太难了。我总爱问问题,现在警告我了,我必须要回答问题,所以我回答了你问的问题,你的问题又很难,我回答不了你的问题,所以我继续说了下我回答你问的问题的原因,所以我说了这一连串的字,看到就当没看见我回答的答案好了。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1