comment faire tirer mon vaisseau

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: comment faire tirer mon vaisseau

Message par Ar-S »

C'est fait.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: comment faire tirer mon vaisseau

Message par G-Rom »

@Ar-s, la suppression d'élément dois se faire dans une itération séparée. un peu comme la librairie std::vector , à la suppression d'un élément l'itérateur est invalide.
ton flag feu ne sert à rien. et regarde le topic consacré au deltatime : http://www.purebasic.fr/french/viewtopi ... 21&t=15332 ;)
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: comment faire tirer mon vaisseau

Message par Ar-S »

G-Rom, je me suis aperçu que du coup mon feu ne servait plus. J'ai modifié mon code, + deltatime ok
Je verrai ce que ça donne. La version que j'ai mis en punch tourne bien sur mon vieux bousin de portable et sur ma tour. En 800x600 je m'étais dis que la vitesse d'affichage selon les config serait de ~60fps.

Code : Tout sélectionner

la suppression d'élément dois se faire dans une itération séparée. un peu comme la librairie std::vector
Heu what ? std::vector c'est un module de quoi ?
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: comment faire tirer mon vaisseau

Message par G-Rom »

excuse moi, std::vector c'est une liste chainée en c++ , ce que je voulais dire , c'est qu'il est préférable que la suppression se fasse dans une boucle séparée ( comme la lib en c++ )

pseudo code :
; Suppression
Foreach liste()
if liste()\markedForRemoval
delete
endif
next

; Affichage
Foreach liste()
draw liste();
next
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Re: comment faire tirer mon vaisseau

Message par Anonyme2 »

Ar-S,

c'est bien je que je te disais avec un second problème.

Il y a 2 deleteelement, j'ai mis ça pour debugger

ligne 403 (j'ai mis l'option à 1)

Code : Tout sélectionner

   Debug "DeleteElement 1 = " + Str(DeleteElement (BB(), 1))
           Debug "ListSize(BB()) 1 = " + Str(ListSize(BB()))
ligne 413

Code : Tout sélectionner

   Debug "DeleteElement 2 = " + Str(DeleteElement (BB()))
            Debug "ListSize(BB()) 2 = " + Str(ListSize(BB()))
Lors d'un plantage on a bien déléteelement qui retourne 0 même si la liste n'est pas vide, celà n'a pas de rapport.

Puis on plante mois mais ça plante encore et les debug donne DeleteElement 1 = 0 et ListSize(BB()) 1 = 0 à un moment donné, donc là plus d'éléments.

J'ai ajouté le test suivant ligne 397

Code : Tout sélectionner

If ListSize(BB())
avec le endif correspondant, et là je n'ai plus de plantage.

A chaque fois que l'on utilise une liste, il faut toujours tester le retour des fonctions, je rabache mais c'est le prix d'un code stable.
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: comment faire tirer mon vaisseau

Message par Ar-S »

Merci à tous pour votre aide. tout est nikel.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Répondre