Page 3 sur 4
Re: Éditeur de livres jeux, besoin de conseils
Publié : ven. 01/août/2014 18:55
par DjPoke
Étrange, j'ai modifié tout pour tourner en plein écran (1024x768).
Cela fonctionne quand je compile dans l'éditeur purebasic, mais cela plante à un moment donné avec l'executable compilé.
Je ne comprend pas... Bug de la version 5.30 (x86) ?
Re: Éditeur de livres jeux, besoin de conseils
Publié : ven. 01/août/2014 20:56
par majikeyric
Je rencontre un problème similaire...
Lorsque j'exécute mon programme dans l'IDE y a pas de soucis mais si je lance l'exécutable j'ai un bug de sprite ?!!
Enfin peut être que ça n'a pas de rapport avec toi. Faut que je creuse...
Re: Éditeur de livres jeux, besoin de conseils
Publié : ven. 01/août/2014 21:08
par SPH
majikeyric a écrit :Je rencontre un problème similaire...
Lorsque j'exécute mon programme dans l'IDE y a pas de soucis mais si je lance l'exécutable j'ai un bug de sprite ?!!
Enfin peut être que ça n'a pas de rapport avec toi. Faut que je creuse...
Peut etre que ton code ne trouve pas le chemin du fichier du sprite
Re: Éditeur de livres jeux, besoin de conseils
Publié : ven. 01/août/2014 21:17
par DjPoke
J'ai essayé de compiler mon code avec la version 64bits, et là, aucun problèmes, ni sous l'IDE, ni dans l'executable.
Je penche donc vers un bug de purebasic version x86.
Re: Éditeur de livres jeux, besoin de conseils
Publié : sam. 02/août/2014 0:47
par majikeyric
SPH a écrit :Peut etre que ton code ne trouve pas le chemin du fichier du sprite
bein non pourtant, y a un seul sprite sur 45 qui buggue...
Je chercherai quand j'aurai un peu de temps.
Re: Éditeur de livres jeux, besoin de conseils
Publié : sam. 02/août/2014 6:05
par DjPoke
Si c'est bien une image qui plante, au moment où le programme plante chez moi, il est censé charger par script l'image "deco1.png" qui a pour seule différence par rapport aux précédentes d'avoir une grande zone dont la teinte Alpha est à 0. (Transparence 'png')
Je vais regarder si il n'y a pas quelque chose qui me choque dans mon programme au niveau du chargement de l'image et de l'affichage, mais cela m'étonne quand même que purebasic x86 plante et pas purebasic x64.
EDIT:
Voici la partie qui pourrait être à incriminer, mais je ne vois pas d'erreurs :
Code : Tout sélectionner
ElseIf Left(a$,7) = "<IMAGE>"
tempimg = LoadImage(#PB_Any,"projets\"+project_dir$+"\"+Mid(a$,8))
DrawingMode(#PB_2DDrawing_AlphaBlend)
DrawImage(ImageID(tempimg),56 + offsetX,84)
DrawingMode(#PB_2DDrawing_Transparent)
FreeImage(tempimg)
'a$' contient normalement <IMAGE>deco1.png (en tout cas, dans l'IDE, c'est le cas) et OffsetX est égale à 0 ou 512 selon si l'image va à gauche ou à droite de l'écran.
EDIT2:
J'ai un vague souvenir d'avoir eu déjà un problème avec la commande FreeImage si je m'en sert trop rapidement.
Une idée ? C'est peut-être là mon problème ?
Peut-être que l'IDE avec le debugger est plus lent, et fonctionne, mais pas la version compilée ?
EDIT3:
Non, c'est lié à la souris. Un clic n'importe où avec n'importe quel bouton à ce moment là et ça plante.
J'ai eu le même problème au même endroit avec la version canvas.
Re: Éditeur de livres jeux, besoin de conseils
Publié : jeu. 07/août/2014 8:06
par DjPoke
Bon, ben, je vais reprogrammer ça sous la SDL 2 en C ou C++ :
Impossible d'avoir un executable 32 bits qui fonctionne, alors que sous l'IDE cela fonctionne impeccable.
Impossible de debugger, donc, ni de contourner un éventuel bug de PB x86.
En 64 bits, cela fonctionne mais cela ne m'intéresse pas.
Dommage pour moi, je suis un peu déçu...
Re: Éditeur de livres jeux, besoin de conseils
Publié : jeu. 07/août/2014 9:03
par Ar-S
Pas de raison que tu n'y arrives pas en PB...
Ce ne serait pas es histoire de .l .i ? Je pars en vacances demain je ne pourrai pas trop surfer mais c'est dommage que tu lâches l'affaire.
Re: Éditeur de livres jeux, besoin de conseils
Publié : jeu. 07/août/2014 9:16
par DjPoke
En fait, j'ai fait des test, et il semble qu'au bout de plusieurs usages, à un moment donné, le fait de dessiner dans un sprite fasse planter l'exe.
Ce qui m'intrigue, c'est que cela fonctionne dans l'IDE et qu'un exe 64 bits fonctionne aussi.
Je suis pommé car je ne peux pas débugger.
A moins que je puisse créer un exe avec débugger intégré dedans, mais si cela est possible, comment puis-je invoquer le débugger ?
EDIT: Est ce que la déclaration d'un sprite sans .l ou .i ne peut pas déclencher ce genre de problèmes en 32 bits ?
Re: Éditeur de livres jeux, besoin de conseils
Publié : jeu. 07/août/2014 9:44
par Ar-S
Penses tu bien à libérer les sprites qui ne servent plus avec FreeSprite() ?
Re: Éditeur de livres jeux, besoin de conseils
Publié : jeu. 07/août/2014 9:53
par DjPoke
Voici l'une des deux fonctions ou fonctions qui font planter le programme à un moment donné :
Code : Tout sélectionner
; Dessiner les deux pages vierges
Procedure ShowPages()
StartDrawing(SpriteOutput(screen))
DrawImage(ImageID(pages),0,0)
StopDrawing()
EndProcedure
'screen' est une variable globale qui contient un sprite de 1024x768 sans alphablending ni collision, et 'pages' est une variable globale qui contient une image png en 1024x768.
Re: Éditeur de livres jeux, besoin de conseils
Publié : jeu. 07/août/2014 10:01
par Ar-S
Pour rappel, il ne faut pas que ton sprite soit plus grand que ta fenêtre. Si tu es en openwindowscreen.
J'avais trouvé un super petit exe qui permettait de debugger en externe, je ne le trouve plus, je cherche...
Re: Éditeur de livres jeux, besoin de conseils
Publié : jeu. 07/août/2014 10:39
par DjPoke
Non, je suis maintenant en plein écran.
EDIT: J'ai modifié le code qui plante comme ceci :
Code : Tout sélectionner
; Dessiner les deux pages vierges
Procedure ShowPages()
If StartDrawing(SpriteOutput(screen))
DrawImage(ImageID(pages),0,0)
StopDrawing()
Else
End
EndIf
EndProcedure
Et en fait, Startdrawing ne retourne pas de pointeur sur mon sprite.
Je ne comprend pas, parce que compilé avec PB x64, ça fonctionne.
EDIT2: J'ai trouvé ! C'est un bug à propos de #PB_Any sur la création de sprites.
En remplaçant :
Code : Tout sélectionner
; Créer le sprite buffer d'écran
Global screen = CreateSprite(#PB_Any,1024,768)
par
Code : Tout sélectionner
; Créer le sprite buffer d'écran
Global screen = 0
CreateSprite(screen,1024,768)
cela fonctionne enfin.
Est ce que quelqu'un peut me décrire mon erreur pour que je ne la refasse plus à l'avenir ?
Re: Éditeur de livres jeux, besoin de conseils
Publié : jeu. 07/août/2014 11:15
par falsam
@DjPoke: J'ai téléchargé ton fichier compressé, mais apparemment il est corrompu. J'ai désactivé mon Antivirus au cas ou, mais même résultat.
Re: Éditeur de livres jeux, besoin de conseils
Publié : jeu. 07/août/2014 11:30
par DjPoke
Si c'est un virus "heuristique", c'est PB qui est de moins en moins toléré par les antivirus.
Hier, j'ai pris un programme à moi qui marche très bien sur l'ancienne version d'Avira, et je l'ai testé sur un PC avec la nouvelle version d'Avira qui me detecte un virus heuristique.
Si j'ai bien compris, c'est un virus potentiel, et non pas un virus signé.
Les programmes compilés en PB sous Avast n'étaient déjà plus tolérés, mais là cela devient grave !!!
EDIT: Pour que cela fonctionne, j'ai pris l'antivirus de microsoft...