Image => Sprite

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Octavius
Messages : 312
Inscription : jeu. 26/juil./2007 12:10

Image => Sprite

Message par Octavius »

En me creusant la tête j'ai réussi à trouver un bout de code qui permet de transformer une image en sprite :

Code : Tout sélectionner

...
CreateSprite(#Sprite,ImageWidth(#Image),ImageHeight(#Image))

StartDrawing(SpriteOutput(#Sprite))
  DrawImage(ImageID(#Image),0,0)
StopDrawing()
...
Je ne trouvais rien de simple sur le forum ou sur internet qui dise comment faire la conversion image => sprite, j'ai donc décidé de poster ce bout de code.

Je n'en suis d'ailleurs pas satisfait, c'est un peu brutal comme solution, est-ce qu'il n'y a pas un moyen plus efficace en copiant la mémoire ?
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Image => Sprite

Message par Backup »

Octavius a écrit :En me creusant la tête j'ai réussi à trouver un bout de code qui permet de transformer une image en sprite :

Code : Tout sélectionner

...
CreateSprite(#Sprite,ImageWidth(#Image),ImageHeight(#Image))

StartDrawing(SpriteOutput(#Sprite))
  DrawImage(ImageID(#Image),0,0)
StopDrawing()
...
Je ne trouvais rien de simple sur le forum ou sur internet qui dise comment faire la conversion image => sprite, j'ai donc décidé de poster ce bout de code.

Je n'en suis d'ailleurs pas satisfait, c'est un peu brutal comme solution, est-ce qu'il n'y a pas un moyen plus efficace en copiant la mémoire ?
:lol: t'as inventé l'eau chaude !! :lol:
Octavius
Messages : 312
Inscription : jeu. 26/juil./2007 12:10

Message par Octavius »

Eh! Pour quelqu'un qui se lave à l'eau froide c'est une révolution!
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Octavius a écrit :Eh! Pour quelqu'un qui se lave à l'eau froide c'est une révolution!
:lol: :lol: :lol: :lol: :lol: excellent !! :D
Octavius
Messages : 312
Inscription : jeu. 26/juil./2007 12:10

Message par Octavius »

Lol

Au bout de combien de temps un débutant en PureBasic qui ne progresse pas devient-il un pur boulet ? :oops:

Plus sérieusement, tu n'as pas répondu à ma question : est-ce qu'il y a un moyen plus efficace de faire ça ? Genre un moyen qui ne me bouffe pas la moitié de mon temps CPU si je traite une dizaine de grosses images.
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Code : Tout sélectionner

Resultat = CatchSprite(#Sprite, AddresseMemoire [, Mode])
Cette fonction ne suffit pas?
Octavius
Messages : 312
Inscription : jeu. 26/juil./2007 12:10

Message par Octavius »

Si je fais CatchSprite en ayant au préalable récupéré l'adresse mémoire de l'image ça n'a pas l'air de fonctionner. Je ne comprends pas pourquoi.

Peux-tu confirmer ? As-tu un bout de code qui récupère l'adresse de l'image et qui s'en sert avec CatchSprite ?
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Je suis désolé mais je n'ai jamais codé aucun jeux donc j'aurais du mal à te faire un exemple mais si tu as un code je peux regarder!
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Octavius a écrit : Genre un moyen qui ne me bouffe pas la moitié de mon temps CPU si je traite une dizaine de grosses images.
heu ! le probleme doit venir d'ailleurs !!
parce que franchement ça prend que dalle en cpu !! 8O

met un exemple qui montre que ça bouffe du cpu , mon petit doit me dit que c'est parce que tu utilise mal la chose :)

oui c'est la meilleur methode a mon avis ... :)

mis a part la fonction
Resultat = LoadSprite(#Sprite, NomFichier$ [, Mode])

:lol: :lol: :lol: :)
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

la solution semble être de précharger les sprites ET les images avant de les utiliser ensuite dans le jeu et non pas de convertir les images en temps réel dans la boucle principale du jeu.
Image
Octavius
Messages : 312
Inscription : jeu. 26/juil./2007 12:10

Message par Octavius »

Dobro a écrit :heu ! le probleme doit venir d'ailleurs !!
parce que franchement ça prend que dalle en cpu !! 8O

met un exemple qui montre que ça bouffe du cpu , mon petit doit me dit que c'est parce que tu utilise mal la chose :)
Arf! Tu avais raison, c'était ma boucle WindowEvent()... :oops: :oops: :oops: :oops: :oops:
Octavius
Messages : 312
Inscription : jeu. 26/juil./2007 12:10

Message par Octavius »

Ah non en fait c'était pas WindowEvent()...

J'ai poster mon programme dans un nouveau sujet : http://www.purebasic.fr/french/viewtopic.php?t=8118

Stp partages avec moi ta sagesse Dobro, pourquoi mon programme ne fonctionne-t-il pas correctement ?
Répondre