RPG Creator : créez votre MMORPG ou RPG sans aucune connaissance en programmation


Disponible le 4 Juin !




- Jouez à votre jeu sur tablettes tactiles, Smartphones et navigateurs Web
- Personnalisez vos menus
- Dessinez facilement et rapidement vos cartes
- Créez des actions pour le combat A-RPG


www.rpgcreator.net


Heures au format UTC + 1 heure [ Heure d’été ]


Règles du forum


-Mettez un titre clair et explicite, pas un titre vague.
-Fournissez le plus d'informations possible, soyez clair et précis.
-Si votre question est liée à un script, postez le script, un lien vers lui, ou une démo.
-Pensez à éditer votre sujet afin d'ajouter [Résolu] dans le titre, lorsque votre problème est résolu.



Publier un nouveau sujet Répondre au sujet  [ 6 messages ] 
Auteur Message
 Sujet du message: Rafraichissement et lenteur d'un menu[RESOLU différement]
MessagePublié: 18 Nov 2011, 21:04 
Artisan (Nv 5)
Avatar de l’utilisateur

Inscrit le: 13 Avr 2011, 17:19
Messages: 183
Niveau RPG Maker: Correct
Logiciel(s) préféré(s): RMXP
Point(s) Fort(s): Scenario
Sexe: Masculin
Points d'aide: 6/60

Créations :

Voir ses créations

Bonjour,

Je viens encore une fois m'adresser aux pros du script car je suis en train de créer un menu pour les invocations assez complexe.

Le menu se présente ainsi:
Image



A gauche, on trouve les 4 types d'invocation.
Pour l'invocation Naruto par exemple, il y a 3 invocations :
- Naruto qui permet d'invoquer Naruto
- Naruto + qui permet d'invoquer Naruto et Sakura
- Naruto X qui permet d'invoquer Naruto, Sakura, Gaara et Sasuke.

Et c'est pareil pour les autres types d'invocation.

A droite, on trouve les caractéristiques de chaque personnage de l'invocation.

Si je ne connaît que l'invocation Naruto +, seul deux personnages doivent s'afficher.

Lorsqu'on va sur la case Bleach, je veux donc que les personnages de bleach s'affichent selon l'invocation (normal, + ou X) connue.

Pour cela j'ai crée le script qui se trouve à la fin de mon commentaire.

PROBLEME :
Le rafraichissement est très long, il faut par exemple attendre 10 secondes pour que les images de "Naruto" s'enlèvenent lorsque je suis sur la case Bleach. Comment mieux scripter pour que ce soit plus rapide, ou y a-t-il une autre méthode?

Image


Scene_Invocation
Code: Tout sélectionner
#==============================================================================
#                              Scene_Invocation
#------------------------------------------------------------------------------
#
#==============================================================================

#==============================================================================
# Constantes
#==============================================================================

SUMMON_TECH = {
    0 => [97, 98, 99],     # Naruto
    1 => [100, 101, 102],  # Bleach
    2 => [106, 107, 108],  # Fairy Tail
    3 => [112, 113, 114]   # Mixte
  }


class Scene_Invocation
  #--------------------------------------------------------------------------
  #
  #--------------------------------------------------------------------------
  def initialize(invocation_index = 0)
    @invocation_index = invocation_index
  end
  #--------------------------------------------------------------------------
  #
  #--------------------------------------------------------------------------
  def main
    #========================================
    # This is setting up the background picture
    @background = Sprite.new
    @background.bitmap = RPG::Cache.picture("Map/" + $game_map.map_id.to_s + ".png")
    @background.x = 0
    @background.y = 0
    #========================================
    # This is setting up the command pictures for 'item' etc..
    @command1 = Sprite.new
    @command1.bitmap = RPG::Cache.picture("Menu/" + "cmsnaruto")
    @command1.x = 15
    @command1.y = 15 #40
    @command1.z = 100
    @command1.visible = true
    #========================================
    @command2 = Sprite.new
    @command2.bitmap = RPG::Cache.picture("Menu/" + "cmsbleach")
    @command2.x = 15
    @command2.y = 75
    @command2.z = 100
    @command2.visible = true
    #========================================
    @command3 = Sprite.new
    @command3.bitmap = RPG::Cache.picture("Menu/" + "cmsfairy")
    @command3.x = 15
    @command3.y = 135
    @command3.z = 100
    @command3.visible = true
    #========================================
    @command4 = Sprite.new
    @command4.bitmap = RPG::Cache.picture("Menu/" + "cmsmixte")
    @command4.x = 15
    @command4.y = 195
    @command4.z = 100
    @command4.visible = true
    # This setting up the shadows for the commands.
    @commands1 = Sprite.new
    @commands1.bitmap = RPG::Cache.picture("Menu/" + "cmscommandshadow")
    @commands1.x = 20
    @commands1.y = 20 #45
    @commands1.z = 1
    @commands1.opacity = 155
    @commands1.visible = false
    #========================================
    @commands2 = Sprite.new
    @commands2.bitmap = RPG::Cache.picture("Menu/" + "cmscommandshadow")
    @commands2.x = 20
    @commands2.y = 20
    @commands2.z = 1
    @commands2.opacity = 155
    @commands2.visible = false
    #========================================
    @commands3 = Sprite.new
    @commands3.bitmap = RPG::Cache.picture("Menu/" + "cmscommandshadow")
    @commands3.x = 20
    @commands3.y = 20
    @commands3.z = 1
    @commands3.opacity = 155
    @commands3.visible = false
    #========================================
    @commands4 = Sprite.new
    @commands4.bitmap = RPG::Cache.picture("Menu/" + "cmscommandshadow")
    @commands4.x = 20
    @commands4.y = 20
    @commands4.z = 1
    @commands4.opacity = 155
    @commands4.visible = false
    #========================================
    # This is setting up the arrow cursor used in the command window..
    @arrow = Sprite.new
    @arrow.bitmap = RPG::Cache.picture("Menu/" + "arrow4")
    @arrow.x = 0
    @arrow.y = 30
    @arrow.z = 1000
    #========================================
    # This is setting up the arrow for the status window
    @arrow_status = Sprite.new
    @arrow_status.bitmap = RPG::Cache.picture("Menu/" + "arrow4")
    @arrow_status.x = 260
    @arrow_status.y = 37
    @arrow_status.z = 1000
    @arrow_status.visible = false
    #========================================
    # This is setting up the status windows, making them not visible for the moment..
    @status_window1 = Sprite.new
    @status_window1.bitmap = RPG::Cache.picture("Menu/" + "status window 1")
    @status_window1.x = 290 #693
    @status_window1.y = 7
    @status_window1.z = 100
    @status_window1.visible = false
    #========================================
    @status_window2 = Sprite.new
    @status_window2.bitmap = RPG::Cache.picture("Menu/" + "status window 2")
    @status_window2.x = 290 #676
    @status_window2.y = 106
    @status_window2.z = 100
    @status_window2.visible = false
    #========================================
    @status_window3 = Sprite.new
    @status_window3.bitmap = RPG::Cache.picture("Menu/" + "status window 3")
    @status_window3.x = 290
    @status_window3.y = 206
    @status_window3.z = 100
    @status_window3.visible = false
    #========================================
    @status_window4 = Sprite.new
    @status_window4.bitmap = RPG::Cache.picture("Menu/" + "status window 4")
    @status_window4.x = 290
    @status_window4.y = 306
    @status_window4.z = 100
    @status_window4.visible = true
    #========================================
    # The shadows are set up for the status windows..
    @status_windowshadow1 = Sprite.new
    @status_windowshadow1.bitmap = RPG::Cache.picture("Menu/" + "blackwindow2")
    @status_windowshadow1.x = 697
    @status_windowshadow1.y = 13
    @status_windowshadow1.z = 1
    @status_windowshadow1.opacity = 155
    @status_windowshadow1.visible = false
    #========================================
    @status_windowshadow2 = Sprite.new
    @status_windowshadow2.bitmap = RPG::Cache.picture("Menu/" + "blackwindow2")
    @status_windowshadow2.x = 681
    @status_windowshadow2.y = 112
    @status_windowshadow2.z = 1
    @status_windowshadow2.opacity = 155
    @status_windowshadow2.visible = false
    #========================================
    @status_windowshadow3 = Sprite.new
    @status_windowshadow3.bitmap = RPG::Cache.picture("Menu/" + "blackwindow2")
    @status_windowshadow3.x = 664
    @status_windowshadow3.y = 212
    @status_windowshadow3.z = 1
    @status_windowshadow3.opacity = 155
    @status_windowshadow3.visible = false
    #========================================
    @status_windowshadow4 = Sprite.new
    @status_windowshadow4.bitmap = RPG::Cache.picture("Menu/" + "blackwindow2")
    @status_windowshadow4.x = 645
    @status_windowshadow4.y = 312
    @status_windowshadow4.z = 1
    @status_windowshadow4.opacity = 155
    @status_windowshadow4.visible = false
    #========================================
     
    #Afficher les personnages selon l'invocation connue
    if $game_actors[1].skill_learn?(97)
      $niveau_invocation = 1
      @status_window1.visible = true
      @status_windowshadow1.visible = true
      @status_window2.visible = false
      @status_windowshadow2.visible = false
      @status_window3.visible = false
      @status_windowshadow3.visible = false
      @status_window4.visible = false
      @status_windowshadow4.visible = false
      end
   
     if $game_actors[1].skill_learn?(98)
       $niveau_invocation = 2
       @status_window1.visible = true
       @status_windowshadow1.visible = true
       @status_window2.visible = true
       @status_windowshadow2.visible = true
       @status_window3.visible = false
       @status_windowshadow3.visible = false
       @status_window4.visible = false
       @status_windowshadow4.visible = false
     end
     
      if $game_actors[1].skill_learn?(99)
       $niveau_invocation = 4
       @status_window1.visible = true
       @status_windowshadow1.visible = true
       @status_window2.visible = true
       @status_windowshadow2.visible = true
       @status_window3.visible = true
       @status_windowshadow3.visible = true
       @status_window4.visible = true
       @status_windowshadow4.visible = true
     end
   

   
     
    # Fenêtre de Commande
    # Command window, opacity - 0 so it is invisible, and commands are set to ""
    # - nothing so no text shows, as there is pictures used instead..
    s1 = ""
    s2 = ""
    s3 = ""
    s4 = ""
   
    @command_window = Window_Menucommand.new(200, [s1, s2, s3, s4])
    @command_window.opacity = 0
    @command_window.index = @invocation_index
   
         
    # Truc obligatoire
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
   
    # Dispose
    @command_window.dispose
    @status_window.dispose   
    @background.dispose
    @command1.dispose
    @command2.dispose
    @command3.dispose
    @command4.dispose
    @commands1.dispose
    @commands2.dispose
    @commands3.dispose
    @commands4.dispose
    @arrow.dispose
    @status_window1.dispose
    @status_window2.dispose
    @status_window3.dispose
    @status_window4.dispose
    @status_windowshadow1.dispose
    @status_windowshadow2.dispose
    @status_windowshadow3.dispose
    @status_windowshadow4.dispose
    @arrow_status.dispose
  end
 
  #--------------------------------------------------------------------------
  # UPDATE
  #--------------------------------------------------------------------------
  def update
   
    # Update des fenêtres
    @command_window.update
    @status_window.update
    @arrow.update

    # Si la fenêtre de commande est active (lorsqu'on arrive sur le menu)
    if @command_window.active
      update_command
      return
    end
   
    # Si la fenêtre de statut est active (lorsqu'on choisit les personnages)
    if @status_window.active
      update_status
      return
    end
  end
 
  #--------------------------------------------------------------------------
  #                             UPDATE COMMAND
  # Permet de déplacer le curseur sur les différentes commandes et de jouer
  # avec les ombres (commands)
  #--------------------------------------------------------------------------
  def update_command
   
    #Afficher les personnages selon l'invocation connue
   
    if not $game_actors[1].skill_learn?(SUMMON_TECH[@command_window.index][0])
      $niveau_invocation = 0
      @status_window1.visible = false
      @status_windowshadow1.visible = false
      @status_window2.visible = false
      @status_windowshadow2.visible = false
      @status_window3.visible = false
      @status_windowshadow3.visible = false
      @status_window4.visible = false
      @status_windowshadow4.visible = false
      #@status_window.visible = false
      end
   
    if $game_actors[1].skill_learn?(SUMMON_TECH[@command_window.index][0])
      $niveau_invocation = 1
      @status_window1.visible = true
      @status_windowshadow1.visible = true
      @status_window2.visible = false
      @status_windowshadow2.visible = false
      @status_window3.visible = false
      @status_windowshadow3.visible = false
      @status_window4.visible = false
      @status_windowshadow4.visible = false
      @status_window.visible = true
      end
   
     if $game_actors[1].skill_learn?(SUMMON_TECH[@command_window.index][1])
       $niveau_invocation = 2
       @status_window1.visible = true
       @status_windowshadow1.visible = true
       @status_window2.visible = true
       @status_windowshadow2.visible = true
       @status_window3.visible = false
       @status_windowshadow3.visible = false
       @status_window4.visible = false
       @status_windowshadow4.visible = false
     end
     
      if $game_actors[1].skill_learn?(SUMMON_TECH[@command_window.index][2])
       $niveau_invocation = 4
       @status_window1.visible = true
       @status_windowshadow1.visible = true
       @status_window2.visible = true
       @status_windowshadow2.visible = true
       @status_window3.visible = true
       @status_windowshadow3.visible = true
       @status_window4.visible = true
       @status_windowshadow4.visible = true
     end
   
     # Fenêtre de statut des personnages
    @status_window = Window_Invocation.new(@command_window.index)
    @status_window.x = 250
    @status_window.y = -6
    @status_window.opacity = 0
    @status_window.visible = true
     
  # Déplacer le curseur sur les commandes
  @arrow.y = 15 + (60 * @command_window.index)
   
  # Si B est préssé, revenir à la map (+transition)
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Map.new
      return
    end
  end
 
end


Window_Invocation
Code: Tout sélectionner
#==============================================================================
#                            Window_Invocation
#------------------------------------------------------------------------------

#==============================================================================

#==============================================================================
#  CONSTANTES
#==============================================================================

NIVEAU_INVOCATION = {
    0 => [11, 12, 13, 14],#["Naruto", "Sakura", "Gaara", "Sasuke"],
    1 => [2, 2, 2, 2],
    2 => [3, 3, 3, 3, 3],
    3 => [4, 4, 4, 4, 4]
  }


class Window_Invocation < Window_Selectable
  #--------------------------------------------------------------------------
  #
  #--------------------------------------------------------------------------
  def initialize(invocation_index)
    super(0, 0, 480, 430)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = $fontface
    self.contents.font.size = $fontsize
    @invocation_index = invocation_index
    refresh
    self.active = false
    self.index = -1
  end
  #--------------------------------------------------------------------------
  #
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    @item_max = $niveau_invocation
    for i in 0...$niveau_invocation
      x = 75 - i * 18
      y = i * 100
      actor = $game_actors[NIVEAU_INVOCATION[@invocation_index][i]]
      draw_actor_face(actor, x - 40, y + 80)
      draw_actor_name2(actor, x + 60, y)
      draw_actor_class2(actor, x + 60, y + 50)
      draw_actor_level2(actor, x + 60, y + 25)
      draw_actor_state2(actor, x + 60, y + 50)
      draw_actor_hp2(actor, x + 130, y )
      draw_actor_sp2(actor, x + 130, y + 25)
      draw_actor_barz(actor, x + 130, y + 25, "horizontal", 145, 1, actor.hp, actor.maxhp, Color.new(0, 255, 0, 255), Color.new(182, 137, 2, 255))
      draw_actor_barz(actor, x + 130, y + 50, "horizontal", 145, 1, actor.sp, actor.maxsp, Color.new(0, 0, 251, 225), Color.new(35, 150, 19, 225))
    end
  end
  end


Quelques explications:
En gros, selon l'index de commande (0 à 3 (Naruto, Bleach ...)), la fenêtre Window_Invocation.new est créee (@status_window), et selon l'index, des images différentes sont utilisées dans window_invocation


Si vous avez besoin de savoir quelque chose de plus, n'hésitez pas à me demander.
Merci d'avance.

_________________
Genesis : Démo 1b disponible
Toujours à la recherche d'un bon mappeur.

Si quelqu'un vous a aidé, récompensez le avec des points d'aides (PA).
http://forum.rpgcreative.net/f96-demandez-a-un-moderateur-de-recompenser-un-membre-par-des-pa-t101279.html


Dernière édition par mica44110 le 23 Déc 2011, 01:58, édité 1 fois au total.

Haut
 Profil  
 
 Sujet du message: Re: Rafraichissement et lenteur d'un menu
MessagePublié: 23 Déc 2011, 01:46 
Artisan (Nv 5)
Avatar de l’utilisateur

Inscrit le: 22 Nov 2011, 22:01
Messages: 199
Niveau RPG Maker: Moyen
Logiciel(s) préféré(s): RPG Maker XP
Point(s) Fort(s): Scripts
Sexe: Masculin
Points d'aide: 17/60

Créations :

Voir ses créations

Je sais que le topic date, mais si tu as encore le problème je crois
savoir d'où il provient.
Code: Tout sélectionner
@status_window = Window_Invocation.new(@command_window.index)
@status_window.x = 250
@status_window.y = -6
@status_window.opacity = 0
@status_window.visible = true

Ces instructions se trouvent dans update_command.
Tu demandes à la fenêtre de se créer en boucle et sa fait laguer ton projet.
Tu n'as pas le problème de lag quand tu update_command est inactif.
La suite devrait être facile à trouver.


(On reconnait très vite les fans de sasuke, 5000pv :lol: )

_________________
--- Bad_maker ---


Dernière édition par Bad_maker le 23 Déc 2011, 08:35, édité 1 fois au total.

Haut
 Profil  
 
 Sujet du message: Re: Rafraichissement et lenteur d'un menu
MessagePublié: 23 Déc 2011, 01:58 
Artisan (Nv 5)
Avatar de l’utilisateur

Inscrit le: 13 Avr 2011, 17:19
Messages: 183
Niveau RPG Maker: Correct
Logiciel(s) préféré(s): RMXP
Point(s) Fort(s): Scenario
Sexe: Masculin
Points d'aide: 6/60

Créations :

Voir ses créations

Merci de ta réponse.
En fait j'avais déjà résolu le problème en faisant des déplacements d'images, les images sont toutes présentes mais à l’extérieur de l’écran et je fais des transitions pour que les images qu'il faut afficher s'affichent où il faut. Enfin t'as compris.

Les 5000 pv de sasuke, c'est juste une coïncidence...même si je l'aime bien.

_________________
Genesis : Démo 1b disponible
Toujours à la recherche d'un bon mappeur.

Si quelqu'un vous a aidé, récompensez le avec des points d'aides (PA).
http://forum.rpgcreative.net/f96-demandez-a-un-moderateur-de-recompenser-un-membre-par-des-pa-t101279.html


Haut
 Profil  
 
 Sujet du message: Re: Rafraichissement et lenteur d'un menu
MessagePublié: 23 Déc 2011, 02:24 
Artisan (Nv 5)
Avatar de l’utilisateur

Inscrit le: 22 Nov 2011, 22:01
Messages: 199
Niveau RPG Maker: Moyen
Logiciel(s) préféré(s): RPG Maker XP
Point(s) Fort(s): Scripts
Sexe: Masculin
Points d'aide: 17/60

Créations :

Voir ses créations

mica44110 a écrit:
Merci de ta réponse.
En fait j'avais déjà résolu le problème en faisant des déplacements d'images, les images sont toutes présentes mais à l’extérieur de l’écran et je fais des transitions pour que les images qu'il faut afficher s'affichent où il faut. Enfin t'as compris.

Les 5000 pv de sasuke, c'est juste une coïncidence...même si je l'aime bien.

Tu as utilisé combien d'image pour avoir un lag due à trop d'images affichées en même temps,
il faut y aller quand même :shock: .
Drôle de coïncidence surtout quand je vois qu'au dessus Naruto n'en a que 700 (normal
pr un nv1) et que Leena n'en a que 695!

_________________
--- Bad_maker ---


Haut
 Profil  
 
 Sujet du message: Re: Rafraichissement et lenteur d'un menu[RESOLU différement]
MessagePublié: 23 Déc 2011, 02:53 
Artisan (Nv 5)
Avatar de l’utilisateur

Inscrit le: 13 Avr 2011, 17:19
Messages: 183
Niveau RPG Maker: Correct
Logiciel(s) préféré(s): RMXP
Point(s) Fort(s): Scenario
Sexe: Masculin
Points d'aide: 6/60

Créations :

Voir ses créations

C'était pas un problème de nombre d'images, c'est juste que je lui demandais de rafraichir une fenêtre tout le temps et que les images d'avant ne disparaissaient pas tout de suite. Enfin bref, le script n'était pas bien écrit...

_________________
Genesis : Démo 1b disponible
Toujours à la recherche d'un bon mappeur.

Si quelqu'un vous a aidé, récompensez le avec des points d'aides (PA).
http://forum.rpgcreative.net/f96-demandez-a-un-moderateur-de-recompenser-un-membre-par-des-pa-t101279.html


Haut
 Profil  
 
 Sujet du message: Re: Rafraichissement et lenteur d'un menu[RESOLU différement]
MessagePublié: 23 Déc 2011, 03:24 
Artisan (Nv 5)
Avatar de l’utilisateur

Inscrit le: 22 Nov 2011, 22:01
Messages: 199
Niveau RPG Maker: Moyen
Logiciel(s) préféré(s): RPG Maker XP
Point(s) Fort(s): Scripts
Sexe: Masculin
Points d'aide: 17/60

Créations :

Voir ses créations

Je me demandais pourquoi tu me parles d'images alors que le problème vient de
la fenêtre.

_________________
--- Bad_maker ---


Haut
 Profil  
 
Afficher les messages depuis:  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 6 messages ] 

Heures au format UTC + 1 heure [ Heure d’été ]


Qui est en ligne ?

Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 3 invités


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas insérer de pièces jointes dans ce forum

Rechercher pour:
Sauter vers:  
cron
RPG Creative Forum version 5 ; Tous droits réservés
phpBB Group (Traduit par Xaphos)
Optimisé pour une résolution 1024*728