Sujet n°8754
Posté par FinalArt le 19 Déc - 13:56 (2010)
Titre : [Résolu] Bug sur DS Résolution [PSPDS 5g ]
Salut, j'ai un bug avec DS Résolution de PSP DS 5G. En premier lieu j'ai eu le bug comme quoi c'était impossible de diviser par 0, ect.
J'ai alors mis juste au dessus de la ligne qui bug : if frame == 0      frame = 1     end


 
Code:
def draw_autotile(x, y, z, tile_id)
    autotile = @autotiles[tile_id / 48 - 1]
    tile_id %= 48
    bitmap = Bitmap.new(32, 32)
    tiles = Autotiles[tile_id / 8][tile_id % 8]
    frames = autotile.width / 96
   if frames == 0
  frames = 1
  end 
    anim = (Graphics.frame_count / Animated_Autotiles_Frames) % frames * 96
    for i in 0...4
      tile_position = tiles[i] - 1
      src_rect = Rect.new(tile_position % 6 * 16 + anim,
        tile_position / 6 * 16, 16, 16)
      bitmap.blt(i % 2 * 16, i / 2 * 16, autotile, src_rect)
    end






Mais nouveau bug :





Rapport log :


 
Citation:
 
---------- Erreur de script : DS Résolution ----------
----- Type
NameError

----- Message
undefined local variable or method ` 1' for #<Tilemap:0x47c07a0>

----- Position dans DS Résolution
Ligne 322

----- Backtrace
Script : DS Résolution | Ligne : 322 | Méthode : in `draw_autotile'
Script : DS Résolution | Ligne : 270 | Méthode : in `refresh'
Script : DS Résolution | Ligne : 265 | Méthode : in `each'
Script : DS Résolution | Ligne : 265 | Méthode : in `refresh'
Script : DS Résolution | Ligne : 264 | Méthode : in `each'
Script : DS Résolution | Ligne : 264 | Méthode : in `refresh'
Script : DS Résolution | Ligne : 263 | Méthode : in `each'
Script : DS Résolution | Ligne : 263 | Méthode : in `refresh'
Script : DS Résolution | Ligne : 262 | Méthode : in `each'
Script : DS Résolution | Ligne : 262 | Méthode : in `refresh'
Script : DS Résolution | Ligne : 227 | Méthode : in `update'
Script : MAPLINK | Ligne : 217 | Méthode : in `update'
Script : MAPLINK | Ligne : 146 | Méthode : in `initialize'
Script : Scene_Map | Ligne : 192 | Méthode : in `new'
Script : Scene_Map | Ligne : 192 | Méthode : in `transfer_player'
Script : Scene_Map | Ligne : 55 | Méthode : in `alias_update'
Script : Scene_Map | Ligne : 46 | Méthode : in `loop'
Script : Scene_Map | Ligne : 59 | Méthode : in `alias_update'
Script : MAPPANEL* | Ligne : 89 | Méthode : in `oldUpdate'
Script : Bouton_Rouge* | Ligne : 54 | Méthode : in `update'
Script : Scene_Map | Ligne : 26 | Méthode : in `main'
Script : Scene_Map | Ligne : 21 | Méthode : in `loop'
Script : Scene_Map | Ligne : 33 | Méthode : in `main'
Script : Main | Ligne : 58









Merci d'avance =)

Posté par Jessy le 19 Déc - 14:39 (2010)
Tu rajoute : ( if frames...avant la ligne où sa bug dans le script.

Posté le: Hier à 17:57    Sujet du message: Spritage !

Ouaip ! je le fait !

if frames == 0
  frames = 1
end


Mais, tu cherche et tu trouvera la réponse au moin 5 fois sur le forum mais bon il y a des faignant xD

Posté par FinalArt le 19 Déc - 15:02 (2010)
...


Si tu avais lu bien mon message tu aurais vu que j'e l'ai déjà fait =/

Posté par Nuri Yuri le 19 Déc - 15:42 (2010)
Tu n'aurais pas mis un caractère spécial genre alt+0160 ?
Normalement il ne peut pas prendre un espace et un nombre pour une variable locale ...

Fin je ne comprend pas pourquoi ce script bug ... Je sens que vous allez devoir attendre la nouvelle version de PSP DS Petit saligaud mal élevé

Posté par Pαlвσlѕку le 19 Déc - 15:51 (2010)
Ce script est instable.

Vivement que je sorte la prochaine version avec un script DS Résolution 100 % fonctionnel.
Et je ne peux pas le poster ici car il faut modifier d'autres choses dans PSP DS pour qu'il fonctionne correctement.

Sinon, je ne sais pas d'où vient ce bug.

Posté par FinalArt le 19 Déc - 16:15 (2010)
Merci.

J'ai le début de quelque chose : Après l'intro, quand j'envoie le héros sur " 1/Maison du héros $2 ", rien ne plante. Quand je l'envoie sur un nouvelle carte dont le nom compte est " Bourg-Azur ", cela plante.

Je pense que cela a un lien avec le nom qui est donné, enfin les symbole. Car qaund je fais sortir le héros de la maison dans le bourg de psp, pas de problème, quand je l'envoie dans Bourg-Azur, il y a le bug.

En espérant que cela peut aider...

Posté par Elric le 19 Déc - 16:44 (2010)
 Azur, moi aussi cela m'a fait la même chose j'ai du essayer genre 5 fois avec if frames == 0 frames = 1  end j'ai failli perdre espoir mais en réessayant une nouvelle fois ça a miraculeusement fonctionné ! Je te conseille d'insister comme je l'ai fait passe voir mon sujet plus bas que le tien.

EDIT: J'ai compris pourquoi cela ne marche pas !  Il faut mettre ça JUSTE au dessus de "for i in 0...4" un truc dans le genre ! Réessaye un peu pour voir ?

Posté par FinalArt le 19 Déc - 17:05 (2010)
Grace à Brendan, le bug s'est résolu !

En effet, en plus des trois lignes de codes cités dans mon post, il faut veiller à ce que les autotiles des tilesets ne soient pas vide.
Pour cela il faut aller dans la BDD, puis sur le tileset de votre map. La vous lui remplissez toute ça catégorie Autotiles. Valider.
A ce moment, votre map va avoir un petit soucis. Des autotiles vont apparaître sur votre carte. Suivant les couches, effacez-les pour retrouver la map habituelle. Et c'est terminé =)

Encore merci a Brendan !