ralentissement sprite???resolu

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Anonyme

Message par Anonyme »

Ba oui , je déconne pas , Tape mon pseudo sur google , tu trouveras mes premiers sujets de prog.
Et puis j'avais pas vraiment le temps d'apprendre à la caserne :D , puis tu as ceux ici (Dr.dri notamment, et notre ami WolfJeremy) qui me connaissent depuis le début.
cha0s
Messages : 681
Inscription : sam. 05/mars/2005 16:09

Message par cha0s »

Cpl.Bator a écrit :Aïe le code me fait peur :D

j'ai trouvé de quoi optimisé


l'utilisation de SpritePixelCollision() est TRES gourmande en temps CPU
il faut faire un test de boite AVANT

càd :

Code : Tout sélectionner

if SpriteCollision()
   if SpritePixelCollision()
     ;//TON CODE
   endif 
endif 
Ton soucis viens de là sans doute.
Syntaxe

Resultat = SpritePixelCollision(#Sprite1, x1, y1, #Sprite2, x2, y2)
Description

Teste si les deux Sprites se chevauchent. Si ce n'est pas le cas, Resultat = 0. La hauteur et la largeur des sprites sont déjà connues de Purebasic, seules les coordonnées x et y de chaque sprite sont nécessaires.

Cette fonction effectue une comparaison pixel par pixel sur les pixels transparents des deux sprites ce qui rend la routine très précise mais également relativement lente. Pour optimiser au maximum la comparaison, il convient d'enlever le plus possible la zone transparente autour du sprite, pour ne garder que sa dimension réelle.
Note : SpriteCollision() est testé en interne avant de lancer la comparaison.
Anonyme

Message par Anonyme »

C'est nouveau , avant c'était pas comme ca.
cha0s
Messages : 681
Inscription : sam. 05/mars/2005 16:09

Message par cha0s »

possible je n'ai vue sa que très récemment.
geantvert
Messages : 34
Inscription : dim. 09/déc./2007 20:15

Message par geantvert »

j'ai un ralentissement sur la gestion de tir avec asteroide1,j'ai essaie comme tu me l'as dit cela ne change rien j'ai meme constate quelques erreurs asteroide1 a la place de asteroide2 dans mon code
le ralentissement se fait en augmentant progressivement
ne serait ce pas un probleme de boucle foreach
Anonyme

Message par Anonyme »

Tes astéroides sont dans des liste chainée ?
si oui , est ce que tu supprimes les éléments au fur & à mesure du jeu ?
si non , fait le :D
beauregard
Messages : 1307
Inscription : dim. 08/juil./2007 18:32
Localisation : Toulouse

Message par beauregard »

geantvert a écrit :je te remercie de ta patience
c'est surement la librairie animsprite
je l'ai trouve en telechargant puretools v0.21
sur basic univers mais comment on fait pour la mettre dans le dossier
du jeu
je ne sais meme pas a quoi cela ressemble
purebasic c'est pas simple du tout pour les amateurs complets
Si c'est pour animer, utilise donc clipsprite, parce que là tu te complique déjà la vie...

donner le lien:
http://basicunivers.free.fr/index.php?p ... hp&file=49
fichier readme
Install: see Help\PureTools_I.chm > Installation
en fait il faut dezipper dans un dossier ou tu met tes dossiers perso( évite de travailler dans c: t'as pas une 2eme partition ?) et tu fait un copier/coller des 4 dossiers( ou de leur contenu, par exemple UserLibrairies existe déjà, alors faut juste copier/coller les 4 fichiers( PureTools_I_01, PureTools_I_02, PureTools_I_03, et PureTools_I_04) :

Code : Tout sélectionner

PureBasic\Examples\PureTools_I\
 - Examples
 
PureBasic\Residents\
 - .RESident file with Constants
 
PureBasic\PureLibraries\UserLibraries\
 - the PureTools libraries
 
PureBasic\Help\
 - this Help file (for F1-on-command-Help)
 
ton jeu est fluide, seul aster1 est destructible et le score semble bloqué.

pour les collision tu peux tester les coordonnées X et Y des objets( voir forum jeu, Vers l'infini)
geantvert
Messages : 34
Inscription : dim. 09/déc./2007 20:15

Message par geantvert »

plein de bonnes idees je regarde tout cela ,je te remercie a+
geantvert
Messages : 34
Inscription : dim. 09/déc./2007 20:15

resolu

Message par geantvert »

j'ai supprime les boucles foreach dans la gestion des tirs
je vous remercie tous encore
Répondre