Project1

标题: 游魂野鬼……角色与npc视线(用脚本的) [打印本页]

作者: 160445706    时间: 2011-7-8 13:12
标题: 游魂野鬼……角色与npc视线(用脚本的)
本帖最后由 160445706 于 2011-7-9 11:44 编辑

使用方法:放在game_player后面
调用方法:在设置移动路线的脚本那项里面写上def后面的标签名
欢迎复制、改造

  1. class Game_Character
  2.   def py_eyes
  3.   if @x > $game_player.x
  4.      new_x = @x - $game_player.x
  5.   else
  6.      new_x = $game_player.x - @x
  7.   end
  8.   if @y > $game_player.y
  9.      new_y = @x - $game_player.y
  10.   else
  11.      new_y = $game_player.y - @y
  12.    end
  13.   if (new_y + new_x) >= 10
  14.     @opacity = 35
  15.     end
  16.   if (new_y + new_x) <= 9
  17.     @opacity = 60
  18.     end
  19.   if (new_y + new_x) <= 8
  20.     @opacity = 90
  21.     end
  22.   if (new_y + new_x) <= 7
  23.     @opacity = 120
  24.     end
  25.   if (new_y + new_x) <= 6
  26.     @opacity = 150
  27.     end
  28.   if (new_y + new_x) <= 5
  29.     @opacity = 180
  30.     end
  31.   if (new_y + new_x) <= 4
  32.     @opacity = 210
  33.     end
  34.   if (new_y + new_x) <= 3
  35.     @opacity = 220
  36.   end
  37.   if (new_y + new_x) <= 2
  38.     @opacity = 255
  39.   end
  40. end
  41. def npc_eyes
  42.     if @x > $game_player.x
  43.      new_x = @x - $game_player.x
  44.   else
  45.      new_x = $game_player.x - @x
  46.   end
  47.   if self.y > $game_player.y
  48.      new_y = @x - $game_player.y
  49.   else
  50.      new_y = $game_player.y - @y
  51.    end
  52.   if (new_y + new_x) <= 5
  53.     move_toward_player
  54.     end
  55.   if (new_y + new_x) > 5
  56.     move_random
  57.     end

  58. end
  59. end
复制代码

作者: 懒De说    时间: 2011-7-8 15:22
给个效果图看看吧
作者: a19981007a    时间: 2011-7-8 15:39
主要效果是什么?
作者: 忧雪の伤    时间: 2011-7-8 16:40
本帖最后由 忧雪の伤 于 2011-7-8 16:47 编辑
  1. class Game_Character
  2.   def auto_ray
  3.     target = equal?($game_player) ? self : $game_player
  4.     x = [@x - target.x, target.x - @x].max
  5.     y = [@y - target.y, target.y - @y].max
  6.     @opacity = [255 - (x + y) * 32, 0].max
  7.   end
  8. end
复制代码


事件,移动规则,自定义,移动路线,脚本,auto_ray。


所以楼主的脚本简洁度还需要加强哦。


作者: fux2    时间: 2011-7-8 17:36
本帖最后由 fux2 于 2011-7-8 17:37 编辑
忧雪の伤 发表于 2011-7-8 16:40


事件,移动规则,自定义,移动路线,脚本,auto_ray。

  1. class Game_Character
  2.   ["x","y"].each {|i| eval"define_method(:f#{i}){@real_#{i}/4}"}
  3.   define_method(:auto_ray){f = equal?($game_player)?self:$game_player
  4.   @opacity = 255-(fx-f.fx).abs-(fy-f.fy).abs}
  5. end
复制代码
0v0温柔渐变透明色
作者: 忧雪の伤    时间: 2011-7-8 17:48
fux2 发表于 2011-7-8 17:36
0v0温柔渐变透明色
  1. ["x","y"].each {|i| eval"define_method(:f#{i}){@real_#{i}/4}"}
复制代码
喂喂,这东西……
  1. define_method(:auto_ray)
复制代码
……
……
确实比我的好,变成了用像素坐标。不过那东西其实我想过,就是不清楚real到底是啥数,没有除以四……
作者: 160445706    时间: 2011-7-9 17:20
抱歉,这里不是比赛场地……
作者: 完の    时间: 2011-7-9 18:46
提示: 作者被禁止或删除 内容自动屏蔽




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