Page 1 sur 1

Afficher un Sprite dans un sprite

Publié : jeu. 14/juin/2007 20:30
par bombseb
Bonjour,

J'aimerais afficher des sprites dans un gros sprite (qui me servirais de buffer) est-ce possible ?

merci d'avance

Re: Afficher un Sprite dans un sprite

Publié : jeu. 14/juin/2007 21:30
par Backup
bombseb a écrit :Bonjour,

J'aimerais afficher des sprites dans un gros sprite (qui me servirais de buffer) est-ce possible ?

merci d'avance
ce que tu peut faire c'est d'afficher un sprite de la taille de l'ecran en fond
et ensuite d'afficher d'autre sprite par dessus , deja :D

ou bien j'ai pas compris le but .. :)

Publié : jeu. 14/juin/2007 21:53
par bombseb
ben en fait j'aimerais afficher des sprites dans un sprite3D et ensuite afficher ce sprite3D déformé dans l'écran...


je ne comprends pas ce code ne marche pas :
If StartDrawing(SpriteOutput(#SpriteBuffer3D))

; Effacer le sprite3D buffer avec la couleur 0
Box (0,0,25,25,0)

If Start3D()
; Afficher des sprite3D dans mon sprite3D buffer
Sprite3DBlendingMode(5,2)
DisplaySprite3D(#Sprite3D1,100,100,255)
DisplaySprite3D(#Sprite3D1,100,110,100)
Stop3D()
EndIf

StopDrawing()
EndIf

If StartDrawing(ScreenOutput())
Start3D()
; Afficher mon sprite3D buffer sur lécran
DisplaySprite3D(#SpriteBuffer3D, 0,0, 255)
Stop3D()
StopDrawing()
EndIf

FlipBuffers()
je pense que j'ai du faire une erreur de débutant... :oops:

Publié : jeu. 14/juin/2007 21:58
par Backup
oui ! :D

en fait faut bien comprendre qu'un sprite est d'abord crée en 2D

avec Resultat = CreateSprite(#Sprite, Largeur, Hauteur ,#PB_Sprite_Texture)

ce parametre de texture est tres important pour la suite !!

ensuite tu fait un simple

Resultat = CreateSprite3D(#Sprite3D, #Sprite)

maintenant et seulement maintenant ton sprite 3D existe !! :D

je ne pense pas qu'on puisse dessiner avec Stardrawing dans un sprite 3D !!

faut dessiner dans le sprite 2D puis convertir a la volé ! eventuellement ... :D

pour les effets genre déformation le sprite 2D est tres rapide
en utilisant Startdrawing !!

mais pour les rotations, le prite 3d a deja une rotation precodé par purebasic avec "RotateSprite3D(#Sprite3D, Angle, Mode)"


bref pour modifier l'apparence d'un sprite , mieux vaut rester en 2D

le sprite 3D n'a d'utilité que parce que certaine fonction purebasic sont cablé pour :D

Publié : jeu. 14/juin/2007 22:05
par bombseb
Merci Dobro !


on voilà je viens de trouver ce que je voulais faire c'est ca :

UseBuffer(#SpriteBuffer3D)
ClearScreen (0)

If Start3D()
Sprite3DBlendingMode(5,2)
DisplaySprite3D(#Sprite3D1,100,100,255)
DisplaySprite3D(#Sprite3D1,100,110,100)
Stop3D()
;StopDrawing()
EndIf

UseBuffer(-1)
If Start3D()
DisplaySprite3D(#SpriteBuffer3D, 0,0, 255)
Stop3D()
EndIf


FlipBuffers()

Publié : jeu. 14/juin/2007 22:07
par Backup
a oui ! bien vu :D

Publié : jeu. 14/juin/2007 23:12
par bombseb
bon apparement on ne peut pas afficher un sprite3D dans un sprite2D ?

j'aimerais faire :

Code : Tout sélectionner

usebuffer (#monsprite3D)
displaysprite3D (...)
et il m'affiche le sprite3D sur l'écran :twisted: