Bienvenue visiteur !
|
Statistiques
Liste des membres
Contact
Mentions légales
350 connectés actuellement
30735825 visiteurs depuis l'ouverture
2790 visiteurs aujourd'hui
Partenaires
Tous nos partenaires
Devenir partenaire
|
canar -
posté le 02/08/2015 à 05:36:17 (64 messages postés)
| Ceci est un canar. Sans d. Il paraît. | Domaine concerné: Graphisme Logiciel utilisé: XP Voici mon menu de création d'équipe (avant chaque mission, pour ceux qui ont joué à Dragon Age/Mass Effect)
Je ne sais pas scripter c'est officiel : cet écran fonctionne exclusivement en event (j'espère qu'il n'y aura pas de lag comme sur mon pauvre petit truc).
Ce que j'aimerai :
Des conseils sur la manière d'afficher le Niveau et le Lien, j'ai pensé faire par image (une par chiffre, pas par nombre) mais mon quota d'image va être dépassé (il ne m'en reste qu'une par perso...). Je suppose qu'on peut débloquer ça par un script, mais vous allez me dire que faire un script pour faire toute ma sélection aurait été de toute façon plus élégant... C'est vrai mais j'aime me débrouiller par moi même, donc j'ai bidouillé ça.
Pas trop de commentaire sur la forme : je n'ai pas un super goût en matière de couleur, et vu que ma copine est graphiste elle a promis de me refaire ça quand elle aura le temps (ce qui excuse et justifie ma flemme)
Des commentaires sur la lisibilité, même si c'est un peu lié. Je ne suis pas trop convaincu par mon fond blanc
Des commentaires sur le choix du mot Lien : je cherchai un mot court pour dire "Relation", j'ai peur que ce ne soit pas trop compréhensible. Il fallait que ça reste court pour faire à peu près la même taille que Niv (ce qu'on peut faire en changeant la police, c'est vrai, mais ça doit rester lisible)
Les marges, aussi con que ça puisse paraître. Devrai je mettre l'espace libreà gauche et à droite (comme c'est plutôt le cas) ou entre les persos. Pour vous donner une idée, le curseur couvre tous les pixel du milieu de l'écran, c'est à dire que le pixel le plus à gauche se retrouve collé à celui de droite quand on déplace le curseur (vers la droite). Il fait exactement la taille de la case quoi.
Bonus :
A cause de la manière (dégeulasse de l'avis d'un ami informaticien) dont je gère certaines variables (qui n'ont que 8 digit), je suis limité à un maximum de 24 personnages. En fait je pourrai monter loin au delà, mais il faudrait que je réfléchisse et ce serait très fatiguant. Pour rappel les persos meurent définitivement dans mon jeu (ou se barrent si leur relation diminue trop, voire même parce qu'ils ont d'autres impératifs...), c'est pour cette raison qu'il y a un tel panel.
Bref : si je rajoute deux lignes de persos cela ne rentrera plus dans l'écran, et ma seule idée serait de faire déplacer mes images, et changer celles du haut par celles du bas (pas très clair). J'aurai de toute façon un problème parce que mes "ombres" sont situées sur le panorama (et recouvertes par les images... Ma seule vrai solution consiste à rétrécir les police et faire tout rentrer sur une page, j'ai peur que ce soit brouillon. Ou bien je peux rester à 16 perso, mais je préfère garder l'esprit ouvert.
Spoiler (cliquez pour afficher) Un peu Hors Sujet : Des fois je me dis que m'attaquer à un sujet d'envergure sans savoir scripter c'est du suicide, mais je persévère à grand coup de tête dans le mur et de façon amusant ça finit par passer (après un mal de crâne et de nombreux abandons de fonctionnalités). D'après mon grand frère je suis même tout simplement con de faire un jeu qui donne autant de place à la gestion sur RPG Maker, mais les autres logiciels sont moins faciles d'utilisation... C'est vrai que je regrette quand même de ne pas pouvoir gérer de tableaux autrement qu'avec des tas de variables et des event à rallonge quand ça se range tout beau tout seul sur un Excel...
|
La vie est un éternel apprentissage, ça tombe bien j'adore apprendre ! Projet en cours (40%) 1/3 du jeu réalisé, grosse phase de test avant la prochaine démo |
Cantarelle -
posté le 02/08/2015 à 11:53:26 (1530 messages postés)
| Makeuse tarée et Agent du FBI... | Déjà, un truc... XP est limité et ne fera pas nativement ce que tu veux faire.
Par contre, il y a un truc super utile codé par Avygeil qui s'appelle : Database Management (j'avais même fait un tuto dessus)
http://www.forum-lepalaisdumaking.com/t2554-rmxp-advanced-input-et-database-management-avygeil
Il te permet d'avoir d'autres statistiques.
Par contre, je suis navrée pour toi, mais sans script pour ça, c'est un peu comme essayer de décrocher la lune. Parce que oui, il va falloir que tu bidouilles dessus, même si ça te rebute.
Puis bon, tu sais déjà utiliser les events... Les scripts, c'est comme les events... Juste que ce n'est pas un bouton que tu cliques et que tu dois te taper ça à la main. Mais que les scripts t'apportent bien plus de possibilités.
|
Makeuse à la crosse de street-hockey. Livestream. |
canar -
posté le 02/08/2015 à 13:19:16 (64 messages postés)
| Ceci est un canar. Sans d. Il paraît. | Je sais, et j'arrive à lire et modifier les scripts simples en Ruby. C'est juste que je ne me suis encore jamais lancé dans un truc d'envergure, et je m'y connais juste assez en info que chaque nouvelle situation apporte un nouveau problème qu'il va falloir résoudre, souvent avec une nouvelle fonction. Je m'en sors plutôt bien en algo, mais je suis assez nul en syntaxe, c'est pour ça que j'aime bien RM. Après je te l'accorde, il s'agit surtout de me donner les moyens.
Ce que je sais faire en gros : gérer les variables et les opérateurs logiques simples (boucles, condition et autres) mais j'ai vraiment peur (pure peur de l'inconnu, c'est ptet pas difficile du tout) de bugger et de perdre énormément de temps dans l'affichage. Parce que niveau données je pense m'en sortir, ou au moins pouvoir m'en sortir en apprenant les spécificités du Ruby (je connais les base de javascript, Python et HTML déjà, Ruby n'a pas l'air plus difficile quand je regarde le script existant).
En tout cas merci de l'honnêteté, vaut mieux ça que je ne m'en rende compte qu'une fois dans le mur
EDIT : Et merci beaucoup pour le script, vu que tu l'as expliqué en détail je devrais m'en sortir sans peine (je teste toujours sur un projet vierge par principe, mais j'ai peu de scripts appliqués dans mon projet)
EDIT : En fait le script Advanced Input ne fonctionne pas : NoMethodError 'code' line 682. Je teste sur la version steam pour voir si c'est ça.
EDIT : Non ce n'est pas ça, il y a visiblement une erreur dans le code. Ce qui est étrange parce que depuis le temps tu t'en serais forcément aperçu...
|
La vie est un éternel apprentissage, ça tombe bien j'adore apprendre ! Projet en cours (40%) 1/3 du jeu réalisé, grosse phase de test avant la prochaine démo |
Cantarelle -
posté le 02/08/2015 à 15:02:11 (1530 messages postés)
| Makeuse tarée et Agent du FBI... | Pour l'erreur, va voir un certain membre, parce que c'est son script.
Et je pense savoir pourquoi tu as cette erreur. Tu utilises une version légale (américaine) de RM. Tandis que moi, même si j'ai la version légale, j'utilise toujours la version française.
|
Makeuse à la crosse de street-hockey. Livestream. |
canar -
posté le 02/08/2015 à 15:52:53 (64 messages postés)
| Ceci est un canar. Sans d. Il paraît. | J'ai testé sur les deux versions (si tu parles bien de la 1.03 de Zeus)
|
La vie est un éternel apprentissage, ça tombe bien j'adore apprendre ! Projet en cours (40%) 1/3 du jeu réalisé, grosse phase de test avant la prochaine démo |
Cantarelle -
posté le 02/08/2015 à 16:08:34 (1530 messages postés)
| Makeuse tarée et Agent du FBI... | Dis-moi, tu n'aurais pas mis le Database Management AVANT l'Advanced Input ?
Parce que si c'est le cas, mets ce dernier avant le Database Management (et tant qu'on y est, tu les mets tout en haut), après le Scene_Debug.
Edit : En parlant avec Avygeil directement, on a trouvé le truc et c'est une erreur de ma part. Il manque un module.
Insère ceci dans un autre script :
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
| #===============================================================================
# *** Default Keys
#-------------------------------------------------------------------------------
# Auteur : Åvygeil
#-------------------------------------------------------------------------------
# Ce script permet de définir et modifier les touches de base.
#===============================================================================
#===============================================================================
# ** Input
#===============================================================================
module Input
#-----------------------------------------------------------------------------
# Définition des touches de base
#-----------------------------------------------------------------------------
LEFT = Keyboard::LEFT
UP = Keyboard::UP
RIGHT = Keyboard::RIGHT
DOWN = Keyboard::DOWN
A = Keyboard::SHIFT|Keyboard::Z
B = Keyboard::ESCAPE|Keyboard::X
C = Keyboard::ENTER|Keyboard::SPACE|Keyboard::C
X = Keyboard::A
Y = Keyboard::S
Z = Keyboard::D
L = Keyboard::Q
R = Keyboard::W
SHIFT = Keyboard::SHIFT
CTRL = Keyboard::CTRL
ALT = Keyboard::ALT
F5 = Keyboard::F5
F6 = Keyboard::F6
F7 = Keyboard::F7
F8 = Keyboard::F8
F9 = Keyboard::F9
end |
|
Makeuse à la crosse de street-hockey. Livestream. |
canar -
posté le 02/08/2015 à 16:49:48 (64 messages postés)
| Ceci est un canar. Sans d. Il paraît. | Merci beaucoup, je te tiens au courant. J'aurai préféré le contacter moi même, mais ma messagerie semble bugger je ne peux pas envoyer de MP, c'est peut être moi qui ne suis pas doué.
Edit :
Je peux créer des lignes, mais si j'appuie sur Entrée ca bug, de même si j'appuie sur V (pour coller)
Problèmes repérés dans Database Editor ligne 439 et ligne 389 respectivement
Edit :
Merci pour le code qui manquait. Pour ceux que ça intéresse :
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
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
| #===============================================================================
# *** GUI Widgets
#-------------------------------------------------------------------------------
# Auteur : Åvygeil
#-------------------------------------------------------------------------------
# Un ensemble de classes de fenetres utilitaires pour réaliser des GUI.
#===============================================================================
#===============================================================================
# ** Window_BooleanField
#-------------------------------------------------------------------------------
# Une fenetre qui permet de choisir un booléen.
#===============================================================================
class Window_BooleanField < Window_Command
#=============================================================================
# * initialize
# x : abscisse de la fenetre
# y : ordonnée de la fenetre
#=============================================================================
def initialize(x, y)
super(150, ["True", "False"])
self.x = x
self.y = y
self.visible = false
self.active = false
end
#=============================================================================
# * value
#-----------------------------------------------------------------------------
# Renvoie la valeur booléenne sélectionnée.
#=============================================================================
def value
case self.index
when 0
return true
when 1
return false
end
end
#=============================================================================
# * value=
# b : un booléen
#-----------------------------------------------------------------------------
# Met la valeur à b.
#=============================================================================
def value=(b)
case b
when true
self.index = 0
when false
self.index = 1
end
end
end
#===============================================================================
# ** Window_IntegerField
#-------------------------------------------------------------------------------
# Une fenetre qui permet d'entrer des nombres au clavier.
#===============================================================================
class Window_IntegerField < Window_Base
attr_accessor :active # Si la fenetre est active
#=============================================================================
# * initialize
# x : abscisse de la fenetre
# y : ordonnée de la fenetre
# width : largeur de la fenetre
#=============================================================================
def initialize(x, y, width)
super(x, y, width, 64)
self.contents = Bitmap.new(width-32, height-32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
@text = ""
@old_text = ""
refresh
self.visible = false
self.active = false
end
#=============================================================================
# * update
#-----------------------------------------------------------------------------
# Met à jour le contenu de la fenetre en fonction
# de l'entrée du clavier.
#=============================================================================
def update
super
unless self.active
return
end
if Input.trigger?(Keyboard::BACK)
@text = @text[0...@text.size-1] || ""
end
@text << Keyboard.number
if @old_text != @text
refresh
@old_text = String.new(@text)
end
end
#=============================================================================
# * value
#-----------------------------------------------------------------------------
# Renvoie la valeur entière de la fenetre.
#=============================================================================
def value
return @text.to_i
end
#=============================================================================
# * value=
# i : un entier
#-----------------------------------------------------------------------------
# Met la valeur à i.
#=============================================================================
def value=(i)
@text = i.to_s
end
#=============================================================================
# * refresh
#=============================================================================
def refresh
self.contents.clear
self.contents.draw_text(4, 0, self.width-40, 32, @text, 0)
end
end
#===============================================================================
# ** Window_TextField
#-------------------------------------------------------------------------------
# Une fenetre qui permet d'entrer du texte au clavier.
#===============================================================================
class Window_TextField < Window_Base
attr_accessor :active # Si la fenetre est active
#=============================================================================
# * initialize
# x : abscisse de la fenetre
# y : ordonnée de la fenetre
# width : largeur de la fenetre
#=============================================================================
def initialize(x, y, width)
super(x, y, width, 64)
self.contents = Bitmap.new(width-32, height-32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
@text = ""
@old_text = ""
refresh
self.visible = false
self.active = false
end
#=============================================================================
# * update
#-----------------------------------------------------------------------------
# Met à jour le contenu de la fenetre en fonction
# de l'entrée du clavier.
#=============================================================================
def update
super
unless self.active
return
end
if Input.trigger?(Keyboard::BACK)
@text = @text[0...@text.size-1] || ""
end
@text << Keyboard.letter
if @old_text != @text
refresh
@old_text = String.new(@text)
end
end
#=============================================================================
# * value
#-----------------------------------------------------------------------------
# Renvoie le texte de la fenetre.
#=============================================================================
def value
return @text
end
#=============================================================================
# * value=
# s : un text
#-----------------------------------------------------------------------------
# Met le texte de la fenetre à s.
#=============================================================================
def value=(s)
@text = s
end
#=============================================================================
# * refresh
#=============================================================================
def refresh
self.contents.clear
self.contents.draw_text(4, 0, self.width-40, 32, @text, 0)
end
end
#===============================================================================
# ** Window_FileChooser
#-------------------------------------------------------------------------------
# Une fenetre qui permet de sélectionner un fichier dans un dossier.
#===============================================================================
class Window_FileChooser < Window_Selectable
#=============================================================================
# * initialize
# x : abscisse de la fenetre
# y : ordonnée de la fenetre
# width : largeur de la fenetre
# dir : un répertoire
#=============================================================================
def initialize(x, y, width, dir)
@files = Dir["#{dir}/*"].map { |file_name| File.basename(file_name) }
@files << ""
super(x, y, width, [@files.size * 32 + 32, 480].min)
@item_max = @files.size
self.contents = Bitmap.new(width - 32, @item_max * 32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
refresh
self.index = 0
self.visible = false
self.active = false
end
#=============================================================================
# * value
#-----------------------------------------------------------------------------
# Renvoie le nom du fichier sélectionné.
#=============================================================================
def value
return @files[self.index]
end
#=============================================================================
# * value=
# s : un text
#-----------------------------------------------------------------------------
# Met l'indice au fichier de nom file_name.
#=============================================================================
def value=(file_name)
index = @files.index(file_name)
if index == nil
self.index = 0
else
self.index = index
end
end
#=============================================================================
# * refresh
#=============================================================================
def refresh
self.contents.clear
for i in 0...@item_max
x = 4
y = 32 * i
self.contents.draw_text(x, y, width - 32, 32, @files[i])
end
end
#=============================================================================
# * update
#=============================================================================
def update
if self.active and @item_max > 0 and @index >= 0
if Input.trigger?(Keyboard::PAGE_UP)
$game_system.se_play($data_system.cursor_se)
@index = (@index - (@column_max*14)) % @item_max
end
if Input.trigger?(Keyboard::PAGE_DOWN)
$game_system.se_play($data_system.cursor_se)
@index = (@index + (@column_max*14)) % @item_max
end
end
super
end
end |
|
La vie est un éternel apprentissage, ça tombe bien j'adore apprendre ! Projet en cours (40%) 1/3 du jeu réalisé, grosse phase de test avant la prochaine démo | Index du forum > Entraide > [XP] Création d'équipe
|
|
|