Night.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker


Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

News: Des jeux d'hiver sous la couette / Scripts: Système de vol pour RPG Maker (...) / Jeux: Onsen RPG - A Tale of Yu / Jeux: Final Destiny / Jeux: puie z / Chat

Bienvenue
visiteur !





Désactiver
la neige


publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

361 connectés actuellement

30787134 visiteurs
depuis l'ouverture

2703 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

RPG Maker - La Communauté

Lunae - le bazar d'Emz0

Leo-Games

Zarok

RPG Maker Détente

Tous nos partenaires

Devenir
partenaire



forums

Index du forum > Entraide > [Xp] Image qui ne suit pas le hero !!


hassen - posté le 26/08/2013 à 07:18:06 (580 messages postés)

❤ 0

Alien

Domaine concerné: scripts
Logiciel utilisé: Xp
Alors voila jai trouvé une astuce qui va me permettre de déplacer le hero sans qu'une image le suit (effét de lumiére+fog=la classse) voici la démarche a suivre :
Il suffit tout simplement d'aller dans le géstionaire des scripts (f11) et dans "Sprite_Picture" et de modifier cette ligne :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
 # Set transfer starting point
        if @picture.origin == 0 
          self.ox = 0
          self.oy = 0
        else
          self.ox = self.bitmap.width / 2
          self.oy = self.bitmap.height / 2


Par cette ligne la :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
 # Set transfer starting point
        if @picture.origin == 0 
          self.ox = $game_map.display_x / 4
          self.oy = $game_map.display_y / 4
        else
          self.ox = self.bitmap.width / 2
          self.oy = self.bitmap.height / 2


De cette façon les images du jeu ne suivent pas les position X et Y du hero et restent fixées (testé et super fonctionel et tout le monde est super content) :rit2

Mais l'astuce ne s'arréte pas la !! puisque chaque image affiché ne suivra pas le hero tout le long du jeu :F
Il ya des makers qui veulent que certains images suivent le hero :hihi comme la barre de vie par exemple, comment faire ? il suffit d'activer ou de désactiver un intérrupteur ,dans cet éxemple c'est l'interrupteur "99"

Il suffiit de modifier la premiére étape par celle la :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
 # Set transfer starting point
    if @picture.origin == 0 and and  $game_switches[99]  == true
      self.ox = $game_map.display_x / 4
      self.oy = $game_map.display_y / 4
    else if @picture.origin == 0 and  $game_switches[99]  == false
      self.ox = 0
      self.oy = 0
   else 
       self.ox = self.bitmap.width / 2
      self.oy = self.bitmap.height / 2
    end


Ce qui traduit : si intérrupteur 99 activé l'image reste fixe
et si intérrupteur 99 désativé l'image suit le hero

Mon probléme consiste cette dérniére version de l'intérrupteur 99, ça ne marche pas :leure3, j'ésper qu'un bon scripteur peut m'aiclairer car je sais qu'il ya une petite érreur sou le nez, mais ou ?

School Urban Legends


Cortez - posté le 26/08/2013 à 09:03:46 (524 messages postés)

❤ 0

La bonne syntaxe c'est celle-ci :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
if @picture.origin == 0 and $game_switches[99] == true 
self.ox = $game_map.display_x / 4 
self.oy = $game_map.display_y / 4
end 
if @picture.origin == 0 
self.ox = 0 
self.oy = 0 
else 
self.ox = self.bitmap.width / 2 
self.oy = self.bitmap.height / 2 
end 



De manière générale :



Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
If
...
end
 
#ou
 
If
...
else
...
end




hassen - posté le 26/08/2013 à 17:09:02 (580 messages postés)

❤ 0

Alien

J'pprecie ton aide déja l'érreur a dissparut, c'est un point +1 mais l'image suit la camera, j'active et désactive mon intérrupteur ça suit toujours la camera, pourquoi ? jai mal créer mon intérrupteur ? jai créer un intérrupteur dans l'ID 099 et je lai nommé "99" :'(

School Urban Legends


Dyeel - posté le 26/08/2013 à 18:27:57 (200 messages postés)

❤ 0

hassen, ce n'est pas ton interrupteur le problème (d'ailleurs tu n'es pas obligé de lui donner 99 comme nom).

Le problème est que si tu as recopié le code de Cortez tel qu'il est écrit, comme il a oublié de mettre la condition sur l'interrupteur désactivé, peu importe si l'inter est activé ou pas, le code fera toujours la dernière action (lier l'image à l'écran).

Je pense que ton problème vient de là.
Donc au deuxième if, ajoute : and !$game_switches[99]

Ou bien and $game_switches[99] == false

J'espère que ton problème vient bien de là...


Cortez - posté le 26/08/2013 à 22:19:15 (524 messages postés)

❤ 0

Oui je viens de m'en rendre compte.

C'est comme ça :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
if @picture.origin == 0 and $game_switches[99] == true 
self.ox = $game_map.display_x / 4 
self.oy = $game_map.display_y / 4
end 
if @picture.origin == 0 and $game_switches[99] == false
self.ox = 0 
self.oy = 0 
else 
self.ox = self.bitmap.width / 2 
self.oy = self.bitmap.height / 2 
end 




hassen - posté le 27/08/2013 à 00:10:29 (580 messages postés)

❤ 0

Alien

Ca ne marche toujours pas mon trés cher cortez, jai remarqué une chose dans ma toute premiére ligne jai dit que ce code :

# Set transfer starting point
if @picture.origin == 0
self.ox = $game_map.display_x / 4
self.oy = $game_map.display_y / 4
else
self.ox = self.bitmap.width / 2
self.oy = self.bitmap.height / 2

rendait l'image fixe sur la map or dans ton code a toi tu ne donne pas cette portion de code :
self.ox = self.bitmap.width / 2
self.oy = self.bitmap.height / 2
c'est normale ?

Moi voila ce que jai fait

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 # Set transfer starting point
    if @picture.origin == 0 and $game_switches[99] == true
          self.ox = $game_map.display_x / 4
          self.oy = $game_map.display_y / 4
        else
          self.ox = self.bitmap.width / 2
          self.oy = self.bitmap.height / 2
    end
    if @picture.origin == 0 and $game_switches[99] == false
          self.ox = 0
          self.oy = 0
        else
          self.ox = self.bitmap.width / 2
          self.oy = self.bitmap.height / 2
    end


Et ca ne marche toujours pas allez je te donne ma programation pour faire des testes moi en scripts je suis nul !!

http://www.mediafire.com/download/zpya824i5k91iug/Image_fixe.rar

School Urban Legends


Dyeel - posté le 27/08/2013 à 00:58:29 (200 messages postés)

❤ 0

Si je peux aider, la meilleure façon (et la plus simple) de résoudre le problème est celle-ci :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
if $game_switches[99] == true
     self.ox = $game_map.display_x / 4
     self.oy = $game_map.display_y / 4
else
     if @picture.origin == 0
          self.ox = 0
          self.oy = 0
     else
          self.ox = self.bitmap.width / 2
          self.oy = self.bitmap.height / 2
     end
end
 



Ça évite de bouger les origines des images (parce que sur le code dont vous parliez avant, même avec l'inter activé, si on choisissait pour origine le centre de l'image, elle suivait le héros).
Et ça évite les bugs du code d'avant avec les and et les else qui traiteront des mauvais cas.

J'espère avoir donné la bonne solution :)


hassen - posté le 27/08/2013 à 04:58:26 (580 messages postés)

❤ 0

Alien

Ca ne marche pas je crois que tu devra télécharger ma petite demo et faire des essais et quand tu trouve la bonne programation fais moi signe, merci beucoup pour le temps que tu me consacre l'amie !!

School Urban Legends


Estheone - posté le 27/08/2013 à 12:53:15 (312 messages postés)

❤ 0

Ton problème c'est tout simplement que tu nommes '99' l'interrupteur 1 et tu as l'air de penser qu'il va se transformer par magie en interrupteur 99. :doute2

Utilise la syntaxe proposée par Dyeel avec 1 au lieu de 99 et le problème est réglé.

Wandering Souls : Jeu complet / Topic sur Oniro


hassen - posté le 27/08/2013 à 15:05:19 (580 messages postés)

❤ 0

Alien

Jai compris mon trés cher éstheone le probléme il fallait que mon intérrupteur en plus détre nommé 99 doit aussi étre crée dans l'iD 099 c'est fou non !! en tout cas ça marche !!
D'accord ça marche pour l'instant mais il ya un nouveau probléme :
l'image quand elle se fixe sur la map, et je bouge a droite par exemple elle me suit avec une petite lenteur (elle suit le joueur en tout cas ) moi je veux qu'elle reste fixe FIXE !!

School Urban Legends


Umbremas - posté le 28/08/2013 à 02:55:42 (49 messages postés)

❤ 0

Over 9 Thousand ! (Parce-qu'ici on apprends l'Anglais : 1 Thousand = 1000)

Heum, c'est un peu tard mais tu connais EL ?

el: picture display 1.3
Permet d'afficher une nouvelle image, même au delà de la limitation à 50 images de RMXP. Cette commande permet aussi de désactiver/faire en sorte que votre image suive le scroll de la map

Voilou-Voilou.

Source : http://cdd.pellnet.ch/Aide.htm

[Cloud : "Je suis un Homme a tout faire."] --Final Fantasy VII : Rencontre avec la marchande de fleur des taudis du secteur [Erroné] de Midgar.


TI-MAX - posté le 28/08/2013 à 03:12:08 (144 messages postés)

❤ 0

Event Maker Expérimenté

Je connais Geex (Anciennement EL) et assez pour ne pas te le conseiller.


1 -» Au-dessus de 50 images, c'est faux je l'ai essayer et ça n'a jamais fonctionner.

2 -» La plupart du temps il faut plusieurs script pour en utiliser qu'1

3 -» le créateur n'aide plus ceux qui son sur RM.

Mais j'ai une autre solution.

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
# Fixe les images -- XHTMLBoy (http://funkywork.blogspot.com) Adapté par Grim
# Pour permettre à une image de rester fixée sur la carte, il faut que son
# nom commence par FIX- ou alors utiliser la fonction "fixed_pictures(id1, id2, id3 etc.)"
# qui permet de fixer une (ou plusieurs) images sur la carte.
# Par défaut, les images sont supprimée a chaque téléportation sauf si vous utilisez
# la commande "add_stayed_pictures(id1, id2 etc.)" qui permet au images de rester
# malgré la téléportation. (il existe aussi remove_stayed_pictures qui annule l'effet stay des images)
 
#==============================================================================
# ** Game_Map
#------------------------------------------------------------------------------
#  This class handles maps. It includes scrolling and passage determination
# functions. The instance of this class is referenced by $game_map.
#==============================================================================
 
class Game_Map
 
  #--------------------------------------------------------------------------
  # * Alias
  #--------------------------------------------------------------------------
  alias fix_setup setup
  alias fix_initialize initialize
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor :fix_pictures
  attr_accessor :stay_pictures
 
 
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    fix_initialize
    @stay_pictures = []
    @screen = $game_screen
  end
 
  #--------------------------------------------------------------------------
  # * Setup
  #--------------------------------------------------------------------------
  def setup(map_id)
    fix_setup(map_id)
    (1..20).each do |id|
      if @screen.pictures[id]
        @screen.pictures[id].erase unless stayed?(id)
      end
    end
    @fix_pictures = []
  end
 
  #--------------------------------------------------------------------------
  # * Set fixed pictures
  #--------------------------------------------------------------------------
  def set_fixed_pictures(ids)
    @fix_pictures = ids
  end
 
  #--------------------------------------------------------------------------
  # * add stay pictures
  #--------------------------------------------------------------------------
  def add_stay_pictures(ids)
    @stay_pictures += ids
    @stay_pictures.uniq!
  end
 
  #--------------------------------------------------------------------------
  # * remove stay pictures
  #--------------------------------------------------------------------------
  def remove_stay_pictures(ids)
    ids.each do |id|
      @stay_pictures.delete(id)
    end
  end
 
  #--------------------------------------------------------------------------
  # * 's fixed
  #--------------------------------------------------------------------------
  def fixed?(id)
    @fix_pictures.include?(id)
  end
 
  #--------------------------------------------------------------------------
  # * 's stayed
  #--------------------------------------------------------------------------
  def stayed?(id)
    @stay_pictures.include?(id)
  end
 
end
 
#==============================================================================
# ** Sprite_Picture
#------------------------------------------------------------------------------
#  This sprite is used to display pictures. It observes an instance of the
# Game_Picture class and automatically changes sprite states.
#==============================================================================
 
class Sprite_Picture
 
  #--------------------------------------------------------------------------
  # * alias
  #--------------------------------------------------------------------------
  alias fix_initialize initialize
  alias fix_update_position update
 
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor :anchor
 
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     picture : Game_Picture
  #--------------------------------------------------------------------------
  def initialize(viewport, picture)
    fix_initialize(viewport, picture)
    @anchor = (@picture.name =~ /^Fix\_/) != nil
  end
 
  #--------------------------------------------------------------------------
  # * Update Position
  #--------------------------------------------------------------------------
  def update
    fix_update_position
    @anchor = (@picture.name =~ /^Fix\_/) != nil || $game_map.fixed?(@picture.number)
    if @anchor
      new_x =  @picture.x - ($game_map.display_x / 4) 
      new_y =  @picture.y - ($game_map.display_y / 4) 
      self.x, self.y = new_x, new_y
    else
      self.x = @picture.x
      self.y = @picture.y
      self.z = @picture.number
    end
  end
 
end
 
#==============================================================================
# ** Game_Interpreter
#------------------------------------------------------------------------------
#  An interpreter for executing event commands. This class is used within the
# Game_Map, Game_Troop, and Game_Event classes.
#==============================================================================
 
class Interpreter
 
  #--------------------------------------------------------------------------
  # * define fixed pictures
  #--------------------------------------------------------------------------
  def fixed_pictures(*ids)
    $game_map.set_fixed_pictures(ids)
  end
 
  #--------------------------------------------------------------------------
  # * define stayed pictures
  #--------------------------------------------------------------------------
  def add_stayed_pictures(*ids)
    $game_map.add_stay_pictures(ids)
  end
 
  #--------------------------------------------------------------------------
  # * remove stayed pictures
  #--------------------------------------------------------------------------
  def remove_stayed_pictures(*ids)
    $game_map.remove_stay_pictures(ids)
  end
 
end



Tout est expliquer en commentaire. Testé et fonctionnel.

Creas par Ti-Max & Mat (Acte 1 disponible)


hassen - posté le 28/08/2013 à 08:21:12 (580 messages postés)

❤ 0

Alien

Jai déja essayé ce script , mais il ya un probléme :
Jai pu fixer mon image grace au code script : fixed_pictures(id1, id2, id3 etc.) jai mis l'ID de ma map "001" donc je veux que quand je visite cette map toujours cette image reste fixé, jau aussi activé un autre code : add_stayed_pictures(001 pour que cette image reste fixé méme quand je me téléporte d'aprés les info du script ,ça ne marche pas je me téléporte et l'image me suit aprés une téléportation !!

School Urban Legends


TI-MAX - posté le 28/08/2013 à 11:41:25 (144 messages postés)

❤ 0

Event Maker Expérimenté

La fonction add_stayed_picture sert que l'image reste affiché durant la teleportation. Si elle reste afficher après, faut faire comme d'habitude, effacer l'image avant la teleportation. Tu peux utiliser la commande en event pour ça.

Creas par Ti-Max & Mat (Acte 1 disponible)


hassen - posté le 28/08/2013 à 14:58:24 (580 messages postés)

❤ 0

Alien

Ca ne resout toujours pas mon probléme, merci a tout le monde :salut

School Urban Legends


Crystal - posté le 28/08/2013 à 18:07:41 (2156 messages postés) -

❤ 0

Tant qu'à moi le problème est simple, les propriétés ox et oy ne sont pas vraiment ce qu'il faut modifier. Ces dernières sont l'origine, c'est-à-dire que si l'ox est 400, alors si le x est à 20, l'image sera affichée comme si elle est à un x de -380. C'est aussi l'origine qui détermine le centre de rotation quand on change l'angle.

Index du forum > Entraide > [Xp] Image qui ne suit pas le hero !!

repondre up

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts/Plugins | Ressources graphiques / sonores | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers