Age : 30 Inscrit le : 22/12/2011 Messages : 1600
| Sujet: [VXace] Buzzer d'event ! Sam 9 Fév 2013 - 13:09 | |
| Simple c/c du sujet dans la section Ace. Crédit: XHTMLBoy, Fabien, Molok - XHTMLBoy a écrit:
- Script compatible VX et VX.ACE
Ce script est une adaptation d'un script XP de Fabien, (j'ai modifié la structure et l'ai adapté a VX et VXACE). Le gros du travail est de Fabien.
- Fabien a écrit:
- Un script qui fait tressailler l'événement, buzzer comme dans les Golden Sun. Je m'en sers pour qu'il exprimer de la surprise par exemple.
Il suffit de mettre "Insérer Script" dans un event et "buzz id" en code, en remplacent id par l'id de l'évt que vous voulez. - Molok a écrit:
- Bien pour manifester un sentiment, moins expressif qu'un saut
Utilisation - Code:
-
buzz 5 fait buzzer levents 5 (utiliser 0 pour buzzer le héros) prototype: - Code:
-
buzz id, amplitude = 0.1, duration = 16, periode = 16 Il est donc possible de paramétrer l'amplitude, la durée et la période (pour la fonction sinus). Cependant, les données par défaut sont cools
- Code:
-
buzz_group 1, 2, 3, 4, 5 Applique buzz aux évenements de 1 à 5. (mais sans le paramétrage des données complémentaires)
Installation Au dessus de main
- Code:
-
#============================================================================= # Buzzer => Permet d'appliquer une légère transformation sur les evenements # Script par FABIEN (Factory) pour XP légèrement modifié par Molok (pour VX) #==============================================================================
#============================================================================== # ** Game_Interpreter #------------------------------------------------------------------------------ # An interpreter for executing event commands. This class is used within the # Game_Map, Game_Troop, and Game_Event classes. #============================================================================== class Game_Interpreter #-------------------------------------------------------------------------- # * Buzz event #-------------------------------------------------------------------------- def buzz id, amplitude = 0.1, duration = 16, periode = 16 event = (id == 0 ? $game_player : $game_map.events[id]) event.buzz = duration event.buzz_length = duration event.buzz_amplitude = amplitude end #-------------------------------------------------------------------------- # * Buzz events #-------------------------------------------------------------------------- def buzz_group *ids ids.each{|event|buzz(event)} end end
#============================================================================== # ** Game_Character #------------------------------------------------------------------------------ # This class deals with characters. It's used as a superclass of the # Game_Player and Game_Event classes. #============================================================================== class Game_Character #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :buzz attr_accessor :buzz_amplitude attr_accessor :buzz_length end class Sprite_Character #-------------------------------------------------------------------------- # * Alias #-------------------------------------------------------------------------- alias old_initialize initialize alias old_update update #-------------------------------------------------------------------------- # * Object initialization #-------------------------------------------------------------------------- def initialize(viewport, character = nil) old_initialize(viewport, character) self.character.buzz = 0 self.character.buzz_amplitude = 0.1 self.character.buzz_length = 16 end #-------------------------------------------------------------------------- # * compute Buzz Transformation #-------------------------------------------------------------------------- def calc_buzz self.character.buzz_amplitude*Math.sin(self.character.buzz*6.283/self.character.buzz_length) end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update self.zoom_x = self.zoom_y = 1 old_update unless self.character.buzz== nil || self.character.buzz == 0 transformation = self.calc_buzz self.zoom_x += transformation self.zoom_y -= transformation self.character.buzz -= 1 end end end |
|