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

Project1

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

[已经过期] 求XP版的影子系统

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
420 小时
注册时间
2011-3-13
帖子
251
跳转到指定楼层
1
发表于 2013-12-4 20:41:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
1.我的行走图是4方向的
2.要求有一个太阳,影子会随着太阳位置发生合理的扭曲
3.貌似有个是vx版的,我想要个xp版的
感激不尽

Lv3.寻梦者

梦石
0
星屑
3846
在线时间
1966 小时
注册时间
2013-1-3
帖子
9536
2
发表于 2013-12-4 21:25:58 | 只看该作者
请搜索"太阳精灵",精灵使者补充过一个XP版
《宿愿·寻剑篇》正式版已经发布!快去看看!点击进入论坛发布贴
回复 支持 反对

使用道具 举报

Lv2.观梦者

故九江太守

梦石
0
星屑
628
在线时间
2166 小时
注册时间
2012-12-5
帖子
4464
3
发表于 2013-12-4 22:09:05 | 只看该作者
当一个不透明的物体靠近光源时阴影创建,
因此,什么是光源(例如:火)
把注释(事件页1)的注释写'S'(不带'号)

插入此段脚本到Main前面

RUBY 代码复制
  1. #A shadow is created when an opaque object is near a light source,
  2. #so in the event that is the light source (example:fire)
  3. #put a comment (on page 1) and simlpy write 's' (without the apostraphys)
  4.  
  5. #Insert a new class called Character_Shadow above MAIN  
  6.  
  7. #==============================================================================
  8. # 仭 Sprite_Shadow (Sprite_Ombre )
  9. # Based on Genzai Kawakami's shadows, dynamisme&features by Rataime, extra features Boushy
  10. #==============================================================================
  11.  
  12. CATERPILLAR_COMPATIBLE = true
  13.  
  14. class Game_Party
  15. attr_reader :characters
  16. end
  17.  
  18. class Sprite_Shadow < RPG::Sprite
  19.  
  20. attr_accessor :character
  21.  
  22. def initialize(viewport, character = nil,source = nil,anglemin=0,anglemax=0,distancemax=0)
  23.    super(viewport)
  24.    @anglemin=anglemin.to_f
  25.    @anglemax=anglemax.to_f
  26.    @distancemax=distancemax.to_f
  27.    @character = character
  28.    [url=home.php?mod=space&uid=171370]@source[/url] = source
  29.    update
  30. end
  31.  
  32. def update
  33.    super
  34.  
  35.    if @tile_id != @character.tile_id or
  36.       @character_name != @character.character_name or
  37.       @character_hue != @character.character_hue
  38.      @tile_id = @character.tile_id
  39.      @character_name = @character.character_name
  40.      @character_hue = @character.character_hue
  41.      if @tile_id >= 384
  42.        self.bitmap = RPG::Cache.tile($game_map.tileset_name,
  43.          @tile_id, @character.character_hue)
  44.        self.src_rect.set(0, 0, 32, 32)
  45.        self.ox = 16
  46.        self.oy = 32
  47.      else
  48.        self.bitmap = RPG::Cache.character(@character.character_name,
  49.          @character.character_hue)
  50.        @cw = bitmap.width / 4
  51.        @ch = bitmap.height / 4
  52.        self.ox = @cw / 2
  53.        self.oy = @ch
  54.      end
  55.    end
  56.    self.visible = (not @character.transparent)
  57.    if @tile_id == 0
  58.      sx = @character.pattern * @cw
  59.      sy = (@character.direction - 2) / 2 * @ch
  60.      if self.angle>90 or angle<-90
  61.        if @character.direction== 6
  62.               sy = ( 4- 2) / 2 * @ch
  63.        end
  64.        if @character.direction== 4
  65.               sy = ( 6- 2) / 2 * @ch
  66.        end
  67.        if @character.direction== 2
  68.               sy = ( 8- 2) / 2 * @ch
  69.        end
  70.        if @character.direction== 8
  71.               sy = ( 2- 2) / 2 * @ch
  72.        end
  73.      end
  74.      self.src_rect.set(sx, sy, @cw, @ch)
  75.    end
  76.    self.x = @character.screen_x
  77.    self.y = @character.screen_y-5
  78.    self.z = @character.screen_z(@ch)-1
  79.    self.opacity = @character.opacity
  80.    self.blend_type = @character.blend_type
  81.    self.bush_depth = @character.bush_depth
  82.    if @character.animation_id != 0
  83.      animation = $data_animations[@character.animation_id]
  84.      animation(animation, true)
  85.      @character.animation_id = 0
  86.    end
  87.    @deltax=@source.x-self.x
  88.    @deltay= @source.y-self.y
  89.    self.angle = 57.3*Math.atan2(@deltax, @deltay )
  90.    @angle_trigo=self.angle+90
  91.    if @angle_trigo<0
  92.      @angle_trigo=360+@angle_trigo
  93.    end
  94.    self.color = Color.new(0, 0, 0)
  95.    @distance = ((@deltax ** 2) + (@deltay ** 2))
  96.    if$game_map.shadows==-1
  97.      self.opacity = 0
  98.    else
  99.      self.opacity = 1200000/(@distance+6000)   
  100.    end
  101.    @distance = @distance ** 0.5
  102.    if @distancemax !=0 and @distance>=@distancemax
  103.      self.opacity=0
  104.    end
  105.    if @anglemin !=0 or @anglemax !=0
  106.       if (@angle_trigo<@anglemin or @angle_trigo>@anglemax) and @anglemin<@anglemax
  107.         self.opacity=0
  108.       end
  109.       if (@angle_trigo<@anglemin and @angle_trigo>@anglemax) and @anglemin>@anglemax
  110.         self.opacity=0
  111.       end     
  112.    end
  113. end
  114. end
  115.  
  116. #===================================================
  117. # 仴 CLASS Sprite_Character edit
  118. #===================================================
  119.  
  120. class Sprite_Character < RPG::Sprite
  121. alias shadow_initialize initialize
  122.  
  123. def initialize(viewport, character = nil)
  124.    @character = character
  125.    super(viewport)
  126.    @ombrelist=[]
  127.    if (character.is_a?(Game_Event) and character.list!=nil and character.list[0].code == 108 and character.list[0].parameters == ["s"])
  128.      if (character.list[1]!=nil and character.list[1].code == 108)
  129.        @anglemin=character.list[1].parameters[0]
  130.      end
  131.      if (character.list[2]!=nil and character.list[2].code == 108)
  132.        @anglemax=character.list[2].parameters[0]
  133.      end
  134.      if (character.list[3]!=nil and character.list[3].code == 108)
  135.        @distancemax=character.list[3].parameters[0]
  136.      end  
  137.     for i in $game_map.events.keys.sort
  138.      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"])
  139.        @ombrelist[i+1] = Sprite_Shadow.new(viewport, $game_map.events[i],self,@anglemin,@anglemax,@distancemax)
  140.      end
  141.     end
  142.     @ombrelist[1] = Sprite_Shadow.new(viewport, $game_player,self,@anglemin,@anglemax,@distancemax)
  143. #===================================================
  144. # 仠 Compatibility with fukuyama's caterpillar script
  145. #===================================================
  146. if CATERPILLAR_COMPATIBLE and $game_party.characters!=nil
  147.  
  148. for member in $game_party.characters
  149.    @ombrelist.push(Sprite_Shadow.new(viewport, member,self,@anglemin,@anglemax,@distancemax))
  150. end
  151.  
  152. end
  153. #===================================================
  154. # 仠 End of the compatibility
  155. #===================================================
  156.    end
  157.    shadow_initialize(viewport, @character)
  158. end
  159.  
  160. alias shadow_update update
  161.  
  162. def update
  163.    shadow_update
  164.    if @ombrelist!=[]
  165.      for i in [email]1..@ombrelist.size[/email]
  166.        if @ombrelist[i]!=nil
  167.          @ombrelist[i].update
  168.        end
  169.      end
  170.    end
  171. end  
  172.  
  173. end
  174.  
  175. #===================================================
  176. # 仴 CLASS Scene_Save edit
  177. #===================================================
  178. class Scene_Save < Scene_File
  179.  
  180. alias shadows_write_save_data write_save_data
  181.  
  182. def write_save_data(file)
  183.    $game_map.shadows = nil
  184.    shadows_write_save_data(file)
  185. end
  186. end
  187.  
  188. #===================================================
  189. # 仴 CLASS Game_Map edit
  190. #===================================================
  191. class Game_Map
  192. attr_accessor :shadows
  193. end

评分

参与人数 1星屑 +60 收起 理由
myownroc + 60 我很赞同

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
420 小时
注册时间
2011-3-13
帖子
251
4
 楼主| 发表于 2013-12-5 00:21:33 | 只看该作者
你最珍贵 发表于 2013-12-4 22:09
#A shadow is created when an opaque object is near a light source,
#so in the event that is the li ...

28行发生错误

点评

[url=home.php?mod=space&uid=171370]@source[/url] = source 改成@source = source 再出现问题继续寻找~~!!!  发表于 2013-12-5 00:39
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-18 03:01

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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