Partagez
Aller en bas
vincent26
vincent26
Membre

Nombre de messages : 766
Age : 24
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici Empty Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici

le Mar 22 Avr 2014 - 22:12
Tout d'abord je tiens à signaler que ce topic n'a pas pour but de résoudre des problèmes de script comme une incompatibilité ni de faire un cours pour configurer des scripts particuliers. Il a pour but d'aider les débutants et les futurs scripteurs dans leur progression Wink

Le but est simple :
Posez vos questions et je tenterais d'y répondre  geek

Cela peut aussi être des demandes de cours de Ruby adaptés a RPG maker 

Versions de RM que je sais utiliser : VX/VX ACE

Exemple de question (certes vous pouvez toujours demander plus simple ^^) :

Comment utiliser les notes d'un item dans un script ?
Comment démarrer un script ?
Comment afficher une image par le script ?
Que signifie telle ou telle ligne de commande dans un script ?

Voila Voila  Very Happy

EDIT : Tuto de scriptage en cours de préparation Wink


Dernière édition par vincent26 le Mer 23 Avr 2014 - 21:01, édité 2 fois
Kira'h
Kira'h
Membre

Nombre de messages : 588
Age : 24
Localisation : Devant mon écran... Si pas, dans mon jeu^^
Distinction : aucune
Date d'inscription : 25/02/2012

Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici Empty Re: Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici

le Mar 22 Avr 2014 - 22:44
C'est une très bonne idée, je suis sur qu'il y aura plein de membres qui viendront sur ce topic!
Bonne continuation!^^
vincent26
vincent26
Membre

Nombre de messages : 766
Age : 24
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici Empty Re: Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici

le Mar 22 Avr 2014 - 23:09
Merci bcp Very Happy
KaiserYoshi
KaiserYoshi
Membre

Nombre de messages : 82
Age : 27
Localisation : Dans le Nord
Distinction : aucune
Date d'inscription : 08/02/2013

Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici Empty Re: Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici

le Mer 23 Avr 2014 - 14:03
Très belle initiative.

Comment afficher une images par le script ? J'aimerai avoir quelques réponses sur ce sujet.

Bonne journée.
vincent26
vincent26
Membre

Nombre de messages : 766
Age : 24
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici Empty Re: Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici

le Mer 23 Avr 2014 - 14:38
Il faut utiliser plusieur lgne pour cela :
@image = Sprite.new     #Va permettre de définir un nouveau sprite a la variable @image
@image.bitmap = ... permet d'assigner l'image au sprite ex:
@image.bitmap = Cache.picture("Nom_de_ton_image")
Cache.picture() permet d'aller chercher une image qui ce trouve dans le dossier pictures

@image.x = X permet de définir sa position x (origine au coin haut gauche de base)
@image.y = X permet de définir sa position y (origine au coin haut gauche de base)

les coordonnée x commence a 0 a gauche et sont croissante jusqu’à la droite
les coordonnée y commence a 0 en haut et sont croissante jusqu'au bas de l'écran

Complément :

@image.ox = X permet de changer l'origine x de l'image (origine au coin haut gauche de base) a un emplacement autre sur l'image
@image.oy = X de même mais pour le y
@image.z = X permet de définir sa priorité d'affichage plus z est grand plus l'image serat au dessus des autre
@image.zoom_x = X permet de zoomer ou dézoomer une image selon les x. X doit être un chiffre a virgules de base c'est 1.0
@image.zoom_y = X De même mais selon les y

@image.bitmap.width permet de récupérer la largeur de image
@image.bitmap.height permet de récupérer la hauteur de image

il existe d'autre fonction plus spécifique si besoin (genre découper une image ou autre)


Dernière édition par vincent26 le Lun 17 Aoû 2015 - 15:14, édité 2 fois
Anonymous
Invité
Invité

Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici Empty Re: Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici

le Mer 23 Avr 2014 - 14:44
Ton idée est sympa Vincent mais il y a pas mal de fautes d'orthographes (je t'enverrai un MP ce soir si tu veux) et tu devrais mettre un tuto des bases (ou au moins un lien)

Mais j'aime beaucoup l'idée quand même Smile
KaiserYoshi
KaiserYoshi
Membre

Nombre de messages : 82
Age : 27
Localisation : Dans le Nord
Distinction : aucune
Date d'inscription : 08/02/2013

Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici Empty Re: Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici

le Mer 23 Avr 2014 - 14:53
Merci ! Ça me sera utile !
vincent26
vincent26
Membre

Nombre de messages : 766
Age : 24
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici Empty Re: Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici

le Mer 23 Avr 2014 - 15:10
Wi désolé pour les fautes c'est vraiment pas mon fort  pale 

Je fais un mini tuto dès que j'ai le temps Wink
Ssozi
Ssozi
Membre

Nombre de messages : 474
Age : 23
Distinction : Sojin nuna, salanghaeyo !
Date d'inscription : 24/07/2009

Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici Empty Re: Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici

le Mer 23 Avr 2014 - 15:18
Je peux ajouter quelque chose ? rabbit 

Spoiler:

Cache est un module qui permet l'accès rapide aux dossiers contenant les images. Il renvoie un Bitmap. En fait, c'est plus compliqué que ça.
Si tu veux afficher une image tout en te laissant la possibilité de l'afficher avec des caractéristiques précises, passe par cette méthode :

Code:

@image = Sprite.new
@image.bitmap = Bitmap.new(width, height)
bmp = Cache.dossier("nom")
rect = Rect.new(x, y, w, h)
@image.bitmap.blt(x, y, bmp, rect, opacité)


Après, faut préciser que .ox et .oy servent à placer le centre de rotation de la méthode .angle qui est disponible sur n'importe quel objet Sprite !
Enfin, je rentre dans les détails bien sur. Ta méthode fonctionne aussi Vinc' Very Happy
vincent26
vincent26
Membre

Nombre de messages : 766
Age : 24
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici Empty Re: Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici

le Mer 23 Avr 2014 - 15:23
disons que je fait simple mais que si il faut approfondir il y a pas de soucis Smile

Il faudrait faire une explication détaillé des script fournit avec le jeu un de ces jour Wink

Pour des truc sympa il existe aussi des fonctions pour faire onduler une image , pour lui donner un effet de vague Smile
Selver
Selver
Membre

Nombre de messages : 14
Distinction : aucune
Date d'inscription : 05/04/2014

Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici Empty Re: Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici

le Mer 23 Avr 2014 - 18:50
Est-ce que peut-on faire un jeu totalement scripté sans que ça rame au retour ? Par exemple, j'aimerais faire un système de combat basé sur le temps en fonction d'une horloge et que le héros débloquera des compétences uniques à une certaine heure du jeu (ça sera bien évidement du combat en temps réel comme on a l'habitude de voir sur les autres scripts).
vincent26
vincent26
Membre

Nombre de messages : 766
Age : 24
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici Empty Re: Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici

le Mer 23 Avr 2014 - 19:45
A vrai dire ça risque de moins ramer si tu script entièrement un jeu (a condition que tu script bien bien sur ^^) car l’affichage des map ou la gestion d'event , étant prévus pour simplifier la tache, délaisse quelque peut le caractère optimisation que le script offre.
Aprés cela dépend de ce que tu appel un jeu totalement scripté

Sinon il me semble que tu peut toujours optimiser pour réduire la latence tu peut même toucher au script fourni avec le jeu Wink
Spytje
Spytje
Administrateur

Nombre de messages : 5933
Localisation : La terre
Distinction : Spiraliste [Korn']
Forestia : Projet du mois juillet 2014
Papy Pulkigrat [Yama']
Date d'inscription : 16/03/2008

Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici Empty Re: Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici

le Mer 23 Avr 2014 - 21:07

Quelle bande de frimeurs ces scripteurs  :P 

Merci pour ton aide Vincent ton topic est très intéressant !

_________________
Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici 911

LE PROJET SUR FACEBOOK

N'hésitez pas à suivre la page  Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici 344805
vincent26
vincent26
Membre

Nombre de messages : 766
Age : 24
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici Empty Re: Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici

le Mer 23 Avr 2014 - 21:11
^^ merci

A on ce demande ce que les maker fairait sans nous XD
Xandiar
Xandiar
Membre

Nombre de messages : 497
Age : 24
Localisation : Suisse
Distinction : aucune
Date d'inscription : 12/10/2013

Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici Empty Re: Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici

le Jeu 24 Avr 2014 - 19:40
Plop, j'aurais besoin de ton aide,

J'ai un scripte qui permet au joueur de pouvoir modifier le son du jeu, mais le problème c'est qu'il n'est pas centré, voila un screenshot :

Screenshot:
Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici Center10

C'est plutôt... moche, tu pourrais m'aider à le recentrer ? ^^

Voila le scripte :

Scripte:

Code:
 #Basic Options Menu v1.2.1
    #----------#
    #Features: Provides a simple option menu for the player to do optiony stuff...
    #           Like volume effects for all, bgm, and se's. Fancy!
    #          
    #          Also additional options if you have Basic Window Resizer,
    #           Basic Message SE, and Basic Autosave.
    #
    #Usage:    Plug and play unless you want a bit more. Customization below.
    #
    #----------#
    #-- Script by: V.M of D.T
    #
    #- Questions or comments can be:
    #    posted on the thread for the script
    #    given by email: sumptuaryspade@live.ca
    #    provided on facebook: http://www.facebook.com/DaimoniousTailsGames
    #
    #- Free to use in any project with credit given, donations always welcome!
    
   #This lets you set the order of the windows via an array
    WINDOW_ORDER = [:master,:bgm,:se,:resolution,:message_se,:switch]
    #Basic options are:
    #  :master - Master Volume               :bgm     - Background Music Volume
    #  :se     - Sound Effect Volume         :switch  - Allow the player to turn on/off a switch
    #
    #-- Additional Options are:
    #  :resolution     -   If you have Basic Window Resizer installed
    #  :message_se     -   If you have Basic Message SE installed
    #  :autosave       -   If you have Basic Autosave installed
    
   #These are all the strings for the help window and headers:
    module OPT_STR
      #When the command window is selected
      COMMAND_HELP       = "Confirmer et quitter/Quitter"
      #Details for :master
      MASTER_VOLUME      = "Volume principal"
      MASTER_VOLUME_HELP = "Règler le volume principal du jeu"
      #Details for :bgm
      BGM_VOLUME         = "Volume BGM"
      BGM_VOLUME_HELP    = "Règler le volume de la musique"
      SE_VOLUME          = "Volume SE "
      SE_VOLUME_HELP     = "Règler le volume des effets"
      #Details for :resolution
      RESOLUTION         = "Résolution"
      RESOLUTION_HELP    = "Change la résulution de l'écran"
      #Details for :autosave
      AUTOSAVE           = "Sauvegarde automatique"
      AUTOSAVE_HELP      = "Enclancher/déclancher la sauvegarde auto"
      #Details for :message
      MESSAGE_SE         = "Message SE"
      MESSAGE_SE_HELP    = "Enclancher/déclancher les sons des messages"
      #Details for :switch
      SWITCH_ID          = 5
      SWITCH             = "Aide"
      SWITCH_HELP        = "Message d'aide"
      SWITCH_COMMAND     = ["On","Off"]
    end
    
   class Scene_Options < Scene_MenuBase
      def start
        super
        $game_options.memorize_options
        create_base_windows
        @current_index = 1
        @window_index = []
        @size = 0
        WINDOW_ORDER.each do |symbol|
          create_resolution_window if symbol == :resolution
          create_autosave_window   if symbol == :autosave
          create_master_window     if symbol == :master
          create_bgm_window        if symbol == :bgm
          create_se_window         if symbol == :se
          create_message_se_window if symbol == :message_se
          create_window_switch     if symbol == :switch
        end
        create_command_window
        @index = 0
        @old_index = @index
        activate_window(0)
      end
      def create_base_windows
        @help_window = Window_Help.new(1)
        @help_window.set_text("Options")
        @back_window = Window_Options.new
        @back_window.height = (WINDOW_ORDER.size + 1)* 48 + 24
        @back_window.create_contents
      end
      def create_command_window
        @window_command = Window_OCommand.new(48+24 * @current_index)
        @window_command.set_handler(:ok, method(:command_ok))
        @window_index.push(:command)
        @back_window.draw_line(24 * (@current_index - 1))
      end
      def create_resolution_window
        if Module.const_defined?(:Window_Resize)
          @window_resolution = Window_OR.new(48+24 * @current_index)
          @window_resolution.set_handler(:ok, method(:resolution_ok))
          @back_window.add_text(24 * (@current_index - 1),OPT_STR::RESOLUTION)
          @current_index += 2
          @size += 1
          @window_index.push(:resolution)
        end
      end
      def create_autosave_window
        if Module.const_defined?(:AUTOSAVE_FILE_NAME)
          @window_autosave = Window_OAS.new(48+24 * @current_index)
          @window_autosave.set_handler(:ok, method(:autosave_ok))
          @back_window.add_text(24 * (@current_index - 1),OPT_STR::AUTOSAVE)
          @current_index += 2
          @size += 1
          @window_index.push(:autosave)
        end
      end
      def create_master_window
        @window_masterbar = Window_OBar.new(48+24 * @current_index)
        @back_window.add_text(24 * (@current_index - 1),OPT_STR::MASTER_VOLUME)
        @current_index += 2
        @size += 1
        @window_masterbar.refresh($game_options.master_volume)
        @window_index.push(:master)
      end
      def create_bgm_window
        @window_bgmbar = Window_OBar.new(48+24 * @current_index)
        @back_window.add_text(24 * (@current_index - 1),OPT_STR::BGM_VOLUME)
        @current_index += 2
        @size += 1
        @window_bgmbar.refresh($game_options.bgm_volume)
        @window_index.push(:bgm)
      end
      def create_se_window
        @window_sebar = Window_OBar.new(48+24*@current_index)
        @back_window.add_text(24 * (@current_index - 1),OPT_STR::SE_VOLUME)
        @current_index += 2
        @size += 1
        @window_sebar.refresh($game_options.se_volume)
        @window_index.push(:se)
      end
      def create_message_se_window
        if Window_Message.const_defined?(:DEFAULT_SE_FREQ)
          @window_message = Window_OMSE.new(48+24 * @current_index)
          @window_message.set_handler(:ok, method(:message_ok))
          @back_window.add_text(24 * (@current_index - 1),OPT_STR::MESSAGE_SE)
          @current_index += 2
          @size += 1
          @window_index.push(:message)
        end
      end
      def create_window_switch
        @window_switch = Window_OSW.new(48+24 * @current_index)
        @window_switch.set_handler(:ok, method(:switch_ok))
        @back_window.add_text(24 * (@current_index - 1),OPT_STR::SWITCH)
        @current_index += 2
        @size += 1
        @window_index.push(:switch)
      end
      def activate_window(index)
        case @window_index[index]
        when :resolution
          @window_resolution.select(0)
          @window_resolution.activate
          @help_window.set_text(OPT_STR::RESOLUTION_HELP)
        when :autosave
          @window_autosave.select(0)
          @window_autosave.activate
          @help_window.set_text(OPT_STR::AUTOSAVE_HELP)
        when :master
          @window_masterbar.select(0)
          @window_masterbar.activate
          @help_window.set_text(OPT_STR::MASTER_VOLUME_HELP)
        when :bgm
          @window_bgmbar.select(0)
          @window_bgmbar.activate
          @help_window.set_text(OPT_STR::BGM_VOLUME_HELP)
        when :se
          @window_sebar.select(0)
          @window_sebar.activate
          @help_window.set_text(OPT_STR::SE_VOLUME_HELP)
        when :message
          @window_message.select(0)
          @window_message.activate
          @help_window.set_text(OPT_STR::MESSAGE_SE_HELP)
        when :command
          @window_command.select(0)
          @window_command.activate
          @help_window.set_text(OPT_STR::COMMAND_HELP)
        when :switch
          @window_switch.select(0)
          @window_switch.activate
          @help_window.set_text(OPT_STR::SWITCH_HELP)
        end
      end
      def deactivate_window(index)
        case @window_index[index]
        when :resolution
          @window_resolution.select(-1)
          @window_resolution.deactivate
        when :autosave
          @window_autosave.select(-1)
          @window_autosave.deactivate
        when :master
          @window_masterbar.select(-1)
          @window_masterbar.deactivate
        when :bgm
          @window_bgmbar.select(-1)
          @window_bgmbar.deactivate
        when :se
          @window_sebar.select(-1)
          @window_sebar.deactivate
        when :message
          @window_message.select(-1)
          @window_message.deactivate
        when :command
          @window_command.select(-1)
          @window_command.deactivate
        when :switch
          @window_switch.select(-1)
          @window_switch.deactivate
        end
      end
      def update
        super
        update_input
        update_index
      end
      def update_input
        if Input.trigger?(:UP)
          @index -= 1
          @index = @size if @index < 0
        elsif Input.trigger?(:DOWN)
          @index += 1
          @index = 0 if @index > @size
        elsif Input.repeat?(:LEFT)
          change_volume(@index, -0.01)
        elsif Input.repeat?(:RIGHT)
          change_volume(@index, 0.01)
        elsif Input.trigger?(:B)
          @index = @size
        end
      end
      def update_index
        return if @index == @old_index
        deactivate_window(@old_index)
        activate_window(@index)
        Sound.play_cursor
        @old_index = @index
      end
      def change_volume(index, value)
        return unless audio_index(index)
        $game_options.set_volume(:master, value) if @window_index[index] == :master
        $game_options.set_volume(:bgm, value) if @window_index[index] == :bgm
        $game_options.set_volume(:se, value) if @window_index[index] == :se
        @window_masterbar.refresh($game_options.master_volume)
        @window_bgmbar.refresh($game_options.bgm_volume)
        @window_sebar.refresh($game_options.se_volume)
        Sound.play_cursor
        $game_map.autoplay
      end
      def audio_index(index)
        return true if @window_index[index] == :master
        return true if @window_index[index] == :bgm
        return true if @window_index[index] == :se
        return false
      end
      def resolution_ok
        case @window_resolution.index
        when 0
          $game_options.set_resolution(Graphics.width,Graphics.height)
        when 1
          $game_options.set_resolution(Graphics.width*2,Graphics.height*2)
        when 2
          $game_options.set_fullscreen
        end
        @window_resolution.refresh
        @window_resolution.activate
      end
      def autosave_ok
        $game_options.auto_save = true if @window_autosave.index == 0
        $game_options.auto_save = false if @window_autosave.index == 1
        @window_autosave.refresh
        @window_autosave.activate
      end
      def message_ok
        $game_options.message_se = true if @window_message.index == 0
        $game_options.message_se = false if @window_message.index == 1
        @window_message.refresh
        @window_message.activate
      end
      def switch_ok
        $game_switches[OPT_STR::SWITCH_ID] = true if @window_switch.index == 0
        $game_switches[OPT_STR::SWITCH_ID] = false if @window_switch.index == 1
        @window_switch.refresh
        @window_switch.activate
      end
      def command_ok
        case @window_command.index
        when 0
          $game_options.save_options
          $game_options.clear_memorize
          return_scene
        when 1
          $game_options.copy_memorize
          $game_options.clear_memorize
          return_scene
        end
      end
    end
    
   class Window_Options < Window_Base
      def initialize
        super(0,48,544,416-48)
        self.contents.font.color = Color.new(150,100,255,200)
      end
      def add_text(y,string)
        draw_text(15,y,544-24,24,string)
      end
      def draw_line(y)
        contents.fill_rect(15,y+12,544-24,1,Color.new(75,75,75))
      end
    end
    
   class Window_OR < Window_Selectable
      TEXT = ["Normal","Large","plein-écran"]
      def initialize(y)
        super(24,y,544-48,48)
        refresh
        self.opacity = 0
      end
      def item_width; self.contents.width / 4; end
      def item_max; return 3; end
      def col_max; return item_max; end
      def row_max; return 1; end
      def draw_item(index)
        rect = item_rect(index)
        change_color(normal_color, index == $game_options.resolution_index)
        draw_text(rect, TEXT[index],1)
      end
    end
    
   class Window_OAS < Window_Selectable
      def initialize(y)
        super(24,y,544-48,48)
        refresh
        self.opacity = 0
      end
      def item_width; return 118; end
      def item_max; return 2; end
      def col_max; return item_max; end
      def row_max; return 1; end
      def draw_item(index)
        rect = item_rect(index)
        $game_options.auto_save ? id = 0 : id = 1
        change_color(normal_color, id == index)
        draw_text(rect, ["Oui","Non"][index],1)
      end
    end
    
   class Window_OSW < Window_Selectable
      def initialize(y)
        super(24,y,544-48,48)
        refresh
        self.opacity = 0
      end
      def item_width; return 118; end
      def item_max; return 2; end
      def col_max; return item_max; end
      def row_max; return 1; end
      def draw_item(index)
        rect = item_rect(index)
        $game_switches[OPT_STR::SWITCH_ID] ? id = 0 : id = 1
        change_color(normal_color, id == index)
        draw_text(rect, [OPT_STR::SWITCH_COMMAND[0],OPT_STR::SWITCH_COMMAND[1]][index],1)
      end
    end
    
   class Window_OCommand < Window_Selectable
      def initialize(y)
        super(24+96,y,544-48,48)
        refresh
        self.opacity = 0
      end
      def item_width; return 118; end
      def item_max; return 2; end
      def col_max; return item_max; end
      def row_max; return 1; end
      def draw_item(index)
        rect = item_rect(index)
        draw_text(rect, ["Ok","Annuler"][index],1)
      end
    end
    
   class Window_OMSE < Window_OAS
      def initialize(y)
        super
        self.y = y
        refresh
        self.opacity = 0
      end
      def draw_item(index)
        rect = item_rect(index)
        $game_options.message_se ? id = 0 : id = 1
        change_color(normal_color, id == index)
        draw_text(rect, ["Yes","No"][index],1)
      end
    end
    
   class Window_OBar < Window_Selectable
      def initialize(y)
        super(24,y,544-48,48)
        self.opacity = 0
      end
      def item_width; return contents.width; end
      def item_max; return 1; end
      def col_max; return item_max; end
      def row_max; return 1; end
      def refresh(temp_value)
        contents.clear
        temp_value *= 100
        temp_value.to_i.times do |i|
          rect = Rect.new(4+i*4,6,2,8)
          contents.fill_rect(rect, Color.new(75,100,255))
        end
        (100-temp_value).to_i.times do |i|
          rect = Rect.new(396-i*4,6,2,8)
          contents.fill_rect(rect, Color.new(0,0,0))
        end
        draw_text(0,0,contents.width,24,temp_value.to_i.to_s + "%",2)
      end
    end
    
   class Game_Options
      attr_accessor  :fullscreen
      attr_accessor  :resolution
      attr_accessor  :master_volume
      attr_accessor  :bgm_volume
      attr_accessor  :se_volume
      attr_accessor  :auto_save
      attr_accessor  :message_se
      def default_options
        @fullscreen = false
        @resolution = [544,416]
        @master_volume = 1.0
        @bgm_volume = 1.0
        @se_volume = 1.0
        @auto_save = true
        @message_se = true
        save_options
      end
      def load_options
        if FileTest.exist?("System/Options.dt")
          File.open("System/Options.dt", "rb") do |file|
            $game_options = Marshal.load(file)
          end
        else
          default_options
        end
        reset_screen
      end
      def reset_screen
        if Module.const_defined?(:Window_Resize)
          if self.fullscreen
            Window_Resize.f
          else
            Window_Resize.r($game_options.resolution[0],$game_options.resolution[1])
          end
        end
      end
      def save_options
        File.open("System/Options.dt", "wb") do |file|
          Marshal.dump($game_options, file)
        end
      end
      def memorize_options
        @old_options = Marshal.load(Marshal.dump($game_options))
      end
      def copy_memorize
        $game_options = Marshal.load(Marshal.dump(@old_options))
        reset_screen
      end
      def clear_memorize
        @old_options = nil
      end
      def resolution_index
        return 2 if @fullscreen
        return 1 if @resolution[0] == 544*2
        return 0
      end
      def set_resolution(w,h)
        @resolution = [w,h]
        @fullscreen = false
        Window_Resize.window
        Window_Resize.r(@resolution[0],@resolution[1])
      end
      def set_fullscreen
        @fullscreen = true
        Window_Resize.full
      end
      def set_volume(symbol, value)
        case symbol
        when :master
          @master_volume += value
          @master_volume = [[@master_volume, 1].min, 0].max
        when :bgm
          @bgm_volume += value
          @bgm_volume = [[@bgm_volume, 1].min, 0].max
        when :se
          @se_volume += value
          @se_volume = [[@se_volume, 1].min, 0].max
        end
      end
    end
    
   class RPG::BGM < RPG::AudioFile
      def play(pos = 0)
        if @name.empty?
          Audio.bgm_stop
          @@last = RPG::BGM.new
        else
          if $game_options
            volume = @volume * $game_options.master_volume
            volume *= $game_options.bgm_volume
          else
            volume = @volume
          end
          Audio.bgm_play('Audio/BGM/' + @name, volume.to_i, @pitch, pos)
          @@last = self.clone
        end
      end
    end
    
   class RPG::BGS < RPG::AudioFile
      def play(pos = 0)
        if @name.empty?
          Audio.bgs_stop
          @@last = RPG::BGS.new
        else
          if $game_options
            volume = @volume * $game_options.master_volume
            volume *= $game_options.bgm_volume
          else
            volume = @volume
          end
          Audio.bgs_play('Audio/BGS/' + @name, volume.to_i, @pitch, pos)
          @@last = self.clone
        end
      end
    end
    
   class RPG::ME < RPG::AudioFile
      def play
        if @name.empty?
          Audio.me_stop
        else
          if $game_options
            volume = @volume * $game_options.master_volume
            volume *= $game_options.se_volume
          else
            volume = @volume
          end
          Audio.me_play('Audio/ME/' + @name, volume.to_i, @pitch)
        end
      end
    end
    
   class RPG::SE < RPG::AudioFile
      def play
        unless @name.empty?
          if $game_options
            volume = @volume * $game_options.master_volume
            volume *= $game_options.se_volume
          else
            volume = @volume
          end
          Audio.se_play('Audio/SE/' + @name, volume.to_i, @pitch)
        end
      end
    end
    
   module SceneManager
      def self.run
        DataManager.init
        Audio.setup_midi if use_midi?
        $game_options = Game_Options.new
        $game_options.load_options
        @scene = first_scene_class.new
        @scene.main while @scene
      end
    end
    
   class Window_MenuCommand < Window_Command
      def add_original_commands
        add_command("Options", :options)
      end
    end
    
   class Scene_Menu < Scene_MenuBase
      alias options_create_command_window create_command_window
      def create_command_window
        options_create_command_window
        @command_window.set_handler(:options,   method(:command_options))
      end
      def command_options
        SceneManager.call(Scene_Options)
      end
    end

Dany
Dany
Membre

Nombre de messages : 773
Age : 23
Distinction : aucune
Date d'inscription : 16/11/2010
http://gamers-studio.forumofficiel.fr/

Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici Empty Re: Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici

le Jeu 24 Avr 2014 - 19:47
Salut, précise un peu!  Laughing 
Quel est ta résolution de ton projet, veux-tu juste centrer la fenêtre de Volume? (Et non la description)
Ou mettre dans toute la fenêtre de ton projet?
Xandiar
Xandiar
Membre

Nombre de messages : 497
Age : 24
Localisation : Suisse
Distinction : aucune
Date d'inscription : 12/10/2013

Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici Empty Re: Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici

le Jeu 24 Avr 2014 - 19:51
Okay, je vais mieux expliquer :

J'utilise la définition par défaut du jeu (je ne sais plus de combien par combien elle est)

Ensuite, j'aimerais que la fenêtre qui permet de changer le son prenne tout l'espace, qu'il n'y ai plus de zone noir... Je ne sais pas si c'est beaucoup plus précis xD
Dany
Dany
Membre

Nombre de messages : 773
Age : 23
Distinction : aucune
Date d'inscription : 16/11/2010
http://gamers-studio.forumofficiel.fr/

Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici Empty Re: Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici

le Jeu 24 Avr 2014 - 19:58
Ok je vois! Wink
Utilise-tu un script pour réglé la résolution?
Sinon ligne 86: @back_window.height = (WINDOW_ORDER.size + 1)* 48 + 24
Change ce qui a en rouge! Wink
Je pense que ce bout de code permet de réglé la fenêtre d'option! Wink
Le mieux c'est de discuter en privé! Wink
vincent26
vincent26
Membre

Nombre de messages : 766
Age : 24
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici Empty Re: Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici

le Ven 25 Avr 2014 - 12:17
Salut désoler je n'avais pas vue ta question ^^
il faut changer a la ligne 86 par cela :
@back_window.height = Graphics.height-@help_window.height

et ajouter une ligne avec ça :
@back_window.width = Graphics.width

Mais cela ne fait que augmenter le fond et ne recentre en rien les texte et commande
chaque commande est une fenêtre différente qui doit être recentrer indépendamment
Dany
Dany
Membre

Nombre de messages : 773
Age : 23
Distinction : aucune
Date d'inscription : 16/11/2010
http://gamers-studio.forumofficiel.fr/

Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici Empty Re: Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici

le Ven 25 Avr 2014 - 12:22
J'étais presque! Wink
Merci pour ta réponse, je m'en souviendrais la prochaine fois! Smile
vincent26
vincent26
Membre

Nombre de messages : 766
Age : 24
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici Empty Re: Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici

le Ven 25 Avr 2014 - 12:47
^^ Graphics.height permet de faire des ajustement auto en fonction de la taille de l'écran Wink
Xandiar
Xandiar
Membre

Nombre de messages : 497
Age : 24
Localisation : Suisse
Distinction : aucune
Date d'inscription : 12/10/2013

Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici Empty Re: Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici

le Ven 25 Avr 2014 - 13:08
Merci, c'est exactement se que je voulais =D
vincent26
vincent26
Membre

Nombre de messages : 766
Age : 24
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici Empty Re: Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici

le Ven 25 Avr 2014 - 13:12
Ya pas de quoi Wink
vincent26
vincent26
Membre

Nombre de messages : 766
Age : 24
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici Empty Re: Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici

le Mer 7 Mai 2014 - 23:00
Petit up pour montrer que le sujet et toujour présent avec en prime une petite astuce pour afficher un texte a l'écran avec une certaine police et une certaine taille :

@font = Font.new("Chiller",72)
@test = Sprite.new
@test.bitmap = Bitmap.new(416,544)
@test.bitmap.font = @font
@test.bitmap.draw_text(0, 0, 416, 544, "test")
@test.x = 0
@test.y = 0

dans le font "Chiller" et la police et 72 la taille du texte
@test.x = 0
@test.y = 0
permettent de définir l'emplacement

Bon ce morceaux n'est pas optimiser niveaux taille de l'image pour les scripteur raleur (Biwi XD)
mais c'est surtout a titre d'exemple Wink
Ssozi
Ssozi
Membre

Nombre de messages : 474
Age : 23
Distinction : Sojin nuna, salanghaeyo !
Date d'inscription : 24/07/2009

Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici Empty Re: Si vous voullez débuter le scriptage ou avoir de petite astuce concernant les script c'est ici

le Mer 7 Mai 2014 - 23:14
Je savais pas pour Font.new, tu m'apprends un truc xD
Par contre, avec l'expérience, j'ai capté que (avec la taille de police initiale du jeu, soit 20, je crois) :
Code:
@test.bitmap.draw_text(0, -200, 544, 416, "Texte")
Permet d'afficher le texte à la position x=0 ; y=0 (parce qu'il y a un décalage si on met 544, 416)^^

Merci pour l'astuce en tout cas!! Very Happy
Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum