Bienvenue visiteur !
|
Statistiques
Liste des membres
Contact
Mentions légales
322 connectés actuellement
30741804 visiteurs depuis l'ouverture
2177 visiteurs aujourd'hui
Partenaires
Tous nos partenaires
Devenir partenaire
|
hassen -
posté le 26/08/2013 à 07:18:06 (580 messages postés)
| 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 :
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 :
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)
Mais l'astuce ne s'arréte pas la !! puisque chaque image affiché ne suivra pas le hero tout le long du jeu
Il ya des makers qui veulent que certains images suivent le hero 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 :
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 , 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)
| | La bonne syntaxe c'est celle-ci :
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 :
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)
| 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)
| | 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)
| | Oui je viens de m'en rendre compte.
C'est comme ça :
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)
| 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
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)
| | Si je peux aider, la meilleure façon (et la plus simple) de résoudre le problème est celle-ci :
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)
| 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)
| | 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.
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)
| 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)
| 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)
| 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.
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)
| 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)
| 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)
| Alien | Ca ne resout toujours pas mon probléme, merci a tout le monde
|
School Urban Legends |
Crystal -
posté le 28/08/2013 à 18:07:41 (2151 messages postés)
- | | 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 !!
|
|
|