sam fisher Nouveau Membre
Messages : 13 Date d'inscription : 26/05/2008
| Sujet: camera dynamique Ven 30 Mai - 20:59 | |
| voici un script pour zoomer sur les enemis (exelent pour les jeux de ) il de rpgmakeronline Créez un nouvel emplacement au dessus de Main et nommer le Camera. # ?¥?£?¥ XRXS_BP 8. ƒoƒgƒ‹ƒoƒbƒN?EFull-View?{‰?“®ƒJƒ?ƒ‰ ver..05d ?¥?£?¥ # by ??‰? ??“y #============================================================================== # ?¡ Game_Battler #============================================================================== class Game_Battler #-------------------------------------------------------------------------- # ?œ ’?‰??EŒ?ŠJƒCƒ“ƒXƒ^ƒ“ƒX•??” #-------------------------------------------------------------------------- attr_accessor _pos # ƒoƒgƒ‹ƒtƒB?[ƒ‹ƒh?@‰¡?@ˆ?’u(+‚׉E?@) attr_accessor :y_pos # ƒoƒgƒ‹ƒtƒB?[ƒ‹ƒh ?‚‚³ ˆ?’u(+‚×???@) attr_accessor :z_pos # ƒoƒgƒ‹ƒtƒB?[ƒ‹ƒh‰œ?s‚«ˆ?’u(+‚׎?‘O) attr_accessor :zoom # Œ»??‚?ƒY?[ƒ€”{—¦ end #============================================================================== # ?¡ Game_Actor #============================================================================== class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # ?œ ’?‰??EŒ?ŠJƒCƒ“ƒXƒ^ƒ“ƒX•??” #-------------------------------------------------------------------------- attr_reader :actor_in_battlefield # ƒAƒNƒ^?[‚?ƒtƒB?[ƒ‹ƒh‚? #-------------------------------------------------------------------------- # ?œ ƒZƒbƒgƒAƒbƒv #-------------------------------------------------------------------------- alias xrxs_bp8_setup setup def setup(actor_id) xrxs_bp8_setup(actor_id) # ‹@”\\"ƒAƒNƒ^?[‚?ƒtƒB?[ƒ‹ƒh‚?" # true‚?—D??‚·‚? @actor_in_battlefield = false if @actor_in_battlefield != true end end #============================================================================== # ?¡ Game_Enemy #============================================================================== class Game_Enemy < Game_Battler #-------------------------------------------------------------------------- # ?œ ’?‰??EŒ?ŠJƒCƒ“ƒXƒ^ƒ“ƒX•??” #-------------------------------------------------------------------------- attr_reader :actor_in_battlefield # ƒAƒNƒ^?[‚?ƒtƒB?[ƒ‹ƒh‚? #-------------------------------------------------------------------------- # ?œ ƒIƒuƒWƒFƒNƒg?‰Š?‰» #-------------------------------------------------------------------------- alias xrxs_bp8_initialize initialize def initialize(troop_id, member_index) @actor_in_battlefield = false @x_pos = $data_troops[troop_id].members[member_index].x - 320 @y_pos = -($data_troops[troop_id].members[member_index].y - 304) @field_x_offset = -192 @field_y_offset = -144 @z_pos = 0 @zoom = 1.00 xrxs_bp8_initialize(troop_id, member_index) end #-------------------------------------------------------------------------- # ?œ ƒoƒgƒ‹‰?–? X ??•W‚?Ž?“¾ #-------------------------------------------------------------------------- def screen_x $xcam_x = 0 if $xcam_x == nil return 320 - @field_x_offset + (@x_pos.to_i - $xcam_x) * @zoom end #-------------------------------------------------------------------------- # ?œ ƒoƒgƒ‹‰?–? Y ??•W‚?Ž?“¾ #-------------------------------------------------------------------------- def screen_y $xcam_y = 0 if $xcam_y == nil return 240 - @field_y_offset + (-@y_pos.to_i + 64 + $xcam_y) * @zoom end end #============================================================================== # ?¡ Sprite_Battler #============================================================================== class Sprite_Battler < RPG::Sprite #-------------------------------------------------------------------------- # ?œ ƒtƒŒ?[ƒ€?X?V #-------------------------------------------------------------------------- alias xrxs_bp8_update update def update # ?‰Š?‰» @z_offset = 0 # –?‚· xrxs_bp8_update # ƒoƒgƒ‰?[‚× nil ‚????‡–?‚? return if @battler == nil # “G‚?‚?‚?ƒJƒ?ƒ‰‚׉e‹¿?B # Œ©•?‚?ƒoƒgƒ‹ƒtƒB?[ƒ‹ƒh‚?‚¢‚????‡‚±‚±‚? if ‚?ŠO‚·?B if (@battler.is_a?(Game_Actor) and @battler.actor_in_battlefield) or @battler.is_a?(Game_Enemy) # ƒY?[ƒ€—¦ zoom = 1.00 * 185 / (($xcam_z != nil ? $xcam_z : 185) - @z_offset) self.zoom_x = zoom self.zoom_y = zoom @battler.zoom = zoom # ƒXƒvƒ‰ƒCƒg‚???•W‚???’? self.x = @battler.screen_x self.y = @battler.screen_y self.z = @battler.screen_z end end end #============================================================================== # ?¡ Spriteset_Battle #============================================================================== class Spriteset_Battle #-------------------------------------------------------------------------- # ?œ ƒIƒuƒWƒFƒNƒg?‰Š?‰» #-------------------------------------------------------------------------- alias xrxs_bp8_initialize initialize def initialize # ?‰Š?‰» @now_bg_x = -1 @now_bg_y = -1 @now_bg_z = -1 # ’???Žž‚?Ž??s xrxs_bp8_initialize # ƒrƒ…?[ƒ|?[ƒg‚????¬ @viewport1 = Viewport.new(-192, -144, 1024, 768) # ƒoƒgƒ‹ƒoƒbƒNƒXƒvƒ‰ƒCƒg‚????¬ @battleback_sprite = Sprite.new(@viewport1) @battleback_name = "" # ƒGƒlƒ~?[ƒXƒvƒ‰ƒCƒg‚????¬ @enemy_sprites = [] for enemy in $game_troop.enemies.reverse @enemy_sprites.push(Sprite_Battler.new(@viewport1, enemy)) end # “VŒ?‚????¬ @weather = RPG::Weather.new(@viewport1) # ƒtƒŒ?[ƒ€?X?V update end #-------------------------------------------------------------------------- # ?œ ƒtƒŒ?[ƒ€?X?V #-------------------------------------------------------------------------- alias xrxs_bp8_update update def update # ƒoƒgƒ‹ƒoƒbƒN‚?ƒtƒ@ƒCƒ‹–¼‚׌»??‚?‚?‚?‚?ˆ?‚????‡ if @battleback_name != $game_temp.battleback_name @battleback_name = $game_temp.battleback_name if @battleback_sprite.bitmap != nil @battleback_sprite.bitmap.dispose end bg_bitmap = RPG::Cache.battleback(@battleback_name) bg_bitmap_stretch = Bitmap.new(1024, 768) bg_bitmap_stretch.stretch_blt(Rect.new(0, 0, 1024, 768), bg_bitmap, bg_bitmap.rect) @battleback_sprite.bitmap = bg_bitmap_stretch end # ƒJƒ?ƒ‰ˆ?’u‚ד®‚¢‚½???‡ if @now_bg_x != $xcam_x or @now_bg_y != $xcam_y or @now_bg_z != $xcam_z # ƒY?[ƒ€—¦ zoom = 1.00 * 185 / $xcam_z @battleback_sprite.zoom_x = zoom @battleback_sprite.zoom_y = zoom # ƒJƒ?ƒ‰z‚?‚?‚?ˆ?’u‚??C?³ maximum = 192 * (296 - $xcam_z) / 111 $xcam_x = [[$xcam_x, -maximum].max, maximum].min # ”wŒiˆ?’u?X?V @battleback_sprite.x = -$xcam_x * zoom - 512 * (zoom - 1) @battleback_sprite.y = $xcam_y * zoom - 384 * (zoom - 1) # ’l?X?V @now_bg_x = $xcam_x @now_bg_y = $xcam_y @now_bg_z = $xcam_z end # –?‚· xrxs_bp8_update end end #============================================================================== # ?¡ Scene_Battle #============================================================================== class Scene_Battle #-------------------------------------------------------------------------- # ?œ ƒ?ƒCƒ“?ˆ—? #-------------------------------------------------------------------------- alias xrxs_bp8_main main def main # ƒJƒ?ƒ‰?‰Š?ˆ?’uŒˆ’? $xcam_x = 0 $xcam_y = 0 $xcam_z = 295 # ƒJƒ?ƒ‰‚????‰‚?–?“I’l @xcam_x_destination = 0 @xcam_y_destination = 0 @xcam_z_destination = 185 # ?¡?A’?–?ƒoƒgƒ‰?[‚?–³‚µ?B @xcam_watch_battler = nil # ?‰Š?‰» @wait_count_xcam = 0 # –?‚· xrxs_bp8_main end #-------------------------------------------------------------------------- # ?œ ƒtƒŒ?[ƒ€?X?V #-------------------------------------------------------------------------- alias xrxs_bp8_update update def update # ƒJƒ?ƒ‰ˆ?’u‚??X?V?B if @wait_count_xcam > 0 # ƒEƒFƒCƒgƒJƒEƒ“ƒg‚?Œ¸‚?‚· @wait_count_xcam -= 1 else # ƒJƒ?ƒ‰: Z ??•W if $xcam_z != @xcam_z_destination if $xcam_z < @xcam_z_destination distance = [(@xcam_z_destination - $xcam_z)/8, 1].max else distance = [(@xcam_z_destination - $xcam_z)/8, -1].min end $xcam_z = [[$xcam_z + distance, 74].max, 296].min end # ƒJƒ?ƒ‰: X ??•W if @xcam_watch_battler != nil if $xcam_x != @xcam_watch_battler.x_pos if ($xcam_x - @xcam_watch_battler.x_pos).abs < 8 distance = @xcam_watch_battler.x_pos - $xcam_x elsif $xcam_x < @xcam_watch_battler.x_pos distance = [(@xcam_watch_battler.x_pos - $xcam_x)/8, 8].max else distance = [(@xcam_watch_battler.x_pos - $xcam_x)/8, -8].min end maximum = 192 * (296 - $xcam_z) / 111 $xcam_x = [[$xcam_x + distance, -maximum].max, maximum].min end elsif $xcam_x != @xcam_x_destination if ($xcam_x - @xcam_x_destination).abs < 8 distance = @xcam_x_destination - $xcam_x elsif $xcam_x < @xcam_x_destination distance = [(@xcam_x_destination - $xcam_x)/8, 8].max else distance = [(@xcam_x_destination - $xcam_x)/8, -8].min end maximum = 192 * (296 - $xcam_z) / 111 $xcam_x = [[$xcam_x + distance, -maximum].max, maximum].min end # ƒJƒ?ƒ‰: Y ??•W if @xcam_watch_battler != nil y = @xcam_watch_battler.y_pos/2 if $xcam_y != y if ($xcam_y - y).abs < 8 distance = y - $xcam_y elsif $xcam_y < y distance = [(y - $xcam_y)/8, 8].max else distance = [(y - $xcam_y)/8, -8].min end maximum = 144 * (296 - $xcam_z) / 111 $xcam_y = [[$xcam_y + distance, -maximum].max, maximum].min end elsif $xcam_y != @xcam_y_destination if $xcam_y < @xcam_y_destination distance = [(@xcam_y_destination - $xcam_y)/8, 1].max else distance = [(@xcam_y_destination - $xcam_y)/8, -1].min end maximum = 164 * (296 - $xcam_z) / 111 $xcam_y = [[$xcam_y + distance, -maximum].max, maximum].min end end # ’???Ž??s xrxs_bp8_update end #-------------------------------------------------------------------------- # ?œ ƒp?[ƒeƒBƒRƒ}ƒ“ƒhƒtƒF?[ƒYŠJŽn #-------------------------------------------------------------------------- alias xrxs_bp8_start_phase2 start_phase2 def start_phase2 # ƒJƒ?ƒ‰?FƒZƒ“ƒ^ƒŠƒ“ƒO @xcam_watch_battler = nil @xcam_x_destination = 0 @xcam_z_destination = 185 # –?‚· xrxs_bp8_start_phase2 end #-------------------------------------------------------------------------- # ?œ ƒtƒŒ?[ƒ€?X?V (ƒAƒNƒ^?[ƒRƒ}ƒ“ƒhƒtƒF?[ƒY) #-------------------------------------------------------------------------- alias xrxs_bp8_update_phase3 update_phase3 def update_phase3 # ƒJƒ?ƒ‰‚?ƒLƒƒƒ‰ˆ?’u‚? if @active_battler != nil and @active_battler.actor_in_battlefield @xcam_x_destination = @active_battler.x_pos @xcam_z_destination = 175 end xrxs_bp8_update_phase3 end #-------------------------------------------------------------------------- # ?œ ƒtƒŒ?[ƒ€?X?V (ƒAƒNƒ^?[ƒRƒ}ƒ“ƒhƒtƒF?[ƒY : ƒGƒlƒ~?[‘I‘?) #-------------------------------------------------------------------------- alias xrxs_bp8_update_phase3_enemy_select update_phase3_enemy_select def update_phase3_enemy_select # ƒJƒ?ƒ‰?F“Gƒ^?[ƒQƒbƒg‚?ƒY?[ƒ€ƒAƒbƒv @xcam_x_destination = $game_troop.enemies[@enemy_arrow.index].x_pos * $game_troop.enemies[@enemy_arrow.index].zoom @xcam_z_destination = 175 # –?‚· xrxs_bp8_update_phase3_enemy_select end #-------------------------------------------------------------------------- # ?œ ƒGƒlƒ~?[‘I‘??I—¹ #-------------------------------------------------------------------------- alias xrxs_bp8_end_enemy_select end_enemy_select def end_enemy_select # ƒJƒ?ƒ‰?F’†?S‚? @xcam_x_destination = 0 @xcam_z_destination = 185 # –?‚· xrxs_bp8_end_enemy_select end #-------------------------------------------------------------------------- # ?œ ƒtƒŒ?[ƒ€?X?V (ƒ?ƒCƒ“ƒtƒF?[ƒY ƒXƒeƒbƒv 2 : ƒAƒNƒVƒ‡ƒ“ŠJŽn) #-------------------------------------------------------------------------- alias xrxs_bp8_update_phase4_step2 update_phase4_step2 def update_phase4_step2 # –?‚· xrxs_bp8_update_phase4_step2 # ƒXƒeƒbƒv 3 ‚?ˆ??s‚·‚????‡ if @phase4_step == 3 if @active_battler.is_a?(Game_Enemy) or @active_battler.actor_in_battlefield # ƒJƒ?ƒ‰?F?s“®ƒoƒgƒ‰?[‚?‚?ƒY?[ƒ€ƒAƒbƒv‚?—\\–? @xcam_x_destination = @active_battler.x_pos * @active_battler.zoom if @active_battler.x_pos != nil @xcam_z_destination = 175 end # ??’? 20 ƒtƒŒ?[ƒ€‘?‚? @wait_count = 20 end end #-------------------------------------------------------------------------- # ?œ ƒtƒŒ?[ƒ€?X?V (ƒ?ƒCƒ“ƒtƒF?[ƒY ƒXƒeƒbƒv 3 : ?s“®‘?ƒAƒjƒ??[ƒVƒ‡ƒ“) #-------------------------------------------------------------------------- alias xrxs_bp8_update_phase4_step3 update_phase4_step3 def update_phase4_step3 # –?‚· xrxs_bp8_update_phase4_step3 if @target_battlers.size > 0 and (@target_battlers[0].is_a?(Game_Enemy) or @target_battlers[0].actor_in_battlefield) # ƒJƒ?ƒ‰?Fƒ^?[ƒQƒbƒg‚?‚?ƒY?[ƒ€ƒAƒbƒv‚?—\\–? @xcam_x_destination = @target_battlers[0].x_pos * @target_battlers[0].zoom if @target_battlers[0] != nil @xcam_z_destination = 185 # ‚?‚µ‘???ƒAƒjƒ?‚×?uˆ?’u?F‰?–??v‚?‚?‚?‚????‡ if @animation2_id > 0 and $data_animations[@animation2_id].position == 3 # ƒJƒ?ƒ‰‚?ƒZƒ“ƒ^ƒŠƒ“ƒO @xcam_x_destination = 0 # ƒY?[ƒ€ƒAƒEƒg‚?‚?‚?‚?‚¿‚?‚?¥w¥ @xcam_z_destination = 222 end end # ??’? 20 ƒtƒŒ?[ƒ€‘?‚? @wait_count = 20 end #-------------------------------------------------------------------------- # ?œ ƒAƒtƒ^?[ƒoƒgƒ‹ƒtƒF?[ƒYŠJŽn #-------------------------------------------------------------------------- alias xrxs_bp8_start_phase5 start_phase5 def start_phase5 @xcam_z_destination = 185 xrxs_bp8_start_phase5 end end #============================================================================== # ?ž RPG::??’?‹`?u??“¬’†‚?"‰?–?"ƒAƒjƒ?‚?ˆ?’u?C?³?v #============================================================================== module RPG class Sprite < ::Sprite def animation_set_sprites(sprites, cell_data, position) for i in 0..15 sprite = sprites[i] pattern = cell_data[i, 0] if sprite == nil or pattern == nil or pattern == -1 sprite.visible = false if sprite != nil next end sprite.visible = true sprite.src_rect.set(pattern % 5 * 192, pattern / 5 * 192, 192, 192) if position == 3 if self.viewport != nil if $scene.is_a?(Scene_Battle) sprite.x = self.viewport.rect.width / 2 sprite.y = 304 else sprite.x = self.viewport.rect.width / 2 sprite.y = self.viewport.rect.height - 160 end else sprite.x = 320 sprite.y = 240 end else sprite.x = self.x - self.ox + self.src_rect.width / 2 sprite.y = self.y - self.oy + self.src_rect.height / 2 sprite.y -= self.src_rect.height / 4 if position == 0 sprite.y += self.src_rect.height / 4 if position == 2 end sprite.x += cell_data[i, 1] sprite.y += cell_data[i, 2] sprite.z = 2000 sprite.ox = 96 sprite.oy = 96 sprite.zoom_x = cell_data[i, 3] / 100.0 sprite.zoom_y = cell_data[i, 3] / 100.0 sprite.angle = cell_data[i, 4] sprite.mirror = (cell_data[i, 5] == 1) sprite.opacity = cell_data[i, 6] * self.opacity / 255.0 sprite.blend_type = cell_data[i, 7] end end end end merci qui ? | |
|
thomascloud Admin
Messages : 479 Date d'inscription : 05/04/2008 Age : 33
| Sujet: Re: camera dynamique Ven 30 Mai - 21:16 | |
| Ce serait cool que tu nous fasse des screens ^^ | |
|
sam fisher Nouveau Membre
Messages : 13 Date d'inscription : 26/05/2008
| Sujet: Re: camera dynamique Sam 31 Mai - 9:37 | |
| ben pour l'instant j'ai pas encore essayer le script mais je mettrais les screens promis! | |
|
thomascloud Admin
Messages : 479 Date d'inscription : 05/04/2008 Age : 33
| Sujet: Re: camera dynamique Sam 31 Mai - 9:52 | |
| c'est un conseil quoi , c'est toujours mieux un aperçu du résultat ^^ | |
|
Invité Invité
| Sujet: Re: camera dynamique Sam 31 Mai - 13:06 | |
| J'ai déjà essayé ce script et faire un screen c'est pas évident. Quoi qu'il en soit c'est vrai que c'est sympa |
|
shikamaru Modérateur
Messages : 298 Date d'inscription : 05/04/2008 Age : 32 Localisation : Tunisie
| Sujet: Re: camera dynamique Dim 1 Juin - 14:42 | |
| C'est sympa d'un part mais de l'autre part , j'aime pas bien parce que le Gameplay est trés simple , en tout cas un gameplay RTP => un mauvais projet ^^
Sinon c'est bien ^^... | |
|
thomascloud Admin
Messages : 479 Date d'inscription : 05/04/2008 Age : 33
| Sujet: Re: camera dynamique Dim 1 Juin - 14:45 | |
| non , un gameplay classique de XP peut être superbe si il est bien mené ^^ | |
|
shikamaru Modérateur
Messages : 298 Date d'inscription : 05/04/2008 Age : 32 Localisation : Tunisie
| Sujet: Re: camera dynamique Dim 1 Juin - 14:48 | |
| | |
|
thomascloud Admin
Messages : 479 Date d'inscription : 05/04/2008 Age : 33
| Sujet: Re: camera dynamique Dim 1 Juin - 14:52 | |
| je ne sais pas , mais c'est faux de dire que c'est une limite comme ca ^^ | |
|
shikamaru Modérateur
Messages : 298 Date d'inscription : 05/04/2008 Age : 32 Localisation : Tunisie
| Sujet: Re: camera dynamique Dim 1 Juin - 15:35 | |
| ba tu trouve pas que le combat standard est bien moche ? | |
|
thomascloud Admin
Messages : 479 Date d'inscription : 05/04/2008 Age : 33
| Sujet: Re: camera dynamique Dim 1 Juin - 15:45 | |
| si , mais un rpg , peut se rattraper si il est bon et bien mapper | |
|
sam fisher Nouveau Membre
Messages : 13 Date d'inscription : 26/05/2008
| Sujet: Re: camera dynamique Dim 1 Juin - 15:47 | |
| ben euh il est pas si moche que ca en fait parceque,mais quand on le comparre aux autres qu'il devient nul^^ | |
|
thomascloud Admin
Messages : 479 Date d'inscription : 05/04/2008 Age : 33
| Sujet: Re: camera dynamique Dim 1 Juin - 15:50 | |
| oué , enfin , après il faut savoir lui donner une difficulté tactique ^^ | |
|
shikamaru Modérateur
Messages : 298 Date d'inscription : 05/04/2008 Age : 32 Localisation : Tunisie
| Sujet: Re: camera dynamique Dim 1 Juin - 22:29 | |
| c'est ça le plus diffisile à faire , la diffuculé -_-" j'y suis nul | |
|
Contenu sponsorisé
| Sujet: Re: camera dynamique | |
| |
|