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

Project1

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

[已经解决] 请问RMXP里面显示事件图片的脚本是哪一段?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
12 小时
注册时间
2012-10-25
帖子
17
跳转到指定楼层
1
发表于 2012-11-21 13:53:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
应该是初始化地图一类的东西,应该是检测事件位置,读取事件的行走图之后加载图片位置的,但是没找到。我想将一个事件的图显示在多个位置,就是像一个镜像或者影子,但是因为有海量事件都要这么处理,而且镜像的位置可能和其他事件的位置重合,所以用其他事件显示,用开关操作有点不现实。。所以我打算直接从显示事件图片的脚本上面做文章,直接让他显示在多个位置。。有人能帮帮吗?谢谢。

Lv1.梦旅人

巴斯克维尔的猎犬

梦石
0
星屑
50
在线时间
66 小时
注册时间
2007-6-25
帖子
8320

第1届Title华丽大赛冠军

2
发表于 2012-11-28 09:11:59 | 只看该作者
你是说想用事件中的显示图片?
用那个反而麻烦了,还是用地图上显示行走图吧,很简单。

在Sprite_Character这个类里,这类是专门管理行走图的图象显示用的。
它在Spriteset_Map这个类里被实例化到一个数组里,这个类则是处理整个地图上图片用的类。此类在update时用for去遍历它,实现刷新。

初始化,用所有的事件和角色分别将 Sprite_Character实例化,然后加到@character_sprites数组里
RUBY 代码复制
  1. # 生成角色活动块
  2.     @character_sprites = []
  3.     for i in $game_map.events.keys.sort
  4.       sprite = Sprite_Character.new(@viewport1, $game_map.events[i])
  5.       @character_sprites.push(sprite)
  6.     end
  7.     @character_sprites.push(Sprite_Character.new(@viewport1, $game_player))


刷新时
RUBY 代码复制
  1. # 刷新角色活动块
  2.     for sprite in @character_sprites
  3.       sprite.update
  4.     end


释放时
RUBY 代码复制
  1. # 释放角色活动块
  2.     for sprite in @character_sprites
  3.       sprite.dispose
  4.     end


所以如果你想做倒影的话,可以依照这个的思路来做。
为了不破坏原来的Sprite_Character,可以把它复制一下,改名成Sprite_Shadow
然后在里面加上
RUBY 代码复制
  1. self.angle = 180
  2.     self.mirror = true
  3.     # 设置不透明度、合成方式、茂密
  4.     self.opacity = @character.opacity/2

旋转180度,再左右反转,不透明度除2,这样就像个倒影了

之后依照上面@character_sprites的思路,再在Spriteset_Map类里加一个@shadow_sprites
例:
初始化:
RUBY 代码复制
  1. # 生成角色活动块
  2.     @character_sprites = []
  3.     @shadow_sprites = [] # ★倒影数组
  4.     for i in $game_map.events.keys.sort
  5.       sprite = Sprite_Character.new(@viewport1, $game_map.events[i])
  6.       @character_sprites.push(sprite)
  7.       # ★倒影
  8.       sprite = Sprite_Shadow.new(@viewport1, $game_map.events[i])
  9.       @shadow_sprites.push(sprite)
  10.     end
  11.     @character_sprites.push(Sprite_Character.new(@viewport1, $game_player))
  12.     # ★倒影
  13.     @shadow_sprites.push(Sprite_Shadow.new(@viewport1, $game_player))


刷新:
RUBY 代码复制
  1. # ★刷新角色倒影
  2.     for sprite in @shadow_sprites
  3.       sprite.update
  4.     end


释放:
RUBY 代码复制
  1. # ★释放角色倒影
  2.     for sprite in @shadow_sprites
  3.       sprite.dispose
  4.     end


就可以了。
效果:


具体你可以根据自己的需要去改。
RM的图片处理基本都在那些Sprite和Spriteset类里。

评分

参与人数 1梦石 +1 收起 理由
hcm + 1 感谢回答

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
12 小时
注册时间
2012-10-25
帖子
17
3
 楼主| 发表于 2012-11-28 14:05:20 | 只看该作者
匈魔剑 发表于 2012-11-28 09:11
你是说想用事件中的显示图片?
用那个反而麻烦了,还是用地图上显示行走图吧,很简单。

其实我不是要倒影,有点类似海市蜃楼的东西显示远处的一点点地图的~不过原理肯定类似的~辛苦你了,我先收下,慢慢看~相信在你的帮助下我可以自己琢磨出来自已要的效果,感激不尽~
PS突然觉得倒影也帅爆了,回头做个溜冰场啥的{:2_275:}
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
12 小时
注册时间
2012-10-25
帖子
17
4
 楼主| 发表于 2012-11-28 14:42:20 | 只看该作者
匈魔剑 发表于 2012-11-28 09:11
你是说想用事件中的显示图片?
用那个反而麻烦了,还是用地图上显示行走图吧,很简单。

搞定了~我的设想更简单,直接把显示坐标平移就好了~其他都是抄你的{:2_251:}感激不尽~还有长知识了,我以为那一堆脚本会很长很长= =
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-10 02:28

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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