Citadin Lv.7
Age : 35 Inscrit le : 12/05/2010 Messages : 159
| Sujet: [REQUEST] Modifier le curseur dans le jeu Lun 6 Sep 2010 - 9:04 | |
| je voudrais faire un demande pour un script qui me permet de changer le curseur dans le jeu donc un menu ou je dit quelle curseur je veut dans le menu (doigt comme ff9) ou normal
Dernière édition par Mitsarugi le Lun 6 Sep 2010 - 10:46, édité 1 fois |
|
Maire Lv.9
Age : 34 Inscrit le : 15/10/2008 Messages : 351
| Sujet: Re: [REQUEST] Modifier le curseur dans le jeu Lun 6 Sep 2010 - 9:53 | |
| Bonjour,
Quel curseur ? Celui de la souris, ou le rectangle de sélection du windowskin ? |
|
Vache Folle
Age : 29 Inscrit le : 22/05/2010 Messages : 3005
| Sujet: Re: [REQUEST] Modifier le curseur dans le jeu Lun 6 Sep 2010 - 11:08 | |
| J'ai ça si t'es interressé. AUTEUR:KGC TRADUCTEUR(ANGLAIS): Mr.Anonimous FRANCAIS(pour customiser):moi(pas obligatoire) - Code:
-
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_ #_/ ◆ Animated Menu Cursor - KGC_CursorAnimation ◆ VX ◆ #_/ ◇ Last Update: 2008/04/01 ◇ #_/ ◆ Translation by Mr. Anonymous ◆ #_/----------------------------------------------------------------------------- #_/ Installation: Insert this script above main. #_/============================================================================= #_/ This script allows you to display an animated cursor on selectable menu #_/ items. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_ #==============================================================================# # ★ Customization ★ # #==============================================================================# module KGC module CursorAnimation # ◆ Cursor Switch ◆ # Pour supprimer/remettre le curseur lorsque cet interrupteur est activé/desactivé SWITCH_ID = 20 # ◆ Cursor Start Display ◆ # true : Le curseur est toujours présent # false : Le curseur disparaît lorsque l'interripteur au dessus est activé DEFAULT_ANIMATION = true # ◆ Cursor Animation Image File ◆ # Mettre une image d'animation avec ce nom dans le fichier system ANIMATION_FILE = "CursorAnimation" # ◆ Cursor Animation Frame Count ◆ # Défini le nombre d'images de l'animation FRAME_COUNT = 2 # ◆ Cursor Animation Wait Time ◆ # Défini la vitesse de l'animation # Plus la valeur est élevée, plus l'animation est lente ANIMATION_WAIT = 5 # ◆ Opacité du curseur ◆ # Opacity/Translucency (Max = 255) OPACITY = 224 # ◆ Transparence ◆ # Blending Type # 0. Normal 1. Obscurci 2. Eclairci BLEND_TYPE = 1 # ◆ Position du curseur par rapport au texte◆ # 0 Au .Dessus 1..Au milieu 2..En dessous BASE_POSITION = 1 # ◆ Position [x, y] ◆ # Position de départ du curseur POSITION_REV = [-4, 0] end end #------------------------------------------------------------------------------# $imported = {} if $imported == nil $imported["CursorAnimation"] = true #============================================================================== # ■ Window_Base #============================================================================== class Window_Base < Window #-------------------------------------------------------------------------- # ○ クラス変数 #-------------------------------------------------------------------------- @@__cursor_animation = nil # カーソルアニメ #-------------------------------------------------------------------------- # ● オブジェクト初期化 # x : ウィンドウの X 座標 # y : ウィンドウの Y 座標 # width : ウィンドウの幅 # height : ウィンドウの高さ #-------------------------------------------------------------------------- alias initialize_KGC_CursorAnimation initialize def initialize(x, y, width, height) initialize_KGC_CursorAnimation(x, y, width, height) @@__cursor_animation.add_window(self) end #-------------------------------------------------------------------------- # ● 解放 #-------------------------------------------------------------------------- alias dispose_KGC_CursorAnimation dispose unless $@ def dispose @@__cursor_animation.remove_window(self) dispose_KGC_CursorAnimation end #-------------------------------------------------------------------------- # ○ カーソルアニメを表示 #-------------------------------------------------------------------------- def self.show_cursor_animation @@__cursor_animation.visible = true @@__cursor_animation.update end #-------------------------------------------------------------------------- # ○ カーソルアニメを隠す #-------------------------------------------------------------------------- def self.hide_cursor_animation @@__cursor_animation.visible = false @@__cursor_animation.update end #-------------------------------------------------------------------------- # ○ カーソルアニメを更新 #-------------------------------------------------------------------------- def self.update_cursor_animation @@__cursor_animation.update end end #==================================End Class===================================# #============================================================================== # □ Sprite_CursorAnimation #------------------------------------------------------------------------------ # カーソルアニメーション用の処理を追加したスプライトのクラスです。 #============================================================================== class Sprite_CursorAnimation < Sprite #-------------------------------------------------------------------------- # ● オブジェクト初期化 # viewport : ビューポート #-------------------------------------------------------------------------- def initialize(viewport = nil) super(viewport) @duration = 0 @frame_count = 0 self.bitmap = Cache.system(KGC::CursorAnimation::ANIMATION_FILE) self.src_rect.width = bitmap.width / 8 self.src_rect.height = bitmap.height / ([KGC::CursorAnimation::FRAME_COUNT - 1, 0].max / 8 + 1) self.ox = src_rect.width / 2 self.oy = src_rect.height / 2 self.opacity = KGC::CursorAnimation::OPACITY self.blend_type = KGC::CursorAnimation::BLEND_TYPE end #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- def update super return unless visible @frame_count += 1 return if @frame_count % KGC::CursorAnimation::ANIMATION_WAIT != 0 @frame_count = 0 @duration -= 1 if @duration < 0 @duration = KGC::CursorAnimation::FRAME_COUNT - 1 end update_animation end #-------------------------------------------------------------------------- # ○ アニメーションを更新 #-------------------------------------------------------------------------- def update_animation self.src_rect.x = src_rect.width * (@duration % 8) self.src_rect.y = src_rect.height * (@duration / 8) end end #==================================End Class===================================# #============================================================================== # □ Cursor_Animation #------------------------------------------------------------------------------ # カーソル周りのアニメーションを扱うクラスです。 #============================================================================== class Cursor_Animation #-------------------------------------------------------------------------- # ○ 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :visible #-------------------------------------------------------------------------- # ○ オブジェクト初期化 #-------------------------------------------------------------------------- def initialize @visible = false @viewport = Viewport.new(0, 0, 640, 480) @windows = [] @target_sprite = Sprite_CursorAnimation.new(@viewport) @active_window = nil @viewport.visible = false @viewport.z = 10000 end #-------------------------------------------------------------------------- # ○ 破棄 #-------------------------------------------------------------------------- def dispose @target_sprite.dispose @viewport.dispose end #-------------------------------------------------------------------------- # ○ ウィンドウ追加 #-------------------------------------------------------------------------- def add_window(*window) @windows |= window.find_all { |w| w.is_a?(Window_Selectable) || w.is_a?(Window_SaveFile) } @windows.flatten! end #-------------------------------------------------------------------------- # ○ ウィンドウ削除 #-------------------------------------------------------------------------- def remove_window(*window) @windows -= window end #-------------------------------------------------------------------------- # ○ フレーム更新 #-------------------------------------------------------------------------- def update @viewport.update @target_sprite.update # 座標調整 dest_x, dest_y = get_cursor_pos if @target_sprite.x != dest_x if (dest_x - @target_sprite.x).abs < 4 @target_sprite.x = dest_x else dist = (dest_x - @target_sprite.x) / 4 dist = (dist > 0 ? [dist, 4].max : [dist, -4].min) @target_sprite.x += dist end end if @target_sprite.y != dest_y if (dest_y - @target_sprite.y).abs < 4 @target_sprite.y = dest_y else dist = (dest_y - @target_sprite.y) / 4 dist = (dist > 0 ? [dist, 4].max : [dist, -4].min) @target_sprite.y += dist end end end #-------------------------------------------------------------------------- # ○ カーソル位置取得 # [x, y] の形で返す。 #-------------------------------------------------------------------------- def get_cursor_pos dx = 0 dy = 0 # アクティブウィンドウを取得 unless window_active?(@active_window) @active_window = search_active_window end # アクティブウィンドウがなければ非表示 if @active_window == nil || !$game_switches[KGC::CursorAnimation::SWITCH_ID] @viewport.visible = false dx = Graphics.width / 2 dy = Graphics.height / 2 return [dx, dy] end @viewport.visible = @visible # カーソル位置を計算 rect = @active_window.cursor_rect dx = rect.x + 16 + KGC::CursorAnimation::POSITION_REV[0] dy = rect.y + 16 + KGC::CursorAnimation::POSITION_REV[1] vp = @active_window.viewport if vp != nil dx += vp.rect.x - vp.ox dy += vp.rect.y - vp.oy end dx += @active_window.x dy += @active_window.y case KGC::CursorAnimation::BASE_POSITION when 0 # 上 dy += @target_sprite.oy when 1 # 中央 dy += rect.height / 2 when 2 # 下 dy += rect.height - @target_sprite.oy end return [dx, dy] end #-------------------------------------------------------------------------- # ○ ウィンドウのアクティブ状態判定 #-------------------------------------------------------------------------- def window_active?(window) return false if window == nil return false if window.disposed? if window.is_a?(Window_Selectable) return true if window.active elsif window.is_a?(Window_SaveFile) return true if window.selected end return false end #-------------------------------------------------------------------------- # ○ アクティブウィンドウを探す #-------------------------------------------------------------------------- def search_active_window return @windows.find { |w| if !w.visible false elsif w.is_a?(Window_Selectable) w.active && w.index >= 0 elsif w.is_a?(Window_SaveFile) w.selected else false end } end end #==================================End Class===================================# #============================================================================== # ■ Scene_Base #============================================================================== class Scene_Base #-------------------------------------------------------------------------- # ● 開始処理 #-------------------------------------------------------------------------- alias start_KGC_CursorAnimation start def start Window_Base.show_cursor_animation start_KGC_CursorAnimation end #-------------------------------------------------------------------------- # ● 終了前処理 #-------------------------------------------------------------------------- alias pre_terminate_KGC_CursorAnimation pre_terminate def pre_terminate Window_Base.hide_cursor_animation pre_terminate_KGC_CursorAnimation end #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- alias update_KGC_CursorAnimation update def update update_KGC_CursorAnimation Window_Base.update_cursor_animation end end #==================================End Class===================================# #============================================================================== # ■ Scene_Title #============================================================================== if KGC::CursorAnimation::DEFAULT_ANIMATION class Scene_Title < Scene_Base #-------------------------------------------------------------------------- # ● 各種ゲームオブジェクトの作成 #-------------------------------------------------------------------------- alias create_game_objects_KGC_CursorAnimation create_game_objects def create_game_objects create_game_objects_KGC_CursorAnimation $game_switches[KGC::CursorAnimation::SWITCH_ID] = true end end end # <-- if KGC::CursorAnimation::DEFAULT_ANIMATION #==================================End Class===================================# class Window_Base < Window @@__cursor_animation = Cursor_Animation.new end #==================================End Class===================================# Il faut mettre ça dans ton fichier systeme: |
|
Citadin Lv.7
Age : 35 Inscrit le : 12/05/2010 Messages : 159
| Sujet: Re: [REQUEST] Modifier le curseur dans le jeu Lun 6 Sep 2010 - 11:21 | |
| Je me confonds en excuses... jai deja un script ki fait sa je le dirais le nom du script ce soir et en fait sa doit etre compatible avec. Et on doit avoir le choix entre plusieurs curseurs. Mais dans le menu du jeu on peut le modiier. |
|
| Sujet: Re: [REQUEST] Modifier le curseur dans le jeu | |
| |
|