Affichage des zarbi à l'écran

4 Réponses • 119 Vues

Bonjour bonjour !

J'essaie d'afficher les PokeFront de toutes les formes des zarbi à l'écran avec une commande de script mais j'ai un peu de mal à faire ma boucle pour faire en sorte qu'il attaque la 2e ligne une fois que la 1ère ligne n'a plus de place :facepalm:

Quelqu'un aurait une idée ? Merci ! :D

Problème Résolu

Nuri Yuri

HostMaster

Tu peux montrer ta commande de script actuel ?
La solution réside dans le test de la position x et la taille. Tu peux également prédire combien t'as de cellule en x et combien en y ^^
ln(yo) = <3
Okay du coup ton message m'a inspiré vers une solution qui fonctionne :D

C'est probablement absolument pas la plus optimale mais en gros j'ai défini une variable j = 0 qui s'incrémente au moment où on atteint le dernier i d'une ligne et qui va reset une variable @pos_x :

if i == 5 || i == 11 || i == 17 || i == 23
  j += 1
  @pos_x = 0
end

Et plus haut dans ma boucle j'ai :

if j > 0 # (Donc nouvelle ligne obligatoire)
        @form[i].x = @pos_x
        @pos_x += @form[i].width
end

De ce fait, i = 6 placera sa coordonnée x à 0, puis va incrémenter pos_x de sa largeur pour placer le x de i = 7 juste à la suite de 6, etc. jusqu'au changement de ligne où on repart de 0  (a)

Rey

Modérateur

Tu peux largement remplacer cet ignoble if i == 5 || i == 11 || i == 17 || i == 23 par un if i%6 == 5, c'est toujours moins lourd. :d

Nuri Yuri

HostMaster

Oui et de manière générale tu peux faire :
@form = Array.new(28) do |index|
  sprite = Sprite.new(viewport)
  sprite.set_bitmap(format('201_%02d', index), :b_icon)
  sprite.set_position(sprite.width * (index % 6), sprite.height * (index / 6))
  next sprite
end
ln(yo) = <3

There was an error while thanking
Thanking...