Project1

标题: 更改画面色调问题. [打印本页]

作者: 颠倒的彩虹    时间: 2007-12-29 04:27
标题: 更改画面色调问题.
如何让一个特定NPC图不受其画面变色的影响而变色? [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: 颠倒的彩虹    时间: 2007-12-29 04:27
标题: 更改画面色调问题.
如何让一个特定NPC图不受其画面变色的影响而变色? [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: 精灵使者    时间: 2007-12-29 06:11
p.s.可以用ps来更改图块。然后切换个相同的地图就好。需要变化的npc也做一个相同形状的图。
其实,我也想用这样的效果(彩色人物,黑白背景)
作者: 颠倒的彩虹    时间: 2007-12-29 06:43
你的意思说是弄个黑白地图再另存…? 可是这么做游戏体积会大些哦...
作者: Moying    时间: 2007-12-29 07:18
sprite = Sprite_Character.new(@viewport1,
$game_map.events[事件ID])
sprite.z = 1



注:更改事件图象的 Z 座标高于屏幕,不过也会在角色图象的上方




作者: 精灵使者    时间: 2007-12-29 07:44
角色本身的坐标怎么调整呢?
我以前曾经碰到图片、元件遮掩主角的事情。
作者: 魔影    时间: 2007-12-29 07:56
{/gg}
突然发现我那方法原来是生成一个新的图象(原事件移动就穿帮了。。),并不是更改原事件图象

靠 没试验清楚
作者: 美兽    时间: 2007-12-29 17:50
方法很多,
一、依LS所述。
二、临时将事件push到不受色调影响的视口,之后刷新场景。
三、利用图片覆盖,坐标根据,但要善用事件中的“脚本”。

作者: 颠倒的彩虹    时间: 2008-1-4 02:27
以下引用美兽于2007-12-29 9:50:13的发言:

方法很多,
一、依LS所述。
二、临时将事件push到不受色调影响的视口,之后刷新场景。
三、利用图片覆盖,坐标根据,但要善用事件中的“脚本”。


谁最好可以做个范例- -不太懂的说
作者: Moying    时间: 2008-1-4 02:39
将就着用我那个吧

建个事件 用脚本功能项  把那段脚本里“事件ID”改为那特定NPC的事件号码
并行处理,而且是一直处理着。特定NPC的事件最好不要设置移动{/gg}
作者: 心情de对白    时间: 2008-1-4 02:42
有另一种解决办法.貌似有点BT
想某张地图的NPC画面不变色
就在某个变色的地图并行显示NPC的图片!~~
这样看能解决不(我也没试过,可以54)
作者: 美兽    时间: 2008-1-4 17:20
仔细思索了下,
若要照顾遮挡变化,必须要将地图元件与角色从一个视口分离出来,稍显麻烦些。

以下为修改方式,大概会增加脚本冲突的风险。

一、Spriteset_Map类中
[quote]    @viewport3.z = 5000

的下面添加:
    @viewport1_5 = Viewport.new(0, 0, 640, 480)
    @viewport1_5.z = 5   

建造收容无家可归孩子们的居所。[/quote]

二、Spriteset_Map类中   
[quote]@viewport3.dispose

的下面添加:
    @viewport1_5.dispose

为孩子们留条后路。[/quote]

三、Spriteset_Map类中
[quote]    for i in $game_map.events.keys.sort
      sprite = Sprite_Character.new(@viewport1, $game_map.events)
      @character_sprites.push(sprite)
    end
    @character_sprites.push(Sprite_Character.new(@viewport1, $game_player))

修改为:
    for i in $game_map.events.keys.sort
      sprite = Sprite_Character.new(@viewport1_5, $game_map.events)
      @character_sprites.push(sprite)
    end
    @character_sprites.push(Sprite_Character.new(@viewport1_5, $game_player))

将孩子们残忍的遣散。[/quote]

四、Spriteset_Map类中
[quote]    @timer_sprite.update

的下面添加:
    for sprite in @character_sprites
        (sprite.tone = $game_screen.tone) if sprite.can_change_tone?
        sprite.ox = $game_screen.shake
    end

若是无名无姓的黑孩子,则还以颜色。[/quote]

五、Sprite_Character类中
[quote]  def update

的上面添加:
  def can_change_tone?
      @character.instance_of?(Game_Player) ?
      name = "" : name = @character.instance_variable_get("@event").name
      name[/_orz/].nil? ? (return true) : (return false)
  end  

良心发现,若孩子们有御赐之名“_orz”,则不再摧残。[/quote]


PS:LZ好卑鄙。

雾都孤儿



[LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: 精灵使者    时间: 2008-1-4 17:35
美兽殿的这个脚本效果不错啊。
建议在技术区发布一份。恩恩。
作者: 颠倒的彩虹    时间: 2008-1-4 18:40
以下引用美兽于2008-1-4 9:20:27的发言:

仔细思索了下,
若要照顾遮挡变化,必须要将地图元件与角色从一个视口分离出来,稍显麻烦些。

以下为修改方式,大概会增加脚本冲突的风险。


一、Spriteset_Map类中

   @viewport3.z = 5000

的下面添加:

   @viewport1_5 = Viewport.new(0, 0, 640, 480)
   @viewport1_5.z = 5   

建造收容无家可归孩子们的居所。



二、Spriteset_Map类中   

@viewport3.dispose

的下面添加:

   @viewport1_5.dispose

为孩子们留条后路。



三、Spriteset_Map类中

   for i in $game_map.events.keys.sort
     sprite = Sprite_Character.new(@viewport1, $game_map.events)
     @character_sprites.push(sprite)
   end
   @character_sprites.push(Sprite_Character.new(@viewport1, $game_player))

修改为:

   for i in $game_map.events.keys.sort
     sprite = Sprite_Character.new(@viewport1_5, $game_map.events)
     @character_sprites.push(sprite)
   end
   @character_sprites.push(Sprite_Character.new(@viewport1_5, $game_player))

将孩子们残忍的遣散。



四、Spriteset_Map类中

   @timer_sprite.update

的下面添加:

   for sprite in @character_sprites
       (sprite.tone = $game_screen.tone) if sprite.can_change_tone?
       sprite.ox = $game_screen.shake
   end

若是无名无姓的黑孩子,则还以颜色。



五、Sprite_Character类中

def update

的上面添加:

def can_change_tone?
     @character.instance_of?(Game_Player) ?
     name = "" : name = @character.instance_variable_get("@event").name
     name[/_orz/].nil? ? (return true) : (return false)
end

良心发现,若孩子们有御赐之名“_orz”,则不再摧残。



PS:LZ好卑鄙。

雾都孤儿






[本贴由作者于 2008-1-4 9:26:01 最后编辑]


-V-  谢谢啦




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