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



-30%
Le deal à ne pas rater :
LEGO Icons 10318 – Le Concorde à 139,99€
139.99 € 198.99 €
Voir le deal

Partagez
 

 [Résolu] Module RPG et class Audio

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
vincentmhd
Maire Lv.9
Maire Lv.9
vincentmhd


Masculin Age : 37
Inscrit le : 04/02/2009
Messages : 326

[Résolu] Module RPG et class Audio Empty
MessageSujet: [Résolu] Module RPG et class Audio   [Résolu] Module RPG et class Audio Icon_minitimeSam 29 Aoû 2009 - 21:19

Bonjour,


Je voulais bricoler la classe Audio, pour spacialiser certains sons, sans pour autant devoir déclarer un SE auparavant, pour que le tout tienne sur une ligne, lors de l'appel.


J'ai bricolé ceci, le compilateur me dit erreur au niveau des derniers "end". Dans mon projet, le script est seul.
J'ai peut-être trop joué avec les alias... Ne connaissant pas la structure originelle, de se_play, j'ai voulu utiliser l'alias pour réécrire le code inconnu.

Bon, au pire s'il n'y a pas de réponse, j'ai déjà une alternative, mais j'aurais aimé savoir ce que je n'avais pas compris dans ce que j'ai écrit.

Code:


module RPG
  class Audio
   
    alias sp_se_play se_play
   
    def se_play (filename, volume, pitch, x=0, y=0, r_max=0)
    #r_max est le rayon maximal où l'on peut entendre le son
    #x et y sont les coordonnées de l'origine du son 
    #ces arguments sont par défault pour garder la compatibilité
     
      if (r_max == 0)
        #il est impossible que le son n'est pas de rayon,
        #sauf si c'est le même volume partout
       
        #appel de la fonction d'origine
        sp_se_play
       
      else
       
        #Calcul de la distance par rapport à l'event,
        #ramené en pourcentage par rapport au r_max.
       
        dx = (100*sqrt(($game_player.x - x)*($game_player.x - x) + ($game_player.y - y)*($game_player.y - y))/r_max)
       
       
        if (dx > 100)
          #si le player est trop loin alors on entend rien
          volume = 0
          #appel de la fonction d'origine
          sp_se_play
         
        else
          #sinon on utilise le pourcentage sur le volume à l'origine
          #pour avoir le volume à la position du player.
          volume = (volume*(100 - dx)
          #appel de la fonction d'origine
          sp_se_play
        end  #erreur
      end   
    end
  end
end

Cordialement,
Vincentmhd


Dernière édition par vincentmhd le Sam 29 Aoû 2009 - 22:01, édité 1 fois
Revenir en haut Aller en bas
Sihn
Voyageur Lv.10
Voyageur Lv.10
Sihn


Masculin Age : 36
Inscrit le : 24/04/2009
Messages : 407

[Résolu] Module RPG et class Audio Empty
MessageSujet: Re: [Résolu] Module RPG et class Audio   [Résolu] Module RPG et class Audio Icon_minitimeSam 29 Aoû 2009 - 21:43

Tu as oublié une parenthèse sur l'une des dernières lignes :
Code:
          volume = (volume*(100 - dx)
          #appel de la fonction d'origine
          sp_se_play
        end  #erreur
      end 
    end
  end
end
Correction :
volume = (volume*(100 - dx))

Cependant, tu auras juste après un autre problème...
Le module RPG ne contient pas de classe nommée "Audio". En revanche, il existe bien un module "Audio"... mais j'éviterais de le modifier sans de solide connaissance, celui-ci n'étant probablement même pas codé en ruby... (d'où son absence dans le fichier d'aide)

En revanche, tu peux (et je te le conseille) modifier la classe SE du module RPG. Son contenu est donné dans le fichier d'aide :
Code:
module RPG
  class SE < AudioFile
    def play
      unless @name.empty?
        Audio.se_play("Audio/SE/" + @name, @volume, @pitch)
      end
    end
    def self.stop
      Audio.se_stop
    end
  end
end
Il hérite de la classe RPG::Audiofile, que voici :
Code:
module RPG
  class AudioFile
    def initialize(name = "", volume = 100, pitch = 100)
      @name = name
      @volume = volume
      @pitch = pitch
    end
    attr_accessor :name
    attr_accessor :volume
    attr_accessor :pitch
  end
end

Je te laisse bidouiller ces classes par toi-même. Wink Mais si tu veux quelques conseils supplémentaires, n'hésite pas.
Revenir en haut Aller en bas
http://www.google.fr/
vincentmhd
Maire Lv.9
Maire Lv.9
vincentmhd


Masculin Age : 37
Inscrit le : 04/02/2009
Messages : 326

[Résolu] Module RPG et class Audio Empty
MessageSujet: Re: [Résolu] Module RPG et class Audio   [Résolu] Module RPG et class Audio Icon_minitimeSam 29 Aoû 2009 - 22:00

Merci Sihn

J'étais en train d'éditer mon post Surprised
Je venais de découvrir l'erreur me disant que se_play n'était pas dans RPG::Audio
Je comprend mieux pourquoi je ne peux pas la surcharger.

Oui, la classe SE est mon alternative.
Si j'ai d'autres problèmes, je n'hésiterais pas.
Revenir en haut Aller en bas
Contenu sponsorisé




[Résolu] Module RPG et class Audio Empty
MessageSujet: Re: [Résolu] Module RPG et class Audio   [Résolu] Module RPG et class Audio Icon_minitime

Revenir en haut Aller en bas
 

[Résolu] Module RPG et class Audio

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

 Sujets similaires

-
» utiliser le tableau d'un module [resolu]
» RGSS2 : Problème de constantes et de module [ Résolu ]
» [Résolu] Script - Définition de " class "
» module lvl up
» [Résolu] Changement du nom du héros DANS LES COMBATS [RESOLU]

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
RPG Maker VX :: Entraide :: Problèmes et Solutions :: Résolu-
Créer un forum | ©phpBB | Forum gratuit d'entraide | Signaler un abus | Cookies | Forum gratuit