AccueilAccueil  PortailPortail  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  ConnexionConnexion  



-39%
Le deal à ne pas rater :
Pack Home Cinéma Magnat Monitor : Ampli DENON AVR-X2800H, Enceinte ...
1190 € 1950 €
Voir le deal

Partagez
 

 [VX] Effet de course "flash"

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Akio
Va-nu-pieds Lv.4
Va-nu-pieds Lv.4
Akio


Masculin Age : 29
Inscrit le : 23/07/2008
Messages : 56

[VX] Effet de course "flash" Empty
MessageSujet: [VX] Effet de course "flash"   [VX] Effet de course "flash" Icon_minitimeLun 6 Déc 2010 - 18:25

Je vous propose ici un script permettant de donner plus de charisme à la course de votre héros Smile. Lorsque vous courrez, votre héros aura 4 "répliques" de lui même de plus en plus transparente qui le suivront pour donner une impression de vitesse. Ce serait plus simple de vous montrer une image x) :

[VX] Effet de course "flash" 6-12-210

Auteur : Hueto Kyiaraku de Chrafter Production

Incompatibilité : Aucune, très bel effet avec ABS.

Un premier script :

Code:
#==============================================================================
#
# ・エフェクト表示のための配列定義、フレーム更新、ビューポート関連付け
#
#==============================================================================
# ■ Game_Temp
#==============================================================================
class Game_Temp
  #--------------------------------------------------------------------------
  # ● 公開インスタンス変数
  #--------------------------------------------------------------------------
  attr_accessor :streffect
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  alias initialize_stref initialize
  def initialize
    initialize_stref
    @streffect = []
  end
end
#==============================================================================
# ■ Spriteset_Map
#==============================================================================
class Spriteset_Map
  #--------------------------------------------------------------------------
  # ● エフェクトの作成
  #--------------------------------------------------------------------------
  def create_streffect
    $game_temp.streffect = []
  end
  #--------------------------------------------------------------------------
  # ● エフェクトの解放
  #--------------------------------------------------------------------------
  def dispose_streffect
    for i in 0...$game_temp.streffect.size
      $game_temp.streffect[i].dispose if $game_temp.streffect[i] != nil
    end
    $game_temp.streffect = []
  end
  #--------------------------------------------------------------------------
  # ● エフェクトの更新
  #--------------------------------------------------------------------------
  def update_streffect
    for i in 0...$game_temp.streffect.size
      if $game_temp.streffect[i] != nil
        $game_temp.streffect[i].viewport = @viewport1
        $game_temp.streffect[i].update
        $game_temp.streffect.delete_at(i) if $game_temp.streffect[i].disposed?
      end
    end
  end
  #--------------------------------------------------------------------------
  # ★ エイリアス
  #--------------------------------------------------------------------------
  alias create_parallax_stref create_parallax
  def create_parallax
    create_parallax_stref
    create_streffect
  end
  alias dispose_stref dispose
  def dispose
    dispose_streffect
    dispose_stref
  end
  alias update_stref update
  def update
    update_stref
    update_streffect
  end
end

Et un deuxième script :

Code:
#==============================================================================
# ・キャラクタースプライトに残像を発生させます。
# ・連続で発生させる場合は並列処理のイベントに貼り付ける等してください。
#
if false
# 以下をコマンドのスクリプト等に貼り付けて残像発生
ef = $game_temp.streffect
id  = 0      # イベントID(0でプレイヤー)
sp  = 20    # 表示時間(1/60sec)
op  = 192    # 透明度(0で元の透明度の66%)
bl  = 1      # 合成方法(0=通常,1=加算,2=減算)
xyz = [0,0,0]# 座標修正[x,y,z]通常は0
ef.push(CharaShadow00.new(id,sp,op,bl,xyz))

# 解説なしタイプ
id=0;sp=20;op=192;bl=1;xyz=[0,0,0]
ef = $game_temp.streffect
ef.push(CharaShadow00.new(id,sp,op,bl,xyz))

# ここまで
end
#==============================================================================
# ★このスクリプトの機能を有効にする
if true
#==============================================================================
# ■ CharaShadow00
#==============================================================================
class CharaShadow00 < Sprite
  # 透明度を0にした時の透明度修正
  AUTO = 0.66
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize(id=0,sp=20,op=192,bl=1,xyz=[0,0,0])
    super()
    # 対象のキャラクターの決定
    if id != 0
      chara = $game_map.events[id]
    else
      chara = $game_player
    end
    # XYZ座標の設定
    @rx = chara.real_x
    @ry = chara.real_y_cs
    @xyz = xyz
    @xyz[1] -= 4 unless chara.object?
    self.z = chara.screen_z - 1 + @xyz[2]
    # 透明度・表示時間・合成方法
    if op != 0
      @opacity = op
    else
      @opacity = chara.opacity * AUTO
    end
    self.opacity = @opacity
    @speed = @opacity * 1.0 / sp
    self.blend_type = bl
    # いろいろ設定・更新
    set(chara, self)
    update
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  def update
    self.x = ($game_map.adjust_x(@rx) + 8007) / 8 - 1000 + 16 + @xyz[0]
    self.y = ($game_map.adjust_y(@ry) + 8007) / 8 - 1000 + 32 + @xyz[1]
    self.opacity = @opacity
    @opacity -= @speed
    dispose if self.opacity <= 0 # 透明になったら解放
  end
  #--------------------------------------------------------------------------
  # ● いろいろ設定
  #--------------------------------------------------------------------------
  def set(chara, sprite)
    tile_id = chara.tile_id
    if tile_id > 0
      sprite.bitmap = tileset_bitmap(tile_id)
      sprite.src_rect.set((tile_id / 128 % 2 * 8 + tile_id % 8) * 32,
                          tile_id % 256 / 8 % 16 * 32, 32, 32)
      sprite.ox = 16 ; sprite.oy = 32
    else
      character_name = chara.character_name
      sprite.bitmap = Cache.character(character_name)
      sign = character_name[/^[\!\$]./]
      if sign != nil and sign.include?('$')
        cw = sprite.bitmap.width / 3  ; ch = sprite.bitmap.height / 4
      else
        cw = sprite.bitmap.width / 12 ; ch = sprite.bitmap.height / 8
      end
      sprite.ox = cw / 2 ; sprite.oy = ch
      index = chara.character_index
      pattern = chara.pattern < 3 ? chara.pattern : 1
      sprite.src_rect.set((index % 4 * 3 + pattern) * cw,
                          (index / 4 * 4 + (chara.direction - 2) / 2) * ch,
                          cw, ch)
    end
  end
  #--------------------------------------------------------------------------
  # ● 指定されたタイルが含まれるタイルセット画像の取得
  #--------------------------------------------------------------------------
  def tileset_bitmap(tile_id)
    set_number = tile_id / 256
    return Cache.system("TileB") if set_number == 0
    return Cache.system("TileC") if set_number == 1
    return Cache.system("TileD") if set_number == 2
    return Cache.system("TileE") if set_number == 3
    return nil
  end
end
#==============================================================================
# ■ Game_Character
#==============================================================================
class Game_Character
  #--------------------------------------------------------------------------
  # ● 画面 Y 座標の取得(追加)
  #--------------------------------------------------------------------------
  def real_y_cs
    if jumping?
      if @jump_count >= @jump_peak
        n = @jump_count - @jump_peak
      else
        n = @jump_peak - @jump_count
      end
      return @real_y - (@jump_peak * @jump_peak - n * n) * 4
    else
      return @real_y
    end
  end
end
#
end

Si vous voulez insérer l'effet sur une carte, il faut créer un événement :

-- Attendre 4 frames
-- Condition > Si la touche A est pressée > Appel de script :
Code:
 id=0;sp=20;op=192;bl=1;xyz=[0,0,0]
ef = $game_temp.streffect
ef.push(CharaShadow00.new(id,sp,op,bl,xyz))

Voilà Smile Si vous avez des questions, n'hésitez pas Wink.
Revenir en haut Aller en bas
Zangther
Maître des Duels
Maître des Duels
Zangther


Masculin Age : 31
Inscrit le : 29/07/2009
Messages : 7840

[VX] Effet de course "flash" Empty
MessageSujet: Re: [VX] Effet de course "flash"   [VX] Effet de course "flash" Icon_minitimeLun 6 Déc 2010 - 18:33

:O C'est sympa comme effet ^^

Merci du partage !

PS : Hum pour le déclenchement je pense qu'il serait mieux de le mettre en évent commun non ?
Revenir en haut Aller en bas
Akio
Va-nu-pieds Lv.4
Va-nu-pieds Lv.4
Akio


Masculin Age : 29
Inscrit le : 23/07/2008
Messages : 56

[VX] Effet de course "flash" Empty
MessageSujet: Re: [VX] Effet de course "flash"   [VX] Effet de course "flash" Icon_minitimeLun 6 Déc 2010 - 18:39

Ah bah...exactement x) j'y avais pas réfléchis Smile
Revenir en haut Aller en bas
Xavioo
Corsaire Lv.19
Corsaire Lv.19
Xavioo


Masculin Age : 26
Inscrit le : 26/11/2009
Messages : 2508

[VX] Effet de course "flash" Empty
MessageSujet: Re: [VX] Effet de course "flash"   [VX] Effet de course "flash" Icon_minitimeLun 6 Déc 2010 - 22:14

Ouais vraiment pas mal! Mais j'aime pas que les persos soit jaunes, je les aurait mit plus vert le blanc que le jaune....
Revenir en haut Aller en bas
TaZ
Mamour d'Angellan
Mamour d'Angellan
TaZ


Masculin Age : 29
Inscrit le : 22/11/2008
Messages : 3381

[VX] Effet de course "flash" Empty
MessageSujet: Re: [VX] Effet de course "flash"   [VX] Effet de course "flash" Icon_minitimeLun 6 Déc 2010 - 22:35

Waai, joli partage, fun pour certains trucs, comme des mini-jeux (:
+2 en participation o/
Revenir en haut Aller en bas
AJSBgames
Poulet Lv.1
Poulet Lv.1
AJSBgames


Inscrit le : 24/10/2011
Messages : 2

[VX] Effet de course "flash" Empty
MessageSujet: Re: [VX] Effet de course "flash"   [VX] Effet de course "flash" Icon_minitimeMar 25 Oct 2011 - 12:57

Ce script de marche pas il y a un probleme par rapport au script 2
Revenir en haut Aller en bas
zouzaka
Croisé Lv.14
Croisé Lv.14
zouzaka


Masculin Age : 25
Inscrit le : 22/05/2011
Messages : 1141

[VX] Effet de course "flash" Empty
MessageSujet: Re: [VX] Effet de course "flash"   [VX] Effet de course "flash" Icon_minitimeMar 25 Oct 2011 - 13:00

pas mal j'aime bien... je rigole ses trop de la ball se scripte Very Happy j'adore
Revenir en haut Aller en bas
Contenu sponsorisé




[VX] Effet de course "flash" Empty
MessageSujet: Re: [VX] Effet de course "flash"   [VX] Effet de course "flash" Icon_minitime

Revenir en haut Aller en bas
 

[VX] Effet de course "flash"

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

 Sujets similaires

-
» People 1-3, émotion + effet flash back
» La flash box ! [flash new]
» Flash professionel 8
» RPG Maker en Flash ? Possible ?
» Flash-New estivale [MàJ 20/07/10]

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
RPG Maker VX :: Entraide :: Scripts :: Scripts VX - RGSS2 :: Héros et équipe-
Créer un forum | ©phpBB | Forum gratuit d'entraide | Signaler un abus | Forum gratuit