Va-nu-pieds Lv.4
Age : 30 Inscrit le : 23/07/2008 Messages : 56
| Sujet: [VX] Effet de course "flash" Lun 6 Déc 2010 - 18:25 | |
| Je vous propose ici un script permettant de donner plus de charisme à la course de votre héros . 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) : 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à Si vous avez des questions, n'hésitez pas . |
|
Maître des Duels
Age : 32 Inscrit le : 29/07/2009 Messages : 7841
| Sujet: Re: [VX] Effet de course "flash" Lun 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 ? |
|
Va-nu-pieds Lv.4
Age : 30 Inscrit le : 23/07/2008 Messages : 56
| Sujet: Re: [VX] Effet de course "flash" Lun 6 Déc 2010 - 18:39 | |
| Ah bah...exactement x) j'y avais pas réfléchis |
|
Corsaire Lv.19
Age : 27 Inscrit le : 26/11/2009 Messages : 2508
| Sujet: Re: [VX] Effet de course "flash" Lun 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.... |
|
Age : 30 Inscrit le : 22/11/2008 Messages : 3382
| Sujet: Re: [VX] Effet de course "flash" Lun 6 Déc 2010 - 22:35 | |
| Waai, joli partage, fun pour certains trucs, comme des mini-jeux (: +2 en participation o/ |
|
Poulet Lv.1
Inscrit le : 24/10/2011 Messages : 2
| Sujet: Re: [VX] Effet de course "flash" Mar 25 Oct 2011 - 12:57 | |
| Ce script de marche pas il y a un probleme par rapport au script 2 |
|
Croisé Lv.14
Age : 26 Inscrit le : 22/05/2011 Messages : 1141
| Sujet: Re: [VX] Effet de course "flash" Mar 25 Oct 2011 - 13:00 | |
| pas mal j'aime bien... je rigole ses trop de la ball se scripte j'adore |
|
| Sujet: Re: [VX] Effet de course "flash" | |
| |
|