Code: |
---------- Erreur de script : MAPLINK ---------- ----- Type NameError ----- Message uninitialized constant Spriteset_Map::Sprite_Character ----- Position dans MAPLINK Ligne 124 ----- Backtrace Script : MAPLINK | Ligne : 124 | Méthode : in `initialize' Script : MAPLINK | Ligne : 123 | Méthode : in `each' Script : MAPLINK | Ligne : 123 | Méthode : in `initialize' Script : Scene_Map | Ligne : 13 | Méthode : in `new' Script : Scene_Map | Ligne : 13 | Méthode : in `main' Script : Main | Ligne : 49 |
Code: |
sprite = Sprite_Character.new(@viewport1, $game_map.events[i]) |
Code: |
# #============================================================================== # # ■ Sprite_Character modifié (voir Sprite_Ombre) # #------------------------------------------------------------------------------ # # キャラクター表示用のスプライトです。 Game_Character クラスのインスタンスを # # 監視し、スプライトの状態を自動的に変化させます。 # #============================================================================== # # class Sprite_Character < RPG::Sprite # #-------------------------------------------------------------------------- # # ● 公開インスタンス変数 # #-------------------------------------------------------------------------- # attr_accessor :character # キャラクター # #-------------------------------------------------------------------------- # # ● オブジェクト初期化 # # viewport : ビューポート # # character : キャラクター (Game_Character) # #-------------------------------------------------------------------------- # def initialize(viewport, character = nil) # super(viewport) # @character = character # @ombrelist=[] # if (character.is_a?(Game_Event) and character.list!=nil and character.list[0].code == 108 and character.list[0].parameters == ["s"]) # if (character.list[1]!=nil and character.list[1].code == 108) # @anglemin=character.list[1].parameters.to_s # end # if (character.list[2]!=nil and character.list[2].code == 108) # @anglemax=character.list[2].parameters.to_s # end # if (character.list[3]!=nil and character.list[3].code == 108) # @distancemax=character.list[3].parameters.to_s # end # for i in $game_map.events.keys.sort # 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"]) # @ombrelist[i+1] = Sprite_Ombre.new(viewport, $game_map.events[i],self,@anglemin,@anglemax,@distancemax) # end # end # @ombrelist[1] = Sprite_Ombre.new(viewport, $game_player,self,@anglemin,@anglemax,@distancemax) # end # update # end # #-------------------------------------------------------------------------- # # ● フレーム更新 # #-------------------------------------------------------------------------- # def update # super # # タイル ID、ファイル名、色相のどれかが現在のものと異なる場合 # if @tile_id != @character.tile_id or # @character_name != @character.character_name or # @character_hue != @character.character_hue # # タイル ID とファイル名、色相を記憶 # @tile_id = @character.tile_id # @character_name = @character.character_name # @character_hue = @character.character_hue # # タイル ID が有効な値の場合 # if @tile_id >= 384 # self.bitmap = RPG::Cache.tile($game_map.tileset_name, # @tile_id, @character.character_hue) # self.src_rect.set(0, 0, 32, 32) # self.ox = 16 # self.oy = 32 # # タイル ID が無効な値の場合 # else # self.bitmap = RPG::Cache.character(@character.character_name, # @character.character_hue) # @cw = bitmap.width / 4 # @ch = bitmap.height / 4 # self.ox = @cw / 2 # self.oy = @ch # end # end # # 可視状態を設定 # self.visible = (not @character.transparent) # # グラフィックがキャラクターの場合 # if @tile_id == 0 # # 転送元の矩形を設定 # sx = @character.pattern * @cw # sy = (@character.direction - 2) / 2 * @ch # self.src_rect.set(sx, sy, @cw, @ch) # end # # スプライトの座標を設定 # self.x = @character.screen_x # self.y = @character.screen_y # self.z = @character.screen_z(@ch) # # 不透明度、合成方法、茂み深さを設定 # self.opacity = @character.opacity # self.blend_type = @character.blend_type # self.bush_depth = @character.bush_depth # # アニメーション # if @character.animation_id != 0 # animation = $data_animations[@character.animation_id] # animation(animation, true) # @character.animation_id = 0 # end # if @ombrelist!=[] # for i in 1..@omberlist.size # if @ombrelist[i]!=nil # @ombrelist[i].update # end # end # end # end # end |
Code: |
# #============================================================================== # # ■ Sprite_Ombre # # Base par Genzai Kawakami, dynamisme par Rataime, améliorations par Boushy # #------------------------------------------------------------------------------ # # キャラクター表示用のスプライトです。 Game_Character クラスのインスタンスを # # 監視し、スプライトの状態を自動的に変化させます。 # #============================================================================== # # class Sprite_Ombre < RPG::Sprite # #-------------------------------------------------------------------------- # # ● 公開インスタンス変数 # #-------------------------------------------------------------------------- # attr_accessor :character # キャラクター # #-------------------------------------------------------------------------- # # ● オブジェクト初期化 # # viewport : ビューポート # # character : キャラクター (Game_Character) # #-------------------------------------------------------------------------- # def initialize(viewport, character = nil,source = nil,anglemin=0,anglemax=0,distancemax=0) # super(viewport) # @anglemin=anglemin.to_f # @anglemax=anglemax.to_f # @distancemax=distancemax.to_f # @character = character # @source = source # update # end # #-------------------------------------------------------------------------- # # ● フレーム更新 # #-------------------------------------------------------------------------- # def update # super # # タイル ID、ファイル名、色相のどれかが現在のものと異なる場合 # if @tile_id != @character.tile_id or # @character_name != @character.character_name or # @character_hue != @character.character_hue # # タイル ID とファイル名、色相を記憶 # @tile_id = @character.tile_id # @character_name = @character.character_name # @character_hue = @character.character_hue # # タイル ID が有効な値の場合 # if @tile_id >= 384 # self.bitmap = RPG::Cache.tile($game_map.tileset_name, # @tile_id, @character.character_hue) # self.src_rect.set(0, 0, 32, 32) # self.ox = 16 # self.oy = 32 # # タイル ID が無効な値の場合 # else # self.bitmap = RPG::Cache.character(@character.character_name, # @character.character_hue) # @cw = bitmap.width / 4 # @ch = bitmap.height / 4 # self.ox = @cw / 2 # self.oy = @ch # end # end # # 可視状態を設定 # self.visible = (not @character.transparent) # # グラフィックがキャラクターの場合 # if @tile_id == 0 # # 転送元の矩形を設定 # sx = @character.pattern * @cw # @direct=@character.direction # # if self.angle>90 or angle<-90 # # if @direct== 6 # sy = ( 4- 2) / 2 * @ch#@character.direction # end # if @direct== 4 # sy = ( 6- 2) / 2 * @ch # end # if @direct != 4 and @direct !=6 # sy = (@character.direction - 2) / 2 * @ch # end # else # sy = (@character.direction - 2) / 2 * @ch # end # self.src_rect.set(sx, sy, @cw, @ch) # end # # スプライトの座標を設定 # self.x = @character.screen_x # self.y = @character.screen_y-5 # self.z = @character.screen_z(@ch)-1 # # 不透明度、合成方法、茂み深さを設定 # self.opacity = @character.opacity # self.blend_type = @character.blend_type # self.bush_depth = @character.bush_depth # # アニメーション # if @character.animation_id != 0 # animation = $data_animations[@character.animation_id] # animation(animation, true) # @character.animation_id = 0 # end # @deltax=@source.x-self.x # @deltay= @source.y-self.y # self.angle = 57.3*Math.atan2(@deltax, @deltay ) # @angle_trigo=self.angle+90 # if @angle_trigo<0 # @angle_trigo=360+@angle_trigo # end # self.color = Color.new(0, 0, 0) # @distance = ((@deltax ** 2) + (@deltay ** 2)) # self.opacity = 1200000/(@distance+6000) # @distance = @distance ** 0.5 # if @distancemax !=0 and @distance>=@distancemax # self.opacity=0 # end # if @anglemin !=0 or @anglemax !=0 # if @angle_trigo<@anglemin or @angle_trigo>@anglemax # self.opacity=0 # end # end # end # end |