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

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: 步平凡
打印 上一主题 下一主题

[已经解决] 求助~~XP版本加人物影子的脚本~~

 关闭 [复制链接]

Lv1.梦旅人

虱子

梦石
0
星屑
121
在线时间
1782 小时
注册时间
2010-6-19
帖子
3597
11
发表于 2011-8-8 21:43:11 | 只看该作者
步平凡 发表于 2011-8-8 21:29
我试的就是这个~~不能用

做了个范例,LZ看看吧
Project5.rar (195.42 KB, 下载次数: 72)

点评

我用的是八方向行走图,在地图上有两个影子,请问怎样解决?  发表于 2011-8-12 19:45
为什么还是不行?  发表于 2011-8-8 22:12
明白了~~谢了!  发表于 2011-8-8 21:49

http://rpg.blue/thread-175056-1-2.html
PVZ型塔防物一个
http://rpg.blue/thread-155199-1-2.html
RMXP技术讨论区手动认可帖,得到答案请认可
回复

使用道具 举报

Lv3.寻梦者

永久的旅行者

梦石
1
星屑
110
在线时间
404 小时
注册时间
2006-12-13
帖子
3091

开拓者贵宾第3届短篇游戏大赛主流游戏组季军第5届短篇游戏比赛季军

12
发表于 2011-8-8 21:45:12 | 只看该作者
http://rpg.blue/thread-95988-1-1.html
我反倒可以用...

我直接给你工程看看吧...
Project1.rar (188.14 KB, 下载次数: 28)
这是一个独立的脚本,并不需要其他的脚本做支援...

另外,这个脚本只有108行左右...那个出error的175行是哪里来的呢?
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3532
在线时间
595 小时
注册时间
2010-6-28
帖子
85
13
 楼主| 发表于 2011-8-9 07:21:07 | 只看该作者
我用的是天之痕的素材,不知这个影子能不能用
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
344
在线时间
185 小时
注册时间
2007-9-2
帖子
168
14
发表于 2011-8-11 23:24:56 | 只看该作者
  1. #使用方法:不透明的物体在光源旁边会产生一个阴影。
  2. #所以,在光源的事件里面(例如火),请在第一页加上一个注释“s”(请不要带引号)
  3. #然后将此脚本命名为“人物阴影”插入到main上方即可。
  4. #==============================================================================
  5. # ■ 阴影精灵 (渐变精灵 )
  6. # 以 Genzai Kawakami的阴影脚本为基础,
  7. # Rataime为其重写和更新,
  8. # Boushy 为其添加附属功能
  9. # 精灵使者汉化
  10. # 过眼云烟修改,实现八方向八帧
  11. #==============================================================================
  12. CATERPILLAR_COMPATIBLE = true
  13. class Game_Party
  14. attr_reader :characters
  15. end
  16. class Sprite_Shadow < RPG::Sprite
  17. attr_accessor :character
  18. def initialize(viewport, character = nil,source = nil,anglemin=0,anglemax=0,distancemax=0)
  19. super(viewport)
  20. @anglemin=anglemin.to_f
  21. @anglemax=anglemax.to_f
  22. @distancemax=distancemax.to_f
  23. @character = character
  24. @source = source
  25. update
  26. end
  27. def update
  28. super
  29. if @tile_id != @character.tile_id or
  30. @character_name != @character.character_name or
  31. @character_hue != @character.character_hue
  32. @tile_id = @character.tile_id
  33. @character_name = @character.character_name
  34. @character_hue = @character.character_hue
  35. if @tile_id >= 384
  36. self.bitmap = RPG::Cache.tile($game_map.tileset_name,
  37. @tile_id, @character.character_hue)
  38. self.src_rect.set(0, 0, 32, 32)
  39. self.ox = 16
  40. self.oy = 32
  41. else
  42. self.bitmap = RPG::Cache.character(@character.character_name,
  43. @character.character_hue)
  44. @cw = bitmap.width / 8
  45. @ch = bitmap.height / 8
  46. self.ox = @cw / 2
  47. self.oy = @ch
  48. end
  49. end
  50. self.visible = (not @character.transparent)
  51. if @tile_id == 0
  52. sx = @character.pattern * @cw
  53. sy = (@character.direction - 2) / 2 * @ch
  54. if self.angle>90 or angle<-90
  55. if @character.direction== 6
  56. sy = ( 4- 2) / 2 * @ch
  57. end
  58. if @character.direction== 4
  59. sy = ( 6- 2) / 2 * @ch
  60. end
  61. if @character.direction== 2
  62. sy = ( 8- 2) / 2 * @ch
  63. end
  64. if @character.direction== 8
  65. sy = ( 2- 2) / 2 * @ch
  66. end
  67. end
  68. self.src_rect.set(sx, sy, @cw, @ch)
  69. end
  70. self.x = @character.screen_x
  71. self.y = @character.screen_y-5
  72. self.z = @character.screen_z(@ch)-1
  73. self.opacity = @character.opacity
  74. self.blend_type = @character.blend_type
  75. self.bush_depth = @character.bush_depth
  76. if @character.animation_id != 0
  77. animation = $data_animations[@character.animation_id]
  78. animation(animation, true)
  79. @character.animation_id = 0
  80. end
  81. @[email protected]
  82. @deltay= @source.y-self.y
  83. self.angle = 57.3*Math.atan2(@deltax, @deltay )
  84. @angle_trigo=self.angle+90
  85. if @angle_trigo<0
  86. @angle_trigo=360+@angle_trigo
  87. end
  88. self.color = Color.new(0, 0, 0)
  89. @distance = ((@deltax ** 2) + (@deltay ** 2))
  90. if$game_map.shadows==-1
  91. self.opacity = 0
  92. else
  93. self.opacity = 1200000/(@distance+6000)
  94. end
  95. @distance = @distance ** 0.5
  96. if @distancemax !=0 and @distance>=@distancemax
  97. self.opacity=0
  98. end
  99. if @anglemin !=0 or @anglemax !=0
  100. if (@angle_trigo<@anglemin or @angle_trigo>@anglemax) and @anglemin<@anglemax
  101. self.opacity=0
  102. end
  103. if (@angle_trigo<@anglemin and @angle_trigo>@anglemax) and @anglemin>@anglemax
  104. self.opacity=0
  105. end
  106. end
  107. end
  108. end
  109. #===================================================
  110. # ■ 重定义 Sprite_Character
  111. #===================================================
  112. class Sprite_Character < RPG::Sprite
  113. alias shadow_initialize initialize
  114. def initialize(viewport, character = nil)
  115. @character = character
  116. super(viewport)
  117. @ombrelist=[]
  118. if (character.is_a?(Game_Event) and character.list!=nil and character.list[0].code == 108 and character.list[0].parameters == ["s"])
  119. if (character.list[1]!=nil and character.list[1].code == 108)
  120. @anglemin=character.list[1].parameters[0]
  121. end
  122. if (character.list[2]!=nil and character.list[2].code == 108)
  123. @anglemax=character.list[2].parameters[0]
  124. end
  125. if (character.list[3]!=nil and character.list[3].code == 108)
  126. @distancemax=character.list[3].parameters[0]
  127. end
  128. for i in $game_map.events.keys.sort
  129. if ($game_map.events[i].is_a?(Game_Event) and $game_map.events[i].list!=nil and $game_map.events[i].list[0].code == 108 and $game_map.events[i].list[0].parameters == ["o"])
  130. @ombrelist[i+1] = Sprite_Shadow.new(viewport, $game_map.events[i],self,@anglemin,@anglemax,@distancemax)
  131. end
  132. end
  133. @ombrelist[1] = Sprite_Shadow.new(viewport, $game_player,self,@anglemin,@anglemax,@distancemax)
  134. #===================================================
  135. # ● 原装人物跟随兼容脚本
  136. #===================================================
  137. if CATERPILLAR_COMPATIBLE and $game_party.characters!=nil
  138. for member in $game_party.characters
  139. @ombrelist.push(Sprite_Shadow.new(viewport, member,self,@anglemin,@anglemax,@distancemax))
  140. end
  141. end
  142. #===================================================
  143. # ● 兼容脚本结束
  144. #===================================================
  145. end
  146. shadow_initialize(viewport, @character)
  147. end
  148. alias shadow_update update
  149. def update
  150. shadow_update
  151. if @ombrelist!=[]
  152. for i in [email protected]
  153. if @ombrelist[i]!=nil
  154. @ombrelist[i].update
  155. end
  156. end
  157. end
  158. end
  159. end
  160. #===================================================
  161. # ■ 新定义类Scene_Save
  162. #===================================================
  163. class Scene_Save < Scene_File
  164. alias shadows_write_save_data write_save_data
  165. def write_save_data(file)
  166. $game_map.shadows = nil
  167. shadows_write_save_data(file)
  168. end
  169. end
  170. #===================================================
  171. # ■ 新定义类 Game_Map
  172. #===================================================
  173. class Game_Map
  174. attr_accessor :shadows
  175. end
复制代码
新手作品:《幻想》———缓慢制作中———
   
合击技能!哇哈哈~~~                                                                     金山寺求宝~~~
回复

使用道具 举报

Lv1.梦旅人

虱子

梦石
0
星屑
121
在线时间
1782 小时
注册时间
2010-6-19
帖子
3597
15
发表于 2011-8-12 20:07:25 | 只看该作者
步平凡 发表于 2011-8-9 07:21
我用的是天之痕的素材,不知这个影子能不能用

176和179行的两个4改成8

http://rpg.blue/thread-175056-1-2.html
PVZ型塔防物一个
http://rpg.blue/thread-155199-1-2.html
RMXP技术讨论区手动认可帖,得到答案请认可
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3532
在线时间
595 小时
注册时间
2010-6-28
帖子
85
16
 楼主| 发表于 2011-8-12 20:09:06 | 只看该作者
Wind2010 发表于 2011-8-12 20:07
176和179行的两个4改成8

我改了,但是影子只显示一半

点评

好了,谢谢了!  发表于 2011-8-12 20:17
XD好吧我错了应该改@ch行而不是改@cw行  发表于 2011-8-12 20:13
@ch的不用改,只改有@cw的  发表于 2011-8-12 20:13
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-28 10:46

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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