Accueil du SiteAccueil du Site  AccueilAccueil  Dernières imagesDernières images  RechercherRechercher  ConnexionConnexion  S'enregistrerS'enregistrer  



-39%
Le deal à ne pas rater :
Ordinateur portable ASUS Chromebook Vibe CX34 Flip
399 € 649 €
Voir le deal

Partagez
 

 Caméra dynamique en combat

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Invité
Invité
Anonymous


Caméra dynamique en combat Empty
MessageSujet: Caméra dynamique en combat   Caméra dynamique en combat EmptyLun 22 Déc 2014 - 22:15

Ce script sert en fait à "zoomer" sur le monstre sélectionné. Je l'ai testé, chez moi, ça marche !
Code:
# ?¥?£?¥ 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 :x_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

Revenir en haut Aller en bas
City Hunter
Administrateur
Administrateur
City Hunter

Masculin
Messages postés : 6523
Date d'inscription : 25/05/2011
Jauge LPC :
Caméra dynamique en combat 891527140040 / 10040 / 100Caméra dynamique en combat 8915271400

Caméra dynamique en combat Staffe10
Caméra dynamique en combat Mappeu10
Caméra dynamique en combat Membre15
Caméra dynamique en combat Testeu10
Caméra dynamique en combat Promot10
Caméra dynamique en combat Projet10
Caméra dynamique en combat Projet16
Caméra dynamique en combat Riche_10
Caméra dynamique en combat Travai10
Caméra dynamique en combat Collec10
Caméra dynamique en combat Collec11
Caméra dynamique en combat Collec12
Caméra dynamique en combat Collec13
Caméra dynamique en combat Pandac10
Caméra dynamique en combat 10000011


Caméra dynamique en combat Empty
MessageSujet: Re: Caméra dynamique en combat   Caméra dynamique en combat EmptyLun 22 Déc 2014 - 22:27

Merci pour le partage, je te donne des points.
Après.. Perso j'en vois pas l'utilité o.O
Revenir en haut Aller en bas
Invité
Invité
Anonymous


Caméra dynamique en combat Empty
MessageSujet: Re: Caméra dynamique en combat   Caméra dynamique en combat EmptyMar 23 Déc 2014 - 16:14

Ca donne un effet esthétique au combat de rmxp... enfin, je crois...
Revenir en haut Aller en bas
Zexion
Administrateur
Administrateur
Zexion

Masculin
Messages postés : 6228
Date d'inscription : 04/01/2012
Jauge LPC :
Caméra dynamique en combat 891527140097 / 10097 / 100Caméra dynamique en combat 8915271400

Caméra dynamique en combat Membre15
Caméra dynamique en combat Event-10
Caméra dynamique en combat Altrui10
Caméra dynamique en combat Action10
Caméra dynamique en combat Travai10
Caméra dynamique en combat Collec10
Caméra dynamique en combat Collec11
Caméra dynamique en combat Collec12
Caméra dynamique en combat Staffe11
Caméra dynamique en combat Dessin10


Caméra dynamique en combat Empty
MessageSujet: Re: Caméra dynamique en combat   Caméra dynamique en combat EmptyMar 23 Déc 2014 - 16:17

Bah ça fait moins figé ouais.
Bon après le soucis c'est qu'à agrandir des images comme ça ça pixellise un peu, mais ça reste vivable.
Merci Trouille !
Revenir en haut Aller en bas
Vorselon
Chevalier Mage (niveau 3)
Chevalier Mage (niveau 3)
Vorselon

Masculin
Messages postés : 450
Date d'inscription : 27/04/2012
Jauge LPC :
Caméra dynamique en combat 89152714006 / 1006 / 100Caméra dynamique en combat 8915271400

Caméra dynamique en combat Membre10
Caméra dynamique en combat Graphi10
Caméra dynamique en combat Dessin10
Caméra dynamique en combat Collec10
Caméra dynamique en combat Collec11


Caméra dynamique en combat Empty
MessageSujet: Re: Caméra dynamique en combat   Caméra dynamique en combat EmptyMar 23 Déc 2014 - 16:22

Merci du partage Trouille =]
Revenir en haut Aller en bas
http://crazynikos.deviantart.com/
Contenu sponsorisé




Caméra dynamique en combat Empty
MessageSujet: Re: Caméra dynamique en combat   Caméra dynamique en combat Empty

Revenir en haut Aller en bas
 
Caméra dynamique en combat
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [XP - ACE] Battle camera
» [SBS VXAce] Gestion de la caméra.
» [XP] Combat sur le coté 2
» [XP] Combat vue de dos
» [XP] Combat vue de coté

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Le Palais Créatif :: ~ PARTAGE ~ :: Scripts et plugins :: RPG Maker XP :: Combat-
Sauter vers: